freebsd-src/usr.bin/ee/ee.i18n.guide

142 lines
7 KiB
Plaintext
Raw Normal View History

Easy Editor ("ee") provides the ability to translate the messages displayed to
the user and the commands entered. This is done via message catalogs,
following X/Open standards. ee only supports eight bit characters.
(The name ee.i18n.guide is for "ee internationalization guide". The i18n
abbreviation is used because there are 18 characters between the first
letter ("i") and last ("n") of "internationalization".)
All of the messages, warnings, information, and commands, are contained in the
message catalog. Each numbered entry represents an individual string used by
ee. Some strings contain formatting information for formatted print
statements, which are of the form "%s", or "%d", these must be preserved in
the translation, or the correct information will not be displayed. For those
strings containing multiple formatting codes, the order of each item must be
preserved as well.
Message content
1 title for modes, or settings menu
2 - 8 entries for modes menu, each line should be the same length
(padded with spaces)
9 - 34 other menu titles and entries
35 - 56 help screen
57 - 61 actions assigned to control keys
62 - 66 commands information
67 message displayed when info window turned off
68 indication that no file name was entered when invoking ee
69 prompt for decimal value of character to be entered
70 message displaying the print command being invoked
71 prompt for command
72 prompt for name of file to be written
73 prompt for name of file to be read
74 string used to display the decimal value of the character
the cursor is on
75 string displaying an unrecognized command
76 string indicating that the command entered is not a unique
substring of a valid command
77 string indicating the current line number
78 string for displaying the length of the line
79 string for displaying the name of the file
80 - 83 strings showing how to invoke ee, and its options
84 message indicating that the file entered is a directory, not a
text file
85 message informing that the entered file does not yet exist
86 message informing that the file can't be opened (because of
permission problems)
87 message after file has been read with the file name and number
of lines read
88 message indicating that the file has been read
89 message indicating that the file is being read
90 message indicating that permissions only allow the file to be
read, not written
91 message after file has been read with the file name and number
of lines read
92 prompt for name of file to be saved (used when no name was
entered for a file to edit)
93 message indicating that the file was not written, since no
name was entered at the prompt
94 prompt asking user if changes should not be saved ("yes_char"
will be expected for affirmative response)
95 "yes" character, single character expected to confirm action
(can be upper or lower case, will be converted to upper-case
during test)
96 prompt
97 error message
98 message indicating that the named file is being written
99 message indicating the name of the file written, the number of
lines, and the number of characters (order of items must be
maintained)
100 search in progress message
101 message that the string was not found
102 prompt for search
103 message that string could not be executed
104 self-explanatory
105 message for menus, indicating that the Escape character will
allow the user to exit the menu
106 error message indicating the menu won't fit on the screen
107 self-explanatory
108 prompt for shell command
109 message displayed while formatting a paragraph
110 string which places message for spell checking at top of
buffer (the portions 'list of unrecognized words' and
'-=-=-=-=-=-' may be replaced, but the rest must remain the
same)
111 message informing that spell checking is in progress
112 prompt for right margin
113 error informing user that operation is not permitted in ree
114 string indicating mode is turned 'on' in modes menu
115 string indicating mode is turned 'off' in modes menu
116 - 131 strings used for commands (some also used for initialization)
132 - 144 strings used for initialization
145 entry for settings menu for emacs key bindings settings
146 - 153 help screen entries for emacs key bindings info
154 - 158 info window entries for emacs key bindings info
159 string for turning on emacs key bindings in the init file
160 string for turning off emacs key bindings in the init file
Care should be taken when translating commands and initialization keywords
because the algorithm used for detecting uniqueness of entered commands
will not be able to distinguish words that are not unique before the end
of the shorter word, for example, it would not be able to distinguish the
command 'abcd' from 'abcde'.
After translating the messages, use the 'gencat' command to create the compiled
catalog used when running the software. The standard syntax would be:
gencat ee.cat ee.msg
Where ee.msg is the file containing the translations, and ee.cat is the
compiled catalog. If the file ee.cat does not exist, it will be created.
Check the documentation for your system for proper syntax.
Message catalog placement varies from system to system. A common location
for message catalogs is in /usr/lib/nls. In this directory are
directories with the names of other languages. The default language is
'C'. There is also an environment variable, named NLSPATH used to
determine where message catalogs can be found. This variable is similar
to the PATH variable used for commands, but with some differences. The
NLSPATH variable must have the ability to handle different names for
languages and the catalog files, so it has field descriptors for these. A
typical setting for NLSPATH could be:
NLSPATH=/usr/lib/nls/%L/%N.cat:/usr/local/lib/nls/%L/%N.cat
Where "%L" is the field descriptor for the language (obtained from the
LANG environment variable) and "%N" is the name of the file (with the
".cat" appended by the path variable, it is not passed from the requesting
program). The colon (:) is used to separate paths, so in the above
example there are two paths possible for message catalogs. You may wish
to maintain catalogs for applications that are not supported by your
system vendor in a location unique for you, and this is facilitated by the
NLSPATH variable. Remember to set and export both the LANG and NLSPATH
variables for each user that expects to use localization either in a
system-wide profile or in each user's profile. See your system
documentation for more information.
The message catalog supplied with ee also uses the '$quote' directive to
specify a quote around strings to ensure proper padding. This directive
may not be supported on all systems, and lead to quotes being included in
the string used in ee, which will cause incorrect behavior. If the
'$quote' directive is not supported by your system's gencat command, edit
the msg file to remove the leading and trailing quotation marks.