How to support this blog?

To support this blog, you can hire me as an OmegaT consultant/trainer, or you can send translation and project management jobs my way.

Search the site:

Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

"OmegaT Code Reading Sessions", Part 4 !

Are you scared of being bored today ?

The "OmegaT Code Reading Sessions" offer an exciting opportunity to spend one hour of your life trying to make sense of OmegaT's Java code…

Today is the 4th session. It will take place somewhere on a Jitsi instance, at 9pm Tokyo Time.

It's nicer (but not required) if:

  • you're interested in OmegaT
  • you're not scared of reading code, even if that does not make any sense to your current self

You still want to join ?

Maxprograms is back, take 2.

Free software by a world class XLIFF expert

I first wrote about Maxprograms in 2007. That was after Rodolfo M. Raya left Heartsome to pursue his activity as the Maxprograms software company. I’ve been meaning to write about his work for a long time now, especially since he decided to put all his products on Github, thus allowing translators to get the code, build the things, get the updates and run them on their side, for free.

Maxprograms also offers a lot of technical articles on the subjects of DITA, XLIFF and XML in localization. Check the page here if you are interested.

Rodolfo M. Raya is an editor of the XLIFF 2.0 specification and is a member of the OASIS XLIFF technical committee. He is also co-author of A Practical Guide to XLIFF 2.0.

April 15, 2023 update: Rodolfo has updated the build requirements.

  • JDK 17 or newer is required for compiling and building
  • Apache Ant 1.10.12 or newer
  • Node.js 18.15.0 LTS or newer
  • TypeScript 5.0.0 or newer
I've updated the version numbers below. Make sure you check the various requirements on the respective repository pages.

July 4, 2021 update: all of Maxprograms products are now available under an OSI approved Open Source license

Most of Maxprograms' products come with an easy-to-use installer and only the packages listed in italics below do not, because in their case an installer is not relevant.

If you check the repository list at https://github.com/rmraya?tab=repositories you will see the following software packages (among others). I added the product page on Maxprograms' site (the "..." links) to make it easier for you to find extra information:

  • Eclipse Public License 1.0 (OSI approved)
    • Fluenta (DITA translation manager) ...
    • Swordfish (standards based XLIFF CAT, supports Trados Studio packages) ...
    • TMXEditor (TMX editor, as the name suggests) ...
    • Stingray (document aligner) ...
    • XLIFFManager (GUI for OpenXLIFF) ...
    • OpenXLIFF (command line utility to create, merge, validate XLIFF files) ...
    • TMXValidator (validator/cleaner for TMX files) ...
    • TMEngine (translation memory engine) ...
    • SRXEditor (SRX editor) ...
    • MVDServer (simple web server) ...
    • XLIFFValidation (web-based XLIFF validation tool) ...
    • RemoteTM (remote TM server) ...
  • MIT (FSF and OSI approved)
    • Conversa (DITA publisher) ...
    • KeysAnalyzer (DITA keys analyzer) ...

A "normal" freelance translator would use Swordfish as an XLIFF translation editor/project manager. With eventually TMXEditor to work on client TMX, Stingray to align file sets, and TMXValidator to check and clean TMX files.

More advanced users, or PMs would use XLIFFManager or OpenXLIFF, along with XLIFFValidation and SRXEditor.

DITA specialists would use Fluenta, Conversa and KeyzAnalyzers.

Users who want to self-host services would use XLIFFValidation, MVDServer, RemoteTM.

Maxprograms' packages offer pretty much anything a translator would need, in very cleanly packaged solutions, with excellent user support, either community-based (on groups.io), or directly from Maxprograms if you are a subscriber.

And if your main translation editor in not Swordfish, you can still benefit from all the other packages depending on your needs.

DIY software

Fluenta, Swordfish, TMXEditor and Stingray are subscription-based, but allow translators to run the software for free from the source code (RemoteTM is proposed as a "software as a service" hosted by Maxprograms, but you can host it on your own server if you want).

