ftp.nice.ch/pub/next/unix/developer/makelanguage.1.0.README

This is the README for makelanguage.1.0.s.tar.gz [Download] [Browse] [Up]

makelanguage - automatic ProjectBuilder 'make'
of multiple language versions in a single run


WHO'S IT FOR? Everyone who develops multi-language, localized applications.

WHY THE NEED? Suppose you have edited some nib files or help files
both in, say, English.lproj and German.lproj. In ProjectBuilder, you then
have to 'make' the stuff in one language, then change to the 'Attributes'
section, enter the name of the other language into the 'Language'
text field, save the project, change back to the 'Builder' section,
then 'make' again, and so on and so forth...  This is disgusting.

WHAT DOES makelanguage DO? It compiles multiple language versions
(i.e. copies nib files and triggers compresshelp as needed) in a
single 'make' run, without the need to change back and forth between
ProjectBuilder's 'Attributes' and 'Builder' sections.

HOW DO I PUT IT TO WORK? All you have to do is to compile the supplied
makelanguage.c, place it in any of your standard paths, and do some
very small editing of your makefiles. See below on how to set things up.


THE makelanguage UTILITY IS FREEWARE, SUPPLIED "AS IS".
USE IT TO YOUR LIKING, BUT DON'T BOTHER ME IF SOMETHING
GOES WRONG.

For suggestions of any kind,
you're welcome to contact me at <stefan@ping.at>.

Have fun,

- Stefan

------------------------------
Stefan Schneider
Lerchenfelder St. 85/6
A-1070 Vienna, Austria, Europe
<stefan@ping.at>
------------------------------



Now here's what you have to do:


1) Compile the source file makelanguage.c into an executable
and place it somewhere in your standard paths. For instance:

cc makelanguage.c -o ~/Apps/makelanguage


2) In file /NextDeveloper/Makefiles/app/app.make,
change (as root) the line 

project::   $(INITIAL_TARGETS) toplevel_subcomponents
resources $(PRODUCT)

to

project::   $(INITIAL_TARGETS) toplevel_subcomponents
resources $(PRODUCT) $(LATE_TARGETS)

Note: both of the above two-liners are, in reality, a single
line. In Dev3.3, this is line #123. What you have to do is
to append " $(LATE_TARGETS)" to the end of that line.

This modification adds a LATE_TARGETS entry to be built after
everything else. The modification does no harm at all - if a
project doesn't contain a LATE_TARGETS entry, then simply
nothing additionally happens.


3) in your project's Makefile.preamble file,
add the following lines:

LATE_TARGETS = make_other_languages

make_other_languages::
	@(makelanguage German $(PRODUCT_ROOT))
	@(makelanguage French $(PRODUCT_ROOT))

In this example, both the German and the French version will be
built after the English one (that is, if English is the language
that you have set in ProjectBuilder's 'Attributes' section).

You can add as many invocations of makelanguage as required,
for as many different language versions you are maintaining.

A single invocation of makelanguage makes a single language version.

Keep in mind that the 'main' language - the one set in the
'Attributes' section - is built by ProjectBuilder, and that all
'additional' ones are built by makelanguage.

Steps (1) and (2) have to be performed once only.
Step (3) has to be performed once per project.

One final hint: don't forget to touch the TableOfContents.rtf file
after having edited some help files deeper down the help dir tree,
or else compresshelp won't do its job.

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.