|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| WINGs/ | H | 03-May-2022 | - | 62,474 | 47,543 |
| WPrefs.app/ | H | 03-May-2022 | - | 65,096 | 50,860 |
| WindowMaker/ | H | 03-May-2022 | - | 15,799 | 14,719 |
| doc/ | H | 03-May-2022 | - | 7,374 | 6,434 |
| m4/ | H | 05-Apr-2020 | - | 11,166 | 10,141 |
| po/ | H | 03-May-2022 | - | 57,850 | 46,386 |
| script/ | H | 05-Apr-2020 | - | 3,173 | 2,159 |
| src/ | H | 03-May-2022 | - | 55,144 | 40,303 |
| test/ | H | 03-May-2022 | - | 957 | 765 |
| util/ | H | 03-May-2022 | - | 20,610 | 15,865 |
| wmlib/ | H | 03-May-2022 | - | 1,567 | 1,159 |
| wrlib/ | H | 03-May-2022 | - | 13,203 | 9,780 |
| AUTHORS | H A D | 15-Feb-2019 | 6.5 KiB | 233 | 160 |
| BUGFORM | H A D | 05-Apr-2020 | 1.7 KiB | 71 | 43 |
| BUGS | H A D | 15-Feb-2019 | 1.3 KiB | 25 | 22 |
| COPYING | H A D | 15-Feb-2019 | 17.6 KiB | 340 | 281 |
| COPYING.WTFPL | H A D | 15-Feb-2019 | 1 KiB | 55 | 49 |
| ChangeLog | H A D | 15-Feb-2019 | 235 KiB | 5,113 | 4,893 |
| FAQ | H A D | 15-Feb-2019 | 55 KiB | 1,511 | 1,080 |
| INSTALL | H A D | 05-Apr-2020 | 15.4 KiB | 369 | 287 |
| INSTALL-WMAKER | H A D | 05-Apr-2020 | 25.1 KiB | 724 | 487 |
| Makefile.am | H A D | 15-Feb-2019 | 4.2 KiB | 114 | 80 |
| Makefile.in | H A D | 03-May-2022 | 31.1 KiB | 975 | 854 |
| NEWS | H A D | 05-Apr-2020 | 109.7 KiB | 3,225 | 2,203 |
| README | H A D | 05-Apr-2020 | 11 KiB | 316 | 211 |
| README.definable-cursor | H A D | 15-Feb-2019 | 3.3 KiB | 93 | 64 |
| README.i18n | H A D | 05-Apr-2020 | 18.7 KiB | 452 | 312 |
| TODO | H A D | 15-Feb-2019 | 2.9 KiB | 71 | 59 |
| aclocal.m4 | H A D | 05-Apr-2020 | 51.5 KiB | 1,429 | 1,295 |
| autogen.sh | H A D | 15-Feb-2019 | 856 | 27 | 17 |
| checkpatch.pl | H A D | 15-Feb-2019 | 104 KiB | 3,886 | 2,933 |
| compile | H A D | 05-Apr-2020 | 7.2 KiB | 349 | 259 |
| config.guess | H A D | 05-Apr-2020 | 43.2 KiB | 1,481 | 1,288 |
| config.h.in | H A D | 05-Apr-2020 | 7.2 KiB | 280 | 188 |
| config.sub | H A D | 05-Apr-2020 | 35.3 KiB | 1,802 | 1,661 |
| configure | H A D | 03-May-2022 | 617.4 KiB | 20,975 | 17,777 |
| configure.ac | H A D | 05-Apr-2020 | 32.2 KiB | 991 | 818 |
| depcomp | H A D | 05-Apr-2020 | 23 KiB | 792 | 502 |
| install-sh | H A D | 05-Apr-2020 | 15 KiB | 519 | 337 |
| ltmain.sh | H A D | 05-Apr-2020 | 319.4 KiB | 11,250 | 8,044 |
| missing | H A D | 05-Apr-2020 | 6.7 KiB | 216 | 143 |
| update-changelog.pl | H A D | 15-Feb-2019 | 3.3 KiB | 102 | 64 |
README
1
2
3
4 GNU Window Maker
5 X11 Window Manager
6
7 <http://windowmaker.org>
8
9 by
10
11 Alfredo K. Kojima
12
13 Dan Pascu
14
15
16
17 Web/FTP Master
18
19 Phillip Smith
20
21
22
23 Congratulations! You have purchased an extremely fine
24 device that would give you thousands of years of trouble-free
25 service, except that you undoubtedly will destroy it via some
26 typical bonehead consumer maneuver. Which is why we ask you
27 to PLEASE FOR GOD'S SAKE READ THIS OWNER'S MANUAL CAREFULLY
28 BEFORE YOU UNPACK THE DEVICE. YOU ALREADY UNPACKED IT, DIDN'T
29 YOU? YOU UNPACKED IT AND PLUGGED IT IN AND TURNED IT ON AND
30 FIDDLED WITH THE KNOBS, AND NOW YOUR CHILD, THE SAME CHILD WHO
31 ONCE SHOVED A POLISH SAUSAGE INTO YOUR VIDEOCASSETTE RECORDER
32 AND SET IT ON "FAST FORWARD", THIS CHILD ALSO IS FIDDLING
33 WITH THE KNOBS, RIGHT? AND YOU'RE JUST NOW STARTING TO READ
34 THE INSTRUCTIONS, RIGHT??? WE MIGHT AS WELL JUST BREAK THESE
35 DEVICES RIGHT AT THE FACTORY BEFORE WE SHIP THEM OUT, YOU
36 KNOW THAT?
37 -- Dave Barry, "Read This First!"
38
39
40Description
41===========
42
43Window Maker is the GNU window manager for the X Window System. It was designed
44to emulate the look and feel of part of the NEXTSTEP(tm) GUI. It's supposed to
45be relatively fast and small, feature rich, easy to configure and easy to use,
46with a simple and elegant appearance borrowed from NEXTSTEP(tm).
47
48Window Maker was designed keeping integration with GNUstep in mind and is the
49"official" window manager for it. It is also part of the GNU project
50(www.gnu.org) Read more about GNUstep further on this file.
51
52Hints (information given by applications to integrate well with the window
53manager) for Motif(tm) and NETWM are also supported (NETWM is used by KDE and
54GNOME, so they are automatically supported as a result). So you can replace any
55of the window managers for these environments with Window Maker while keeping
56most, if not all, of the native window manager functionality.
57
58Window Maker was previously called WindowMaker.
59
60Window Maker has no connection with Windowmaker, the software for making windows
61and doors.
62
63
64Documentation
65=============
66
67Read before asking.
68
69* README files all over the source tree have info related to the stuff
70in the directories.
71
72* INSTALL has installation instructions and some troubleshooting tips.
73You're meant to read it if you are compiling the sources.
74
75* FAQ: Frequently Asked Questions. READ IT!!! FAQ.I18N is for
76internationalization related questions.
77
78* NEWS: list user visible changes from the previous version. Read it if
79you are upgrading.
80
81* BUGFORM: use it to send bug reports. Please do use it.
82
83* ChangeLog: what changed from the previous version?
84
85* BUGS: list of known bugs
86
87
88*** User Guide
89
90The Window Maker User's Guide can be downloaded from the official ftp
91or web sites.
92
93The User Guide explains how to use Window Maker, the configuration files
94and options.
95
96
97*** man pages
98
99Type "man wmaker" in the shell prompt to get general help about Window Maker
100
101
102
103Directories & Files in the Source Tree
104======================================
105
106* Install is a script for configuring and compiling Window Maker in a easy
107 way (not that the normal way is difficult, but...).
108
109* AUTHORS: the credits
110
111* TODO: plans for the future
112
113* util/ has various utility programs.
114
115* WPrefs.app/ is the configuration program.
116
117* src/wconfig.h has compile time options you can change to select some
118 options/features and other stuff.
119
120* WINGs/ NEXTSTEP lookalike widget library
121
122* wrlib/ image processing library
123
124* po/ has message catalogs which are the translated versions of the messages
125 displayed by Window Maker.
126
127
128HELP ME!!!
129==========
130
131There is a mailing list for discussing Window Maker at
132wmaker-user@googlegroups.com. To subscribe to it, visit
133https://groups.google.com/forum/#!forum/wmaker-user
134
135If you got a problem, ask there (after reading the docs, of course). The people
136there is more likely to be able to answer your questions than we are. For bug
137reports use the BUGFORM.
138
139If you have a problem with a precompiled version of Window Maker (rpm, deb etc),
140first ask the person who made the package.
141
142IMPORTANT NOTE: when asking for help (in the mailing list or to the developers,
143directly) *always* send information about the system you are using. You can use
144the system information section at the end of BUGFORM as a guideline. Another
145thing: please don't send HTML mail.
146
147
148There is also a #windowmaker IRC channel at freenode. To join there, connect
149your irc client to irc.freenode.net. irc.windowmaker.org will direct you to the
150correct IRC network.
151
152
153GNUstep
154=======
155
156GNUstep is a complete object-oriented development system, based on the OpenStep
157specification released by NeXT(tm) (now Apple(tm)) and Sun(tm). It will provide
158everything one needs to produce cross-platform, object-oriented, graphical (and
159non-graphical) applications; providing among other things, base system
160libraries, a high-level GUI application framework that uses a Display
161PostScript(tm)-like imaging model (DGS), objects for accessing relational
162databases, distributed objects and a graphical development environment, with
163tools like interface modeler, a project management system (project center) and
164other tools.
165
166The GNUstep development system will be used to create a user environment, with
167everything needed for a complete graphical user interface, such as a file
168viewer, text editors and other applications. Note that the user environment (or
169"desktop environment") is only a small part of the whole GNUstep project and
170therefore it does not "compete" with other projects like KDE or GNOME, simply
171because they are completely different things.
172
173For more information on the GNUstep project, visit: http://www.gnustep.org
174
175
176Running multiple instances of Window Maker
177==========================================
178
179It is not a good idea to run more than one instance of Window Maker
180from the same user (so that wmaker will use the same configuration files) at the
181same time. You might get unexpected behavior when Window Maker updates it's
182configuration files.
183
184If you really desire to do this, try running Window Maker with the command line
185option --static so that it will not update or change any of the configuration
186files.
187
188
189Performance Tuning
190==================
191
192If you want to diminish Window Maker's memory usage and improve performance,
193while keeping a nice appearance and good functionality, follow the items bellow:
194
195- use solid textures for everything, mainly title bars and menus. If you want a
196 nice looking desktop, use the Traditional style.
197- turn NewStyle and Superfluous off
198- do not bind many shortcuts in the menu and keep only the essential items in
199 the menu
200- turn on DisableClip
201- edit wconfig.h and disable the NUMLOCK_HACK and the features you don't use
202 anyway (keep in mind that some of the #defines might not work, as they are not
203 fully supported). Make sure to always keep NumLock and ScrollLock turned off.
204- turn on DisableAnimations. You can also specify --disable-animation at compile
205 time to the configure script.
206- strip down the default IconPath and PixmapPath entries to contain only
207 the paths that you really have in your system.
208- do not use large images in the root background
209- remove support for image formats you don't use
210- to reduce memory usage, disable the icon cache, by setting the RIMAGE_CACHE
211 environment variable to 0. If you want to increase performance at the cost of
212 memory usage, set it's value to a value like the number of different icons you
213 use. Also, disable anti-aliased text support in ~/GNUstep/Defaults/WMGLOBAL.
214
215
216Keyboard Mouse Control
217======================
218
219Many people ask about adding keyboard control of mouse, like in fvwm, but Window
220Maker will not have such feature. The XKB extension supports mouse simulation
221from the keyboard, in a much more powerful fashion than any simulation done by
222a window manager.
223
224To enable it, hit the Control+Shift+NumLock or Shift+NumLock key combination.
225You should hear the speaker beeping. To disable it, do the same thing.
226
227To control the mouse the numeric keypad is used as follows:
228- 4 (left arrow), 7 (Home), 8 (up arrow), 9 (PgUp), 6 (right arrow),
2293 (PgDn), 2 (down arrow) and 1 (End) move the mouse to the corresponding
230direction;
231- holding one of the above keys and then holding the 5 key will move the
232pointer faster;
233- / will select the first mouse button (left button);
234- * will select the second mouse button (middle button);
235- - will select the third mouse button (right button);
236- 5 will do a click with the currently selected mouse button;
237- + will do a double-click with the currently selected button;
238- 0 (Ins) will click and hold the currently selected button;
239- . (Del) will release the currently selected button that was previously
240clicked with the 0 (Ins) key.
241
242
243The above key values work in a XFree86 3.2 (X11R6.1) X server but your
244mileage may vary.
245
246
247How to make a gdb backtrace
248===========================
249
250Backtraces can help us fix bugs that make Window Maker crash. If you find a bug
251that crashes Window Maker, please send a backtrace with your bug report.
252
253To make a useful backtrace, you need a core file with debugging information
254produced by Window Maker when it crashes. It should have been installed without
255stripping too.
256
257To compile wmaker with debugging information:
258
259 ./configure --enable-debug
260 make
261
262If you get the dialog window telling you that wmaker crashed and asks you what
263to do, tell it to "Abort and leave a core file".
264
265 script
266 cd src
267 gdb .libs/wmaker path_to_the_core_file
268
269Then, in the gdb prompt type "bt". Quit from gdb by typing "quit" and then, in
270the shell prompt, type "exit".
271
272The file named typescript will contain the backtrace.
273
274
275
276Copyrights & Disclaimers
277========================
278
279Window Maker is copyrighted by Alfredo K. Kojima and is licensed through the GNU
280General Public License. Read the COPYING file for the complete license.
281
282The icons that are distributed with this program and were made by Marco van
283Hylckama Vlieg, are licensed through the GNU General Public License. Read the
284COPYING file for the complete license.
285
286The icons listed in COPYING.WTFPL and are distributed in this program and were
287made by Banlu Kemiyatorn (]d), are licensed through the "do What The Fuck you
288want to Public License". Read the COPYING.WTFPL file for the complete license.
289
290NeXT, OpenStep and NEXTSTEP are a trademarks of NeXT Computer, Inc. All other
291trademarks are property of their respective owners.
292
293The authors reserve the right to make changes in the software without prior
294notice.
295
296
297Authors
298=======
299
300Alfredo K. Kojima <kojima@windowmaker.info>
301Dan Pascu <dan@windowmaker.info>
302]d <id@windowmaker.info>
303
304Please don't ask us questions before reading the documentation (esp. the FAQ,
305this file and INSTALL files) and about "cool" things you see in people's desktop
306screenshots.
307
308
309The AUTHORS file contains a list of the people who have contributed to the
310project. The name of people who have helped with localization (translation) can
311be found in po/README and Window Maker/README
312
313If you have any comments, fixes and bug reports (filled BUGFORMs) send them
314to wmaker-dev@googlegroups.com
315
316
README.definable-cursor
1
2
3Definable Mouse Cursors for Window Maker
4----------------------------------------
5
6The definable-cursor feature allows user-definable mouse cursors; the
7cursors can either be the built-in ones from the X11 cursor font, or
8they can be bitmap (XBM) files. User-definable cursors can be useful
9for theme-builders, lefthanders, and the visually impaired.
10
11
12Defining Your Own Cursors
13-------------------------
14
15A cursor specification takes one of the following forms in the
16~/GNUstep/Defaults/WindowMaker file:
17
18 (none)
19 (builtin, <cursor-name>)
20 (bitmap, <bitmap-filename>, <mask-filename>)
21
22They have the following meanings:
23
24 none The cursor is inherited from the parent window (often,
25 this means the root window).
26
27 builtin Use the cursor named <cursor-name> from X11's set of
28 built-in cursors. The names are the same as you use
29 with 'xsetroot -cursor_name'. See the xsetroot(1) man
30 page for more information.
31
32 bitmap Use the bitmap in <bitmap-filename> as the foreground
33 cursor bitmap, and the one in <mask-filename> as the
34 background (mask) bitmap. This is pretty much the same
35 as 'xsetroot -cursor', except that Window Maker searches
36 for the bitmaps along its PixmapPath.
37
38You can set the following cursor types (they're shown here with their
39defaults):
40
41 NormalCursor = (builtin, left_ptr);
42 ArrowCursor = (builtin, top_left_arrow);
43 MoveCursor = (builtin, fleur);
44 TopLeftResizeCursor = (builtin, top_left_corner);
45 TopRightResizeCursor = (builtin, top_right_corner);
46 BottomLeftResizeCursor = (builtin, bottom_left_corner);
47 BottomRightResizeCursor = (builtin, bottom_right_corner);
48 VerticalResizeCursor = (builtin, sb_v_double_arrow);
49 HorizontalResizeCursor = (builtin, sb_h_double_arrow);
50 WaitCursor = (builtin, watch);
51 QuestionCursor = (builtin, question_arrow);
52 TextCursor = (builtin, xterm);
53 SelectCursor = (builtin, cross);
54
55The following cursor types are allowed, but they're deprecated (Window
56Maker used them in the past, but doesn't use them anymore):
57
58 ResizeCursor = (builtin, sizing);
59
60
61Using Cursors with 'getstyle' and 'setstyle'
62--------------------------------------------
63
64The 'getstyle' and 'setstyle' style/theme-management utilities can
65handle user-definable cursors. By default, 'getstyle' ignores cursor
66definitions; using 'getstyle -t' to get theme-related settings will
67also include any cursors you've defined in the resulting style file.
68
69However, by default, 'setstyle' does NOT ignore cursor settings. If
70you wish to set a style or theme without installing cursor settings,
71you can use 'setstyle --no-cursors' to ignore the cursor definitions.
72
73
74Random Notes
75------------
76
77Most X11 cursors are 16x16 bitmaps. Many X servers can actually handle
78larger cursors, though. To check, use:
79
80 xdpyinfo
81
82and in the resulting output look for a line such as:
83
84 largest cursor: 64x64
85
86The example above indicates that my X server can handle cursors up to
8764 pixels wide by 64 pixels high.
88
89You can create your own bitmap cursors using the 'bitmap' program that
90accompanies most X11 distributions. For example bitmap cursors and
91masks, see <http://www.pobox.com/~jmknoble/WindowMaker/cursors/>.
92
93
README.i18n
1
2
3
4
5
6 Window Maker Internationalisation
7
8
9 ~ A guide to enable support for language translations ~
10 ~ in Window Maker and to the contributors ~
11 ~ who want to help translating. ~
12
13 -- Christophe CURIS --
14
15
16~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17
18This manual is for Window Maker window manager, version 0.95.9.
19
20Copyright (c) 2015 The Window Maker Team.
21
22 This program is free software; you can redistribute it and/or modify
23 it under the terms of the GNU General Public License as published by
24 the Free Software Foundation; either version 2 of the License, or
25 (at your option) any later version.
26
27 This program is distributed in the hope that it will be useful, but
28 WITHOUT ANY WARRANTY; without even the implied warranty of
29 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
30 General Public License for more details.
31
32 You should have received a copy of the GNU General Public License
33 along with this program, see file COPYING for details.
34
35
36 Published by The Window Maker team on 15 February 2019.
37
38
39~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40
41
42 1 Enabling Languages support . . . . . . . . . . . . . . . . . 59
43 1.1 Getting the list of supported languages . . . . . . . . . 89
44 1.2 Translations for Menus . . . . . . . . . . . . . . . . . 114
45 1.3 Setting 'LINGUAS' at system level . . . . . . . . . . . . 148
46
47 2 Choosing the Language . . . . . . . . . . . . . . . . . . . . 164
48
49 3 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . 212
50
51 4 Contribute to Translations . . . . . . . . . . . . . . . . . 263
52 4.1 Install the latest sources . . . . . . . . . . . . . . . 274
53 4.2 Updating the Translations . . . . . . . . . . . . . . . . 307
54 4.3 Translate the Man Pages . . . . . . . . . . . . . . . . . 353
55 4.4 Checking the Result . . . . . . . . . . . . . . . . . . . 381
56 4.5 Submitting your Contribution . . . . . . . . . . . . . . 398
57
58
591 Enabling Languages support
60****************************
61
62Window Maker has the possibility to be translated in many languages, but by
63default none of them will be installed, and the support for translation will
64not be compiled.
65
66 To enable the translation capabilities, you have to specify which
67language(s) you want to be installed: this is done with the variable
68'LINGUAS' when running the 'configure' script. This variable should contain
69the space-separated list of languages you want to install.
70
71 You could for instance enable both French ('fr') and Dutch ('nl') with
72this:
73
74 ./configure LINGUAS="fr nl"
75
76 You can of course add any other option that you want to the 'configure'
77command. From the moment you specify the variable, the 'configure' script
78will check that you have the appropriate dependencies for this (basically
79the 'gettext' function and the 'libintl' library); when you run 'make' to
80compile the project, it will also compile the translation ('mo' files) for
81the language(s) you asked (if available, of course), and during 'make
82install' it will install them in the usual directory.
83
84 The installation directory can be changed with the standard option
85'--localedir' to the 'configure' script, the default path being
86"<prefix>/share/locale/<lang>/LC_MESSAGES").
87
88
891.1 Getting the list of supported languages
90===========================================
91
92The naming convention for the languages follows the ISO 639-1 standard, for
93which you can find a summary list in the GNU gettext manual
94(https://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html).
95
96 But as Window Maker does not support all of them, the 'configure' script
97will print a warning for each language you specify that it does not know,
98and sum up at the end the list of enabled languages that will be installed.
99
100 There is a non-standard possibility to set 'LINGUAS' to 'list', in which
101case the 'configure' script will provide you the list of languages it
102supports, and stop:
103
104 ./configure LINGUAS="list"
105
106 There is also another non-standard possibility to enable all the
107languages that Window Maker supports by setting 'LINGUAS' to '*'. This is an
108internal trick implemented so the development team can have the command
109'make distcheck' include some checks on translations:
110
111 ./configure LINGUAS='*'
112
113
1141.2 Translations for Menus
115==========================
116
117In order to propose an Application Menu (also called Root Menu) that is also
118translated in the language of the interface, Window Maker implements two
119complementary mechanisms:
120
121 The first, always enabled when i18n support is enabled, is to look for
122the menu file containing the name of the locale. For example, if the file is
123called "menu" and the language is set as 'LANG=fr_FR.utf-8', then Window
124Maker will search for, and use the first match found:
125
126 * 'menu.fr_FR.utf-8'
127 * 'menu.fr_FR'
128 * 'menu.fr'
129 * 'menu'
130
131 The second possibility, which is not enabled by default, is to be able to
132use a custom "po" file which contains the translations for the text of the
133menu. This feature is enabled at compile time, using the option
134'--with-menu-textdomain' to the 'configure' script. For example, if you
135specify:
136
137 ./configure --with-menu-textdomain=WMMenu
138
139then the translations for the menu will be searched in the file "WMMenu.mo"
140located at the standard location, the default path being
141"<prefix>/share/locale/<lang>/LC_MESSAGES/WMMenu.mo".
142
143 If you do not enable the feature (the default behaviour, or with an
144explicit '--without-menu-textdomain'), then Window Maker will *not* try to
145translate the strings, even using its own domain file ("WindowMaker.mo").
146
147
1481.3 Setting 'LINGUAS' at system level
149=====================================
150
151As the variable 'LINGUAS' is quite standard, you also have the possibility
152to set its value in the "config.site" file for Autoconf. This file can be
153placed in one of these paths:
154
155 * "<prefix>/share/config.site"
156 * "<prefix>/etc/config.site"
157
158 This way, the same language list will be used for all the programs that
159use Autoconf that you would compile. Please note that if you also specify a
160value on the command line, it will have precedence over the value in that
161file.
162
163
1642 Choosing the Language
165***********************
166
167If you have compiled and installed Window Maker with support for your
168language, the effective translation is done is the very same way as any
169other application on an Unix system, you just have to set the shell variable
170'LANG' to your language before 'wmaker' is started. In 'sh' type of shell
171(sh, ksh, bash, ...), this is done for example with ('fr' is for French):
172
173 export LANG=fr
174
175 There is also a command line option '--locale' for Window Maker which may
176be used to set the language:
177
178 wmaker --locale fr
179
180 When using this option, Window Maker will use the locale you specified,
181redefining the 'LANG' environment variable to this value so all program
182started from Window Maker will inherit its value.
183
184 If your system is using systemd, you can also configure the locale at
185system level using the command:
186
187 localectl set-locale LANG=fr
188
189 You can check if the current value is properly supported with the
190command:
191
192 locale
193
194 If this does not work, you may need first to activate the support for
195your locale in the system; you can get the list of currently enabled locales
196with the command:
197
198 locale -a
199
200 You should be able to enable a new language support by editing the file
201"/etc/locale.gen" to uncomment the locale(s) you need (by removing the '#'
202character and space(s) in front of it, and by running the command
203'locale-gen' as root.
204
205 For further information, you may wish to read dedicated documentation,
206for example from the Linux Documentation Project
207(http://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html) or through pages like
208Shell Hacks' note on Changing Locale
209(http://www.shellhacks.com/en/HowTo-Change-Locale-Language-and-Character-Set-in-Linux).
210
211
2123 Troubleshooting
213*****************
214
215If I18N support does not work for you, check these:
216
217 - the 'LANG' environment variable is set to your locale, and the locale
218 is supported by your OS's locale or X's locale emulation. you can
219 display all supported locales by executing "'locale -a'" command if it
220 is available; you can check if your locale is supported by X's locale
221 emulation, see "/usr/share/X11/locale/locale.alias"
222
223 - check if you are using an appropriate fonts for the locale you chose.
224 If you're using a font set that has a different encoding than the one
225 used by Xlib or libc, bad things can happen. Try specifically putting
226 the encoding in the 'LANG' variable, like 'ru_RU.KOI8-R'. Again, see
227 "/usr/share/X11/locale/locale.alias"
228
229 - the fonts you're using support your locale. if your font setting on
230 "$HOME/GNUstep/Defaults/WindowMaker" is like...
231
232 WindowTitleFont = "Trebuchet MS:bold:pixelsize=12";
233 MenuTitleFont = "Trebuchet MS:bold:pixelsize=12";
234
235 then you can't display Asian languages ('ja', 'ko', 'ch', ...)
236 characters using 'Trebuchet MS'. A font that is guaranteed to work for
237 any language is 'sans' (or 'sans-serif'). 'sans' is not a font itself,
238 but an alias which points to multiple fonts and will load the first in
239 that list that has the ability to show glyphs in your language. If you
240 don't know a font that is suited for your language you can always set
241 all your fonts to something like:
242
243 "sans:pixelsize=12"
244
245 However, please note that if your font is something like:
246
247 "Trebuchet MS,sans serif:pixelsize=12"
248
249 this will not be able to display Asian languages if any of the previous
250 fonts before sans are installed. This is because unlike the proper font
251 pickup that 'sans' guarantees for your language, this construct only
252 allows a font fallback mechanism, which tries all the fonts in the list
253 in order, until it finds one that is available, even if it doesn't
254 support your language.
255
256 Also you need to change font settings in style files in the
257 "$HOME/Library/WindowMaker/Style" directory.
258
259 - the 'LC_CTYPE' environment variable is unset or it has the correct
260 value. If you don't know what is the correct value, unset it.
261
262
2634 Contribute to Translations
264****************************
265
266You may have noticed that many translations are not up to date, because the
267code has evolved but the persons who initially contributed may not have had
268the time to continue, so any help is welcome.
269
270 Since Window Maker 0.95.7 there are some targets to 'make' that can help
271you in that task.
272
273
2744.1 Install the latest sources
275==============================
276
277If you want to contribute, the first step is get the development branch of
278the code; this is done using 'git'. If you do not feel confident at all with
279using 'git', you may also try to ask for a snapshot on the developer's
280mailing list <wmaker-dev@googlegroups.com>. With 'git' the procedure is:
281
282 # Get your working copy of the sources
283 git clone git://repo.or.cz/wmaker-crm.git
284
285 # Go into that newly created directory
286 cd wmaker-crm
287
288 # Switch to the branch where everything happens
289 git checkout next
290
291 # Generate the configuration script
292 ./autogen.sh
293
294 Now you should have an up-to-date working copy ready to be compiled; you
295will not need to go the full way but you should run the 'configure' script,
296so it will create the "Makefile"s, and you may want to compile the code once
297so it will not do it again automatically later while you are doing something
298else:
299
300 # Setup the build, enabling at least the language you want to work on
301 ./configure LINGUAS="<list of iso 639 country code>"
302
303 # Compile the code once
304 make
305
306
3074.2 Updating the Translations
308=============================
309
310The typical process for translating one program is:
311
312 * generate a POT file (PO Template): this is done with 'xgettext' which
313 searches for all the strings from the sources that can be translated;
314
315 * update the PO file for your language: this is done with 'msgmerge'
316 which compares the PO file and aligns it to the latest template;
317
318 * edit the new PO file: this is done by you with your favourite editor,
319 to add the missing 'msgstr', review the possible fuzzy matches, ...
320
321 * check the PO file: unfortunately there is no definitive method for
322 this;
323
324 * submit your contribution to the project: this is done with 'git'.
325
326 In Window Maker, you have actually 4 'po' files to take care of:
327
328 - "po/<lang>.po": for Window Maker itself
329 - "WPrefs.app/po/<lang>.po": for the Preference Editor program
330 - "WINGs/po/<lang>.po": for the graphic toolkit library
331 - "util/po/<lang>.po": for the command-line tools of Window Maker
332
333 As stated previously, there is a 'make' target that can help you to
334automatically generate the POT and update the PO for these 4 cases:
335
336 make update-lang PO=<lang>
337
338 Once run, it will have updated as needed the 4 'po' files against the
339latest source code. You may wish to use the command 'git gui' to view the
340changes; you can now edit the files to complete the translation, correct
341them, remove deprecated stuff, ... Please note that the encoding should be
342set to UTF-8 as this is now the standard.
343
344 If you think an error message is too obscure, just ask on the developer
345mailing list <wmaker-dev@googlegroups.com>: in addition to clarifications
346there's even a chance for the original message to be improved!
347
348 You may find some information on working with 'po' file in the GNU
349gettext documentation
350(https://www.gnu.org/software/gettext/manual/html_node/Editing.html).
351
352
3534.3 Translate the Man Pages
354===========================
355
356You may want to extend the translation to the documentation that is provided
357to users in the form of Unix _man pages_. The sources of the man pages are
358located in the "doc/" directory; the translation should be placed in the
359directory "doc/_lang_/" with the same file name.
360
361 The directory will also need a file "Makefile.am" which provides the list
362of man pages to be included in the distribution package and to be installed.
363You can probably get inspiration from an existing one from another language;
364if you do not feel confident about it do not hesitate to ask on the
365project's mailing list (<wmaker-dev@googlegroups.com>), either for help or
366to ask someone to make it for you.
367
368 Please note that although most man pages sources are directly in man page
369format (nroff, the file extension being a number), a few of them are
370processed by a script (those with the ".in" extension, like "wmaker.in").
371This is done because in some case we want the man page to reflect the actual
372compilation options.
373
374 You may not want to bother with this hassle, in which case you can simply
375name your translation file with the ".1" and remove the special '@keyword@'
376marks. If you are sure you want to keep that processing but do not feel
377confident about hacking the "Makefile.am" do not hesitate to ask on the
378project's mailing list (<wmaker-dev@googlegroups.com>).
379
380
3814.4 Checking the Result
382=======================
383
384In the Window Maker build tree you also have another target that can help
385you, it is 'make check'.
386
387 At current time, it does not check much, but if during the 'make
388update-lang' new 'po' file have been created you may get some errors,
389because you have to add these new files to the variable 'EXTRA_DIST' in the
390corresponding "Makefile".
391
392 If you do not feel confident about doing it, do not worry, just tell
393about it when you submit your work, and some developer on the mailing list
394will just be happy to do it for you when integrating your valuable
395contribution (we always like when someone helps making Window Maker better).
396
397
3984.5 Submitting your Contribution
399================================
400
401Preliminary Remark: if the update process made changes in a 'po' file but
402you did not change any 'msgstr' content, it is probably a good idea to not
403submit the changes to that 'po' file because it would just add noise.
404
405 When you feel ready to send your changes, the first step is to prepare
406them. This is done with 'git': if you have not run the 'git gui' previously
407then it is a good time to do it now. This window offers you the possibility
408to show your changes and to decide what you want to send.
409
410 The window is divided in 4 panes:
411
412 * top-right show the current changes you have selected, for review (and
413 also for cherry-picking stuff if you want to select precisely)
414
415 * top-left ("Unstaged Changes") the list of files with changes to be
416 send, you can click on the name of the file to see the changes, you can
417 click on the icon of the file if you want to send all the changes in
418 this file; an icon in blue shows a file that have been changed and an
419 icon in black shows a file that is new
420
421 * bottom-left ("Staged Changes") the list of files with changes that you
422 have chosen to send so far, you can click on the file name to view
423 these changes, you can click on the icon if you want to remove the
424 changes from this file from the list to send
425
426 * bottom-right ("Commit Message") the message you want to attach to your
427 changes when you submit them to the development team
428
429 The idea here is to pick your changes to the 'po' files; for the commit
430message you may wish to stuck to a simple, single line:
431
432 "Updated translations for <lang>"
433
434 The penultimate step is to click on the button <Sign Off> (it will add a
435line in the commit message), and then click on the button <Commit>. From
436this time, the commit message will clear itself and the "Staged Changes"
437also, showing that your action was done.
438
439 You may now quit the 'git gui', the final step begins by running this
440command:
441
442 git format-patch HEAD^
443
444 This will generate a file named like
445"0001-updated-translations-for-XX.patch" which contains your changes, ready
446for sending. The goal will now be to email this file to
447<wmaker-dev@googlegroups.com>. If you feel confident in having 'git' send it
448for you, you may want to read the file "The-perfect-Window-Maker-patch.txt"
449to see how to configure 'git' for mailing, so you can run:
450
451 git send-email 0001-updated-translations-for-XX.patch
452