What that means is that the packaged installer comes as a subscription, but if you don’t mind using Terminal to run your software, which is, let’s be honest, not much of a hurdle, you can use the software, access its updates, eventually make modifications for your own use, etc. for free.

The requirements to download, build and run the software are all given on each product’s Github repository, but here is the gist:

Ant, Node.js and Typescript are also available from Homebrew (https://brew.sh).

To build the software you’ll need to checkout (clone) the repositories. You also need to make sure that Ant uses Java 17 to build the package.

Rodolfo gives all the steps for building (for ex. Stingray):

    $ git clone https://github.com/rmraya/Stingray.git
    $ cd Stingray
    $ ant
    $ npm install
    $ npm start

Java ?

Maxprograms' applications used to be multiplatform Java only applications. Now they use a combination of Java and Javascript (even if the names are close, the two languages are totally unrelated) see below for Rodolfo's explanations.

Apple used to ship Java when macOS was young. It was in fact one of its selling points. Apple has stopped distributing Java a long time ago and now suggests that users install Oracle Java. Changes in the Oracle license and the availability of free Java distributions have allowed users to still benefit from Java without having to pay for a commercial user license.

Even after installing Adoptium's JDK, your machine will still prefer to use an older Java version if you have one installed on your machine.

Which means that if you run:

$ echo $JAVA_HOME

in Terminal and it won’t point to Java 17, you won’t be able to build the software.

On my machine, the above command gives

/Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home

A short investigation shows that the newly installed Java 17 is here:

/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/

The way to have ant use Java 17 instead of Java 11 for the build process is simply to give ant the right pointer:

$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/; ant

Once you’re done with the process, you can export your Java_Home back to its original value, just to be on the safe side. You’ll need to point to Java 17 only to build the software after a code update ($ git pull).

Back to the command line

Once you’ve run

$ npm install

you’re free to launch the application any time you want with

$ npm start

That’s it. This procedure works for Swordfish, Stingray, TMXEditor.

You can also create an Applescript that packages the whole process into a nice application that you can use to launch the various packages as you'd launch standard macOS applications.

A simple Applescript to do that could be:

use AppleScript version "2.4" -- Yosemite (10.10) or later use scripting additions set SwordfishPath to "/path/to/Swordfish/local/repository" set myCommand to "cd " & SwordfishPath & "; npm start" tell application "Terminal"'s front window delay 0.1 do script myCommand in its last tab end tell

↑ Electron ?

Maxprograms' applications used to be Java only applications. But Oracle (Java's main caretaker) neglect of GUI libraries led to a not very satisfactory situation for Java GUI application developers. Here is Rodolfo's rationale for his move away from Java-based GUI libraries:

I use HTML + JavaScript + CSS for the UI and Java for core libraries. In essence, my apps are web pages running on a Java server.

NodeJS provides access to Chrome's V8 JavaScript Engine. Electron is a bridge that provides native windowing environment for JavaScript pages displayed on top of Chrome.

JavaScript is a powerful language, but it is dangerously sloppy. Instead of coding directly on JavaScript, I use TypeScript (which is a safer language) and "transpile" my code to JavaScript for deployment.

I have not switched completely to TypeScript because there aren't good XML libraries for JavaScript. All translation standards are defined using XML and Java is still the best option for handling them. The good news is that JLIFF (a JSON-based version of XLIFF) is currently in development.

Why switch to HTML + CSS for the UI if Java is a cross-platform tool?, you may ask. The answer is simple: Java dropped its major UI libraries.

Initially, Java shipped with AWT, a horrible toolkit with poor design and feature lacking. AWT was so bad that two options replaced it: Swing (originally developed by Sun and currently used by OmegaT) and SWT (the one I used in Swordfish, developed by Eclipse Foundation).

