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