<!-- Copyright (C) 2016 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License. -->

<resources>
  <string name="app_name">ReviewIt</string>
  <string name="app_menu_sort">Sort Changes</string>
  <string name="app_menu_review">Review Changes</string>
  <string name="app_menu_settings">Settings</string>

  <!-- SortChangesFragment -->
  <string name="branch">branch:</string>
  <string name="help">Help</string>
  <string name="project">project:</string>
  <string name="reload_error">Reloading change failed with %1$d %2$s</string>
  <string name="topic">topic:</string>

  <string name="no_network">No network connection available!</string>

  <string name="no_more_changes">No more changes!</string>
  <string name="loading">Loading!</string>

  <!-- SortChangesFragment - menu -->
  <string name="action_abandon">Abandon...</string>
  <string name="action_add_reviewer">Add Reviewer...</string>
  <string name="action_help">Help</string>
  <string name="action_preferences">Preferences</string>
  <string name="action_reload_change">Reload Change</string>
  <string name="action_reload_query">Reload Query</string>
  <string name="action_restore">Restore...</string>
  <string name="action_undo">Undo</string>

  <!-- ReviewChangesFragment -->
  <string name="no_changes_match">No changes match the query!</string>

  <!-- ErrorFragment -->
  <string name="title_activity_error">Error</string>

  <!-- HelpFragment -->
  <string name="about_app">This app allows you to sort incoming changes.</string>
  <string name="disclaimer_app">This is not an official Google product.</string>
    <string name="disclaimer_actions">This app is a prototype. The
        ignore, skip and star actions are not implemented yet and don\'t have any effect.</string>

  <string name="actions">Actions:</string>
    <string name="about_star">By clicking on the star button the change is added to your ReviewIt
        dashboard. Alternatively you can swipe the change to the right.</string>
    <string name="about_ignore">By clicking on the ignore button the change is added to your ignore
        list and you will not be asked again if you want to review this change. Alternatively you
        can swipe the change to the left.</string>
    <string name="about_skip">By clicking on the skip button the change is skipped and when a new
        patch set is available you will be asked again if you want to review this change.</string>

  <string name="info">Info:</string>
    <string name="about_info">Which information is displayed can be configured in the
        preferences.\nClicking at the bottom of the change box opens the detailed change
        view.</string>
  <string name="about_patch_sets">Number of patch sets.</string>
  <string name="about_thumb_up">Number of positive votes on the Code-Review label.</string>
  <string name="about_thumb_down">Number of negative votes on the Code-Review label.</string>
    <string name="about_comments">Number of inline comments on the current revision of the
        change.</string>
  <string name="about_reviewers">Number of reviewers (exclusive the change owner).</string>
    <string name="about_verified_plus_one">Green background indicates a verified change. This means
        that the change has at least one positive voting on the Verified label and no negative
        Verified vote.</string>
    <string name="about_verified_minus_one">Red background indicates that the change has at least
        one negative voting on the Verified label.</string>
    <string name="about_non_mergeable">Orange background indicates that the change is not
        mergeable.</string>
  <string name="about_abandoned">Grey background indicates that the change is abandoned.</string>
  <string name="about_merged">Blue background indicates that the change is merged.</string>

  <string name="menu">Menu:</string>
  <string name="about_preferences">User preferences.</string>
    <string name="about_settings">Application settings. Configure the connection to the Gerrit
        server.</string>
  <string name="about_reload_change">Reload the current change.</string>
    <string name="about_undo">Undo. The rating of the previous change is undone and you are asked
        again if you want to review it. Alternatively you can also press the hardware back
        button.</string>
    <string name="about_add_reviewer">Add Reviewer. Allows you to add a reviewer to this
        change.</string>

  <string name="licenses">Licenses:</string>
    <string name="about_licenses">The \'ReviewIt\' app is licensed under
        the Apache License 2.0. Executable distributions also include other
        software components that are provided under additional licenses.</string>
  <string name="apache2.0">Apache License, Version 2.0:</string>
  <string name="apache2.0_link">http://www.apache.org/licenses/LICENSE-2.0</string>
    <string name="lib_gerrit_rest_java_client">&#8226;\tJava REST client for Gerrit Code Review:\n
        \tCopyright 2013 - 2015 Urs Wolfer\n
        \thttps://github.com/uwolfer/gerrit-rest-java-client</string>
    <string name="lib_gson">&#8226;\tGson:\n
        \tCopyright 2008 Google Inc.\n
        \thttps://github.com/google/gson</string>
    <string name="lib_guava">&#8226;\tGuava:\n
        \thttps://github.com/google/guava</string>
    <string name="lib_httpclient_android">&#8226;\tHttpClient for Android:\n
        \thttps://hc.apache.org/httpcomponents-client-4.3.x/android-port.html</string>
    <string name="cc_by_3.0">Creative Commons Attribution 3.0 United States
        (CC BY 3.0 US):</string>
  <string name="cc_by_3.0_link">http://creativecommons.org/licenses/by/3.0/us/</string>
    <string name="lib_diffy">&#8226;\tDiffy:\n
        \tCopyright Sara Owens\n
        \thttp://inkylabs.com/</string>
    <string name="cc_by_4.0">Creative Commons Attribution 4.0 international
        (CC BY 4.0):</string>
  <string name="cc_by_4.0_link">https://creativecommons.org/licenses/by/4.0/</string>
    <string name="lib_material_icons">&#8226;\tMaterial Icons:\n
        \tCopyright Google Inc.\n
        \thttps://design.google.com/icons/</string>

  <string name="title_activity_help">Help</string>

  <!-- AddReviewerFragment -->
  <string name="title_activity_add_reviewer">Add Reviewer</string>
  <string name="add_reviewer_error">Add reviewer failed with %1$d %2$s</string>
  <string name="ccs">CC\'s:</string>
  <string name="reviewer_hint">Fullname or Email</string>
  <string name="reviewers">Reviewers:</string>
  <string name="no_reviewers">No Reviewers</string>
  <string name="save">Save</string>

  <!-- SettingsFragment -->
  <string name="serverConfig">Server Configuration</string>
  <string name="queryConfig">Query Configuration</string>

  <string name="add_server">Add Server</string>
  <string name="connection_failed">Connection failed: %1$s</string>
    <string name="credentials_info">Go to %1$s, generate a password and copy/paste the user and the
        password.</string>
    <string name="credentials_info_googlesource">Go to %1$s, copy the box content to the clipboard
        and click on the \'Paste\' button.</string>
    <string name="duplicate_server_name">A server configuration with name %1$s exists
        already. The name must be unique.</string>
  <string name="error_title">Error</string>
  <string name="error_with_cause">%1$s\nCaused by: %2$s</string>
  <string name="googlesource_obtain_password">Obtain Password</string>
  <string name="http_password">HTTP Password.</string>
  <string name="id">ID*:</string>
  <string name="incompleteInput">Required input parameters are missing.</string>
  <string name="incompleteSettings">Please complete the settings!</string>
  <string name="invalidLabel">Invalid label, must match \'%1$s\'.</string>
  <string name="invalidUrl">Invalid URL</string>
  <string name="label">Star Label*:</string>
  <string name="label_hint">Label to mark changes</string>
  <string name="name">Name*:</string>
  <string name="name_hint">Server Name</string>
  <string name="password">Password*:</string>
  <string name="password_hint">Gerrit HTTP Password</string>
  <string name="paste_credentials">Paste Credentials</string>
  <string name="save_anyway">Save anyway</string>
  <string name="server">Server*:</string>
  <string name="servers">Servers:</string>
  <string name="server_remove_message">Are you sure you want to delete server \'%1$s\'</string>
  <string name="server_remove_title">Delete Server</string>
    <string name="storage_info">The server configuration is stored in the application preferences.
        All values are encrypted.</string>
  <string name="test_server_connection">Testing connection to the server ...</string>
  <string name="test_server_connection_ok">OK</string>
  <string name="test_server_connection_failed">FAILED</string>
  <string name="title_activity_settings">Settings</string>
  <string name="url">URL*:</string>
  <string name="url_hint">Gerrit Server URL</string>
  <string-array name="urls">
    <item>https://gerrit-review.googlesource.com/</item>
    <item>https://android-review.googlesource.com/</item>
    <item>http://localhost:8080/</item>
  </string-array>
  <string name="user">User*:</string>
  <string name="user_hint">Gerrit User</string>
  <string name="query">Query*:</string>
  <string name="query_hint">Change Query</string>

  <!-- SettingsFragment - menu -->
  <string name="action_clean_avatar_cache">Clean avatar cache</string>

  <!-- DetailedChangeFragment -->
  <string name="title_activity_detailed_change">Change Details</string>
  <string name="approvals">Approvals:</string>
  <string name="detailed_change_title">Change %1$d</string>
  <string name="files">Files:</string>
  <string name="show_more">Show %1$d more</string>
  <string name="show_all">Show all (+%1$d)</string>

  <!-- DetailedChangeFragment - menu -->
  <string name="action_ignore">Ignore</string>
  <string name="action_skip">Skip</string>
  <string name="action_star">Star</string>

  <!-- IntroFragment -->
  <string name="title_activity_intro">ReviewIt - Introduction</string>
  <string name="continue_intro">Continue</string>

  <!-- PreferencesFragment -->
  <string name="title_activity_preferences">Preferences</string>
    <string name="pref_color_background">Use different color as app background to visualize the
        state of the current change.</string>
  <string name="pref_show_patch_sets">Show number of patch sets on change card.</string>
    <string name="pref_show_positive_code_review_votes">Show number of positive Code-Review votes on
        change card.</string>
    <string name="pref_show_negative_code_review_votes">Show number of negative Code-Review votes on
        change card.</string>
  <string name="pref_show_comments">Show number of inline comments on change card.</string>
  <string name="pref_show_reviewers">Show number of reviewers on change card.</string>
    <string name="pref_auto_font_size">Maximize font for commit message so that no lines are
        wrapped.</string>
  <string name="pref_font_size">Font size for commit message.</string>

  <!-- AbandonFragment -->
  <string name="title_activity_abandon">Abandon Change</string>
  <string name="abandon_change_title">Abandon Change %1$d</string>
  <string name="abandon">Abandon</string>
  <string name="abandon_error">Abandon failed with %1$d %2$s</string>
  <string name="reason">Reason:</string>

  <!-- RestoreFragment -->
  <string name="title_activity_restore">Restore Change</string>
  <string name="restore_change_title">Restore Change %1$d</string>
  <string name="restore">Restore</string>
  <string name="restore_error">Restore failed with %1$d %2$s</string>

  <!-- UnifiedDiffFragment -->
  <string name="title_activity_unified_diff">UnifiedDiffActivity</string>

  <!-- UnfifiedDiffView -->
  <string name="skipped_common_lines">... skipped %1$d common lines ...</string>
  <string name="expand_before">+%1$d&#x21e7;</string>
  <string name="expand_after">+%1$d&#x21e9;</string>

  <!-- PostReviewFragment -->
  <string name="title_activity_post_review">PostReviewActivity</string>
  <string name="message">Message:</string>
  <string name="publish">Publish</string>
  <string name="publishAndSubmit">Publish and Submit</string>
  <string name="review_error">Posting review failed with %1$d %2$s</string>
  <string name="submit_error">Submit failed with %1$d %2$s</string>

  <!-- PagedChangeDetailsFragment -->
  <string name="more_description">More Actions Menu</string>

  <!-- CommitMessageFragment -->
  <string name="commit_message_title">Commit</string>

  <!-- FileListFragment -->
  <string name="file_list_title">Files</string>

  <!-- ApprovalsFragment -->
  <string name="approvals_title">Approvals</string>

  <!-- ReplyFragment -->
  <string name="reply_title">Reply</string>

  <!-- RelativeDateFormatter -->
  <string name="in_the_future">in the future</string>
  <string name="month">m</string>
  <string name="months">m</string>
  <string name="year">y</string>
  <string name="years">y</string>
  <string name="one_second_ago">1sec</string>
  <string name="one_minute_ago">1min</string>
  <string name="one_hour_ago">1h</string>
  <string name="one_day_ago">1d</string>
  <string name="one_week_ago">1w</string>
  <string name="one_month_ago">1m</string>
  <string name="one_year_ago">1y</string>
  <string name="seconds_ago">%1$dsec</string>
  <string name="minutes_ago">%1$dmin</string>
  <string name="hours_ago">%1$dh</string>
  <string name="days_ago">%1$dd</string>
  <string name="weeks_ago">%1$dw</string>
  <string name="months_ago">%1$dm</string>
  <string name="years_ago">%1$dy</string>
  <string name="years_0_months_ago">%1$d%2$s</string>
  <string name="years_months_ago">%1$d%2$s,%3$d%4$s</string>
</resources>