Oracle deprecated Swing in Java 8 and replaced it with JavaFX. When Java 9 was released, JavaFX was abandoned and development moved to its own open-source project, away from Oracle.

The Eclipse Foundation, which developed and maintained SWT for years, stopped improving SWT when JavaFX appeared. It did not fully embrace JavaFX and SWT is languishing since then.

With SWT dying, I looked at JavaFX. It tries to mimic HTML + CSS without success. Not good enough. The real alternative: adopt HTML and CSS.

Et voilà!

I'm not even scratching the surface of what Maxprograms has offered to translators since Heartsome disappeared. Each software package deserves a whole article.

Maxprograms' packages are yet another proof that working on macOS as translators, project managers or localization engineers is possible. And we're lucky that most of the multiplatform packages that allow us to work on macOS are backed by very talented people and communities who do their best to keep us from having to change of platform.

Disclaimer: I am not affiliated in any way to Maxprograms. Just so that you know...

Oracle JDK7 for OSX

You remember when Apple said they would not maintain Java anymore ? That was just 12 months ago:

Java is dead! Long live Java? (on this blog)

I just noticed that Oracle released a new preview edition of JDK7 for OSX yesterday (b215).

http://jdk7.java.net/macportpreview/

I installed it and after changing my Java preferences (search for "Java Preferences" in SpotLight), I tried the preview version of OmegaT.

The result ?


54443: Info: OmegaT-2.5.0_1 (Thu Oct 27 15:05:55 JST 2011) Locale en_US
54443: Info: Java: Oracle Corporation ver. 1.7.0-ea, executed from '/Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home/jre' (LOG_STARTUP_INFO)


It works !

No crash yet so I think I'll finish the current job with that new version of Java.

Be extra cautious though when you use preview versions of software. A bug can bite you in the middle of a job...

Update (a few hours later)
It works, but there are a few issues that make it not practical to work with this preview right now. I've reverted to Java 1.6 until Oracle delivers something closer to a release candidate :-)

Detailed information is here:

http://wikis.sun.com/display/OpenJDK/Mac+OS+X+Port+Project+Status

Update (a few days later)
Apple has just released a new update for Java 1.6 for Snow Leopard and Lion. Check software Update. The JDK7 port just released a new build: b217.

Java is not so dead after all...

The announcement came from Oracle, a few weeks after Apple's declaration (see Java is dead! Long live Java?).

Basically all of Apple's Java efforts will be handled by Oracle, within the OpenJDK project and Oracle will release Java for Apple machines, not Apple anymore.

If you are interested in declarations, check this link: OpenJDK News, Nov. 12.

Before OpenJDK took charge of the OSX version of Java, there were a number of projects that attempted to use the FreeBSD version of OpenJDK to create something that would run under OSX.

Now, OSX has its own development project at OpenJDK and things are slowly progressing, which is a very good thing...

The project goals are:

  • Pass all appropriate certification tests for Java SE 7
  • Include a complete, native Cocoa-based UI Toolkit
  • Provide excellent performance

Which basically translates into: what Apple has been providing us with since the beginning of OSX, but by the people who are behind Java (and hopefully with simultaneous Windows/Linux/OSX releases).

If you want to build Java on OSX, you can. Follow the instructions on this page: Mac OS X Port. I have built Java 1.7 on my machine and it worked well with OmegaT. The only problem is that the UI toolkit still depends on X11, which means that your favorite Java application will not look like a native citizen of OSX. But that will happen!

If you want to see how the project advances and check the discussions (and participate in case you have a problem building the thing for example) check the following links:

The questions that remain unanswered are the following:

  1. Will Java 1.7 on OSX be available at the time OSX 10.7 Lion is released next summer?
  2. If not, will OSX 10.7 Lion include the current Apple released Java 1.6 by default an all new machines?
  3. Once Java 1.7 is released by Oracle, will Apple include it in OSX bundles or will users have to go fetch it from Oracle's site ?

