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.