"Fossies" - the Fresh Open Source Software Archive

Member "tin-2.4.2/src/lang.c" (8 Dec 2017, 138915 Bytes) of package /linux/misc/tin-2.4.2.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "lang.c" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 2.4.1_vs_2.4.2.

    1 /*
    2  *  Project   : tin - a Usenet reader
    3  *  Module    : lang.c
    4  *  Author    : I. Lea
    5  *  Created   : 1991-04-01
    6  *  Updated   : 2017-08-13
    7  *  Notes     :
    8  *
    9  * Copyright (c) 1991-2018 Iain Lea <iain@bricbrac.de>
   10  * All rights reserved.
   11  *
   12  * Redistribution and use in source and binary forms, with or without
   13  * modification, are permitted provided that the following conditions
   14  * are met:
   15  * 1. Redistributions of source code must retain the above copyright
   16  *    notice, this list of conditions and the following disclaimer.
   17  * 2. Redistributions in binary form must reproduce the above copyright
   18  *    notice, this list of conditions and the following disclaimer in the
   19  *    documentation and/or other materials provided with the distribution.
   20  * 3. The name of the author may not be used to endorse or promote
   21  *    products derived from this software without specific prior written
   22  *    permission.
   23  *
   24  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
   25  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   26  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   27  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
   28  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   29  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
   30  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   31  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
   32  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   33  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   34  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   35  */
   36 
   37 
   38 #ifndef TIN_H
   39 #   include "tin.h"
   40 #endif /* !TIN_H */
   41 
   42 constext txt_1_resp[] = N_("1 Response");
   43 constext txt_7bit[] = "7bit";
   44 constext txt_8bit[] = "8bit";
   45 
   46 constext txt_active_file_is_empty[] = N_("\n%s contains no newsgroups. Exiting.");
   47 constext txt_all[] = N_("all ");
   48 constext txt_all_groups[] = N_("All groups");
   49 constext txt_append_overwrite_quit[] = N_("File %s exists. %s=append, %s=overwrite, %s=quit: ");
   50 constext txt_art_cancel[] = N_("Article cancelled (deleted).");
   51 #ifndef FORGERY
   52     constext txt_art_cannot_cancel[] = N_("Article cannot be cancelled (deleted).");
   53 #endif /* !FORGERY */
   54 constext txt_art_deleted[] = N_("Article deleted.");
   55 constext txt_art_mailgroups[] = N_("\nYour article:\n  \"%s\"\nwill be mailed to the following address:\n  %s");
   56 constext txt_art_newsgroups[] = N_("\nYour article:\n  \"%s\"\nwill be posted to the following %s:\n");
   57 constext txt_art_not_posted[] = N_("Article not posted!");
   58 constext txt_art_not_saved[] = N_("Article not saved");
   59 constext txt_art_pager_com[] = N_("Article Level Commands");
   60 constext txt_art_parent_none[] = N_("Article has no parent");
   61 constext txt_art_parent_killed[] = N_("Parent article has been killed");
   62 constext txt_art_parent_unavail[] = N_("Parent article is unavailable");
   63 constext txt_art_posted[] = N_("Article posted: %s");
   64 constext txt_art_rejected[] = N_("Article rejected (saved to %s)");
   65 constext txt_art_thread_regex_tag[] = N_("%s=article, %s=thread, %s=range, %s=hot, %s=pattern, %s=tagged, %s=quit: ");
   66 constext txt_art_unavailable[] = N_("Article unavailable");
   67 constext txt_art_undeleted[] = N_("Article undeleted.");
   68 constext txt_art_x_of_n[] = N_("Article %4d of %4d");
   69 constext txt_article_cancelled[] = "Article cancelled by author.\n";
   70 constext txt_article_plural[] = N_("articles");
   71 constext txt_article_reposted[] = N_("This is a repost of the following article:");
   72 constext txt_article_singular[] = N_("article");
   73 constext txt_article_upper[] = N_("Article");
   74 constext txt_articles_mailed[] = N_("-- %d %s mailed --");
   75 constext txt_at_s[] = N_(" at %s");
   76 constext txt_attach[] = N_("%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n");
   77 constext txt_attach_charset[] = N_(", charset: ");
   78 constext txt_attach_unsup_charset[] = N_("%*s[-- charset %s not supported --]\n");
   79 constext txt_attach_description[] = N_("%*s[-- Description: %s --]\n");
   80 constext txt_attachment_lines[] = N_("%d lines");
   81 constext txt_attachment_menu[] = N_("Attachment Menu");
   82 constext txt_attachment_menu_com[] = N_("Attachment Menu Commands");
   83 constext txt_attachment_no_name[] = N_("<no name>");
   84 constext txt_attachment_saved[] = N_("Attachment saved successfully. (%s)");
   85 constext txt_attachments_saved[] = N_("%d of %d attachments saved successfully.");
   86 constext txt_attachment_select[] = N_("Select attachment> ");
   87 constext txt_attachment_tagged[] = N_("Tagged attachment");
   88 constext txt_attachments_tagged[] = N_("%d attachments tagged");
   89 constext txt_attachment_untagged[] = N_("Untagged attachment");
   90 constext txt_attrib_menu_com[] = N_("Attributes Menu Commands");
   91 constext txt_attrib_no_scope[] = N_("attribute with no scope: %s");
   92 #ifdef NNTP_ABLE
   93     constext txt_auth_failed[] = N_("%d Authentication failed");
   94     constext txt_auth_failed_nopass[] = N_("NNTP authorization password not found for %s");
   95     constext txt_auth_needed[] = N_("Server expects authentication.\n");
   96     constext txt_auth_pass[] = N_("    Please enter password: ");
   97     constext txt_auth_user[] = N_("    Please enter username: ");
   98     constext txt_authorization_ok[] = N_("Authorized for user: %s\n");
   99     constext txt_authorization_fail[] = N_("Authorization failed for user: %s\n");
  100 #endif /* NNTP_ABLE */
  101 constext txt_author_search_backwards[] = N_("Author search backwards [%s]> ");
  102 constext txt_author_search_forwards[] = N_("Author search forwards [%s]> ");
  103 constext txt_autosubscribed[] = N_("\nAutosubscribed to %s");
  104 constext txt_autosubscribing_groups[] = N_("Autosubscribing groups...\n");
  105 constext txt_autoselecting_articles[] = N_("Autoselecting articles (use '%s' to see all unread) ...");
  106 
  107 constext txt_bad_active_file[] = N_("Active file corrupt - %s");
  108 constext txt_bad_article[] = N_("Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: ");
  109 constext txt_bad_attrib[] = N_("Unrecognized attribute: %s");
  110 constext txt_bad_command[] = N_("Bad command. Type '%s' for help.");
  111 constext txt_base64[] = "base64";
  112 constext txt_base_article[] = N_("Base article");
  113 constext txt_base_article_range[] = N_("Base article range");
  114 constext txt_batch_update_unavail[] = N_("%s: Updating of index files not supported: cache_overview_files=%s");
  115 constext txt_begin_of_art[] = N_("*** Beginning of article ***");
  116 constext txt_begin_of_page[] = N_("*** Beginning of page ***");
  117 
  118 constext txt_cancel_article[] = N_("Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): ");
  119 constext txt_cancelling_art[] = N_("Cancelling article...");
  120 constext txt_cannot_create_uniq_name[] = "Can't create unique tempfile-name";
  121 constext txt_cannot_create[] = N_("Cannot create %s");
  122 #ifdef DEBUG
  123     constext txt_cannot_find_base_art[] = N_("Can't find base article %d");
  124 #endif /* DEBUG */
  125 constext txt_cannot_open[] = N_("Can't open %s");
  126 constext txt_cannot_open_for_saving[] = N_("Couldn't open %s for saving");
  127 constext txt_cannot_post[] = N_("*** Posting not allowed ***");
  128 constext txt_cannot_post_group[] = N_("Posting is not allowed to %s");
  129 #ifdef NNTP_ABLE
  130     constext txt_cannot_retrieve[] = N_("Can't retrieve %s");
  131 #endif /* NNTP_ABLE */
  132 constext txt_cannot_write_to_directory[] = N_("%s is a directory");
  133 constext txt_catchup[] = N_("Catchup");
  134 constext txt_catchup_group[] = N_("Catchup %s...");
  135 constext txt_catchup_all_read_groups[] = N_("Catchup all groups entered during this session?");
  136 constext txt_catchup_despite_tags[] = N_("You have tagged articles in this group - catchup anyway?");
  137 constext txt_catchup_update_info[] = N_("%s %d %s in %lu seconds\n");
  138 constext txt_caughtup[] = N_("Caughtup");
  139 constext txt_check_article[] = N_("Check Prepared Article");
  140 constext txt_checking_new_groups[] = N_("Checking for new groups... ");
  141 constext txt_checking_for_news[] = N_("Checking for news...");
  142 constext txt_choose_post_process_type[] = N_("Post-process %s=no, %s=yes, %s=shar, %s=quit: ");
  143 #ifdef HAVE_COLOR
  144     constext txt_color_off[] = N_("ANSI color disabled");
  145     constext txt_color_on[] = N_("ANSI color enabled");
  146 #endif /* HAVE_COLOR */
  147 constext txt_command_failed[] = N_("Command failed: %s");
  148 constext txt_cook_article_failed_exiting[] = N_("Cook article failed, %s is exiting");
  149 constext txt_confirm_select_on_exit[] = N_("Mark not selected articles read?");
  150 #ifdef NNTP_ABLE
  151     constext txt_connecting[] = N_("Connecting to %s...");
  152 #endif /* NNTP_ABLE */
  153 constext txt_cr[] = N_("<CR>");
  154 constext txt_creating_active[] = N_("Creating active file for saved groups...\n");
  155 constext txt_creating_newsrc[] = N_("Creating newsrc file...\n");
  156 
  157 constext txt_default[] = N_("Default");
  158 constext txt_delete_processed_files[] = N_("Delete saved files that have been post processed?");
  159 constext txt_deleting[] = N_("Deleting temporary files...");
  160 
  161 constext txt_end_of_art[] = N_("*** End of article ***");
  162 constext txt_end_of_arts[] = N_("*** End of articles ***");
  163 constext txt_end_of_attachments[] = N_("*** End of attachments ***");
  164 constext txt_end_of_groups[] = N_("*** End of groups ***");
  165 constext txt_end_of_page[] = N_("*** End of page ***");
  166 constext txt_end_of_scopes[] = N_("*** End of scopes ***");
  167 constext txt_end_of_thread[] = N_("*** End of thread ***");
  168 constext txt_end_of_urls[] = N_("*** End of URLs ***");
  169 constext txt_enter_getart_limit[] = N_("Enter limit of articles to get> ");
  170 constext txt_enter_message_id[] = N_("Enter Message-ID to go to> ");
  171 constext txt_enter_next_thread[] = N_(" and enter next unread thread");
  172 constext txt_enter_next_unread_art[] = N_(" and enter next unread article");
  173 constext txt_enter_next_unread_group[] = N_(" and enter next unread group");
  174 constext txt_enter_option_num[] = N_("Enter option number> ");
  175 constext txt_enter_range[] = N_("Enter range [%s]> ");
  176 constext txt_error_approved[] = N_("\nWarning: Approved: header used.\n");
  177 constext txt_error_asfail[] = "%s: assertion failure: %s (%d): %s\n";
  178 constext txt_error_bad_approved[] = N_("\nError: Bad address in Approved: header.\n");
  179 constext txt_error_bad_from[] = N_("\nError: Bad address in From: header.\n");
  180 constext txt_error_bad_msgidfqdn[] = N_("\nError: Bad FQDN in Message-ID: header.\n");
  181 constext txt_error_bad_replyto[] = N_("\nError: Bad address in Reply-To: header.\n");
  182 constext txt_error_bad_to[] = N_("\nError: Bad address in To: header.\n");
  183 #ifndef NO_LOCKING
  184     constext txt_error_cant_unlock[] = N_("Can't unlock %s");
  185     constext txt_error_couldnt_dotlock[] = N_("Couldn't dotlock %s - article not appended!");
  186     constext txt_error_couldnt_lock[] = N_("Couldn't lock %s - article not appended!");
  187 #endif /* !NO_LOCKING */
  188 constext txt_error_copy_fp[] = "copy_fp() failed";
  189 constext txt_error_corrupted_file[] = N_("Corrupted file %s");
  190 constext txt_error_fseek[] = "fseek() error on [%s]";
  191 constext txt_error_followup_poster[] = N_("\nError: Followup-To \"poster\" and a newsgroup is not allowed!\n");
  192 constext txt_error_format_string[] = N_("Error: Custom format exceeds screen width. Using default \"%s\".");
  193 constext txt_error_gnksa_internal[] = N_("Internal error in GNKSA routine - send bug report.\n");
  194 constext txt_error_gnksa_langle[] = N_("Left angle bracket missing in route address.\n");
  195 constext txt_error_gnksa_lparen[] = N_("Left parenthesis missing in old-style address.\n");
  196 constext txt_error_gnksa_rparen[] = N_("Right parenthesis missing in old-style address.\n");
  197 constext txt_error_gnksa_atsign[] = N_("At-sign missing in mail address.\n");
  198 constext txt_error_gnksa_sgl_domain[] = N_("Single component FQDN is not allowed. Add your domain.\n");
  199 constext txt_error_gnksa_inv_domain[] = N_("Invalid domain. Send bug report if your top level domain really exists.\nUse .invalid as top level domain for munged addresses.\n");
  200 constext txt_error_gnksa_ill_domain[] = N_("Illegal domain. Send bug report if your top level domain really exists.\nUse .invalid as top level domain for munged addresses.\n");
  201 constext txt_error_gnksa_unk_domain[] = N_("Unknown domain. Send bug report if your top level domain really exists.\nUse .invalid as top level domain for munged addresses.\n");
  202 constext txt_error_gnksa_fqdn[] = N_("Illegal character in FQDN.\n");
  203 constext txt_error_gnksa_zero[] = N_("Zero length FQDN component not allowed.\n");
  204 constext txt_error_gnksa_length[] = N_("FQDN component exceeds maximum allowed length (63 chars).\n");
  205 constext txt_error_gnksa_hyphen[] = N_("FQDN component may not start or end with hyphen.\n");
  206 constext txt_error_gnksa_begnum[] = N_("FQDN component may not start with digit.\n");
  207 constext txt_error_gnksa_bad_lit[] = N_("Domain literal has impossible numeric value.\n");
  208 constext txt_error_gnksa_local_lit[] = N_("Domain literal is for private use only and not allowed for global use.\n");
  209 constext txt_error_gnksa_rbracket[] = N_("Right bracket missing in domain literal.\n");
  210 constext txt_error_gnksa_lp_missing[] = N_("Missing localpart of mail address.\n");
  211 constext txt_error_gnksa_lp_invalid[] = N_("Illegal character in localpart of mail address.\n");
  212 constext txt_error_gnksa_lp_zero[] = N_("Zero length localpart component not allowed.\n");
  213 constext txt_error_gnksa_rn_unq[] = N_("Illegal character in realname.\nUnquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n");
  214 constext txt_error_gnksa_rn_qtd[] = N_("Illegal character in realname.\nQuoted words may not contain '()<>\\'.\n");
  215 constext txt_error_gnksa_rn_enc[] = N_("Illegal character in realname.\nEncoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n");
  216 constext txt_error_gnksa_rn_encsyn[] = N_("Bad syntax in encoded word used in realname.\n");
  217 constext txt_error_gnksa_rn_paren[] = N_("Illegal character in realname.\nUnquoted words may not contain '()<>\\' in old-style addresses.\n");
  218 constext txt_error_gnksa_rn_invalid[] = N_("Illegal character in realname.\nControl characters and unencoded 8bit characters > 127 are not allowed.\n");
  219 constext txt_error_header_and_body_not_separate[] = N_("\nError: No blank line found after header.\n");
  220 constext txt_error_header_format[] = N_("\nError: Illegal formatted %s.\n");
  221 /* TODO: fixme, US-ASCII is not the only 7bit charset we know about */
  222 constext txt_error_header_line_bad_charset[] = N_("\n\
  223 Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n\
  224        US-ASCII  - please change this setting to a suitable value for\n\
  225        your language  using the  M)enu of configurable  options or by\n\
  226        editing tinrc.\n");
  227 constext txt_error_header_line_bad_encoding[] = N_("\n\
  228 Error: Posting contains  non-ASCII characters  but the  MIME encoding\n\
  229        for news  messages  is set  to \"7bit\"  -  please change this\n\
  230        setting to \"8bit\" or \"quoted-printable\" depending  on what\n\
  231        is more common  in your part  of the world.  This can  be done\n\
  232        using the M)enu of configurable options or by editing tinrc.\n");
  233 constext txt_error_header_line_blank[] = N_("\nError: Article starts with blank line instead of header\n");
  234 constext txt_error_header_line_colon[] = N_("\nError: Header on line %d does not have a colon after the header name:\n%s\n");
  235 constext txt_error_header_line_empty[] = N_("\nError: The \"%s:\" line is empty.\n");
  236 constext txt_error_header_line_missing[] = N_("\nError: The \"%s:\" line is missing from the article header.\n");
  237 constext txt_error_header_line_not_7bit[] = N_("\nError: %s contains non 7bit chars.\n");
  238 constext txt_error_header_line_space[] = N_("\nError: Header on line %d does not have a space after the colon:\n%s\n");
  239 constext txt_error_header_duplicate[] = N_("\nError: There are multiple (%d) \"%s:\" lines in the header.\n");
  240 constext txt_error_insecure_permissions[] = N_("Insecure permissions of %s (%o)");
  241 #ifdef NNTP_ABLE
  242     constext txt_error_invalid_response_to_group[] = N_("Invalid response to GROUP command, %s");
  243 #endif /* NNTP_ABLE */
  244 #if defined(HAVE_SETLOCALE) && !defined(NO_LOCALE)
  245     constext txt_error_locale[] = "Can't set the specified locale!";
  246 #endif /* HAVE_SETLOCALE && !NO_LOCALE */
  247 constext txt_error_mime_end[] = N_("MIME parse error: Unexpected end of %s/%s article");
  248 constext txt_error_mime_start[] = N_("MIME parse error: Start boundary whilst reading headers");
  249 constext txt_error_newsgroups_poster[] = N_("\nError: \"poster\" is not allowed in Newsgroups!\n");
  250 constext txt_error_no_domain_name[] = N_("Can't get a (fully-qualified) domain-name!");
  251 constext txt_error_no_enter_permission[] = N_("No permissions to go into %s\n");
  252 #ifdef NNTP_INEWS
  253     constext txt_error_no_from[] = N_("\nError: From: line missing.\n");
  254 #endif /* NNTP_INEWS */
  255 constext txt_error_no_read_permission[] = N_("No read permissions for %s\n");
  256 constext txt_error_no_such_file[] = N_("File %s does not exist\n");
  257 constext txt_error_no_write_permission[] = N_("No write permissions for %s\n");
  258 constext txt_error_passwd_missing[] = N_("Can't get user information (/etc/passwd missing?)");
  259 constext txt_error_plural[] = N_("errors");
  260 #ifndef FORGERY
  261     constext txt_error_sender_in_header_not_allowed[] = N_("\nError on line %d: \"Sender:\" header not allowed (it will be added for you)\n");
  262 #endif /* !FORGERY */
  263 constext txt_error_server_has_no_listed_groups[] = N_("Server has non of the groups listed in %s");
  264 constext txt_error_singular[] = N_("error");
  265 constext txt_error_unknown_dlevel[] = N_("Unknown display level");
  266 constext txt_esc[] = N_("<ESC>");
  267 constext txt_exiting[] = N_("Exiting...");
  268 constext txt_external_mail_done[] = N_("leaving external mail-reader");
  269 constext txt_extracting_shar[] = N_("Extracting %s...");
  270 
  271 constext txt_filesystem_full[] = N_("Error writing %s file. Filesystem full? File reset to previous state.");
  272 constext txt_filesystem_full_backup[] = N_("Error making backup of %s file. Filesystem full?");
  273 constext txt_filter_global_rules[] = N_("Filtering global rules (%d/%d)...");
  274 constext txt_filter_rule_created[] = N_("Rule created by: ");
  275 constext txt_feed_pattern[] = N_("Enter pattern [%s]> ");
  276 constext txt_followup_newsgroups[] = N_("\nYou requested followups to your article to go to the following %s:\n");
  277 constext txt_followup_poster[] = N_("  %s\t Answers will be directed to you by mail.\n");
  278 constext txt_forwarded[] = N_("-- forwarded message --\n");
  279 constext txt_forwarded_end[] = N_("-- end of forwarded message --\n");
  280 constext txt_filter_file[] = N_("# Format:\n\
  281 #   comment=STRING    Optional. Multiple lines allowed. Comments must be placed\n\
  282 #                     at the beginning of a rule, or they will be moved to the\n\
  283 #                     next rule. '#' is not a valid keyword for a comment!\n\
  284 #   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n\
  285 #   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n\
  286 #   score=NUM|STRING  Mandatory. Score to give. Either:\n\
  287 #     score=NUM         A number (e.g. 70). Or:\n\
  288 #     score=STRING      One of the two keywords: 'hot' or 'kill'.\n\
  289 #   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n\
  290 #   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n\
  291 #   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n\
  292 #                     full references.\n\
  293 #   msgid_last=STRING Optional. Like above, but with last reference only.\n\
  294 #   msgid_only=STRING Optional. Like above, but without references.\n\
  295 #   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) without\n\
  296 #                     Message-ID:\n\
  297 #   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n\
  298 #   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' opt.\n\
  299 #   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n\
  300 #   time=NUM          Optional. time_t value when rule expires\n#\n");
  301 constext txt_filter_score[] = N_("Enter score for rule (default=%d): ");
  302 constext txt_filter_score_help[] = N_("Enter the score weight (range 0 < score <= %d)"); /* SCORE_MAX */
  303 constext txt_full[] = N_("Full");
  304 constext txt_filter_comment[] = N_("Comment (optional)  : ");
  305 constext txt_filter_text_type[] = N_("Apply pattern to    : ");
  306 constext txt_from_line_only[] = N_("From: line (ignore case)      ");
  307 constext txt_from_line_only_case[] = N_("From: line (case sensitive)   ");
  308 #ifdef NNTP_ABLE
  309     constext txt_gethostbyname[] = N_("%s%s: Unknown host.\n");
  310 #endif /* NNTP_ABLE */
  311 constext txt_global[] = N_("global ");
  312 constext txt_group_aliased[] = N_("Please use %.100s instead");
  313 constext txt_group_bogus[] = N_("%s is bogus");
  314 constext txt_group_is_moderated[] = N_("Group %s is moderated. Continue?");
  315 constext txt_group_plural[] = N_("groups");
  316 constext txt_group_rereading[] = N_("Rereading %s...");
  317 constext txt_group_select_com[] = N_("Top Level Commands");
  318 constext txt_group_selection[] = N_("Group Selection");
  319 constext txt_group_singular[] = N_("group");
  320 constext txt_grpdesc_disabled[] = N_("*** Group descriptions are disabled according to current select_format ***");
  321 
  322 constext txt_help_filter_comment[] = N_("One or more lines of comment. <CR> to add a line or proceed if line is empty.");
  323 constext txt_help_filter_from[] = N_("From: line to add to filter file. <SPACE> toggles & <CR> sets.");
  324 constext txt_help_filter_lines[] = N_("Linecount of articles to be filtered. < for less, > for more, = for equal.");
  325 constext txt_help_filter_msgid[] = N_("Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets.");
  326 constext txt_help_filter_subj[] = N_("Subject: line to add to filter file. <SPACE> toggles & <CR> sets.");
  327 constext txt_help_filter_text[] = N_("Enter text pattern to filter if Subject: & From: lines are not what you want.");
  328 constext txt_help_filter_text_type[] = N_("Select where text pattern should be applied. <SPACE> toggles & <CR> sets.");
  329 constext txt_help_filter_time[] = N_("Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets.");
  330 constext txt_help_kill_scope[] = N_("Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets.");
  331 constext txt_help_select_scope[] = N_("Apply select to current group or all groups. <SPACE> toggles & <CR> sets.");
  332 constext txt_help_article_autokill[] = N_("kill an article via a menu");
  333 constext txt_help_article_autoselect[] = N_("auto-select (hot) an article via a menu");
  334 constext txt_help_article_browse_urls[] = N_("Browse URLs in article");
  335 constext txt_help_article_by_num[] = N_("0 - 9\t  display article by number in current thread");
  336 #ifndef NO_POSTING
  337     constext txt_help_article_cancel[] = N_("cancel (delete) or supersede (overwrite) current article");
  338     constext txt_help_article_followup[] = N_("post followup to current article");
  339     constext txt_help_article_followup_no_quote[] = N_("post followup (don't copy text) to current article");
  340     constext txt_help_article_followup_with_header[] = N_("post followup to current article quoting complete headers");
  341     constext txt_help_article_repost[] = N_("repost chosen article to another group");
  342 #endif /* !NO_POSTING */
  343 constext txt_help_article_edit[] = N_("edit article (mail-groups only)");
  344 constext txt_help_article_first_in_thread[] = N_("display first article in current thread");
  345 constext txt_help_article_first_page[] = N_("display first page of article");
  346 constext txt_help_article_last_in_thread[] = N_("display last article in current thread");
  347 constext txt_help_article_last_page[] = N_("display last page of article");
  348 constext txt_help_article_mark_thread_read[] = N_("mark rest of thread as read and advance to next unread");
  349 constext txt_help_article_next[] = N_("display next article");
  350 constext txt_help_article_next_thread[] = N_("display first article in next thread");
  351 constext txt_help_article_next_unread[] = N_("display next unread article");
  352 constext txt_help_article_parent[] = N_("go to the article that this one followed up");
  353 constext txt_help_article_prev[] = N_("display previous article");
  354 constext txt_help_article_prev_unread[] = N_("display previous unread article");
  355 constext txt_help_article_quick_kill[] = N_("quickly kill an article using defaults");
  356 constext txt_help_article_quick_select[] = N_("quickly auto-select (hot) an article using defaults");
  357 constext txt_help_article_quit_to_select_level[] = N_("return to group selection level");
  358 constext txt_help_article_reply[] = N_("reply through mail to author");
  359 constext txt_help_article_reply_no_quote[] = N_("reply through mail (don't copy text) to author");
  360 constext txt_help_article_reply_with_header[] = N_("reply through mail to author quoting complete headers");
  361 constext txt_help_article_search_backwards[] = N_("search backwards within this article");
  362 constext txt_help_article_search_forwards[] = N_("search forwards within this article");
  363 constext txt_help_article_show_raw[] = N_("show article in raw-mode (including all headers)");
  364 constext txt_help_article_skip_quote[] = N_("skip next block of included text");
  365 constext txt_help_article_toggle_formfeed[] = N_("toggle display of sections hidden by a form-feed (^L) on/off");
  366 constext txt_help_article_toggle_headers[] = N_("toggle display of all headers");
  367 constext txt_help_article_toggle_highlight[] = N_("toggle word highlighting on/off");
  368 constext txt_help_article_toggle_rot13[] = N_("toggle ROT-13 (basic decode) for current article");
  369 constext txt_help_article_toggle_tabwidth[] = N_("toggle tabwidth 4 <-> 8");
  370 constext txt_help_article_toggle_tex2iso[] = N_("toggle german TeX style decoding for current article");
  371 constext txt_help_article_toggle_uue[] = N_("toggle display of uuencoded sections");
  372 constext txt_help_article_view_attachments[] = N_("View/pipe/save multimedia attachments");
  373 constext txt_help_attachment_first[] = N_("choose first attachment in list");
  374 constext txt_help_attachment_goto[] = N_("0 - 9\t  choose attachment by number");
  375 constext txt_help_attachment_last[] = N_("choose last attachment in list");
  376 #ifndef DONT_HAVE_PIPING
  377 constext txt_help_attachment_pipe[] = N_("pipe attachment into command");
  378 constext txt_help_attachment_pipe_raw[] = N_("pipe raw attachment into command");
  379 #endif /* !DONT_HAVE_PIPING */
  380 constext txt_help_attachment_save[] = N_("save attachment to disk");
  381 constext txt_help_attachment_search_forwards[] = N_("search for attachments forwards");
  382 constext txt_help_attachment_search_backwards[] = N_("search for attachments backwards");
  383 constext txt_help_attachment_select[] = N_("view attachment");
  384 constext txt_help_attachment_tag[] = N_("tag attachment");
  385 constext txt_help_attachment_tag_pattern[] = N_("tag attachments that match user specified pattern");
  386 constext txt_help_attachment_toggle_tagged[] = N_("reverse tagging on all attachments (toggle)");
  387 constext txt_help_attachment_untag[] = N_("untag all tagged attachments");
  388 constext txt_help_attachment_toggle_info_line[] = N_("toggle info message in last line (name/description of attachment)");
  389 constext txt_help_attrib_first_opt[] = N_("choose first attribute in list");
  390 constext txt_help_attrib_goto_opt[] = N_("0 - 9\t  choose attribute by number");
  391 constext txt_help_attrib_last_opt[] = N_("choose last attribute in list");
  392 constext txt_help_attrib_reset_attrib[] = N_("reset attribute to a default value");
  393 constext txt_help_attrib_search_opt_backwards[] = N_("search forwards for an attribute");
  394 constext txt_help_attrib_search_opt_forwards[] = N_("search backwards for an attribute");
  395 constext txt_help_attrib_select[] = N_("select attribute");
  396 constext txt_help_attrib_toggle_attrib[] = N_("toggle back to options menu when invoked from there");
  397 constext txt_help_bug[] = N_("report bug or comment via mail to %s");
  398 constext txt_help_config_first_opt[] = N_("choose first option in list");
  399 constext txt_help_config_goto_opt[] = N_("0 - 9\t  choose option by number");
  400 constext txt_help_config_last_opt[] = N_("choose last option in list");
  401 constext txt_help_config_scope_menu[] = N_("start scopes menu");
  402 constext txt_help_config_search_opt_backwards[] = N_("search forwards for an option");
  403 constext txt_help_config_search_opt_forwards[] = N_("search backwards for an option");
  404 constext txt_help_config_select[] = N_("select option");
  405 constext txt_help_config_toggle_attrib[] = N_("toggle to attributes menu");
  406 constext txt_help_global_article_range[] = N_("choose range of articles to be affected by next command");
  407 constext txt_help_global_esc[] = N_("escape from command prompt");
  408 constext txt_help_global_edit_filter[] = N_("edit filter file");
  409 constext txt_help_global_help[] = N_("get help");
  410 constext txt_help_global_last_art[] = N_("display last article viewed");
  411 constext txt_help_global_line_down[] = N_("down one line");
  412 constext txt_help_global_line_up[] = N_("up one line");
  413 constext txt_help_global_lookup_art[] = N_("go to article chosen by Message-ID");
  414 constext txt_help_global_mail[] = N_("mail article/thread/hot/pattern/tagged articles to someone");
  415 constext txt_help_global_option_menu[] = N_("menu of configurable options");
  416 constext txt_help_global_page_down[] = N_("down one page");
  417 constext txt_help_global_page_up[] = N_("up one page");
  418 #ifndef NO_POSTING
  419     constext txt_help_global_post[] = N_("post (write) article to current group");
  420     constext txt_help_global_post_postponed[] = N_("post postponed articles");
  421 #endif /* !NO_POSTING */
  422 constext txt_help_global_posting_history[] = N_("list articles posted by you (from posted file)");
  423 constext txt_help_global_previous_menu[] = N_("return to previous menu");
  424 constext txt_help_global_quit_tin[] = N_("quit tin immediately");
  425 constext txt_help_global_redraw_screen[] = N_("redraw page");
  426 constext txt_help_global_save[] = N_("save article/thread/hot/pattern/tagged articles to file");
  427 constext txt_help_global_auto_save[] = N_("save marked articles automatically without user prompts");
  428 constext txt_help_global_scroll_down[] = N_("scroll the screen one line down");
  429 constext txt_help_global_scroll_up[] = N_("scroll the screen one line up");
  430 constext txt_help_global_search_auth_backwards[] = N_("search for articles by author backwards");
  431 constext txt_help_global_search_auth_forwards[] = N_("search for articles by author forwards");
  432 constext txt_help_global_search_body[] = N_("search all articles for a given string (this may take some time)");
  433 constext txt_help_global_search_body_comment[] = N_(" \t  (searches are case-insensitive and wrap around to all articles)");
  434 constext txt_help_global_search_subj_backwards[] = N_("search for articles by Subject line backwards");
  435 constext txt_help_global_search_subj_forwards[] = N_("search for articles by Subject line forwards");
  436 constext txt_help_global_search_repeat[] = N_("repeat last search");
  437 constext txt_help_global_tag[] = N_("tag current article for reposting/mailing/piping/printing/saving");
  438 constext txt_help_global_toggle_info_line[] = N_("toggle info message in last line (subject/description)");
  439 constext txt_help_global_toggle_inverse_video[] = N_("toggle inverse video");
  440 constext txt_help_global_toggle_mini_help[] = N_("toggle mini help menu display");
  441 constext txt_help_global_toggle_subj_display[] = N_("cycle the display of authors email address, real name, both or neither");
  442 constext txt_help_global_version[] = N_("show version information");
  443 constext txt_help_group_catchup[] = N_("mark all articles as read and return to group selection menu");
  444 constext txt_help_group_catchup_next[] = N_("mark all articles as read and enter next group with unread articles");
  445 constext txt_help_group_first_thread[] = N_("choose first thread in list");
  446 constext txt_help_group_last_thread[] = N_("choose last thread in list");
  447 constext txt_help_group_list_thread[] = N_("list articles within current thread (bring up Thread sub-menu)");
  448 constext txt_help_group_mark_article_unread[] = N_("mark article as unread");
  449 constext txt_help_group_mark_thread_read[] = N_("mark current thread, range or tagged threads as read");
  450 constext txt_help_group_mark_thread_unread[] = N_("mark current thread, range or tagged threads as unread");
  451 constext txt_help_mark_feed_read[] = N_("mark current/range/selected/pattern/tagged as read after prompting");
  452 constext txt_help_mark_feed_unread[] = N_("mark current/range/selected/pattern/tagged as unread after prompting");
  453 constext txt_help_group_mark_unsel_art_read[] = N_("toggle display of all/selected articles");
  454 constext txt_help_group_next[] = N_("display next group");
  455 constext txt_help_group_prev[] = N_("display previous group");
  456 constext txt_help_group_reverse_thread_selection[] = N_("toggle all selections (all articles)");
  457 constext txt_help_group_select_all[] = N_("select group (make \"hot\")");
  458 constext txt_help_group_select_thread[] = N_("select thread");
  459 constext txt_help_group_select_thread_if_unread_selected[] = N_("select threads if at least one unread article is selected");
  460 constext txt_help_group_select_thread_pattern[] = N_("select threads that match user specified pattern");
  461 constext txt_help_group_tag_parts[] = N_("tag all parts of current multipart-message in order");
  462 constext txt_help_group_thread_by_num[] = N_("0 - 9\t  choose thread by number");
  463 constext txt_help_group_toggle_getart_limit[] = N_("toggle limit number of articles to get, and reload");
  464 constext txt_help_group_toggle_read_articles[] = N_("toggle display of all/unread articles");
  465 constext txt_help_group_toggle_thread_selection[] = N_("toggle selection of thread");
  466 constext txt_help_group_toggle_threading[] = N_("cycle through threading options available");
  467 constext txt_help_group_undo_thread_selection[] = N_("undo all selections (all articles)");
  468 constext txt_help_group_untag_thread[] = N_("untag all tagged threads");
  469 constext txt_help_scope_add[] = N_("add new scope");
  470 constext txt_help_scope_del[] = N_("delete scope");
  471 constext txt_help_scope_edit_attrib_file[] = N_("edit attributes file");
  472 constext txt_help_scope_first_scope[] = N_("choose first scope in list");
  473 constext txt_help_scope_goto_scope[] = N_("0 - 9\t  choose scope by number");
  474 constext txt_help_scope_last_scope[] = N_("choose last scope in list");
  475 constext txt_help_scope_move[] = N_("move scope");
  476 constext txt_help_scope_rename[] = N_("rename scope");
  477 constext txt_help_scope_select[] = N_("select scope");
  478 constext txt_help_select_catchup[] = N_("mark all articles in group as read");
  479 constext txt_help_select_catchup_next_unread[] = N_("mark all articles in group as read and move to next unread group");
  480 constext txt_help_select_first_group[] = N_("choose first group in list");
  481 constext txt_help_select_goto_group[] = N_("choose group by name");
  482 constext txt_help_select_group_by_num[] = N_("0 - 9\t  choose group by number");
  483 constext txt_help_select_group_range[] = N_("choose range of groups to be affected by next command");
  484 constext txt_help_select_last_group[] = N_("choose last group in list");
  485 #ifdef NNTP_ABLE
  486     constext txt_help_select_lookup_group[] = N_("list groups which an article has been posted to (by Message-ID)");
  487     constext txt_help_select_lookup_group_comment[] = N_(" \t  (go to article if at least one of the groups is available)");
  488 #endif /* NNTP_ABLE */
  489 constext txt_help_select_mark_group_unread[] = N_("mark all articles in chosen group unread");
  490 constext txt_help_select_move_group[] = N_("move chosen group within list");
  491 constext txt_help_select_next_unread_group[] = N_("choose next group with unread news");
  492 constext txt_help_select_quit[] = N_("quit");
  493 constext txt_help_select_quit_no_write[] = N_("quit without saving configuration changes");
  494 constext txt_help_select_read_group[] = N_("read chosen group");
  495 constext txt_help_select_reset_newsrc[] = N_("reset .newsrc (all available articles in groups marked unread)");
  496 constext txt_help_select_search_group_backwards[] = N_("search backwards for a group name");
  497 constext txt_help_select_search_group_comment[] = N_(" \t  (all searches are case-insensitive and wrap around)");
  498 constext txt_help_select_search_group_forwards[] = N_("search forwards for a group name");
  499 constext txt_help_select_subscribe[] = N_("subscribe to chosen group");
  500 constext txt_help_select_subscribe_pattern[] = N_("subscribe to groups that match pattern");
  501 constext txt_help_select_sync_with_active[] = N_("reread active file to check for any new news");
  502 constext txt_help_select_toggle_descriptions[] = N_("toggle display of group name only or group name plus description");
  503 constext txt_help_select_toggle_read_groups[] = N_("toggle display to show all/unread subscribed groups");
  504 constext txt_help_select_unsubscribe[] = N_("unsubscribe from chosen group");
  505 constext txt_help_select_unsubscribe_pattern[] = N_("unsubscribe from groups that match pattern");
  506 constext txt_help_select_sort_active[] = N_("sort the list of groups");
  507 constext txt_help_select_yank_active[] = N_("toggle display to show all/subscribed groups");
  508 constext txt_help_thread_article_by_num[] = N_("0 - 9\t  choose article by number");
  509 constext txt_help_thread_catchup[] = N_("mark thread as read and return to group index page");
  510 constext txt_help_thread_catchup_next_unread[] = N_("mark thread as read and enter next unread thread or group");
  511 constext txt_help_thread_first_article[] = N_("choose first article in list");
  512 constext txt_help_thread_last_article[] = N_("choose last article in list");
  513 constext txt_help_thread_mark_article_read[] = N_("mark art, range or tagged arts as read; move crsr to next unread art");
  514 constext txt_help_thread_mark_article_unread[] = N_("mark article, range or tagged articles as unread");
  515 constext txt_help_thread_mark_thread_unread[] = N_("mark current thread as unread");
  516 constext txt_help_thread_read_article[] = N_("read chosen article");
  517 constext txt_help_title_disp[] = N_("Display properties\n------------------");
  518 constext txt_help_title_misc[] = N_("Miscellaneous\n-------------");
  519 constext txt_help_title_navi[] = N_("Moving around\n-------------");
  520 constext txt_help_title_ops[] = N_("Group/thread/article operations\n-------------------------------");
  521 constext txt_help_title_attachment_ops[] = N_("Attachment operations\n---------------------");
  522 constext txt_help_title_attrib_ops[] = N_("Attribute operations\n--------------------");
  523 constext txt_help_title_config_ops[] = N_("Option operations\n-----------------");
  524 constext txt_help_title_scope_ops[] = N_("Scope operations\n----------------");
  525 constext txt_help_title_url_ops[] = N_("URL operations\n--------------");
  526 constext txt_help_url_first_url[] = N_("choose first URL in list");
  527 constext txt_help_url_goto_url[] = N_("0 - 9\t  choose URL by number");
  528 constext txt_help_url_last_url[] = N_("choose last URL in list");
  529 constext txt_help_url_search_forwards[] = N_("search for URLs forwards");
  530 constext txt_help_url_search_backwards[] = N_("search for URLs backwards");
  531 constext txt_help_url_select[] = N_("Open URL in browser");
  532 constext txt_help_url_toggle_info_line[] = N_("toggle info message in last line (URL)");
  533 
  534 constext txt_index_page_com[] = N_("Group Level Commands");
  535 constext txt_info_add_kill[] = N_("Kill filter added");
  536 constext txt_info_add_select[] = N_("Auto-selection filter added");
  537 constext txt_info_all_parts_tagged[] = N_("All parts tagged");
  538 constext txt_info_do_postpone[] = N_("Storing article for later posting");
  539 constext txt_info_enter_valid_character[] = N_("Please enter a valid character");
  540 constext txt_info_missing_part[] = N_("Missing part #%d");
  541 constext txt_info_nopostponed[] = N_("*** No postponed articles ***");
  542 constext txt_info_not_multipart_message[] = N_("Not a multi-part message");
  543 constext txt_info_not_subscribed[] = N_("You are not subscribed to this group");
  544 constext txt_info_no_previous_expression[] = N_("No previous expression");
  545 constext txt_info_no_write[] = N_("Operation disabled in no-overwrite mode");
  546 /* TODO: replace hardcoded key-name in txt_info_postponed */
  547 constext txt_info_postponed[] = N_("%d postponed %s, reuse with ^O...\n");
  548 constext txt_info_x_conversion_note[] = N_("X-Conversion-Note: multipart/alternative contents have been removed.\n\
  549   To get the whole article, turn alternative handling OFF in the Option Menu\n");
  550 constext txt_is_mailbox[] = N_("Save filename for %s/%s is a mailbox. Attachment not saved");
  551 constext txt_is_tex_encoded[] = N_("TeX2Iso encoded article");
  552 constext txt_incomplete[] = N_("incomplete ");
  553 /* TODO: replace hardcoded key-names */
  554 constext txt_intro_page[] = N_("\nWelcome to %s, a full screen threaded Netnews reader. It can read news locally\n\
  555 (ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News Transport\n\
  556 Protocol) server. -h lists the available command line options.\n\n\
  557 %s  has four newsreading levels, the newsgroup selection page, the group index\n\
  558 page, the thread listing page and the article viewer. Help is available at each\n\
  559 level by pressing the 'h' command.\n\n\
  560 Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn or\n\
  561 Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n\n\
  562 Articles, threads, tagged articles or articles matching a pattern can be mailed\n\
  563 ('m' command), printed ('o' command), saved ('s' command), piped ('|' command).\n\
  564 Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post a\n\
  565 follow-up to  an existing  news article  and the 'r'/'R' commands  to reply via\n\
  566 mail to an  existing news article author.  The 'M' command allows the operation\n\
  567 of %s to be configured via a menu.\n\n\
  568 For more information read the manual page, README, INSTALL, TODO and FTP files.\n\
  569 Please send bug-reports/comments to %s with the 'R' command.\n");
  570 constext txt_invalid_from[] = N_("Invalid  From: %s  line. Read the INSTALL file again.");
  571 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
  572     constext txt_invalid_multibyte_sequence[] = N_("Invalid multibyte sequence found\n");
  573 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
  574 #if defined(NNTP_INEWS) && !defined(FORGERY)
  575     constext txt_invalid_sender[] = N_("Invalid  Sender:-header %s");
  576 #endif /* NNTP_INEWS && !FORGERY */
  577 constext txt_inverse_off[] = N_("Inverse video disabled");
  578 constext txt_inverse_on[] = N_("Inverse video enabled");
  579 
  580 constext txt_keymap_missing_key[] = N_("Missing definition for %s\n");
  581 constext txt_keymap_invalid_key[] = N_("Invalid key definition '%s'\n");
  582 constext txt_keymap_invalid_name[] = N_("Invalid keyname '%s'\n");
  583 constext txt_keymap_upgraded[] = N_("Keymap file was upgraded to version %s\n");
  584 constext txt_kill_from[] = N_("Kill From:     [%s] (y/n): ");
  585 constext txt_kill_lines[] = N_("Kill Lines: (</>num): ");
  586 constext txt_kill_menu[] = N_("Kill Article Menu");
  587 constext txt_kill_msgid[] = N_("Kill Msg-Id:   [%s] (f/l/o/n): ");
  588 constext txt_kill_scope[] = N_("Kill pattern scope  : ");
  589 constext txt_kill_subj[] = N_("Kill Subject:  [%s] (y/n): ");
  590 constext txt_kill_text[] = N_("Kill text pattern   : ");
  591 constext txt_kill_time[] = N_("Kill time in days   : ");
  592 
  593 constext txt_last[] = N_("Last");
  594 constext txt_last_resp[] = N_("-- Last response --");
  595 constext txt_lines[] = N_("Lines %s  ");
  596 
  597 #ifdef NNTP_ABLE
  598     constext txt_lookup_func_not_available[] = N_("Function not available.");
  599     constext txt_lookup_func_not_nntp[] = N_("Not reading via NNTP.");
  600     constext txt_lookup_show_group[] = N_("Group: %s");
  601     constext txt_lookup_show_groups[] = N_("Groups: %s");
  602 #endif /* NNTP_ABLE */
  603 
  604 constext txt_mail[] = N_("Mail");
  605 constext txt_mailbox[] = N_("mailbox ");
  606 constext txt_mail_art_to[] = N_("Mail article(s) to [%.*s]> ");
  607 constext txt_mail_log_to[] = N_("Mailing log to %s\n");
  608 constext txt_mail_bug_report[] = N_("Mail bug report...");
  609 constext txt_mail_bug_report_confirm[] = N_("Mail BUG REPORT to %s?");
  610 constext txt_mailed[] = N_("Mailed");
  611 constext txt_mailing_to[] = N_("Mailing to %s...");
  612 constext txt_mail_save_active_head[] = N_("# [Mail/Save] active file. Format is like news active file:\n\
  613 #   groupname  max.artnum  min.artnum  /dir\n\
  614 # The 4th field is the basedir (ie. ~/Mail or ~/News)\n#\n");
  615 constext txt_marked_as_read[] = N_("%s marked as read");
  616 constext txt_marked_as_unread[] = N_("%s marked as unread");
  617 constext txt_marked_arts_as_read[] = N_("Marked %d of %d %s as read");
  618 constext txt_marked_arts_as_unread[] = N_("Marked %d of %d %s as unread");
  619 constext txt_mark[] = N_("Mark");
  620 constext txt_mark_arts_read[] = N_("Mark all articles as read%s?");
  621 constext txt_mark_art_read[] = N_("Mark article as read%s?");
  622 constext txt_mark_group_read[] = N_("Mark group %s as read?");
  623 constext txt_mark_thread_read[] = N_("Mark thread as read%s?");
  624 constext txt_matching_cmd_line_groups[] = N_("Matching %s groups...");
  625 constext txt_mini_attachment_1[] = N_("<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit");
  626 #ifndef DONT_HAVE_PIPING
  627 constext txt_mini_attachment_2[] = N_("%s=view; %s=pipe; %s=pipe raw; %s=save; %s=tag; %s=tag pattern; %s=untag all");
  628 #else
  629 constext txt_mini_attachment_2[] = N_("%s=view; %s=save; %s=tag; %s=tag pattern; %s=untag all");
  630 #endif /* !DONT_HAVE_PIPING */
  631 constext txt_mini_attachment_3[] = N_("%s=reverse tagging; %s=search forwards; %s=search backwards; %s=repeat search");
  632 constext txt_mini_group_1[] = N_("<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select");
  633 constext txt_mini_group_2[] = N_("%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list thread");
  634 constext txt_mini_info_1[] = N_("%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom");
  635 constext txt_mini_info_2[] = N_("%s=search forwards; %s=search backwards; %s=quit");
  636 constext txt_mini_page_1[] = N_("<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select");
  637 constext txt_mini_page_2[] = N_("%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read");
  638 constext txt_mini_scope_1[] = N_("%s=add; %s=move; %s=rename; %s=delete");
  639 constext txt_mini_scope_2[] = N_("<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit");
  640 constext txt_mini_select_1[] = N_("<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup");
  641 constext txt_mini_select_2[] = N_("%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread");
  642 constext txt_mini_select_3[] = N_("%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out");
  643 constext txt_mini_thread_1[] = N_("<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle");
  644 constext txt_mini_thread_2[] = N_("%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread");
  645 constext txt_mini_url_1[] = N_("<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit");
  646 constext txt_mini_url_2[] = N_("%s=search forwards; %s=search backwards; %s=repeat search");
  647 constext txt_more[] = N_("--More--");
  648 constext txt_moving[] = N_("Moving %s...");
  649 constext txt_msgid_line_last[] = N_("Message-ID: & last Reference  ");
  650 constext txt_msgid_line_only[] = N_("Message-ID: line              ");
  651 constext txt_msgid_refs_line[] = N_("Message-ID: & References: line");
  652 
  653 constext txt_name[] = N_(", name: ");
  654 constext txt_newsgroup[] = N_("Go to newsgroup [%s]> ");
  655 constext txt_newsgroup_plural[] = N_("newsgroups");
  656 constext txt_newsgroup_position[] = N_("Position %s in group list (1,2,..,$) [%d]> ");
  657 constext txt_newsgroup_singular[] = N_("newsgroup");
  658 constext txt_newsrc_again[] = N_("Try and save newsrc file again?");
  659 constext txt_newsrc_nogroups[] = N_("Warning: No newsgroups were written to your newsrc file. Save aborted.");
  660 constext txt_newsrc_saved[] = N_("newsrc file saved successfully.\n");
  661 constext txt_next_resp[] = N_("-- Next response --");
  662 constext txt_no[] = N_("No  ");
  663 constext txt_no_arts[] = N_("*** No articles ***");
  664 constext txt_no_arts_posted[] = N_("No articles have been posted");
  665 constext txt_no_attachments[] = N_("*** No attachments ***");
  666 constext txt_no_description[] = N_("*** No description ***");
  667 constext txt_no_filename[] = N_("No filename");
  668 constext txt_no_group[] = N_("No group");
  669 constext txt_no_groups[] = N_("*** No groups ***");
  670 constext txt_no_groups_to_read[] = N_("No more groups to read");
  671 constext txt_no_last_message[] = N_("No last message");
  672 constext txt_no_mail_address[] = N_("No mail address");
  673 constext txt_no_marked_arts[] = N_("No articles marked for saving");
  674 constext txt_no_match[] = N_("No match");
  675 constext txt_no_more_groups[] = N_("No more groups");
  676 constext txt_no_newsgroups[] = N_("No newsgroups");
  677 constext txt_no_next_unread_art[] = N_("No next unread article");
  678 constext txt_no_prev_group[] = N_("No previous group");
  679 constext txt_no_prev_search[] = N_("No previous search, nothing to repeat");
  680 constext txt_no_prev_unread_art[] = N_("No previous unread article");
  681 constext txt_no_responses[] = N_("No responses");
  682 constext txt_no_resps_in_thread[] = N_("No responses to list in current thread");
  683 constext txt_no_scopes[] = N_("*** No scopes ***");
  684 constext txt_no_search_string[] = N_("No search string");
  685 constext txt_no_subject[] = N_("No subject");
  686 #ifndef USE_CURSES
  687     constext txt_no_term_clear_eol[] = N_("%s: Terminal must have clear to end-of-line (ce)\n");
  688     constext txt_no_term_clear_eos[] = N_("%s: Terminal must have clear to end-of-screen (cd)\n");
  689     constext txt_no_term_clearscreen[] = N_("%s: Terminal must have clearscreen (cl) capability\n");
  690     constext txt_no_term_cursor_motion[] = N_("%s: Terminal must have cursor motion (cm)\n");
  691     constext txt_no_term_set[] = N_("%s: TERM variable must be set to use screen capabilities\n");
  692 #endif /* !USE_CURSES */
  693 constext txt_no_viewer_found[] = N_("No viewer found for %s/%s\n");
  694 constext txt_not_exist[] = N_("Newsgroup does not exist on this server");
  695 constext txt_not_in_active_file[] = N_("Group %s not found in active file");
  696 constext txt_nrctbl_create[] = N_("c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: ");
  697 constext txt_nrctbl_default[] = N_("use a)lternative name, use d)efault .newsrc, q)uit tin: ");
  698 constext txt_nrctbl_info[] = N_("# NNTP-server -> newsrc translation table and NNTP-server\n\
  699 # shortname list for %s %s\n#\n# the format of this file is\n\
  700 #   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n#\n\
  701 # if <newsrc file> is given without path, $HOME is assumed as its location\n\
  702 #\n# examples:\n#   news.tin.org      .newsrc-tin.org  tinorg\n\
  703 #   news.example.org  /tmp/nrc-ex      example    ex\n#\n");
  704 
  705 constext txt_only[] = N_("Only");
  706 constext txt_option_not_enabled[] = N_("Option not enabled. Recompile with %s.");
  707 constext txt_options_menu[] = N_("Options Menu");
  708 constext txt_options_menu_com[] = N_("Options Menu Commands");
  709 constext txt_out_of_memory[] = "%s: memory exhausted trying to allocate %lu bytes in file %s line %d";
  710 
  711 constext txt_pcre_error_at[] = N_("Error in regex: %s at pos. %d '%s'");
  712 constext txt_pcre_error_num[] = N_("Error in regex: pcre internal error %d");
  713 constext txt_pcre_error_text[] = N_("Error in regex: study - pcre internal error %s");
  714 constext txt_post_a_followup[] = N_("Post a followup...");
  715 /* TODO: replace hardcoded key-name in txt_post_error_ask_postpone */
  716 constext txt_post_error_ask_postpone[] = N_("An error has occurred while posting the article. If you think that this\n\
  717 error is temporary or otherwise correctable, you can postpone the article\n\
  718 and pick it up again with ^O later.\n");
  719 constext txt_post_history_menu[] = N_("Posted articles history");
  720 constext txt_post_newsgroups[] = N_("Post to newsgroup(s) [%s]> ");
  721 constext txt_post_processing[] = N_("-- post processing started --");
  722 constext txt_post_processing_finished[] = N_("-- post processing completed --");
  723 constext txt_post_subject[] = N_("Post subject [%s]> ");
  724 constext txt_posted_info_file[] = N_("# Summary of mailed/posted messages viewable by 'W' command from within tin.\n");
  725 constext txt_posting[] = N_("Posting article...");
  726 constext txt_postpone_repost[] = N_("Post postponed articles [%%s]? (%s/%s/%s/%s/%s): ");
  727 constext txt_prefix_hot[] = N_("Hot %s");
  728 constext txt_prefix_tagged[] = N_("Tagged %s");
  729 constext txt_prefix_untagged[] = N_("Untagged %s");
  730 constext txt_processing_mail_arts[] = N_("Processing mail messages marked for deletion.");
  731 constext txt_processing_saved_arts[] = N_("Processing saved articles marked for deletion.");
  732 constext txt_prompt_fup_ignore[] = N_("Accept Followup-To? %s=post, %s=ignore, %s=quit: ");
  733 constext txt_prompt_unchanged_mail[] = N_("Article unchanged, abort mailing?");
  734 constext txt_prompt_see_postponed[] = N_("Do you want to see postponed articles (%d)?");
  735 
  736 constext txt_quick_filter_kill[] = N_("Add quick kill filter?");
  737 constext txt_quick_filter_select[] = N_("Add quick selection filter?");
  738 constext txt_quit[] = N_("Do you really want to quit?");
  739 constext txt_quit_cancel[] = N_("%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: ");
  740 constext txt_quit_despite_tags[] = N_("You have tagged articles in this group - quit anyway?");
  741 constext txt_quit_edit_postpone[] = N_("%s=quit, %s=edit, %s=postpone: ");
  742 constext txt_quit_edit_save_kill[] = N_("%s=quit %s=edit %s=save kill description: ");
  743 constext txt_quit_edit_save_select[] = N_("%s=quit %s=edit %s=save select description: ");
  744 constext txt_quit_no_write[] = N_("Do you really want to quit without saving your configuration?");
  745 constext txt_quoted_printable[] = "quoted-printable";
  746 
  747 constext txt_range_invalid[] = N_("Invalid range - valid are '0-9.$' eg. 1-$");
  748 #ifdef NNTP_ABLE
  749     constext txt_read_abort[] = N_("Do you want to abort this operation?");
  750     constext txt_read_exit[] = N_("Do you want to exit tin immediately?");
  751 #endif /* NNTP_ABLE */
  752 constext txt_reading_article[] = N_("Reading ('q' to quit)...");
  753 constext txt_reading_arts[] = N_("Reading %sarticles...");
  754 constext txt_reading_attributes_file[] = N_("Reading %sattributes file...\n");
  755 constext txt_reading_config_file[] = N_("Reading %sconfig file...\n");
  756 constext txt_reading_filter_file[] = N_("Reading filter file...\n");
  757 constext txt_reading_groups[] = N_("Reading %s groups...");
  758 constext txt_reading_input_history_file[] = N_("Reading input history file...\n");
  759 constext txt_reading_keymap_file[] = N_("Reading keymap file...\n");
  760 constext txt_reading_news_active_file[] = N_("Reading groups from active file... ");
  761 constext txt_reading_news_newsrc_file[] = N_("Reading groups from newsrc file... ");
  762 constext txt_reading_newsgroups_file[] = N_("Reading newsgroups file... ");
  763 constext txt_reading_newsrc[] = N_("Reading newsrc file...");
  764 constext txt_refs_line_only[] = N_("References: line              ");
  765 #ifdef HAVE_GETTIMEOFDAY
  766     constext txt_remaining[] = N_("(%d:%02d remaining)");
  767 #endif /* HAVE_GETTIMEOFDAY */
  768 constext txt_remove_bogus[] = N_("Bogus group %s removed.");
  769 constext txt_removed_rule[] = N_("Removed from the previous rule: ");
  770 constext txt_rename_error[] = N_("Error: rename %s to %s");
  771 constext txt_reply_to_author[] = N_("Reply to author...");
  772 constext txt_repost[] = N_("Repost");
  773 constext txt_repost_an_article[] = N_("Reposting article...");
  774 constext txt_repost_group[] = N_("Repost article(s) to group(s) [%s]> ");
  775 constext txt_reset_newsrc[] = N_("Reset newsrc?");
  776 constext txt_resp_redirect[] = N_("Responses have been directed to the following newsgroups");
  777 constext txt_resp_to_poster[] = N_("Responses have been directed to poster. %s=mail, %s=post, %s=quit: ");
  778 
  779 constext txt_return_key[] = N_("Press <RETURN> to continue...");
  780 
  781 constext txt_select_from[] = N_("Select From    [%s] (y/n): ");
  782 constext txt_select_lines[] = N_("Select Lines: (</>num): ");
  783 constext txt_select_menu[] = N_("Auto-select Article Menu");
  784 constext txt_select_msgid[] = N_("Select Msg-Id  [%s] (f/l/o/n): ");
  785 constext txt_select_scope[] = N_("Select pattern scope: ");
  786 constext txt_select_subj[] = N_("Select Subject [%s] (y/n): ");
  787 constext txt_select_text[] = N_("Select text pattern : ");
  788 constext txt_select_time[] = N_("Select time in days   : ");
  789 constext txt_serverconfig_header[] = N_("# %s server configuration file\n\
  790 # This file was automatically saved by %s %s %s (\"%s\")\n#\n\
  791 # Do not edit while %s is running, since all your changes to this file\n\
  792 # will be overwritten when you leave %s.\n\
  793 # Do not edit at all if you don't know what you do.\n\
  794 ############################################################################\n\n");
  795 constext txt_show_unread[] = N_("Showing unread groups only");
  796 constext txt_subj_line_only[] = N_("Subject: line (ignore case)   ");
  797 constext txt_subj_line_only_case[] = N_("Subject: line (case sensitive)");
  798 constext txt_save[] = N_("Save");
  799 constext txt_save_attachment[] = N_("Save '%s' (%s/%s)?");
  800 constext txt_save_config[] = N_("Save configuration before continuing?");
  801 constext txt_save_filename[] = N_("Save filename> ");
  802 constext txt_saved[] = N_("Saved");
  803 constext txt_saved_group[] = N_("%4d unread (%4d hot) %s in %s\n");
  804 constext txt_saved_groupname[] = N_("Saved %s...\n");
  805 constext txt_saved_nothing[] = N_("Nothing was saved");
  806 constext txt_saved_summary[] = N_("\n%s %d %s from %d %s\n");
  807 constext txt_saved_to[] = N_("-- %s saved to %s%s --");
  808 constext txt_saved_to_range[] = N_("-- %s saved to %s - %s --");
  809 constext txt_saving[] = N_("Saving...");
  810 constext txt_screen_init_failed[] = N_("%s: Screen initialization failed");
  811 #ifndef USE_CURSES
  812     constext txt_screen_too_small[] = N_("%s: screen is too small\n");
  813 #endif /* !USE_CURSES */
  814 constext txt_screen_too_small_exiting[] = N_("screen is too small, %s is exiting");
  815 constext txt_scope_delete[] = N_("Delete scope?");
  816 constext txt_scope_enter[] = N_("Enter scope> ");
  817 constext txt_scope_new_position[] = N_("Select new position> ");
  818 constext txt_scope_new_position_is_global[] = N_("New position cannot be a global scope");
  819 constext txt_scope_operation_not_allowed[] = N_("Global scope, operation not allowed");
  820 constext txt_scope_rename[] = N_("Rename scope> ");
  821 constext txt_scope_select[] = N_("Select scope> ");
  822 constext txt_scopes_menu[] = N_("Scopes Menu");
  823 constext txt_scopes_menu_com[] = N_("Scopes Menu Commands");
  824 constext txt_search_backwards[] = N_("Search backwards [%s]> ");
  825 constext txt_search_body[] = N_("Search body [%s]> ");
  826 constext txt_search_forwards[] = N_("Search forwards [%s]> ");
  827 constext txt_searching[] = N_("Searching...");
  828 constext txt_searching_body[] = N_("Searching article %d of %d ('q' to abort)...");
  829 constext txt_select_art[] = N_("Select article> ");
  830 constext txt_select_config_file_option[] = N_("Select option number before text or use arrow keys and <CR>. 'q' to quit.");
  831 constext txt_select_group[] = N_("Select group> ");
  832 constext txt_select_pattern[] = N_("Enter selection pattern [%s]> ");
  833 constext txt_select_thread[] = N_("Select thread> ");
  834 constext txt_send_bugreport[] = N_("%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n");
  835 constext txt_servers_active[] = N_("servers active-file");
  836 constext txt_skipping_newgroups[] = N_("Cannot move into new newsgroups. Subscribe first...");
  837 constext txt_space[] = N_("<SPACE>");
  838 constext txt_starting_command[] = N_("Starting: (%s)");
  839 constext txt_stp_list_thread[] = N_("List Thread (%d of %d)");
  840 constext txt_stp_thread[] = N_("Thread (%.*s)");
  841 constext txt_subscribe_pattern[] = N_("Enter wildcard subscribe pattern> ");
  842 constext txt_subscribed_num_groups[] = N_("subscribed to %d groups");
  843 constext txt_subscribed_to[] = N_("Subscribed to %s");
  844 constext txt_subscribing[] = N_("Subscribing... ");
  845 constext txt_supersede_article[] = N_("Repost or supersede article(s) [%%s]? (%s/%s/%s): ");
  846 constext txt_supersede_group[] = N_("Supersede article(s) to group(s) [%s]> ");
  847 constext txt_superseding_art[] = N_("Superseding article ...");
  848 constext txt_suspended_message[] = N_("\nStopped. Type 'fg' to restart %s\n");
  849 
  850 constext txt_time_default_days[] = N_("%d days");
  851 constext txt_tab[] = N_("<TAB>");
  852 constext txt_tex[] = N_("TeX ");
  853 constext txt_tinrc_defaults[] = N_("# Default action/prompt strings\n");
  854 constext txt_tinrc_filter[] = N_("# Defaults for quick (1 key) kill & auto-selection filters\n\
  855 # header=NUM  0,1=Subject: 2,3=From: 4=Message-ID: & full References: line\n\
  856 #             5=Message-ID: & last References: entry only\n\
  857 #             6=Message-ID: entry only 7=Lines:\n\
  858 # global=ON/OFF  ON=apply to all groups OFF=apply to current group\n\
  859 # case=ON/OFF    ON=filter case sensitive OFF=ignore case\n\
  860 # expire=ON/OFF  ON=limit to default_filter_days OFF=don't ever expire\n");
  861 /* do NOT localize the next string! */
  862 constext txt_tinrc_header[] = "# %s configuration file V%s\n\
  863 # This file was automatically saved by %s %s %s (\"%s\")\n#\n\
  864 # Do not edit while tin is running, since all your changes to this file\n\
  865 # will be overwritten when you leave tin.\n#\n\
  866 ############################################################################\n\n";
  867 constext txt_tinrc_info_in_last_line[] = N_("# If ON use print current subject or newsgroup description in the last line\n");
  868 constext txt_tinrc_newnews[] = N_("# Host & time info used for detecting new groups (don't touch)\n");
  869 constext txt_there_is_no_news[] = N_("There is no news\n");
  870 constext txt_thread_upper[] = N_("Thread");
  871 constext txt_thread_com[] = N_("Thread Level Commands");
  872 constext txt_thread_marked_as_deselected[] = N_("Thread deselected");
  873 constext txt_thread_marked_as_selected[] = N_("Thread selected");
  874 #if 0 /* unused */
  875     constext txt_thread_plural[] = N_("threads");
  876 #endif /* 0 */
  877 constext txt_thread_singular[] = N_("thread");
  878 constext txt_thread_x_of_n[] = N_("Thread %4s of %4s");
  879 constext txt_threading_arts[] = N_("Threading articles...");
  880 constext txt_toggled_high[] = N_("Toggled word highlighting %s");
  881 constext txt_toggled_rot13[] = N_("Toggled rot13 encoding");
  882 constext txt_toggled_tex2iso[] = N_("Toggled german TeX encoding %s");
  883 constext txt_toggled_tabwidth[] = N_("Toggled tab-width to %d");
  884 #ifndef NO_LOCKING
  885     constext txt_trying_dotlock[] = N_("%d Trying to dotlock %s");
  886     constext txt_trying_lock[] = N_("%d Trying to lock %s");
  887 #endif /* !NO_LOCKING */
  888 constext txt_type_h_for_help[] = N_("           h=help");
  889 
  890 constext txt_unlimited_time[] = N_("Unlimited");
  891 constext txt_unsubscribe_pattern[] = N_("Enter wildcard unsubscribe pattern> ");
  892 constext txt_uu_error_decode[] = N_("Error decoding %s : %s");
  893 constext txt_uu_error_no_end[] = N_("No end.");
  894 constext txt_uu_success[] = N_("%s successfully decoded.");
  895 constext txt_uue[] = N_("%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n\n");
  896 constext txt_unread[] = N_("unread ");
  897 constext txt_unsubscribed_num_groups[] = N_("unsubscribed from %d groups");
  898 constext txt_unsubscribed_to[] = N_("Unsubscribed from %s");
  899 constext txt_unsubscribing[] = N_("Unsubscribing... ");
  900 constext txt_unthreading_arts[] = N_("Unthreading articles...");
  901 constext txt_updated[] = N_("Updated");
  902 #ifdef NNTP_ABLE
  903     constext txt_unparseable_counts[] = N_("unparseable \"LIST COUNTS\" line: \"%s\"");
  904 #endif /* NNTP_ABLE */
  905 constext txt_updating[] = N_("Updating");
  906 constext txt_url_menu[] = N_("URL Menu");
  907 constext txt_url_menu_com[] = N_("URL Menu Commands");
  908 constext txt_url_open[] = N_("Opening %s");
  909 constext txt_url_select[] = N_("Select URL> ");
  910 constext txt_url_done[] = N_("No URLs in this article");
  911 constext txt_use_mime[] = N_("Use MIME display program for this message?");
  912 constext txt_usage_catchup[] = N_("  -c       mark all news as read in subscribed newsgroups (batch mode)");
  913 constext txt_usage_check_for_unread_news[] = N_("  -Z       return status indicating if any unread news (batch mode)");
  914 constext txt_usage_dont_check_new_newsgroups[] = N_("  -q       don't check for new newsgroups");
  915 constext txt_usage_dont_save_files_on_quit[] = N_("  -X       don't save any files on quit");
  916 constext txt_usage_dont_show_descriptions[] = N_("  -d       don't show newsgroup descriptions");
  917 constext txt_usage_getart_limit[] = N_("  -G limit get only limit articles/group");
  918 constext txt_usage_help_information[] = N_("  -H       help information about %s");
  919 constext txt_usage_help_message[] = N_("  -h       this help message");
  920 constext txt_usage_index_newsdir[] = N_("  -I dir   news index file directory [default=%s]");
  921 constext txt_usage_update_index_files[] = N_("  -u       update index files (batch mode)");
  922 constext txt_usage_maildir[] = N_("  -m dir   mailbox directory [default=%s]");
  923 constext txt_usage_mail_bugreport[] = N_("\nMail bug reports/comments to %s");
  924 constext txt_usage_mail_new_news[] = N_("  -N       mail new news to your posts (batch mode)");
  925 constext txt_usage_mail_new_news_to_user[] = N_("  -M user  mail new news to specified user (batch mode)");
  926 constext txt_usage_newsrc_file[] = N_("  -f file  subscribed to newsgroups file [default=%s]");
  927 constext txt_usage_no_posting[] = N_("  -x       no-posting mode");
  928 constext txt_usage_post_article[] = N_("  -w       post an article and exit");
  929 constext txt_usage_post_postponed_arts[] = N_("  -o       post all postponed articles and exit");
  930 constext txt_usage_read_saved_news[] = N_("  -R       read news saved by -S option");
  931 constext txt_usage_savedir[] = N_("  -s dir   save news directory [default=%s]");
  932 constext txt_usage_save_new_news[] = N_("  -S       save new news for later reading (batch mode)");
  933 constext txt_usage_start_if_unread_news[] = N_("  -z       start if any unread news");
  934 constext txt_usage_tin[] = N_("A Usenet reader.\n\nUsage: %s [options] [newsgroup[,...]]");
  935 constext txt_usage_verbose[] = N_("  -v       verbose output for batch mode options");
  936 constext txt_usage_version[] = N_("  -V       print version & date information");
  937 constext txt_useful_without_batch_mode[] = N_("%s only useful without batch mode operations\n");
  938 constext txt_useful_with_batch_mode[] = N_("%s only useful for batch mode operations\n");
  939 constext txt_useless_combination[] = N_("Useless combination %s and %s. Ignoring %s.\n");
  940 
  941 constext txt_value_out_of_range[] = N_("\n%s%d out of range (0 - %d). Reset to 0");
  942 constext txt_view_attachment[] = N_("View '%s' (%s/%s)?");
  943 
  944 constext txt_warn_art_line_too_long[] = N_("\nWarning: posting exceeds %d columns. Line %d is the first long one:\n%-100s\n");
  945 constext txt_warn_article_unchanged[] = N_("\nWarning: article unchanged after editing\n");
  946 constext txt_warn_blank_subject[] = N_("\nWarning: \"Subject:\" contains only whitespaces.\n");
  947 constext txt_warn_re_but_no_references[] = N_("\n\
  948 Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n");
  949 constext txt_warn_references_but_no_re[] = N_("\n\
  950 Warning: Article has \"References:\" but \"Subject:\" does not begin\n\
  951          with \"Re: \" and does not contain \"(was:\".\n");
  952 constext txt_warn_cancel[] = N_("Read carefully!\n\n\
  953   You are about to cancel an article seemingly written by you. This will wipe\n\
  954   the article from most  news servers  throughout the world,  but there is no\n\
  955   guarantee that it will work.\n\nThis is the article you are about to cancel:\n\n");
  956 constext txt_warn_encoding_and_external_inews[] = N_("\n\
  957 Warning: You are using a non-plain transfer encoding (such as base64 or\n\
  958          quoted-printable) and an external inews program to submit your\n\
  959          article. If a signature is appended by that inews program it will\n\
  960          not be encoded properly.\n");
  961 constext txt_warn_example_hierarchy[] = N_("\nWarning: \"example\" is a reserved hierarchy!\n");
  962 constext txt_warn_update[] = N_("\n\nYou are upgrading to tin %s from an earlier version.\n\
  963 Some values in your %s file have changed!\nRead WHATSNEW, etc...\n");
  964 constext txt_warn_downgrade[] = N_("\n\nYou are downgrading to tin %s from a more recent version!\n\
  965 Some values in your %s file may be ignored, others might have changed!\n");
  966 constext txt_warn_unrecognized_version[] = "\n\nUnrecognized version string!\n";
  967 constext txt_warn_newsrc[] = N_("Warning: tin wrote fewer groups to your\n\t%s\n\
  968 than it read at startup. If you didn't unsubscribe from %ld %s during\n\
  969 this session this indicates an error and you should backup your %s\n\
  970 before you start tin once again!\n");
  971 constext txt_warn_multiple_sigs[] = N_("\nWarning: Found %d '-- \\n' lines, this may confuse some people.\n");
  972 constext txt_warn_not_all_arts_saved[] = N_("Warning: Only %d out of %d articles were saved");
  973 constext txt_warn_sig_too_long[] = N_("\n\
  974 Warning: Your signature  is longer than %d lines.  Since signatures usually do\n\
  975          not  transport any  useful information,  they should be as  short as\n\
  976          possible.\n");
  977 constext txt_warn_suspicious_mail[] = N_("Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? ");
  978 constext txt_warn_wrong_sig_format[] = N_("\nWarning: Signatures should start with '-- \\n' not with '--\\n'.\n");
  979 constext txt_writing_attributes_file[] = N_("Writing attributes file...");
  980 
  981 constext txt_x_resp[] = N_("%d Responses");
  982 
  983 constext txt_yanked_groups[] = N_("Added %d %s");
  984 constext txt_yanked_none[] = N_("No unsubscribed groups to show");
  985 constext txt_yanked_sub_groups[] = N_("Showing subscribed to groups only");
  986 constext txt_yes[] = N_("Yes ");
  987 constext txt_you_have_mail[] = N_("    You have mail");
  988 
  989 
  990 /* TODO: cleanup */
  991 #ifdef CHARSET_CONVERSION
  992     constext txt_warn_charset_conversion[] = N_("\n\
  993 Warning: Posting is in %s and contains characters which are not\n\
  994          in your selected MM_NETWORK_CHARSET: %s.\n\
  995          These characters will be replaced by '?' if you post this\n\
  996          article unchanged. To avoid garbling your article please either\n\
  997          edit it and remove those characters or change the setting of\n\
  998          MM_NETWORK_CHARSET to a suitable value for your posting via the\n\
  999          M)enu option.\n");
 1000 #endif /* CHARSET_CONVERSION */
 1001 
 1002 #ifdef DEBUG
 1003     constext txt_usage_debug[] = N_("  -D mode  debug mode");
 1004 #endif /* DEBUG */
 1005 
 1006 #ifdef FORGERY
 1007     constext txt_warn_cancel_forgery[] = N_("Read carefully!\n\n\
 1008   You are about to cancel an article seemingly not written by you.  This will\n\
 1009   wipe the article from lots of news servers throughout the world;\n\
 1010   Usenet's majority  considers this  rather inappropriate,  to say the least.\n\
 1011   Only press 'd'  if you are  absolutely positive  that you are ready to take\n\
 1012   the rap.\n\nThis is the article you are about to cancel:\n\n");
 1013 #endif /* FORGERY */
 1014 
 1015 #ifdef HAVE_COLOR
 1016     constext txt_help_global_toggle_color[] = N_("toggle color");
 1017     constext txt_tinrc_colors[] = N_("# Changing colors of several screen parts\n\
 1018 # Possible values are:\n\
 1019 #  -1 = default (white for foreground and black for background)\n\
 1020 #   0 = black\n\
 1021 #   1 = red\n\
 1022 #   2 = green\n\
 1023 #   3 = brown\n\
 1024 #   4 = blue\n\
 1025 #   5 = pink\n\
 1026 #   6 = cyan\n\
 1027 #   7 = white\n\
 1028 # These are *only* for foreground:\n\
 1029 #   8 = gray\n\
 1030 #   9 = light red\n\
 1031 #  10 = light green\n\
 1032 #  11 = yellow\n\
 1033 #  12 = light blue\n\
 1034 #  13 = light pink\n\
 1035 #  14 = light cyan\n\
 1036 #  15 = light white\n\n");
 1037     constext txt_usage_toggle_color[] = N_("  -a       toggle color flag");
 1038 #endif /* HAVE_COLOR */
 1039 
 1040 #ifdef HAVE_FASCIST_NEWSADMIN
 1041     constext txt_error_followup_to_several_groups[] = N_("\nError: Followup-To set to more than one newsgroup!\n");
 1042     constext txt_error_grp_renamed[] = N_("\nError: \"%s\" is renamed, use \"%s\" instead!\n");
 1043     constext txt_error_missing_followup_to[] = N_("\nError: cross-posting to %d newsgroups and no Followup-To line!\n");
 1044     constext txt_error_not_valid_newsgroup[] = N_("\nError: \"%s\" is not a valid newsgroup!\n");
 1045 #else
 1046     constext txt_warn_followup_to_several_groups[] = N_("\nWarning: Followup-To set to more than one newsgroup!\n");
 1047     constext txt_warn_grp_renamed[] = N_("\nWarning: \"%s\" is renamed, you should use \"%s\" instead!\n");
 1048     constext txt_warn_missing_followup_to[] = N_("\nWarning: cross-posting to %d newsgroups and no Followup-To line!\n");
 1049     constext txt_warn_not_in_newsrc[] = N_("\nWarning: \"%s\" is not in your newsrc, it may be invalid at this site!\n");
 1050     constext txt_warn_not_valid_newsgroup[] = N_("\nWarning: \"%s\" is not a valid newsgroup at this site!\n");
 1051 #endif /* HAVE_FASCIST_NEWSADMIN */
 1052 
 1053 #ifdef HAVE_LIBUU
 1054     constext txt_libuu_saved[] = N_("%d files successfully written from %d articles. %d %s occurred.");
 1055     constext txt_libuu_error_missing[] = N_("Missing parts.");
 1056     constext txt_libuu_error_no_begin[] = N_("No beginning.");
 1057     constext txt_libuu_error_no_data[] = N_("No data.");
 1058     constext txt_libuu_error_unknown[] = N_("Unknown error.");
 1059 #else
 1060 #   if defined(M_UNIX) && defined(HAVE_SUM) && !defined(DONT_HAVE_PIPING)
 1061         constext txt_checksum_of_file[] = N_("\tChecksum of %s (%ld %s)");
 1062 #   endif /* M_UNIX && HAVE_SUM && !DONT_HAVE_PIPING */
 1063 #endif /* HAVE_LIBUU */
 1064 
 1065 #ifdef HAVE_MH_MAIL_HANDLING
 1066     constext txt_reading_mail_active_file[] = N_("Reading mail active file... ");
 1067     constext txt_reading_mailgroups_file[] = N_("Reading mailgroups file... ");
 1068 #endif /* HAVE_MH_MAIL_HANDLING */
 1069 
 1070 #ifdef HAVE_PGP_GPG
 1071     constext txt_help_article_pgp[] = N_("perform PGP operations on article");
 1072     constext txt_pgp_add[] = N_("Add key(s) to public keyring?");
 1073     constext txt_pgp_mail[] = N_("%s=encrypt, %s=sign, %s=both, %s=quit: ");
 1074     constext txt_pgp_news[] = N_("%s=sign, %s=sign & include public key, %s=quit: ");
 1075     constext txt_pgp_not_avail[] = N_("PGP has not been set up (can't open %s)");
 1076     constext txt_pgp_nothing[] = N_("Article not signed and no public keys found");
 1077 #   ifdef HAVE_ISPELL
 1078         constext txt_quit_edit_post[] = N_("%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: ");
 1079         constext txt_quit_edit_send[] = N_("%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: ");
 1080         constext txt_quit_edit_xpost[] = N_("%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: ");
 1081 #   else
 1082     constext txt_quit_edit_post[] = N_("%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: ");
 1083     constext txt_quit_edit_send[] = N_("%s=quit, %s=edit, %s=pgp, %s=send [%%s]: ");
 1084     constext txt_quit_edit_xpost[] = N_("%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: ");
 1085 #   endif /* HAVE_ISPELL */
 1086 #else
 1087 #   ifdef HAVE_ISPELL
 1088         constext txt_quit_edit_post[] = N_("%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: ");
 1089         constext txt_quit_edit_send[] = N_("%s=quit, %s=edit, %s=ispell, %s=send [%%s]: ");
 1090         constext txt_quit_edit_xpost[] = N_("%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: ");
 1091 #   else
 1092         constext txt_quit_edit_post[] = N_("%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: ");
 1093         constext txt_quit_edit_send[] = N_("%s=quit, %s=edit, %s=send [%%s]: ");
 1094         constext txt_quit_edit_xpost[] = N_("%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: ");
 1095 #   endif /* HAVE_ISPELL */
 1096 #endif /* HAVE_PGP_GPG */
 1097 
 1098 #ifdef M_UNIX
 1099     constext txt_copyright_notice[] = "%s (c) Copyright 1991-2018 Iain Lea.";
 1100 #endif /* M_UNIX */
 1101 
 1102 #ifdef NNTP_ABLE
 1103     constext txt_caching_off[] = N_("Try cache_overview_files to speed up things.\n");
 1104     constext txt_caching_on[] = N_("Tin will use local index files instead.\n");
 1105     constext txt_cannot_get_nntp_server_name[] = N_("Cannot find NNTP server name");
 1106     constext txt_connecting_port[] = N_("Connecting to %s:%u...");
 1107     constext txt_disconnecting[] = N_("Disconnecting from server...\n");
 1108     constext txt_error_wrong_newsgroupname_in_group_response[] = N_("Wrong newsgroup name (\"%s\") in response of \"GROUP %s\" command: \"%s\"");
 1109     constext txt_failed_to_connect_to_server[] = N_("Failed to connect to NNTP server %s. Exiting...");
 1110     constext txt_nntp_ok_goodbye[] = N_("205  Closing connection");
 1111     constext txt_no_xover_support[] = N_("Your server does not support the NNTP XOVER or OVER command.\n");
 1112     constext txt_reconnect_to_news_server[] = N_("Connection to news server has timed out. Reconnect?");
 1113     constext txt_server_name_in_file_env_var[] = N_("Put the server name in the file %s,\nor set the environment variable NNTPSERVER");
 1114     constext txt_usage_force_authentication[] = N_("  -A       force authentication on connect");
 1115     constext txt_usage_newsserver[] = N_("  -g serv  read news from NNTP server serv [default=%s]");
 1116     constext txt_usage_port[] = N_("  -p port  use port as NNTP port [default=%d]");
 1117     constext txt_usage_quickstart[] = N_("  -Q       quick start. Same as -nqd");
 1118     constext txt_usage_read_news_remotely[] = N_("  -r       read news remotely from default NNTP server");
 1119     constext txt_usage_read_only_active[] = N_("  -l       use only LIST instead of GROUP (-n) command");
 1120     constext txt_usage_read_only_subscribed[] = N_("  -n       only read subscribed .newsrc groups from NNTP server");
 1121 #   ifdef INET6
 1122         constext txt_usage_force_ipv4[] = N_("  -4       force connecting via IPv4");
 1123         constext txt_usage_force_ipv6[] = N_("  -6       force connecting via IPv6");
 1124         constext txt_error_socket_or_connect_problem[] = N_("\nsocket or connect problem\n");
 1125 #   else
 1126         constext txt_connection_to[] = N_("\nConnection to %s: ");
 1127         constext txt_giving_up[] = N_("Giving up...\n");
 1128 #       ifdef HAVE_GETSERVBYNAME
 1129             constext txt_error_unknown_service[] = N_("%s/tcp: Unknown service.\n");
 1130 #       endif /* HAVE_GETSERVBYNAME */
 1131 #   endif /* INET6 */
 1132 #   ifdef XHDR_XREF
 1133         constext txt_warn_xref_not_supported[] = N_("Your server does not have Xref: in its XOVER information.\n\
 1134 Tin will try to use XHDR XREF instead (slows down things a bit).\n");
 1135 #   else
 1136         constext txt_warn_xref_not_supported[] = N_("Your server does not have Xref: in its XOVER information.\n");
 1137 #   endif /* XHDR_XREF */
 1138 #   ifndef NNTP_ONLY
 1139         constext txt_cannot_open_active_file[] = N_("Can't open %s. Try %s -r to read news via NNTP.");
 1140 #   endif /* !NNTP_ONLY */
 1141 #else
 1142     constext txt_usage_quickstart[] = N_("  -Q       quick start. Same as -qd");
 1143     constext txt_usage_read_only_active[] = N_("  -l       read only active file instead of scanning spool (-n) command");
 1144     constext txt_usage_read_only_subscribed[] = N_("  -n       only read subscribed .newsrc groups from spool");
 1145     constext txt_warn_xref_not_supported[] = N_("Your server does not have Xref: in its NOV-files.\n");
 1146 #endif /* NNTP_ABLE */
 1147 
 1148 #ifdef NNTP_INEWS
 1149     constext txt_post_via_builtin_inews[] = N_("Posting using external inews failed. Use built in inews instead?");
 1150     constext txt_post_via_builtin_inews_only[] = N_("It worked! Should I always use my built in inews from now on?");
 1151 #endif /* NNTP_INEWS */
 1152 
 1153 #ifndef DISABLE_PRINTING
 1154     constext txt_articles_printed[] = N_("%d %s printed");
 1155     constext txt_help_global_print[] = N_("output article/thread/hot/pattern/tagged articles to printer");
 1156     constext txt_print[] = N_("Print");
 1157     constext txt_printing[] = N_("Printing...");
 1158 #endif /* !DISABLE_PRINTING */
 1159 
 1160 #ifndef DONT_HAVE_PIPING
 1161     constext txt_articles_piped[] = N_("%d %s piped to \"%s\"");
 1162     constext txt_help_global_pipe[] = N_("pipe article/thread/hot/pattern/tagged articles into command");
 1163     constext txt_no_command[] = N_("No command");
 1164     constext txt_pipe[] = N_("Pipe");
 1165     constext txt_pipe_to_command[] = N_("Pipe to command [%.*s]> ");
 1166     constext txt_piping[] = N_("Piping...");
 1167 #else
 1168     constext txt_piping_not_enabled[] = N_("Piping not enabled.");
 1169 #endif /* !DONT_HAVE_PIPING */
 1170 
 1171 #ifndef FOLLOW_USEFOR_DRAFT
 1172     constext txt_error_header_line_comma[] = N_("\n\
 1173 Error: The \"%s:\" line has spaces  in it that MUST be removed.\n\
 1174        The only allowable  space is the one  separating the colon (:)\n\
 1175        from  the  contents.  Use a  comma  (,)  to separate  multiple\n\
 1176        newsgroup names.\n");
 1177     constext txt_error_header_line_groups_contd[] = N_("\n\
 1178 Error: The \"%s:\" line is  continued in  the next line.  Since\n\
 1179        the line  may not  contain  whitespace,  this is  not allowed.\n\
 1180        Please write all newsgroups into a single line.\n");
 1181 #else
 1182     constext txt_warn_header_line_groups_contd[] = N_("\n\
 1183 Warning: The \"%s:\" line is continued in the next line.\n\
 1184          This is a very new feature and may not be accepted by all servers.\n\
 1185          To avoid trouble please write all newsgroups into a single line.\n");
 1186     constext txt_warn_header_line_comma[] = N_("\n\
 1187 Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n");
 1188 #endif /* !FOLLOW_USEFOR_DRAFT */
 1189 
 1190 #ifndef NO_ETIQUETTE
 1191     constext txt_warn_posting_etiquette[] = N_("\n\
 1192   If your article contains quoted text  please take some time to pare it down\n\
 1193   to just the  key points to which you are  responding,  or people will think\n\
 1194   you are a dweeb!  Many people have the habit of skipping any article  whose\n\
 1195   first page is largely  quoted material.  Format your article to fit in less\n\
 1196   then 80 chars,  since that's the conventional size  (72 is a good choice as\n\
 1197   it allows quoting without exceeding the limit).  If your lines are too long\n\
 1198   they'll wrap  around  ugly and  people won't  read what you  write.  If you\n\
 1199   aren't  careful  and considerate  in  formatting  your posting, people  are\n\
 1200   likely to ignore it completely.  It's a crowded net out there.\n");
 1201 #endif /* !NO_ETIQUETTE */
 1202 
 1203 #ifndef NO_SHELL_ESCAPE
 1204     constext txt_help_global_shell_escape[] = N_("shell escape");
 1205     constext txt_shell_command[] = N_("Shell Command (%s)");
 1206     constext txt_shell_escape[] = N_("Enter shell command [%s]> ");
 1207 #endif /* !NO_SHELL_ESCAPE */
 1208 
 1209 #if !defined(USE_CURSES) && defined(M_UNIX) && !defined(USE_TERMINFO)
 1210     constext txt_cannot_get_term_entry[] = N_("%s: Can't get entry for TERM\n");
 1211 #endif /* !USE_CURSES && M_UNIX && !USE_TERMINFO */
 1212 
 1213 #if defined(HAVE_POLL) || defined(HAVE_SELECT)
 1214     constext txt_group[] = N_("Group %.*s ('q' to quit)...");
 1215 #else
 1216     constext txt_group[] = N_("Group %.*s...");
 1217 #endif /* HAVE_POLL || HAVE_SELECT */
 1218 
 1219 #if defined(NNTP_ABLE) && defined(TLI) && !defined(INET6)
 1220     constext txt_error_server_unavailable[] = N_("Server unavailable\n");
 1221     constext txt_error_topen[] = "t_open: can't t_open /dev/tcp";
 1222 #endif /* NNTP_ABLE && TLI && !INET6 */
 1223 
 1224 #ifndef DISABLE_PRINTING
 1225 #   ifndef DONT_HAVE_PIPING
 1226         constext txt_mini_group_3[] = N_("%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post");
 1227         constext txt_mini_page_3[] = N_("%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post");
 1228 #   else
 1229         constext txt_mini_group_3[] = N_("%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post");
 1230         constext txt_mini_page_3[] = N_("%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post");
 1231 #   endif /* !DONT_HAVE_PIPING */
 1232 #else
 1233 #   ifndef DONT_HAVE_PIPING
 1234         constext txt_mini_group_3[] = N_("%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post");
 1235         constext txt_mini_page_3[] = N_("%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post");
 1236 #   else
 1237         constext txt_mini_group_3[] = N_("%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post");
 1238         constext txt_mini_page_3[] = N_("%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post");
 1239 #   endif /* !DONT_HAVE_PIPING */
 1240 #endif /* !DISABLE_PRINTING */
 1241 
 1242 #ifdef HAVE_COLOR
 1243 #   ifdef USE_CURSES
 1244         constext txt_no_colorterm[] = N_("Terminal does not support color");
 1245 #   endif /* USE_CURSES */
 1246 #endif /* HAVE_COLOR */
 1247 
 1248 #if defined(NNTP_ABLE) && defined(HAVE_INET_NTOA) && !defined(INET6)
 1249     constext txt_trying[] = N_("Trying %s");
 1250 #endif /* NNTP_ABLE && HAVE_INET_NTOA && !INET6 */
 1251 
 1252 
 1253 /*
 1254  * OFF ~ FALSE, ON ~ TRUE
 1255  */
 1256 constext *txt_onoff[] = { "OFF", "ON" };
 1257 
 1258 /*
 1259  * NB: All the following arrays must match corresponding ordering in tin.h
 1260  * Threading types
 1261  */
 1262 constext *txt_threading[] = {
 1263     N_("None"),
 1264     N_("Subject"),
 1265     N_("References"),
 1266     N_("Both Subject and References"),
 1267     N_("Multipart Subject"),
 1268     N_("Percentage Match"),
 1269     NULL
 1270 };
 1271 
 1272 /*
 1273  * Whether to use wildmat() or regexec() for matching strings
 1274  */
 1275 constext *txt_wildcard_type[] = { "WILDMAT", "REGEX", NULL };
 1276 
 1277 /*
 1278  * Handling of uuencoded data in pager
 1279  */
 1280 constext *txt_hide_uue_type[] = {
 1281     N_("No"),
 1282     N_("Yes"),
 1283     N_("Hide All"),
 1284     NULL
 1285 };
 1286 
 1287 /*
 1288  * How the From: line is displayed.
 1289  */
 1290 constext *txt_show_from[] = {
 1291     N_("None"),
 1292     N_("Address"),
 1293     N_("Full Name"),
 1294     N_("Address and Name"),
 1295     NULL
 1296 };
 1297 
 1298 /*
 1299  * How the score of a thread is computed
 1300  */
 1301 constext *txt_thread_score_type[] = {
 1302     N_("Max"),
 1303     N_("Sum"),
 1304     N_("Average"),
 1305     NULL
 1306 };
 1307 
 1308 #ifdef HAVE_COLOR
 1309     /*
 1310      * Which colors can be used.
 1311      */
 1312     constext *txt_colors[] = {
 1313         N_("Default"),
 1314         N_("Black"),
 1315         N_("Red"),
 1316         N_("Green"),
 1317         N_("Brown"),
 1318         N_("Blue"),
 1319         N_("Pink"),
 1320         N_("Cyan"),
 1321         N_("White"),
 1322         N_("Gray"),
 1323         N_("Light Red"),
 1324         N_("Light Green"),
 1325         N_("Yellow"),
 1326         N_("Light Blue"),
 1327         N_("Light Pink"),
 1328         N_("Light Cyan"),
 1329         N_("Light White"),
 1330         NULL
 1331     };
 1332     constext *txt_backcolors[] = {
 1333         N_("Default"),
 1334         N_("Black"),
 1335         N_("Red"),
 1336         N_("Green"),
 1337         N_("Brown"),
 1338         N_("Blue"),
 1339         N_("Pink"),
 1340         N_("Cyan"),
 1341         N_("White"),
 1342         NULL
 1343     };
 1344 #endif /* HAVE_COLOR */
 1345 
 1346 /*
 1347  * Which mark types can be used.
 1348  */
 1349 constext *txt_marks[] = {
 1350     N_("Nothing"),
 1351     N_("Mark"),
 1352     N_("Space"),
 1353     NULL
 1354 };
 1355 
 1356 /*
 1357  * Which attributes can be used for highlighting
 1358  */
 1359 constext *txt_attrs[] = {
 1360     N_("Normal"),
 1361     N_("Best highlighting"),
 1362     N_("Underline"),
 1363     N_("Reverse video"),
 1364     N_("Blinking"),
 1365     N_("Half bright"),
 1366     N_("Bold"),
 1367     NULL
 1368 };
 1369 
 1370 /* different options for auto_cc_bcc */
 1371 constext *txt_auto_cc_bcc_options[] = {
 1372     N_("No"),
 1373     N_("Cc"),
 1374     N_("Bcc"),
 1375     N_("Cc and Bcc"),
 1376     NULL
 1377 };
 1378 
 1379 #ifdef USE_CANLOCK
 1380 /* hash algorithms for Cancel-Lock/Cancel-Key */
 1381 constext *txt_cancel_lock_algos[] = {
 1382     "none",
 1383     "sha1",
 1384     "sha256",
 1385     "sha512",
 1386     NULL
 1387 };
 1388 #endif /* USE_CANLOCK */
 1389 
 1390 /* different confirm choices */
 1391 constext *txt_confirm_choices[] = {
 1392     N_("none"),
 1393     N_("commands"),
 1394     N_("select"),
 1395     N_("quit"),
 1396     N_("commands & quit"),
 1397     N_("commands & select"),
 1398     N_("quit & select"),
 1399     N_("commands & quit & select"),
 1400     NULL
 1401 };
 1402 
 1403 /* different options for goto_next_unread */
 1404 constext *txt_goto_next_unread_options[] = {
 1405     N_("none"),
 1406     N_("PageDown"),
 1407     N_("PageNextUnread"),
 1408     N_("PageDown or PageNextUnread"),
 1409     NULL
 1410 };
 1411 
 1412 /* different options for quick_kill_header / quick_select_header */
 1413 constext *txt_quick_ks_header_options[] = {
 1414     N_("Subject: (case sensitive)"),
 1415     N_("Subject: (ignore case)"),
 1416     N_("From: (case sensitive)"),
 1417     N_("From: (ignore case)"),
 1418     N_("Msg-ID: & full References: line"),
 1419     N_("Msg-ID: & last References: only"),
 1420     N_("Message-ID: entry only"),
 1421     N_("Lines:"),
 1422     NULL
 1423 };
 1424 
 1425 /* different options for trim_article_body */
 1426 constext *txt_trim_article_body_options[] = {
 1427     N_("Don't trim article body"),
 1428     N_("Skip leading blank lines"),
 1429     N_("Skip trailing blank lines"),
 1430     N_("Skip leading and trailing blank l."),
 1431     N_("Compact multiple between text"),
 1432     N_("Compact multiple and skip leading"),
 1433     N_("Compact multiple and skip trailing"),
 1434     N_("Compact mltpl., skip lead. & trai."),
 1435     NULL
 1436 };
 1437 
 1438 /*
 1439  * MIME-Content-Transfer-Encodings.
 1440  */
 1441 /* TODO: can any of this go away? */
 1442 constext *txt_mime_encodings[] = {
 1443     txt_8bit, txt_base64, txt_quoted_printable, txt_7bit,
 1444     NULL
 1445 };
 1446 
 1447 constext *content_encodings[] = {
 1448     "7bit", "quoted-printable", "base64", "8bit", "binary", "x-uuencode",
 1449     NULL
 1450 };
 1451 
 1452 constext *content_types[] = {
 1453     "text", "multipart", "application", "message", "image", "audio", "video",
 1454     NULL
 1455 };
 1456 
 1457 /*
 1458  * Array of possible post processing descriptions and short-keys
 1459  * This must match the ordering of the defines in tin.h
 1460  */
 1461 constext *txt_post_process_types[] = {
 1462         N_("No"),
 1463         N_("Shell archive"),
 1464         N_("Yes"),
 1465         NULL
 1466 };
 1467 
 1468 constext *txt_sort_a_type[] = {
 1469         N_("Nothing"),
 1470         N_("Subject: (descending)"),
 1471         N_("Subject: (ascending)"),
 1472         N_("From: (descending)"),
 1473         N_("From: (ascending)"),
 1474         N_("Date: (descending)"),
 1475         N_("Date: (ascending)"),
 1476         N_("Score (descending)"),
 1477         N_("Score (ascending)"),
 1478         N_("Lines: (descending)"),
 1479         N_("Lines: (ascending)"),
 1480         NULL
 1481 };
 1482 
 1483 constext *txt_sort_t_type[] = {
 1484         N_("Nothing"),
 1485         N_("Score (descending)"),
 1486         N_("Score (ascending)"),
 1487         N_("Last posting date (descending)"),
 1488         N_("Last posting date (ascending)"),
 1489         NULL
 1490 };
 1491 
 1492 #ifdef USE_HEAPSORT
 1493 constext *txt_sort_functions[] = {
 1494         N_("Quick-sort"),
 1495         N_("Heap-sort"),
 1496         NULL
 1497 };
 1498 #endif /* USE_HEAPSORT */
 1499 
 1500 /* Ways of handling bogus groups */
 1501 constext *txt_strip_bogus_type[] = {
 1502         N_("Always Keep"),
 1503         N_("Always Remove"),
 1504         N_("Mark with D on selection screen"),
 1505         NULL
 1506 };
 1507 
 1508 /* Ways of handling killed articles */
 1509 constext *txt_kill_level_type[] = {
 1510         N_("Kill only unread arts"),
 1511         N_("Kill all arts & show with K"), /* TODO: s/K/art_marked_killed/ */
 1512         N_("Kill all arts and never show"),
 1513         NULL
 1514 };
 1515 
 1516 /* Various quoting styles */
 1517 constext *txt_quote_style_type[] = {
 1518         N_("Nothing special"),
 1519         N_("Compress quotes"),
 1520         N_("Quote signatures"),
 1521         N_("Compress quotes, quote sigs"),
 1522         N_("Quote empty lines"),
 1523         N_("Compress quotes, quote empty lines"),
 1524         N_("Quote sigs & empty lines"),
 1525         N_("Comp. q., quote sigs & empty lines"),
 1526         NULL
 1527 };
 1528 
 1529 #ifdef CHARSET_CONVERSION
 1530 /* supported charsets */
 1531 constext *txt_mime_charsets[] = {
 1532     "US-ASCII",
 1533     "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5",
 1534     "ISO-8859-7", "ISO-8859-9", "ISO-8859-10", "ISO-8859-13", "ISO-8859-14",
 1535     "ISO-8859-15", "ISO-8859-16",
 1536     "KOI8-RU", "KOI8-R", "KOI8-U",
 1537     "EUC-CN", "EUC-JP", "EUC-KR", "EUC-TW",
 1538     "ISO-2022-CN", "ISO-2022-CN-EXT", "ISO-2022-JP", "ISO-2022-JP-1",
 1539     "ISO-2022-JP-2",
 1540     "Big5",
 1541     "UTF-8",
 1542     NULL
 1543 };
 1544 #endif /* CHARSET_CONVERSION */
 1545 
 1546 /* 7bit charsets, US-ASCII must be the first entry */
 1547 constext *txt_mime_7bit_charsets[] = {
 1548     "US-ASCII",
 1549     "ISO-2022-CN", "ISO-2022-CN-EXT", "ISO-2022-JP", "ISO-2022-JP-1",
 1550     "ISO-2022-JP-2", "ISO-2022-KR",
 1551     "HZ-GB-2312",
 1552     NULL
 1553 };
 1554 
 1555 /* different mailbox formats */
 1556 constext *txt_mailbox_formats[] = {
 1557     "MBOXO",
 1558     "MBOXRD",
 1559     "MMDF",
 1560     NULL
 1561 };
 1562 
 1563 /* interactive mailers */
 1564 constext *txt_interactive_mailers[] = {
 1565     N_("no"),
 1566     N_("with headers"),
 1567     N_("without headers"),
 1568     NULL
 1569 };
 1570 
 1571 #ifdef HAVE_UNICODE_NORMALIZATION
 1572 constext *txt_normalization_forms[] = {
 1573     N_("None"),
 1574     N_("NFKC"),
 1575 #   if (HAVE_UNICODE_NORMALIZATION >= 2)
 1576     N_("NFKD"),
 1577     N_("NFC"),
 1578     N_("NFD"),
 1579 #   endif /* HAVE_UNICODE_NORMALIZATION >= 2 */
 1580     NULL
 1581 };
 1582 #endif /* HAVE_UNICODE_NORMALIZATION */
 1583 
 1584 struct opttxt txt_display_options = {
 1585     NULL,
 1586     N_("Display Options"),
 1587     NULL
 1588 };
 1589 
 1590 #ifdef HAVE_COLOR
 1591 struct opttxt txt_color_options = {
 1592     NULL,
 1593     N_("Color Options"),
 1594     NULL
 1595 };
 1596 #else
 1597 struct opttxt txt_highlight_options = {
 1598     NULL,
 1599     N_("Highlight Options"),
 1600     NULL
 1601 };
 1602 #endif /* HAVE_COLOR */
 1603 
 1604 struct opttxt txt_getart_limit_options = {
 1605     NULL,
 1606     N_("Article-Limiting Options"),
 1607     NULL
 1608 };
 1609 
 1610 struct opttxt txt_posting_options = {
 1611     NULL,
 1612     N_("Posting/Mailing Options"),
 1613     NULL
 1614 };
 1615 
 1616 struct opttxt txt_saving_options = {
 1617     NULL,
 1618     N_("Saving/Printing Options"),
 1619     NULL
 1620 };
 1621 
 1622 struct opttxt txt_expert_options = {
 1623     NULL,
 1624     N_("Expert Options"),
 1625     NULL
 1626 };
 1627 
 1628 struct opttxt txt_filtering_options = {
 1629     NULL,
 1630     N_("Filtering Options"),
 1631     NULL
 1632 };
 1633 
 1634 struct opttxt txt_beginner_level = {
 1635     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 1636     N_("Show mini menu & posting etiquette"),
 1637     N_("# If ON show a mini menu of useful commands at each level\n\
 1638 # and posting etiquette after composing an article\n")
 1639 };
 1640 
 1641 struct opttxt txt_show_description = {
 1642     N_("Show short description for each newsgroup. <SPACE> toggles & <CR> sets."),
 1643     N_("Show description of each newsgroup"),
 1644     N_("# If ON show group description text after newsgroup name at\n\
 1645 # group selection level\n")
 1646 };
 1647 
 1648 struct opttxt txt_show_author = {
 1649     N_("Show From (author) fields in group & thread level. <SPACE> toggles & <CR> sets."),
 1650     N_("In group and thread level, show author by"),
 1651     N_("# Part of From field to display in group and thread level\n\
 1652 # Possible values are (the default is marked with *):\n\
 1653 #   0 = none\n\
 1654 #   1 = address\n\
 1655 # * 2 = full name\n\
 1656 #   3 = both\n")
 1657 };
 1658 
 1659 struct opttxt txt_draw_arrow = {
 1660     N_("Draw -> or highlighted bar for selection. <SPACE> toggles & <CR> sets."),
 1661     N_("Draw -> instead of highlighted bar"),
 1662     N_("# If ON use -> otherwise highlighted bar for selection\n")
 1663 };
 1664 
 1665 struct opttxt txt_inverse_okay = {
 1666     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 1667     N_("Use inverse video for page headers"),
 1668     N_("# If ON use inverse video for page headers at different levels\n")
 1669 };
 1670 
 1671 struct opttxt txt_thread_articles = {
 1672     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 1673     N_("Thread articles by"),
 1674     N_("# Thread articles by ...\n\
 1675 # Possible values are (the default is marked with *):\n\
 1676 #   0 = nothing\n\
 1677 #   1 = Subject\n\
 1678 #   2 = References\n\
 1679 # * 3 = Both (Subject and References)\n\
 1680 #   4 = Multipart Subject\n\
 1681 #   5 = Percentage Match\n")
 1682 };
 1683 
 1684 struct opttxt txt_thread_perc = {
 1685     N_("Enter percentage match required to thread together. <CR> sets."),
 1686     N_("Thread percentage match"),
 1687     /* xgettext:no-c-format */
 1688     N_("# Thread percentage match...\n\
 1689 # the percentage of characters in the subject of an article that must match\n\
 1690 # a base article for both those articles to be considered to belong to the\n\
 1691 # same thread. This option is an integer percentage, eg. 80, no decimals may\n\
 1692 # follow. If 80 is used here, then 80% of the characters must match exactly,\n\
 1693 # no insertion of a character, for the two articles to be put in the same\n\
 1694 # thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n\
 1695 # 'harppy' would be threaded separately from 'happy'\n")
 1696 };
 1697 
 1698 struct opttxt txt_thread_score = {
 1699     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 1700     N_("Score of a thread"),
 1701     N_("# Thread score\n\
 1702 # Possible values are (the default is marked with *):\n\
 1703 # * 0 = max\n\
 1704 #   1 = sum\n\
 1705 #   2 = average\n")
 1706 };
 1707 
 1708 struct opttxt txt_sort_article_type = {
 1709     N_("Sort articles by Subject, From, Date or Score. <SPACE> toggles & <CR> sets."),
 1710     N_("Sort articles by"),
 1711     N_("# Sort articles by ...\n\
 1712 # Possible values are (the default is marked with *):\n\
 1713 #   0 = nothing\n\
 1714 #   1 = Subject descending\n\
 1715 #   2 = Subject ascending\n\
 1716 #   3 = From descending\n\
 1717 #   4 = From ascending\n\
 1718 #   5 = Date descending\n\
 1719 # * 6 = Date ascending\n\
 1720 #   7 = Score descending\n\
 1721 #   8 = Score ascending\n\
 1722 #   9 = Lines descending\n\
 1723 #  10 = Lines ascending\n")
 1724 };
 1725 
 1726 struct opttxt txt_sort_threads_type = {
 1727     N_("Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."),
 1728     N_("Sort threads by"),
 1729     N_("# Sort thread by ...\n\
 1730 # Possible values are (the default is marked with *):\n\
 1731 #   0 = nothing\n\
 1732 # * 1 = Score descending\n\
 1733 #   2 = Score ascending\n\
 1734 #   3 = Last posting date descending\n\
 1735 #   4 = Last posting date ascending\n")
 1736 };
 1737 
 1738 struct opttxt txt_pos_first_unread = {
 1739     N_("Put cursor at first/last unread art in groups. <SPACE> toggles & <CR> sets."),
 1740     N_("Go to first unread article in group"),
 1741     N_("# If ON put cursor at first unread art in group otherwise last art\n")
 1742 };
 1743 
 1744 struct opttxt txt_show_only_unread_arts = {
 1745     N_("Show all articles or only unread articles. <SPACE> toggles & <CR> sets."),
 1746     N_("Show only unread articles"),
 1747     N_("# If ON show only new/unread articles otherwise show all.\n")
 1748 };
 1749 
 1750 struct opttxt txt_show_only_unread_groups = {
 1751     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 1752     N_("Show only groups with unread arts"),
 1753     N_("# If ON show only subscribed to groups that contain unread articles.\n")
 1754 };
 1755 
 1756 struct opttxt txt_kill_level = {
 1757     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 1758     N_("Filter which articles"),
 1759     N_("# Filter which articles\n\
 1760 # Possible values are (the default is marked with *):\n\
 1761 # * 0 = only kill unread articles\n\
 1762 #   1 = kill all articles and show in threads marked with K\n\
 1763 #   2 = kill all articles and never show them\n")
 1764 };
 1765 
 1766 struct opttxt txt_goto_next_unread = {
 1767     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 1768     N_("Go to the next unread article with"),
 1769     N_("# Go to the unread article with following key(s)\n\
 1770 # Possible values are (the default is marked with *):\n\
 1771 #   0 = nothing\n\
 1772 #   1 = PAGE DOWN\n\
 1773 # * 2 = TAB\n\
 1774 #   3 = PAGE DOWN or TAB\n")
 1775 };
 1776 
 1777 struct opttxt txt_trim_article_body = {
 1778     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 1779     N_("How to treat blank lines"),
 1780     N_("# Trim the article body, remove unnecessary blank lines.\n\
 1781 # Possible values are (the default is marked with *):\n\
 1782 # * 0 = Nothing special\n\
 1783 #   1 = Skip leading blank lines\n\
 1784 #   2 = Skip trailing blank lines\n\
 1785 #   3 = Skip leading and trailing blank lines\n\
 1786 #   4 = Compact multiple blank lines between text blocks\n\
 1787 #   5 = Compact multiple blank lines between text blocks and skip\n\
 1788 #       leading blank lines\n\
 1789 #   6 = Compact multiple blank lines between text blocks and skip\n\
 1790 #       trailing blank lines\n\
 1791 #   7 = Compact multiple blank lines between text blocks and skip\n\
 1792 #       leading and trailing blank lines\n")
 1793 };
 1794 
 1795 struct opttxt txt_auto_list_thread = {
 1796     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 1797     N_("List thread using right arrow key"),
 1798     N_("# If ON automatically list thread when entering it using right arrow key.\n")
 1799 };
 1800 
 1801 struct opttxt txt_art_marked_deleted = {
 1802     N_("Enter character to indicate deleted articles. <CR> sets, <ESC> cancels."),
 1803     N_("Character to show deleted articles"),
 1804     N_("# Character used to show that an art was deleted (default 'D')\n\
 1805 # _ is turned into ' '\n")
 1806 };
 1807 
 1808 struct opttxt txt_art_marked_inrange = {
 1809     N_("Enter character to indicate articles in a range. <CR> sets, <ESC> cancels."),
 1810     N_("Character to show inrange articles"),
 1811     N_("# Character used to show that an art is in a range (default '#')\n\
 1812 # _ is turned into ' '\n")
 1813 };
 1814 
 1815 struct opttxt txt_art_marked_return = {
 1816     N_("Enter character to indicate that article will return. <CR> sets, <ESC> cancels."),
 1817     N_("Character to show returning arts"),
 1818     N_("# Character used to show that an art will return (default '-')\n\
 1819 # _ is turned into ' '\n")
 1820 };
 1821 
 1822 struct opttxt txt_art_marked_selected = {
 1823     N_("Enter character to indicate selected articles. <CR> sets, <ESC> cancels."),
 1824     N_("Character to show selected articles"),
 1825     N_("# Character used to show that an art was auto-selected (default '*')\n\
 1826 # _ is turned into ' '\n")
 1827 };
 1828 
 1829 struct opttxt txt_art_marked_recent = {
 1830     N_("Enter character to indicate recent articles. <CR> sets, <ESC> cancels."),
 1831     N_("Character to show recent articles"),
 1832     N_("# Character used to show that an art is recent (default 'o')\n\
 1833 # _ is turned into ' '\n")
 1834 };
 1835 
 1836 struct opttxt txt_art_marked_unread = {
 1837     N_("Enter character to indicate unread articles. <CR> sets, <ESC> cancels."),
 1838     N_("Character to show unread articles"),
 1839     N_("# Character used to show that an art is unread (default '+')\n\
 1840 # _ is turned into ' '\n")
 1841 };
 1842 
 1843 struct opttxt txt_art_marked_read = {
 1844     N_("Enter character to indicate read articles. <CR> sets, <ESC> cancels."),
 1845     N_("Character to show read articles"),
 1846     N_("# Character used to show that an art was read (default ' ')\n\
 1847 # _ is turned into ' '\n")
 1848 };
 1849 
 1850 struct opttxt txt_art_marked_killed = {
 1851     N_("Enter character to indicate killed articles. <CR> sets, <ESC> cancels."),
 1852     N_("Character to show killed articles"),
 1853     N_("# Character used to show that an art was killed (default 'K')\n\
 1854 # kill_level must be set accordingly, _ is turned into ' '\n")
 1855 };
 1856 
 1857 struct opttxt txt_art_marked_read_selected = {
 1858     N_("Enter character to indicate read selected articles. <CR> sets, <ESC> cancels."),
 1859     N_("Character to show readselected arts"),
 1860     N_("# Character used to show that an art was selected before read (default ':')\n\
 1861 # kill_level must be set accordingly, _ is turned into ' '\n")
 1862 };
 1863 
 1864 struct opttxt txt_abbreviate_groupname = {
 1865     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 1866     N_("Abbreviate long newsgroup names"),
 1867     N_("# If ON abbreviate (if necessary) long newsgroup names at group selection\n\
 1868 # level and article level like this:\n\
 1869 #   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n")
 1870 };
 1871 
 1872 struct opttxt txt_scroll_lines = {
 1873     N_("0 = full page scrolling, -1 = show previous last line as first on next page, -2 = half page"),
 1874     N_("Number of lines to scroll in pager"),
 1875     N_("# Number of lines that cursor-up/down will scroll in article pager\n\
 1876 # Possible values are (the default is marked with *):\n\
 1877 #  -2 = half-page scrolling\n\
 1878 #  -1 = the top/bottom line is carried over onto the next page\n\
 1879 #   0 = page-by-page (traditional behavior)\n\
 1880 # * 1 = line-by-line\n\
 1881 #   2 or greater = scroll by 2 or more lines (only in the pager)\n")
 1882 };
 1883 
 1884 struct opttxt txt_show_signatures = {
 1885     N_("Display signatures. <SPACE> toggles & <CR> sets."),
 1886     N_("Display signatures"),
 1887     N_("# If OFF don't show signatures when displaying articles\n")
 1888 };
 1889 
 1890 struct opttxt txt_hide_uue = {
 1891     N_("Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."),
 1892     N_("Display uue data as an attachment"),
 1893     N_("# Handling of uuencoded data in the pager\n\
 1894 # Possible values are (the default is marked with *):\n\
 1895 # * 0 = no, display raw uuencoded data\n\
 1896 #   1 = yes, uuencoded data will be condensed to a single tag line showing\n\
 1897 #       size and filename, similar to how MIME attachments are displayed\n\
 1898 #   2 = hide all, as for 1, but any line that looks like uuencoded data will\n\
 1899 #       be folded into a tag line.\n")
 1900 };
 1901 
 1902 struct opttxt txt_tex2iso_conv = {
 1903     N_("Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."),
 1904     N_("Display \"a as Umlaut-a"),
 1905     N_("# If ON decode German style TeX umlaut codes to ISO and\n\
 1906 # show \"a as Umlaut-a, etc.\n")
 1907 };
 1908 
 1909 struct opttxt txt_news_headers_to_display = {
 1910     N_("Space separated list of header fields"),
 1911     N_("Display these header fields (or *)"),
 1912     N_("# Which news headers you wish to see. If you want to see _all_ the headers,\n\
 1913 # place an '*' as this value. This is the only way a wildcard can be used.\n\
 1914 # If you enter 'X-' as the value, you will see all headers beginning with\n\
 1915 # 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting with\n\
 1916 # spaces. Not defining anything turns off this option.\n")
 1917 };
 1918 
 1919 struct opttxt txt_news_headers_to_not_display = {
 1920     N_("Space separated list of header fields"),
 1921     N_("Do not display these header fields"),
 1922     N_("# Same as 'news_headers_to_display' except it denotes the opposite.\n\
 1923 # An example of using both options might be if you thought X- headers were\n\
 1924 # A Good Thing(tm), but thought Alan and Pape were miscreants...well then you\n\
 1925 # would do something like this:\n\
 1926 # news_headers_to_display=X-\n\
 1927 # news_headers_to_not_display=X-Alan X-Pape\n\
 1928 # Not defining anything turns off this option.\n")
 1929 };
 1930 
 1931 struct opttxt txt_alternative_handling = {
 1932     N_("Do you want to enable automatic handling of multipart/alternative articles?"),
 1933     N_("Skip multipart/alternative parts"),
 1934     N_("# If ON strip multipart/alternative messages automatically\n")
 1935 };
 1936 
 1937 struct opttxt txt_verbatim_handling = {
 1938     N_("Enable detection of verbatim blocks? <SPACE> toggles & <CR> sets."),
 1939     N_("Detection of verbatim blocks"),
 1940     N_("# If ON detect verbatim blocks in articles\n")
 1941 };
 1942 
 1943 #ifdef HAVE_COLOR
 1944 struct opttxt txt_quote_regex = {
 1945     N_("A regex used to decide which lines to show in col_quote."),
 1946     N_("Regex used to show quoted lines"),
 1947     N_("# A regular expression that tin will use to decide which lines are\n\
 1948 # quoted when viewing articles. Quoted lines are shown in col_quote.\n\
 1949 # If you leave this blank, tin will use a built in default.\n")
 1950 };
 1951 
 1952 struct opttxt txt_quote_regex2 = {
 1953     N_("A regex used to decide which lines to show in col_quote2."),
 1954     N_("Regex used to show twice quoted l."),
 1955     N_("# A regular expression that tin will use to decide which lines are\n\
 1956 # quoted twice. Twice quoted lines are shown in col_quote2.\n\
 1957 # If you leave this blank, tin will use a built in default.\n")
 1958 };
 1959 
 1960 struct opttxt txt_quote_regex3 = {
 1961     N_("A regex used to decide which lines to show in col_quote3."),
 1962     N_("Regex used to show >= 3 times q.l."),
 1963     N_("# A regular expression that tin will use to decide which lines are\n\
 1964 # quoted >=3 times. >=3 times quoted lines are shown in col_quote3.\n\
 1965 # If you leave this blank, tin will use a built in default.\n")
 1966 };
 1967 
 1968 struct opttxt txt_extquote_handling = {
 1969     N_("Enable detection of external quotes? <SPACE> toggles & <CR> sets."),
 1970     N_("Detection of external quotes"),
 1971     N_("# If ON detect quoted text from external sources in articles\n")
 1972 };
 1973 
 1974 struct opttxt txt_extquote_regex = {
 1975     N_("A regex used to decide which lines to show in col_extquote."),
 1976     N_("Regex used to show quotes from external sources"),
 1977     N_("# A regular expression that tin will use to decide which lines are\n\
 1978 # external quotes. Text from external quotes is shown in col_extquote.\n\
 1979 # If you leave this blank, tin will use a built in default.\n")
 1980 };
 1981 #endif /* HAVE_COLOR */
 1982 
 1983 struct opttxt txt_slashes_regex = {
 1984     N_("A regex used to decide which words to show in col_markslashes."),
 1985     N_("Regex used to highlight /slashes/"),
 1986     N_("# A regular expression that tin will use to decide which words\n\
 1987 # bounded by '/' are to be shown in col_markslashes.\n\
 1988 # If you leave this blank, tin will use a built in default.\n")
 1989 };
 1990 
 1991 struct opttxt txt_stars_regex = {
 1992     N_("A regex used to decide which words to show in col_markstars."),
 1993     N_("Regex used to highlight *stars*"),
 1994     N_("# A regular expression that tin will use to decide which words\n\
 1995 # bounded by '*' are to be shown in col_markstars.\n\
 1996 # If you leave this blank, tin will use a built in default.\n")
 1997 };
 1998 
 1999 struct opttxt txt_strokes_regex = {
 2000     N_("A regex used to decide which words to show in col_markstroke."),
 2001     N_("Regex used to highlight -strokes-"),
 2002     N_("# A regular expression that tin will use to decide which words\n\
 2003 # bounded by '-' are to be shown in col_markstroke.\n\
 2004 # If you leave this blank, tin will use a built in default.\n")
 2005 };
 2006 
 2007 struct opttxt txt_underscores_regex = {
 2008     N_("A regex used to decide which words to show in col_markdash."),
 2009     N_("Regex used to highlight _underline_"),
 2010     N_("# A regular expression that tin will use to decide which words\n\
 2011 # bounded by '_' are to be shown in col_markdash.\n\
 2012 # If you leave this blank, tin will use a built in default.\n")
 2013 };
 2014 
 2015 struct opttxt txt_strip_re_regex = {
 2016     N_("A regex used to find Subject prefixes to remove.  Use '|' as separator."),
 2017     N_("Regex with Subject prefixes"),
 2018     N_("# A regular expression that tin will use to find Subject prefixes\n\
 2019 # which will be removed before showing the header.\n")
 2020 };
 2021 
 2022 struct opttxt txt_strip_was_regex = {
 2023     N_("A regex used to find Subject suffixes to remove.  Use '|' as separator."),
 2024     N_("Regex with Subject suffixes"),
 2025     N_("# A regular expression that tin will use to find Subject suffixes\n\
 2026 # which will be removed when replying or posting followup.\n")
 2027 };
 2028 
 2029 struct opttxt txt_verbatim_begin_regex = {
 2030     N_("A regex used to find the begin of a verbatim block."),
 2031     N_("Regex for begin of a verbatim block"),
 2032     N_("# A regular expression that tin will use to find the begin of\n\
 2033 # a verbatim block.\n")
 2034 };
 2035 
 2036 struct opttxt txt_verbatim_end_regex = {
 2037     N_("A regex used to find the end of a verbatim block."),
 2038     N_("Regex for end of a verbatim block"),
 2039     N_("# A regular expression that tin will use to find the end of\n\
 2040 # a verbatim block.\n")
 2041 };
 2042 
 2043 struct opttxt txt_metamail_prog = {
 2044     N_("Enter name and options for external MIME viewer, --internal for built-in viewer"),
 2045     N_("MIME binary content viewer"),
 2046     N_("# If --internal automatically use the built in MIME viewer for non-text\n\
 2047 # parts of articles.\n\
 2048 # Otherwise specify an external viewer program (eg, metamail) or leave blank\n\
 2049 # for no automatic viewing\n")
 2050 };
 2051 
 2052 struct opttxt txt_ask_for_metamail = {
 2053     N_("Confirm before starting non-text viewing program"),
 2054     N_("Ask before using MIME viewer"),
 2055     N_("# If ON tin will ask before using metamail to display MIME messages\n\
 2056 # this only happens if metamail_prog is set to something\n")
 2057 };
 2058 
 2059 struct opttxt txt_catchup_read_groups = {
 2060     N_("Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."),
 2061     N_("Catchup read groups when quitting"),
 2062     N_("# If ON ask user if read groups should all be marked read\n")
 2063 };
 2064 
 2065 struct opttxt txt_group_catchup_on_exit = {
 2066     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2067     N_("Catchup group using left key"),
 2068     N_("# If ON catchup group/thread when leaving with the left arrow key.\n")
 2069 };
 2070 
 2071 struct opttxt txt_thread_catchup_on_exit = {
 2072     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2073     N_("Catchup thread by using left key"),
 2074     ""
 2075 };
 2076 
 2077 struct opttxt txt_confirm_choice = {
 2078     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2079     N_("Which actions require confirmation"),
 2080     N_("# What should we ask confirmation for.\n")
 2081 };
 2082 
 2083 struct opttxt txt_mark_ignore_tags = {
 2084     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2085     N_("'Mark as (un)read' ignores tags"),
 2086     N_("# If ON the 'Mark as (un)read' function marks only the current article.\n")
 2087 };
 2088 
 2089 struct opttxt txt_url_handler = {
 2090     N_("Program to run to open URLs, <CR> sets, <ESC> cancels."),
 2091     N_("Program that opens URLs"),
 2092     N_("# The program used to open URLs. The actual URL will be appended\n")
 2093 };
 2094 
 2095 struct opttxt txt_use_mouse = {
 2096     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2097     N_("Use mouse in xterm"),
 2098     N_("# If ON enable mouse button support on xterm terminals\n")
 2099 };
 2100 
 2101 #ifdef HAVE_KEYPAD
 2102 struct opttxt txt_use_keypad = {
 2103     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2104     N_("Use scroll keys on keypad"),
 2105     N_("# If ON enable scroll keys on terminals that support it\n")
 2106 };
 2107 #endif /* HAVE_KEYPAD */
 2108 
 2109 struct opttxt txt_getart_limit = {
 2110     N_("Enter maximum number of article to get. <CR> sets."),
 2111     N_("Number of articles to get"),
 2112     N_("# Number of articles to get (0=no limit), if negative sets maximum number\n\
 2113 # of already read articles to be read before first unread one\n")
 2114 };
 2115 
 2116 struct opttxt txt_recent_time = {
 2117     N_("Enter number of days article is considered recent. <CR> sets."),
 2118     N_("Article recentness time limit"),
 2119     N_("# Number of days in which article is considered recent, (0=OFF)\n")
 2120 };
 2121 
 2122 struct opttxt txt_wildcard = {
 2123     N_("WILDMAT for normal wildcards, REGEX for full regular expression matching."),
 2124     N_("Wildcard matching"),
 2125     N_("# Wildcard matching\n\
 2126 # Possible values are (the default is marked with *):\n\
 2127 # * 0 = wildmat\n\
 2128 #   1 = regex\n")
 2129 };
 2130 
 2131 struct opttxt txt_score_limit_kill = {
 2132     N_("Enter minimal score before an article is marked killed. <CR> sets."),
 2133     N_("Score limit (kill)"),
 2134     N_("# Score limit before an article is marked killed\n")
 2135 };
 2136 
 2137 struct opttxt txt_score_kill = {
 2138     N_("Enter default score to kill articles. <CR> sets."),
 2139     N_("Default score to kill articles"),
 2140     N_("# Default score to kill articles\n")
 2141 };
 2142 
 2143 struct opttxt txt_score_limit_select = {
 2144     N_("Enter minimal score before an article is marked hot. <CR> sets."),
 2145     N_("Score limit (select)"),
 2146     N_("# Score limit before an article is marked hot\n")
 2147 };
 2148 
 2149 struct opttxt txt_score_select = {
 2150     N_("Enter default score to select articles. <CR> sets."),
 2151     N_("Default score to select articles"),
 2152     N_("# Default score to select articles\n")
 2153 };
 2154 
 2155 #ifdef XFACE_ABLE
 2156 struct opttxt txt_use_slrnface = {
 2157     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2158     N_("Use slrnface to show ''X-Face:''s"),
 2159     N_("# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n\
 2160 # Only useful when running in an xterm.\n")
 2161 };
 2162 #endif /* XFACE_ABLE */
 2163 
 2164 #ifdef HAVE_COLOR
 2165 struct opttxt txt_use_color = {
 2166     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2167     N_("Use ANSI color"),
 2168     N_("# If ON using ANSI-color\n")
 2169 };
 2170 
 2171 struct opttxt txt_col_normal = {
 2172     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2173     N_("Standard foreground color"),
 2174     N_("# Standard foreground color\n\
 2175 # Default: -1 (default color)\n")
 2176 };
 2177 
 2178 struct opttxt txt_col_back = {
 2179     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2180     N_("Standard background color"),
 2181     N_("# Standard background color\n\
 2182 # Default: -1 (default color)\n")
 2183 };
 2184 
 2185 struct opttxt txt_col_invers_bg = {
 2186     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2187     N_("Color for inverse text (background)"),
 2188     N_("# Color of background for inverse text\n\
 2189 # Default: 4 (blue)\n")
 2190 };
 2191 
 2192 struct opttxt txt_col_invers_fg = {
 2193     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2194     N_("Color for inverse text (foreground)"),
 2195     N_("# Color of foreground for inverse text\n\
 2196 # Default: 7 (white)\n")
 2197 };
 2198 
 2199 struct opttxt txt_col_text = {
 2200     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2201     N_("Color of text lines"),
 2202     N_("# Color of text lines\n\
 2203 # Default: -1 (default color)\n")
 2204 };
 2205 
 2206 struct opttxt txt_col_minihelp = {
 2207     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2208     N_("Color of mini help menu"),
 2209     N_("# Color of mini help menu\n\
 2210 # Default: 3 (brown)\n")
 2211 };
 2212 
 2213 struct opttxt txt_col_help = {
 2214     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2215     N_("Color of help text"),
 2216     N_("# Color of help pages\n\
 2217 # Default: -1 (default color)\n")
 2218 };
 2219 
 2220 struct opttxt txt_col_message = {
 2221     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2222     N_("Color of status messages"),
 2223     N_("# Color of messages in last line\n\
 2224 # Default: 6 (cyan)\n")
 2225 };
 2226 
 2227 struct opttxt txt_col_quote = {
 2228     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2229     N_("Color of quoted lines"),
 2230     N_("# Color of quote-lines\n\
 2231 # Default: 2 (green)\n")
 2232 };
 2233 
 2234 struct opttxt txt_col_quote2 = {
 2235     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2236     N_("Color of twice quoted line"),
 2237     N_("# Color of twice quoted lines\n\
 2238 # Default: 3 (brown)\n")
 2239 };
 2240 
 2241 struct opttxt txt_col_quote3 = {
 2242     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2243     N_("Color of =>3 times quoted line"),
 2244     N_("# Color of >=3 times quoted lines\n\
 2245 # Default: 4 (blue)\n")
 2246 };
 2247 
 2248 struct opttxt txt_col_head = {
 2249     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2250     N_("Color of article header lines"),
 2251     N_("# Color of header-lines\n\
 2252 # Default: 2 (green)\n")
 2253 };
 2254 
 2255 struct opttxt txt_col_newsheaders = {
 2256     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2257     N_("Color of actual news header fields"),
 2258     N_("# Color of actual news header fields\n\
 2259 # Default: 9 (light red)\n")
 2260 };
 2261 
 2262 struct opttxt txt_col_subject = {
 2263     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2264     N_("Color of article subject lines"),
 2265     N_("# Color of article subject\n\
 2266 # Default: 6 (cyan)\n")
 2267 };
 2268 
 2269 struct opttxt txt_col_extquote = {
 2270     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2271     N_("Color of external quotes"),
 2272     N_("# Color of quoted text from external sources\n\
 2273 # Default: 5 (pink)\n")
 2274 };
 2275 
 2276 struct opttxt txt_col_response = {
 2277     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2278     N_("Color of response counter"),
 2279     N_("# Color of response counter\n\
 2280 # Default: 2 (green)\n")
 2281 };
 2282 
 2283 struct opttxt txt_col_from = {
 2284     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2285     N_("Color of sender (From:)"),
 2286     N_("# Color of sender (From:)\n\
 2287 # Default: 2 (green)\n")
 2288 };
 2289 
 2290 struct opttxt txt_col_title = {
 2291     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2292     N_("Color of help/mail sign"),
 2293     N_("# Color of Help/Mail-Sign\n\
 2294 # Default: 4 (blue)\n")
 2295 };
 2296 
 2297 struct opttxt txt_col_signature = {
 2298     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2299     N_("Color of signatures"),
 2300     N_("# Color of signature\n\
 2301 # Default: 4 (blue)\n")
 2302 };
 2303 
 2304 struct opttxt txt_col_urls = {
 2305     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2306     N_("Color of highlighted URLs"),
 2307     N_("# Color of highlighted URLs\n\
 2308 # Default: -1 (default color)\n")
 2309 };
 2310 
 2311 struct opttxt txt_col_verbatim = {
 2312     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2313     N_("Color of verbatim blocks"),
 2314     N_("# Color of verbatim blocks\n\
 2315 # Default: 5 (pink)\n")
 2316 };
 2317 
 2318 struct opttxt txt_col_markstar = {
 2319     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2320     N_("Color of highlighting with *stars*"),
 2321     N_("# Color of word highlighting with *stars*\n\
 2322 # Default: 11 (yellow)\n")
 2323 };
 2324 
 2325 struct opttxt txt_col_markdash = {
 2326     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2327     N_("Color of highlighting with _dash_"),
 2328     N_("# Color of word highlighting with _dash_\n\
 2329 # Default: 13 (light pink)\n")
 2330 };
 2331 
 2332 struct opttxt txt_col_markslash = {
 2333     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2334     N_("Color of highlighting with /slash/"),
 2335     N_("# Color of word highlighting with /slash/\n\
 2336 # Default: 14 (light cyan)\n")
 2337 };
 2338 
 2339 struct opttxt txt_col_markstroke = {
 2340     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2341     N_("Color of highlighting with -stroke-"),
 2342     N_("# Color of word highlighting with -stroke-\n\
 2343 # Default: 12 (light blue)\n")
 2344 };
 2345 #endif /* HAVE_COLOR */
 2346 
 2347 struct opttxt txt_mono_markstar = {
 2348     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2349     N_("Attr. of highlighting with *stars*"),
 2350     N_("# Attributes of word highlighting on mono terminals\n\
 2351 # Possible values are:\n\
 2352 #   0 = Normal\n\
 2353 #   1 = Underline\n\
 2354 #   2 = Best highlighting\n\
 2355 #   3 = Reverse video\n\
 2356 #   4 = Blinking\n\
 2357 #   5 = Half bright\n\
 2358 #   6 = Bold\n\n\
 2359 # Attribute of word highlighting with *stars*\n\
 2360 # Default: 6 (bold)\n")
 2361 };
 2362 
 2363 struct opttxt txt_mono_markdash = {
 2364     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2365     N_("Attr. of highlighting with _dash_"),
 2366     N_("# Attribute of word highlighting with _dash_\n\
 2367 # Default: 2 (best highlighting)\n")
 2368 };
 2369 
 2370 struct opttxt txt_mono_markslash = {
 2371     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2372     N_("Attr. of highlighting with /slash/"),
 2373     N_("# Attribute of word highlighting with /slash/\n\
 2374 # Default: 5 (half bright)\n")
 2375 };
 2376 
 2377 struct opttxt txt_mono_markstroke = {
 2378     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2379     N_("Attr. of highlighting with -stroke-"),
 2380     N_("# Attribute of word highlighting with -stroke-\n\
 2381 # Default: 3 (reverse video)\n")
 2382 };
 2383 
 2384 struct opttxt txt_url_highlight = {
 2385     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2386     N_("URL highlighting in message body"),
 2387     N_("# Enable URL highlighting?\n")
 2388 };
 2389 
 2390 struct opttxt txt_word_highlight = {
 2391     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2392     N_("Word highlighting in message body"),
 2393     N_("# Enable word highlighting?\n")
 2394 };
 2395 
 2396 struct opttxt txt_word_h_display_marks = {
 2397     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2398     N_("What to display instead of mark"),
 2399     N_("# Should the leading and ending stars and dashes also be displayed,\n\
 2400 # even when they are highlighting marks?\n\
 2401 # Possible values are (the default is marked with *):\n\
 2402 #   0 = no\n\
 2403 #   1 = yes, display mark\n\
 2404 # * 2 = print a space instead\n")
 2405 };
 2406 
 2407 struct opttxt txt_wrap_column = {
 2408     N_("Enter column number to wrap article lines to in the pager. <CR> sets."),
 2409     N_("Page line wrap column"),
 2410     N_("# Wrap article lines at column\n")
 2411 };
 2412 
 2413 struct opttxt txt_wrap_on_next_unread = {
 2414     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2415     N_("Wrap around threads on next unread"),
 2416     N_("# If ON wrap around threads on searching next unread article\n")
 2417 };
 2418 
 2419 struct opttxt txt_mail_address = {
 2420     N_("Enter default mail address (and fullname). <CR> sets."),
 2421     N_("Mail address (and fullname)"),
 2422     N_("# User's mail address (and fullname), if not username@host (fullname)\n")
 2423 };
 2424 
 2425 struct opttxt txt_prompt_followupto = {
 2426     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2427     N_("Show empty Followup-To in editor"),
 2428     N_("# If ON show empty Followup-To header when editing an article\n")
 2429 };
 2430 
 2431 struct opttxt txt_sigfile = {
 2432     N_("Enter path/! command/--none to create your default signature. <CR> sets."),
 2433     N_("Create signature from path/command"),
 2434     N_("# Signature path (random sigs)/file to be used when posting/replying\n\
 2435 # sigfile=file       appends file as signature\n\
 2436 # sigfile=!command   executes external command to generate a signature\n\
 2437 #                    (specify %G to pass name of current newsgroup)\n\
 2438 # sigfile=--none     don't append a signature\n")
 2439 };
 2440 
 2441 struct opttxt txt_sigdashes = {
 2442     N_("Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."),
 2443     N_("Prepend signature with \"-- \""),
 2444     N_("# If ON prepend the signature with dashes '\\n-- \\n'\n")
 2445 };
 2446 
 2447 struct opttxt txt_signature_repost = {
 2448     N_("Add signature when reposting articles. <SPACE> toggles & <CR> sets."),
 2449     N_("Add signature when reposting"),
 2450     N_("# If ON add signature to reposted articles\n")
 2451 };
 2452 
 2453 struct opttxt txt_quote_chars = {
 2454     N_("Enter quotation marks, %s or %S for author's initials."),
 2455     N_("Characters used as quote-marks"),
 2456     N_("# Characters used in quoting to followups and replies.\n\
 2457 # '_' is replaced by ' ', %s, %S are replaced by author's initials.\n")
 2458 };
 2459 
 2460 struct opttxt txt_quote_style = {
 2461     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2462     N_("Quoting behavior"),
 2463     N_("# How quoting should be handled when following up or replying.\n\
 2464 # Possible values are (the default is marked with *):\n\
 2465 #   0 = Nothing special\n\
 2466 #   1 = Compress quotes\n\
 2467 #   2 = Quote signatures\n\
 2468 #   3 = Compress quotes, quote signatures\n\
 2469 #   4 = Quote empty lines\n\
 2470 # * 5 = Compress quotes, quote empty lines\n\
 2471 #   6 = Quote signatures, quote empty lines\n\
 2472 #   7 = Compress quotes, quote signatures, quote empty lines\n")
 2473 };
 2474 
 2475 struct opttxt txt_news_quote_format = {
 2476     N_("%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"),
 2477     N_("Quote line when following up"),
 2478     N_("# Format of quote line when mailing/posting/following-up an article\n\
 2479 # %A Address    %D Date   %F Addr+Name   %G Groupname   %M Message-ID\n\
 2480 # %N Full Name  %C First Name   %I Initials\n")
 2481 };
 2482 
 2483 struct opttxt txt_xpost_quote_format = {
 2484     N_("%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"),
 2485     N_("Quote line when cross-posting"),
 2486     ""
 2487 };
 2488 
 2489 struct opttxt txt_mail_quote_format = {
 2490     N_("%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"),
 2491     N_("Quote line when mailing"),
 2492     ""
 2493 };
 2494 
 2495 struct opttxt txt_advertising = {
 2496     N_("If ON, include User-Agent: header. <SPACE> toggles & <CR> sets."),
 2497     N_("Insert 'User-Agent:' header"),
 2498     N_("# If ON include advertising User-Agent: header\n")
 2499 };
 2500 
 2501 #ifndef CHARSET_CONVERSION
 2502 struct opttxt txt_mm_charset = {
 2503     N_("Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."),
 2504     N_("MM_CHARSET"),
 2505     N_("# Charset supported locally which is also used for MIME header and\n\
 2506 # Content-Type header.\n\
 2507 # If not set, the value of the environment variable MM_CHARSET is used.\n\
 2508 # Set to US-ASCII or compile time default if neither of them is defined.\n\
 2509 # If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n\
 2510 # mm_charset is considered not displayable and represented as '?'.\n")
 2511 };
 2512 #else
 2513 struct opttxt txt_mm_network_charset = {
 2514     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2515     N_("MM_NETWORK_CHARSET"),
 2516     N_("# Charset used for MIME (Content-Type) header in postings.\n")
 2517 };
 2518 #   ifdef NO_LOCALE
 2519 struct opttxt txt_mm_local_charset = {
 2520     N_("Enter local charset name (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."),
 2521     N_("MM_LOCAL_CHARSET"),
 2522     N_("# Charset supported locally.\n")
 2523 };
 2524 #   endif /* NO_LOCALE */
 2525 #endif /* !CHARSET_CONVERSION */
 2526 
 2527 struct opttxt txt_mailbox_format = {
 2528     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2529     N_("Mailbox format"),
 2530     N_("# Format of the mailbox.\n")
 2531 };
 2532 
 2533 struct opttxt txt_post_mime_encoding = {
 2534     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2535     N_("MIME encoding in news messages"),
 2536     N_("# MIME encoding (8bit, base64, quoted-printable, 7bit) of the body\n\
 2537 # for mails and posts, if necessary. QP is efficient for most European\n\
 2538 # character sets (ISO-8859-X) with small fraction of non-US-ASCII chars,\n\
 2539 # while Base64 is more efficient for most 8bit East Asian, Greek, and\n\
 2540 # Russian charsets with a lot of 8bit characters.\n")
 2541 };
 2542 
 2543 struct opttxt txt_post_8bit_header = {
 2544     N_("Don't change unless you know what you are doing. <ESC> cancels."),
 2545     N_("Use 8bit characters in news headers"),
 2546     N_("# If ON, 8bit characters in news headers are NOT encoded.\n\
 2547 # default is OFF. Thus 8bit characters are encoded by default.\n\
 2548 # 8bit chars in header are encoded regardless of the value of this\n\
 2549 # parameter unless post_mime_encoding is 8bit as well.\n")
 2550 };
 2551 
 2552 struct opttxt txt_post_process_view = {
 2553     N_("Auto-view post-processed files <SPACE> toggles, <CR> sets, <ESC> cancels."),
 2554     N_("View post-processed files"),
 2555     N_("# If set, post processed files will be opened in a viewer\n")
 2556 };
 2557 
 2558 struct opttxt txt_mail_mime_encoding = {
 2559     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2560     N_("MIME encoding in mail messages"),
 2561     ""
 2562 };
 2563 
 2564 struct opttxt txt_mail_8bit_header = {
 2565     N_("Don't change unless you know what you are doing. <ESC> cancels."),
 2566     N_("Use 8bit characters in mail headers"),
 2567     N_("# If ON, 8bit characters in mail headers are NOT encoded.\n\
 2568 # default is OFF. Thus 8bit characters are encoded by default.\n\
 2569 # 8bit chars in headers are encoded regardless of the value of this parameter\n\
 2570 # unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n\
 2571 # prohibits 8bit characters in mail headers so that you are advised NOT to\n\
 2572 # turn it ON unless you have some compelling reason.\n")
 2573 };
 2574 
 2575 #ifndef USE_CURSES
 2576 struct opttxt txt_strip_blanks = {
 2577     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2578     N_("Strip blanks from ends of lines"),
 2579     N_("# If ON strip blanks from ends of lines for faster display on slow terminals.\n")
 2580 };
 2581 #endif /* !USE_CURSES */
 2582 
 2583 #ifdef HAVE_ICONV_OPEN_TRANSLIT
 2584 struct opttxt txt_translit = {
 2585     N_("If ON, use transliteration. <SPACE> toggles & <CR> sets."),
 2586     N_("Transliteration"),
 2587     N_("# If ON, use //TRANSLIT extension. This means that when a character cannot\n\
 2588 # be represented in the in the target character set, it can be approximated\n\
 2589 # through one or several similarly looking characters.\n")
 2590 };
 2591 #endif /* HAVE_ICONV_OPEN_TRANSLIT */
 2592 
 2593 struct opttxt txt_auto_cc_bcc = {
 2594     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2595     N_("Send you a Cc/Bcc automatically"),
 2596     N_("# Put your name in the Cc: and/or Bcc: field when mailing an article.\n\
 2597 # Possible values are (the default is marked with *):\n\
 2598 # * 0 = No\n\
 2599 #   1 = Cc\n\
 2600 #   2 = Bcc\n\
 2601 #   3 = Cc and Bcc\n")
 2602 };
 2603 
 2604 #ifdef USE_CANLOCK
 2605 struct opttxt txt_cancel_lock_algo = {
 2606     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2607     N_("Hash algorithm for Cancel-Lock/Cancel-Key"),
 2608     N_("# Hash algorithm for Cancel-Lock/Cancel-Key (default 'sha1')\n\
 2609 # Use 'none' to not generate Cancel-Lock headers.\n")
 2610 };
 2611 #endif /* USE_CANLOCK */
 2612 
 2613 struct opttxt txt_spamtrap_warning_addresses = {
 2614     N_("Enter address elements about which you want to be warned. <CR> sets."),
 2615     N_("Spamtrap warning address parts"),
 2616     N_("# A comma-delimited list of address-parts you want to be warned\n\
 2617 # about when trying to reply by email.\n")
 2618 };
 2619 
 2620 struct opttxt txt_filter_days = {
 2621     N_("Enter default number of days a filter entry will be valid. <CR> sets."),
 2622     N_("No. of days a filter entry is valid"),
 2623     N_("# Number of days a short term filter will be active\n")
 2624 };
 2625 
 2626 struct opttxt txt_add_posted_to_filter = {
 2627     N_("Add posted articles to filter. <SPACE> toggles & <CR> sets."),
 2628     N_("Add posted articles to filter"),
 2629     N_("# If ON add posted articles which start a new thread to filter for\n# highlighting follow-ups\n")
 2630 };
 2631 
 2632 struct opttxt txt_maildir = {
 2633     N_("The directory where articles/threads are to be saved in mailbox format."),
 2634     N_("Mail directory"),
 2635     N_("# (-m) directory where articles/threads are saved in mailbox format\n")
 2636 };
 2637 
 2638 struct opttxt txt_batch_save = {
 2639     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2640     N_("Save articles in batch mode (-S)"),
 2641     N_("# If ON articles/threads will be saved in batch mode when save -S\n\
 2642 # or mail (-M/-N) is specified on the command line\n")
 2643 };
 2644 
 2645 struct opttxt txt_savedir = {
 2646     N_("The directory where you want articles/threads saved."),
 2647     N_("Directory to save arts/threads in"),
 2648     N_("# Directory where articles/threads are saved\n")
 2649 };
 2650 
 2651 struct opttxt txt_auto_save = {
 2652     N_("Auto save article/thread by Archive-name: header. <SPACE> toggles & <CR> sets."),
 2653     N_("Use Archive-name: header for save"),
 2654     N_("# If ON articles/threads with Archive-name: in mail header will\n\
 2655 # be automatically saved with the Archive-name & part/patch no.\n")
 2656 };
 2657 
 2658 struct opttxt txt_mark_saved_read = {
 2659     N_("Mark saved articles/threads as read. <SPACE> toggles, <CR> sets, <ESC> cancels."),
 2660     N_("Mark saved articles/threads as read"),
 2661     N_("# If ON mark articles that are saved as read\n")
 2662 };
 2663 
 2664 struct opttxt txt_post_process_type = {
 2665     N_("Do post processing (eg. extract attachments) for saved articles."),
 2666     N_("Post process saved articles"),
 2667     N_("# Perform post processing (saving binary attachments) from saved articles.\n\
 2668 # Possible values are (the default is marked with *):\n\
 2669 # * 0 = no\n\
 2670 #   1 = extract shell archives (shar) only\n\
 2671 #   2 = yes\n")
 2672 };
 2673 
 2674 struct opttxt txt_process_only_unread = {
 2675     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2676     N_("Process only unread articles"),
 2677     N_("# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n")
 2678 };
 2679 
 2680 #ifndef DISABLE_PRINTING
 2681 struct opttxt txt_print_header = {
 2682     N_("Print all or just part of header. <SPACE> toggles & <CR> sets."),
 2683     N_("Print all headers when printing"),
 2684     N_("# If ON print all of article header otherwise just the important lines\n")
 2685 };
 2686 
 2687 struct opttxt txt_printer = {
 2688     N_("The printer program with options that is to be used to print articles/threads."),
 2689     N_("Printer program with options"),
 2690     N_("# Print program with parameters used to print articles/threads\n"),
 2691 };
 2692 #endif /* !DISABLE_PRINTING */
 2693 
 2694 struct opttxt txt_force_screen_redraw = {
 2695     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2696     N_("Force redraw after certain commands"),
 2697     N_("# If ON a screen redraw will always be done after certain external commands\n")
 2698 };
 2699 
 2700 struct opttxt txt_start_editor_offset = {
 2701     N_("Start editor with line offset. <SPACE> toggles, <CR> sets, <ESC> cancels."),
 2702     N_("Start editor with line offset"),
 2703     N_("# If ON editor will be started with cursor offset into the file\n\
 2704 # otherwise the cursor will be positioned at the first line\n")
 2705 };
 2706 
 2707 struct opttxt txt_editor_format = {
 2708     N_("Enter %E for editor, %F for filename, %N for line-number, <CR> to set."),
 2709     N_("Invocation of your editor"),
 2710     N_("# Format of editor line including parameters\n\
 2711 # %E Editor  %F Filename  %N Linenumber\n")
 2712 };
 2713 
 2714 struct opttxt txt_inews_prog = {
 2715     N_("Enter name and options for external-inews, --internal for internal inews"),
 2716     N_("External inews"),
 2717     N_("# If --internal use the built in mini inews for posting via NNTP\n# otherwise use an external inews program\n"),
 2718 };
 2719 
 2720 struct opttxt txt_mailer_format = {
 2721     N_("Enter %M for mailer, %S for subject, %T for to, %F for filename, <CR> to set."),
 2722     N_("Invocation of your mail command"),
 2723     N_("# Format of mailer line including parameters\n\
 2724 # %M Mailer  %S Subject  %T To  %F Filename\n\
 2725 # ie. to use elm as your mailer:    elm -s \"%S\" \"%T\" < %F\n\
 2726 # ie. elm interactive          :    elm -i %F -s \"%S\" \"%T\"\n")
 2727 };
 2728 
 2729 struct opttxt txt_interactive_mailer = {
 2730     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2731     N_("Use interactive mail reader"),
 2732     N_("# Interactive mailreader\n\
 2733 # Possible values are (the default is marked with *):\n\
 2734 # * 0 = no interactive mailreader\n\
 2735 #   1 = use interactive mailreader with headers in file\n\
 2736 #   2 = use interactive mailreader without headers in file\n")
 2737 };
 2738 
 2739 struct opttxt txt_unlink_article = {
 2740     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2741     N_("Remove ~/.article after posting"),
 2742     N_("# If ON remove ~/.article after posting.\n")
 2743 };
 2744 
 2745 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 2746 struct opttxt txt_utf8_graphics = {
 2747     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2748     N_("Use UTF-8 graphics (thread tree etc.)"),
 2749     N_("# If ON use UTF-8 characters for indicator '->', tree and ellipsis '...'.\n")
 2750 };
 2751 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 2752 
 2753 struct opttxt txt_posted_articles_file = {
 2754     N_("Filename for all posted articles, <CR> sets, no filename=do not save."),
 2755     N_("Filename for posted articles"),
 2756     N_("# Filename where to keep all postings (default posted)\n\
 2757 # If no filename is set then postings will not be saved\n")
 2758 };
 2759 
 2760 struct opttxt txt_keep_dead_articles = {
 2761     N_("Keep all failed articles in ~/dead.articles. <SPACE> toggles & <CR> sets."),
 2762     N_("Keep failed arts in ~/dead.articles"),
 2763     N_("# If ON keep all failed postings in ~/dead.articles\n")
 2764 };
 2765 
 2766 struct opttxt txt_strip_newsrc = {
 2767     N_("Do you want to strip unsubscribed groups from .newsrc"),
 2768     N_("No unsubscribed groups in newsrc"),
 2769     N_("# If ON strip unsubscribed groups from newsrc\n")
 2770 };
 2771 
 2772 struct opttxt txt_strip_bogus = {
 2773     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2774     N_("Remove bogus groups from newsrc"),
 2775     N_("# What to do with bogus groups in newsrc file\n\
 2776 # Possible values are (the default is marked with *):\n\
 2777 # * 0 = keep\n\
 2778 #   1 = remove\n\
 2779 #   2 = highlight with D on selection screen\n")
 2780 };
 2781 
 2782 #if defined(HAVE_ALARM) && defined(SIGALRM)
 2783 struct opttxt txt_nntp_read_timeout_secs = {
 2784     N_("Enter number of seconds to wait for a response from the server. <CR> sets."),
 2785     N_("NNTP read timeout in seconds"),
 2786     N_("# Time in seconds to wait for a response from the server (0=no timeout)\n")
 2787 };
 2788 #endif /* HAVE_ALARM && SIGALRM */
 2789 
 2790 struct opttxt txt_reread_active_file_secs = {
 2791     N_("Enter number of seconds until active file will be reread. <CR> sets."),
 2792     N_("Interval in secs to reread active"),
 2793     N_("# Time interval in seconds between rereading the active file (0=never)\n")
 2794 };
 2795 
 2796 struct opttxt txt_auto_reconnect = {
 2797     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2798     N_("Reconnect to server automatically"),
 2799     N_("# If ON automatically reconnect to NNTP server if the connection is broken\n")
 2800 };
 2801 
 2802 struct opttxt txt_cache_overview_files = {
 2803     N_("Create local copies of NNTP overview files. <SPACE> toggles & <CR> sets."),
 2804     N_("Cache NNTP overview files locally"),
 2805     N_("# If ON, create local copies of NNTP overview files.\n")
 2806 };
 2807 
 2808 struct opttxt txt_select_format = {
 2809     N_("Enter format string. <CR> sets, <ESC> cancels."),
 2810     N_("Format string for selection level"),
 2811     N_("# Format string for selection level representation\n\
 2812 # Default: %f %n %U  %G  %d\n\
 2813 # Possible values are:\n\
 2814 #   %%              '%'\n\
 2815 #   %d              Description\n\
 2816 #   %f              Newsgroup flag: 'D' bogus, 'X' not postable,\n\
 2817 #                   'M' moderated, '=' renamed, 'N' new, 'u' unsubscribed\n\
 2818 #   %G              Group name\n\
 2819 #   %n              Number, linenumber on screen\n\
 2820 #   %U              Unread count\n")
 2821 };
 2822 
 2823 struct opttxt txt_group_format = {
 2824     N_("Enter format string. <CR> sets, <ESC> cancels."),
 2825     N_("Format string for group level"),
 2826     N_("# Format string for group level representation\n\
 2827 # Default: %n %m %R %L  %s  %F\n\
 2828 # Possible values are:\n\
 2829 #   %%              '%'\n\
 2830 #   %D              Date, like date_format\n\
 2831 #   %(formatstr)D   Date, formatstr gets passed to my_strftime()\n\
 2832 #   %F              From, name and/or address according to show_author\n\
 2833 #   %I              Initials\n\
 2834 #   %L              Line count\n\
 2835 #   %M              Message-ID\n\
 2836 #   %m              Article marks\n\
 2837 #   %n              Number, linenumber on screen\n\
 2838 #   %R              Count, number of responses in thread\n\
 2839 #   %s              Subject (only group level)\n\
 2840 #   %S              Score\n")
 2841 };
 2842 
 2843 struct opttxt txt_thread_format = {
 2844     N_("Enter format string. <CR> sets, <ESC> cancels."),
 2845     N_("Format string for thread level"),
 2846     N_("# Format string for thread level representation\n\
 2847 # Default: %n %m  [%L]  %T  %F\n\
 2848 # Possible values are:\n\
 2849 #   %%              '%'\n\
 2850 #   %D              Date, like date_format\n\
 2851 #   %(formatstr)D   Date, formatstr gets passed to my_strftime()\n\
 2852 #   %F              From, name and/or address according to show_author\n\
 2853 #   %I              Initials\n\
 2854 #   %L              Line count\n\
 2855 #   %M              Message-ID\n\
 2856 #   %m              Article marks\n\
 2857 #   %n              Number, linenumber on screen\n\
 2858 #   %S              Score\n\
 2859 #   %T              Thread tree (only thread level)\n")
 2860 };
 2861 
 2862 struct opttxt txt_date_format = {
 2863     N_("Enter format string. <CR> sets, <ESC> cancels."),
 2864     N_("Format string for display of dates"),
 2865     N_("# Format string for date representation\n")
 2866 };
 2867 
 2868 #ifdef HAVE_UNICODE_NORMALIZATION
 2869 struct opttxt txt_normalization_form = {
 2870     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2871     N_("Unicode normalization form"),
 2872     N_("# Unicode normalization form\n\
 2873 # Possible values are:\n\
 2874 #   0 = None\n\
 2875 #   1 = NFKC\n\
 2876 #   2 = NFKD\n\
 2877 #   3 = NFC\n\
 2878 #   4 = NFD\n")
 2879 };
 2880 #endif /* HAVE_UNICODE_NORMALIZATION */
 2881 
 2882 #if defined(HAVE_LIBICUUC) && defined(MULTIBYTE_ABLE) && defined(HAVE_UNICODE_UBIDI_H) && !defined(NO_LOCALE)
 2883 struct opttxt txt_render_bidi = {
 2884     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2885     N_("Render BiDi"),
 2886     N_("# If ON, bi-directional text is rendered by tin\n")
 2887 };
 2888 #endif /* HAVE_LIBICUUC && MULTIBYTE_ABLE && HAVE_UNICODE_UBIDI_H && !NO_LOCALE */
 2889 
 2890 #ifdef USE_HEAPSORT
 2891 struct opttxt txt_sort_function = {
 2892     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2893     N_("Function for sorting articles"),
 2894     N_("# Function for sorting articles\n\
 2895 # Possible values are (the default is marked with *):\n\
 2896 # * 0 = qsort\n\
 2897 #   1 = heapsort\n")
 2898 };
 2899 #endif /* USE_HEAPSORT */
 2900 
 2901 /*
 2902  * structs for the attributes menu below,
 2903  * no need for *tinrc text
 2904  */
 2905 struct opttxt txt_auto_select = {
 2906     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2907     N_("Automatically GroupMarkUnselArtRead"),
 2908     NULL
 2909 };
 2910 
 2911 struct opttxt txt_delete_tmp_files = {
 2912     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2913     N_("Delete post-process files"),
 2914     NULL
 2915 };
 2916 
 2917 struct opttxt txt_fcc = {
 2918     N_("Filename for all mailed articles, <CR> sets, no filename=do not save."),
 2919     N_("Mailbox to save sent mails"),
 2920     NULL
 2921 };
 2922 
 2923 struct opttxt txt_followup_to = {
 2924     N_("Set Followup-To: header to this group(s). <CR> sets, <ESC> cancels."),
 2925     N_("Followup-To: header"),
 2926     NULL
 2927 };
 2928 
 2929 struct opttxt txt_from = {
 2930     N_("Enter default mail address (and fullname). <CR> sets, <ESC> cancels."),
 2931     N_("Mail address (and fullname)"),
 2932     NULL
 2933 };
 2934 
 2935 #ifdef HAVE_ISPELL
 2936 struct opttxt txt_ispell = {
 2937     N_("Path and options for ispell-like spell-checker. <CR> sets, <ESC> cancels."),
 2938     N_("Ispell program"),
 2939     NULL
 2940 };
 2941 #endif /* HAVE_ISPELL */
 2942 
 2943 struct opttxt txt_mailing_list = {
 2944     N_("When group is a mailing list, send responses to this email address."),
 2945     N_("Mailing list address"),
 2946     NULL
 2947 };
 2948 
 2949 struct opttxt txt_mime_forward = {
 2950     N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 2951     N_("Forward articles as attachment"),
 2952     NULL
 2953 };
 2954 
 2955 struct opttxt txt_mime_types_to_save = {
 2956     N_("A comma separated list of MIME major/minor Content-Types. <ESC> cancels."),
 2957     N_("Which MIME types will be saved"),
 2958     NULL
 2959 };
 2960 
 2961 struct opttxt txt_organization = {
 2962     N_("Value of the Organization: header. <CR> sets, <ESC> cancels."),
 2963     N_("Organization: header"),
 2964     NULL
 2965 };
 2966 
 2967 struct opttxt txt_savefile = {
 2968     N_("Filename for saved articles. <CR> sets, <ESC> cancels."),
 2969     N_("savefile"),
 2970     NULL
 2971 };
 2972 
 2973 struct opttxt txt_quick_select_scope = {
 2974     N_("Scope for the filter rule. <CR> sets, <ESC> cancels."),
 2975     N_("Quick (1 key) select filter scope"),
 2976     NULL
 2977 };
 2978 
 2979 struct opttxt txt_quick_select_header = {
 2980     N_("Header for filter rule. <CR> sets, <ESC> cancels."),
 2981     N_("Quick (1 key) select filter header"),
 2982     NULL
 2983 };
 2984 
 2985 struct opttxt txt_quick_select_case = {
 2986     N_("ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."),
 2987     N_("Quick (1 key) select filter case"),
 2988     NULL
 2989 };
 2990 
 2991 struct opttxt txt_quick_select_expire = {
 2992     N_("ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."),
 2993     N_("Quick (1 key) select filter expire"),
 2994     NULL
 2995 };
 2996 
 2997 struct opttxt txt_quick_kill_scope = {
 2998     N_("Scope for the filter rule. <CR> sets, <ESC> cancels."),
 2999     N_("Quick (1 key) kill filter scope"),
 3000     NULL
 3001 };
 3002 
 3003 struct opttxt txt_quick_kill_header = {
 3004     N_("Header for filter rule. <CR> sets, <ESC> cancels."),
 3005     N_("Quick (1 key) kill filter header"),
 3006     NULL
 3007 };
 3008 
 3009 struct opttxt txt_quick_kill_case = {
 3010     N_("ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."),
 3011     N_("Quick (1 key) kill filter case"),
 3012     NULL
 3013 };
 3014 
 3015 struct opttxt txt_quick_kill_expire = {
 3016     N_("ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."),
 3017     N_("Quick (1 key) kill filter expire"),
 3018     NULL
 3019 };
 3020 
 3021 #ifdef CHARSET_CONVERSION
 3022 struct opttxt txt_undeclared_charset = {
 3023     N_("Assume this charset if no charset declaration is present, <CR> to set."),
 3024     N_("UNDECLARED_CHARSET"),
 3025     NULL
 3026 };
 3027 #endif /* CHARSET_CONVERSION */
 3028 
 3029 struct opttxt txt_x_body = {
 3030     N_("Add this text at the start of the message body. <CR> sets, <ESC> cancels."),
 3031     N_("X_Body"),
 3032     NULL
 3033 };
 3034 
 3035 struct opttxt txt_x_headers = {
 3036     N_("Insert this header when posting. <CR> sets, <ESC> cancels."),
 3037     N_("X_Headers"),
 3038     NULL
 3039 };
 3040 
 3041 struct opttxt txt_x_comment_to = {
 3042     N_("Automatically insert an X-Comment-To: header? <SPACE> toggles & <CR> sets."),
 3043     N_("Insert 'X-Comment-To:' header"),
 3044     NULL
 3045 };