My take is that Java 1.7 will not be finished by the time Lion is released, and for the rest, I have no idea.
I'd like to say "yes" for a default Java 1.6 in Lion and "possible" for inclusion of Oracle's Java in further releases (after all OSX bundles plenty of third party development tools). We'll see.

But the future is definitely much brighter than it was back in October.

Java is dead! Long live Java?

[update July 2018]

This post is very outdated, but for some reason it still seems to attract a lot of readers. So here is the update:

Some applications still require Java 1.6 for the Mac. Apple still offers a Java 1.6 package that, at the time of this writing, works from Lion to High Sierra:

"Download Java for OS X 2017-001" (this is a link to the support article where you'll find the download link).

The best pro-applications for translators are still mostly Java applications*. OmegaT 3.6 requires at least Java 1.6 and OmegaT 4.1 requires Java 1.8. Unless your Mac is really old, you have access to Java 1.8 directly from Oracle, since, as described below, Apple has stopped offering direct Java downloads.

Soylatte does not exist anymore. Now everything is officially released by Oracle. If you need Java downloads, check here. Do not install Java 9 or 10 right now unless you know what you're doing.

Et voilà !

* Maxprograms has started working on a new multiplatform technology for its latest TMXEditor program: Javascript in the browser. Not free software but better than the Heartsome's defunct TMXEditor (buggy when running with recent versions of Java) and OkapiFramework's Olifant that works fine as a .Net application when run from Windows (in VirtualBox for ex.) but has not been updated for years in its Java incarnation...



Apple just released a new update for Java 1.6 (both for OSX 10.6 and OSX 10.5, available from Software Update), pretty much the same day Steve Jobs introduce us to a few features of the upcoming version of OSX, 10.7 aka Lion.

The theme of the presentation was "Back to the Mac". Triple layered meaning...
  1. Back to the Mac after spending so much time and energy on iOS and mobile devices
  2. Software improvements to OSX directly coming from the iOS experience
  3. Hardware improvements to the MacBook with the new incarnation of the MacBook Air, inheriting a lot of cool technology from the iPad.
The presentation is available directly from Apple's page. Skip the iLife stuff and directly go to minute 53' to see the OSX part. The App Store and Mission Control parts are really interesting.

Then, in my inbox, came the Java update. After a good news, a bad one (well, hopefully only half bad). 

Quoting Apple: As of the release of Java for Mac OS X 10.6 Update 3, the version of Java that is ported by Apple, and that ships with Mac OS X, is deprecated.

The full release note is here: Java for Mac OS X 10.6 Update 3 and 10.5 Update 8 Release Notes

Shocking news.

For translators on the Mac, Java applications are the key to freedom from Windows, even though a lot of "switchers" use the Mac mostly to provide their Windows environment with a stable virtual foundation... On the top of my mind, here are the mainstream applications that depend on Java and are vital for translators who do not rely on Windows:
If you read between the lines of the release note though, you can see that what is deprecated is no Java on the Mac in general, but "the version of Java that is ported by Apple, and that ships with Mac OS X".

With the recent acquisition of Sun by Oracle (Oracle makes massive use of Java), the opening of the JDK source by Sun a few years ago and the currently existing efforts to port that OpenJDK to the Mac, one can also see that move as a way for Apple to say that Mac users will not be left without Java on the Mac, because either Oracle or the OpenJDK community will eventually deliver something that Java users on Mac can still use to run their favorite applications.

In any case, it will eventually be possible to install a foreign (compatible) JRE on Mac that runs all our applications. I've tried a few days ago with Soylatte but I was not able to fully run OmegaT in it, and the windowing system was X11 (with all its UI glitches).

Still, as was mentioned today on the Java-dev list hosted by Apple, it is very unlikely that Apple will just remove Java from OSX. Java is big in education and multiplatform development and Apple has 20% of the PC share in the US as of today (cf the very first part of today's presentation). So Apple is probably thinking of something else.

In any case, right now I don't think Mac users of Java apps have anything to fear. They can keep their Snow Leopard Mac with the latest supported Java and don't have to upgrade to anything. We have about 8 months before Lion's release, hopefully Java we'll be there too in one form or another.

And apologies for the 10 months long blank on this blog...

(updated on 10/22)

New update (10/22): Steve Jobs hints at a different approach, via Hacker News: "Sun (now Oracle) supplies Java for all other platforms. They have their own release schedules, which are almost always different than ours, so the Java we ship is always a version behind. This may not be the best way to do it"

OmegaT Java Web Start

In previous article, I mentioned the release of OmegaT as a Java Web Start application.

Once OmegaT.jnlp is downloaded, a double-click should open it in Java Web Start.app.

If that is not the case, if it opens as a text file for example, it means that .jnlp files associations to Java Web Start.app are broken.

To fix that, right-click on the .jnlp file, Choose "Open With", select "Others..." at the bottom of the list and browse your disk to find the application.

Java Web Start.app is located in /Applications/Utilities/Java/ for older versions of Java and in /System/Library/CoreServices/ for the most recent version of Java (Java update 4, released on June 15 2009).

Once you have selected the application, check the "Always open with" box at the bottom of the dialog.

Thanks to Yves who send me the comment that triggered this "investigation" and to this blog article that clarified everything.

Apple Java 1.4 and 1.5 Update for OSX 10.4.10 and later...

Released yesterday: Java for Mac OS X 10.4, Release 6.

Make sure you don't get a version number wrong...

From the page:
Java for Mac OS X 10.4, Release 6 delivers improved reliability and compatibility for Java SE 5.0 and Java 1.4 on Mac OS X 10.4.10 and later. This release updates J2SE 5.0 to version 1.5.0_13 and Java 1.4 to version 1.4.2_16.

The release notes are here.

TMX Editor, locale4j, File2XLIFF4j

A bunch of new exotic names for Mac...

TMX Editor



TMX Editor is a Java Swing GUI built for working with files supporting the TMX localization standard.
I found the application yesterday and tried to open an OmegaT tmx file just to see what the tool was able to do and, well, nothing happened. I sent a mail to Matthew Gagne, the project manager and received this answer a few minutes ago:

It seems as if this problem relates to the version of the TMX standard that is implemented currently.
http://www.lisa.org/standards/tmx/ lists 1.4b as being the official revision level. The editor, however implements the newest TMX 2.0 draft standard using the locale4j library. This was a decision made when we began localization of our other projects here. Unfortunately there seems to be compatibility issues between the two TMX formats (1.4b vs 2.0).


Since TMX 2.0 is unlikely to be in widespread use before a while, Matthew also mentioned that he'd love if Java developers could join the project to work on backward compatibility with the current TMX version.

locale4j is the library that is at the core of TMX Editor. It currently works only with TMX 2.0 data.

License



Both TMX Editor and locale4j are licensed under the Mozilla 1.1 License, which is a Free Software License not compatible with the GPL.

File2XLIFF4j



File2XLIFF4j is quite another beast: File2XLIFF4j is a java based library for converting files to the XLIFF standard. The overview shows that the library is not exactly for the normal translator, but it is still important to know that such conversion libraries exist.

Interesting to see that the overview author, Weldon Whipple, has a "lingotek" email.

License



File2XLIFF4j is licensed under the GPL.

Maxprograms is back !

About Maxprograms



Maxprograms is manned by Rodolfo Raya, of Heartsome and XLIFF fame. Maxprograms used to provide a few free Java utilites that were later included in Heartsome's Translation suite. Rodolfo quit Hearstome a few weeks ago and decided to put all his utilities back on Maxprograms' site.

The tools


The free tools that are now distributed directly from his site are:


TMXValidator

TMXValidator checks your documents against TMX DTD and also verifies if they follow the requiremenst described in TMX specifications.

TBXMaker

TBXMaker converts glossaries stored in CSV (Comma Separated Values) to TBX (TermBase eXchange) format.

CSVConverter

CSVConverter converts glossaries stored in CSV (Comma Separated Values) to TMX (Translation Memory eXchange) standard.

Java Properties Viewer

A tool specially created for viewing translated Java .properties files comprising languages not supported by the ISO 8859-1 character encoding.

MARTIF to TBX Converter

A program designed to convert glossaries in MARTIF format, also known as ISO 12200, to TBX format.

RTFCleaner

RTFCleaner removes hidden text and Trados/Wordfast markup from translated Tagged RTF files.



It is very nice to see that they are now available without having to download the full HTS package.

Dependancies


The utilities require Java 1.5 or better. Which means that for the time being they can be used only on OSX 10.4.8 or better. See Apple's download page if you only have Java 1.4. Java 1.5 is the default version on Leopard.

Since the utilities were included with Heartsome's Translation Suite they can be put to even better use in a workflow that involves HTS.

Free software ?


Currently, only TMXValidator has been released as a free to use source package. The license Maxprograms used is the Eclipse Plugin License v. 1.0. This makes TMXValidator free (as in free speech) software, but the EPL v. 1.0 not being compatible with the GPL it won't be possible to use the source code for inclusion in GPLed products.

All the other utilities are not (yet ?) available as free software, they are just free as in "free beer".


Anyway, thank you very much for your work Rodolfo ! And good luck to Maxprograms !

OmegaT 1.7.3 (with Mac bundle) released !

First of all I'd like to thank all the people who have tested my Mac bundles for OmegaT.

I used your comment to create the official version that is released today.

As you probably know, the OmegaT project puts the "test" label on versions that do not have up to date manuals but that are at least as stable as the stable version... Basically, test version have been thoroughly tested already by a number of power users and all the problems are supposed to have been ironed out.

So go ahead, it won't bite you !

The file, once unzipped, becomes OmegaT.dmg and opens with 2 files:

- documentation.html
- OmegaT.app

The documentation.html file is exclusive (now) to the Mac package, and groups all the information per available language. I put the up to date manuals in bold so that you can see them right away. This is the case for the English manual exclusively as of today.

The manual has been fully updated thanks to the work of the current documentation manager to reflect all the new features (check the changes.txt file) and extra information like bidi languages handling and command line arguments.

It's been a long time since OmegaT was released with a Mac bundle (1.4.4 was the last one if I remember well) and the current release manager and I are working on automating this process (instead of having to do everything by hand here).

People who still want the rough edges of the "pure Java" version can still use the "OmegaT_1.7.3_Without_JRE.zip file. It will behave exactly like previous OmegaT versions (as far as integration with OSX is concerned) and will allow for all sorts of command line arguments passing. The bundle is a little bit trickier to modify, you need to edit the .plist file inside the package to obtain the same results.

Java 1.6 for Mac !

Apple has been criticized for not including Java 1.6 into Leopard. The current default is Java 1.5 when all the other platforms (Windows, Linux, Solaris etc) have access to Java 1.6...

Since SUN opened the code of Java it is freely available for porting and modifications. What should happen eventually happened: somebody took the source code and ported it to Mac.

The result is "SoyLatte: Java 6 Port for Mac OS X 10.4 and 10.5 (Intel)" by Landon Fuller. The performance seems to be pretty good too. See the benchmark comparing Ruby on OSX and JRuby on Java 1.6/OSX by Charles Nutter.

With this release, OSX users are getting closer and closer to a stable release of Java 1.6 for their machine (only Tiger or Leopard).

There is a developer preview from Apple, but it only works under Leopard and you need to be registered as a developer to access it (registration is free).

Java applications on Leopard

It seems Java developers are very disappointed by the fact that not only does Leopard not ship with Java 1.6 but that the Java 1.6 preview available from the Apple Developer Connection is simply gone.

Does that mean that Java applications will stop working on Leopard ? No.

Leopard comes with Java 1.5. Quote from Apple: "Mac OS X includes the full version of J2SE 1.5, pre-installed with the Java Development Kit (JDK) and the HotSpot virtual machine (VM), so you don't have to download, install, or configure anything."

So, you can still run OmegaT, OpenLanguageTools, Heartsome's Translation Suite and any other software that does not depend on Java 1.6 without a glitch, as far as I've tested.

Some developers have reported that the Java 1.6 preview totally broke Java on Leopard but it is not the case for me... [see the update at the bottom]


Anyway, it is likely that Java 1.6 will be released soon as seems to believe Eric Burke of "It's just a bunch of Stuff That Happens"...

Check this Apple Developer Connection page to see if you miss a Java 1.5 update on Tiger.




ps1: OpenLanguageTools is not advertised as a Mac application but the UNIX version runs very well on Mac.

ps2: Heartsome will soon release version 7 of its suite.

update: Java 1.6 did indeed break a few things. When Leopard is installed the Java preferences in /Applications/Utilities/Java allow you to change the default JVM to Java 1.6. Don't do that! If you do, a number of processes that are meant to run with an unspecified version of Java will try to run with Java 1.6 and won't work. Since the Java Preferences also seems to call that unspecified version of Java, you will be stuck without being able to get back to a default Java 1.5.

Well, there may be tricks to do get back there quickly, be the safest route seems definitely to remove Java 1.6. Javablog indicates a straightforward procedure to do so. Not for the faint of heart! But that is the cost of using developer preview beta software...

Popular, if not outdated, posts...

.docx .NET .pptx .sdf .xlsx AASync accented letters Accessibility Accessibility Inspector Alan Kay alignment Apple AppleScript ApplescriptObjC AppleTrans applications Aquamacs Arabic archive Automator backup bash BBEdit Better Call Saul bug Butler C Calculator Calendar Chinese Cocoa Command line CSV CSVConverter database defaults Devon Dictionary DITA DocBook Dock Doxygen EDICT Emacs emacs lisp ergonomics Excel external disk file formats file system File2XLIFF4j Finder Fink Font français Free software FSF Fun Get A Mac git GNU GPL Guido Van Rossum Heartsome Homebrew HTML IceCat Illustrator InDesign input system ITS iWork Japanese Java Java Properties Viewer Java Web Start json keybindings keyboard Keynote killall launchd LISA lisp locale4j localisation MacPorts Mail markdown MARTIF to TBX Converter Maxprograms Mono MS Office NeoOffice Numbers OASIS Ocelot ODF Okapi OLPC OLT OmegaT OnMyCommand oo2po OOXML Open Solaris OpenDocument OpenOffice.org OpenWordFast org-mode OSX Pages PDF PDFPen PlainCalc PO Preview programming python QA Quick Look QuickSilver QuickTime Player Rainbow RAM reggy regular expressions review rsync RTFCleaner Safari Santa Claus scanner Script Debugger Script Editor scripting scripting additions sdf2txt security Services shell shortcuts Skim sleep Smultron Snow Leopard Spaces Spanish spellchecking Spotlight SRX standards StarOffice Stingray Study SubEthaEdit Swordfish System Events System Preferences Tags TBX TBXMaker Terminal text editing TextEdit TextMate TextWrangler The Tool Kit Time Capsule Time Machine tmutil TMX TMX Editor TMXValidator transifex Translate Toolkit translation Transmug troubleshooting TS TTX TXML UI Browser UI scripting Unix VBA vi Virtaal VirtualBox VLC W3C web WebKit WHATWG Windows Wine Word WordFast wordpress writing Xcode XLIFF xml XO xslt YAML ZFS Zip Zotero