unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



patterns(4)							  patterns(4)



NAME
  patterns - Patterns for use with internationalization	tools

SYNOPSIS

  See the Description section.

DESCRIPTION

  The patterns file contains the patterns that must be matched for the inter-
  nationalization tools	extract, strextract, and strmerge.

  The pattern file in the following example is the default patterns file
  located in /usr/lib/nls/patterns.

       # This is the header to insert at the beginning of the first new
       # source	file

       $SRCHEAD1 (1)
       \#include <nl_types.h>
       nl_catd _m_catd;
       \

       # The header to insert at the beginning of the rest of the new
       # source	files

       $SRCHEAD2 (2)
       \#include <nl_types.h>
       extern nl_catd _m_catd;
       \

       # This is the header to insert at the beginning of the message
       # catalogues

       $CATHEAD	(3)
       \$ /*
       \$  * X/OPEN message catalogue
       \$  */
       \
       \$quote "

       # This is how patterns that are matched will get	rewritten.

       $REWRITE	(4)
       catgets(_m_catd,	%s, %n,	%t)

       # Following is a	list of	the sort of strings we are looking for.
       # The regular expression	syntax is based	on regexp(3).

       $MATCH (5)

       # Match on strings containing an	escaped	"
       "[^\\]*\\"[^"]*"

       # Match on general strings
       "[^"]*"

       # Now reject some special C constructs.

       $REJECT	       (6)
       # the empty string
       ""0

       # string	with just one format descriptor
       "%."
       "%.\."

       # string	with just line control in
       "\\."

       # string	with just line control and one format descriptor in
       "%.\\."
       "\\.%."

       # ignore	cpp include lines
       \#[  ]*include[	]*".*"
       \#[  ]*ident[  ]*".*"

       # reject	some common C functions	and expressions	with quoted
       # strings
       [sS][cC][cC][sS][iI][dD]\[\][  ]*=[  ]*".*"
       open[  ]*([^,]*,[^)]*)
       creat[  ]*([^,]*,[^)]*)
       access[	]*([^,]*,[^)]*)
       chdir[  ]*([^,]*,[^)]*)
       chmod[  ]*([^,]*,[^)]*)
       chown[  ]*([^,]*,[^)]*)

       # Reject	any strings in single line comments
       /\*.*\*/

       # Print a warning for initialised strings.

       $ERROR initialised strings cannot be replaced	     (7)
       char[^=]*=[  ]*"[^"]*"
       char[^=]*=[  ]*"[^\\]*\\"[^"]*"
       char[ ]*\**[A-Za-z][A-Za-z0-9]*\[[^\]*\][ ]*=[  {]*"[^"]*"
       char[ ]*\**[A-Za-z][A-Za-z0-9]*\[[^\]*\][ ]*=[  {]*"[^\\]*\\"[^"]*"

  The default patterns file is divided into the	following sections:

  (1)
     In	the $SRCHEAD1 section, the strmerge and	extract	commands place text
     in	this section at	the beginning of the first new source program, which
     is	prefixed by nl_.  These	commands define	the native language file
     descriptors that point to the message catalog.

  (2)
     In	the $SRCHEAD2 section, the strmerge and	extract	commands place text
     in	this section at	the beginning of the second and	remaining source pro-
     grams. These commands also	define the native language file	descriptors
     that point	to the message catalog.	$SRCHEAD2 contains the external
     declaration of the	nl file	descriptor.

  (3)
     In	the $CATHEAD section, the strmerge and extract commands	place text in
     this section at the beginning of the message catalog.

  (4)
     In	the $REWRITE section, you specify how the strmerge and extract com-
     mands should replace the extracted	strings	in the new source program.
     You can supply three options to the catgets command:

     %s	This option increments the set number for each source. This option
	applies	only if	you are	using the strmerge command.  For more
	information on set numbers, see	the catgets(3) reference page.

     %n	This option increments the message number for each string extracted.
	This option applies if you are using either the	strmerge or extract
	commands.

     %t	This option expands the	text from the string extracted.	The string
	can be a error message or the default string extracted and printed by
	the catgets command. For example, if you want an error message to
	appear when catgets is unable to retrieve the message from the mes-
	sage catalog, you would	include	the following line:
	     catgets(_m_catd, %s, %n, "BAD STRING")

	When catgets fails, it returns the message BAD STRING.

  (5)
     In	the $MATCH section, you	specify	the patterns in	the form of a regular
     expression	that you want the strextract, strmerge,	and extract commands
     to	find and match.	 The regular expression	follows	the same syntax	rules
     as	defined	in regexp(3) reference page.

  (6)
     In	the $REJECT section, you specify the matched strings that you do not
     want the strmerge and extract commands to replace in your source pro-
     gram.  The	regular	expression follows the same syntax rules as defined
     in	regexp(3) reference page.

  (7)
     In	the $ERROR section, the	strextract, strmerge, and extract commands
     look for bad matches and notify you with a	warning	message. The regular
     expression	follows	the same syntax	rules as defined in the	regexp(3)
     reference page.

RELATED	INFORMATION

  extract(1), strextract(1), strmerge(1), trans(1), regexp(3)
  Writing Software for the International Market