"Fossies" - the Fresh Open Source Software Archive

Member "tin-2.6.1/src/lang.c" (22 Dec 2021, 139971 Bytes) of package /linux/misc/tin-2.6.1.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.6.0_vs_2.6.1.

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