• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

WINGs/H03-May-2022-62,47447,543

WPrefs.app/H03-May-2022-65,09650,860

WindowMaker/H03-May-2022-15,79914,719

doc/H03-May-2022-7,3746,434

m4/H05-Apr-2020-11,16610,141

po/H03-May-2022-57,85046,386

script/H05-Apr-2020-3,1732,159

src/H03-May-2022-55,14440,303

test/H03-May-2022-957765

util/H03-May-2022-20,61015,865

wmlib/H03-May-2022-1,5671,159

wrlib/H03-May-2022-13,2039,780

AUTHORSH A D15-Feb-20196.5 KiB233160

BUGFORMH A D05-Apr-20201.7 KiB7143

BUGSH A D15-Feb-20191.3 KiB2522

COPYINGH A D15-Feb-201917.6 KiB340281

COPYING.WTFPLH A D15-Feb-20191 KiB5549

ChangeLogH A D15-Feb-2019235 KiB5,1134,893

FAQH A D15-Feb-201955 KiB1,5111,080

INSTALLH A D05-Apr-202015.4 KiB369287

INSTALL-WMAKERH A D05-Apr-202025.1 KiB724487

Makefile.amH A D15-Feb-20194.2 KiB11480

Makefile.inH A D03-May-202231.1 KiB975854

NEWSH A D05-Apr-2020109.7 KiB3,2252,203

READMEH A D05-Apr-202011 KiB316211

README.definable-cursorH A D15-Feb-20193.3 KiB9364

README.i18nH A D05-Apr-202018.7 KiB452312

TODOH A D15-Feb-20192.9 KiB7159

aclocal.m4H A D05-Apr-202051.5 KiB1,4291,295

autogen.shH A D15-Feb-2019856 2717

checkpatch.plH A D15-Feb-2019104 KiB3,8862,933

compileH A D05-Apr-20207.2 KiB349259

config.guessH A D05-Apr-202043.2 KiB1,4811,288

config.h.inH A D05-Apr-20207.2 KiB280188

config.subH A D05-Apr-202035.3 KiB1,8021,661

configureH A D03-May-2022617.4 KiB20,97517,777

configure.acH A D05-Apr-202032.2 KiB991818

depcompH A D05-Apr-202023 KiB792502

install-shH A D05-Apr-202015 KiB519337

ltmain.shH A D05-Apr-2020319.4 KiB11,2508,044

missingH A D05-Apr-20206.7 KiB216143

update-changelog.plH A D15-Feb-20193.3 KiB10264

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