Felix release

Felix bug fix: version 1.1.1 released

I’ve released version 1.1.1 of Felix. It’s available from the download page.

This is a bug fix to fix a problem with saving memories in TMX format. Thanks to S. Patrick Eaton for spotting the bug.

I recommend that all Felix users update to this latest release if you plan to export your memories in TMX format.

Felix release

Felix version 1.1 released

Version 1.1 of Felix is released. This is a minor release with several usability enhancements and bug fixes. It’s available from the Felix download page. Below is a list of improvements and bug fixes in this version.


  • Memory window layout revamped
  • Memory window layout templates moved to external files
  • Auto-selection feature for matching algorithm
  • Glossary matching algorithm choice removed
  • Register glossary entries dialog: Trim spaces when adding entries
  • Bug: Toggle markup link for fuzzy matches
  • Bug: Glossary strings shown for memory tool tips
  • Bug: Switching languages failed to make tool tip language switch
  • GUI: Gave memory and glossary preferences pages consistent labels

Word interface

  • Bug: Canceling a lookup did not work as expected

The improvements and bug fixes are described in detail below. There will be one more minor release in June, followed by development of a network feature for Felix.

Memory window layout revamped

The layout of the memory window has been revamped and improved for better usability. Below are some examples of the new look.

No matches

Felix memory window with no matches

Added new entry

Added a new match to the Felix memory window

100% match

A perfect match in the Felix memory window

(Since this is a 100% match, there’s no need to show the query — it’s identical to the source)

Fuzzy match

Memory window layout templates moved to external files

The memory window style sheet and layout templates have been moved to external files. This will allow them to be customized. For example, one Felix user had a very large monitor, and the match text appeared too small. By modifying the stylesheet (style.css), he was able to increase the text size and improve visibility.

The files are located in the local application data folder. The location of this folder will differ depending on whether you’re using Windows XP or Vista.

Vista: C:\Users\user-name\AppData\Local\Felix\html\
XP: C:\Documents and Settings\user-name\Local Settings\Application Data\Felix\html\

Auto-selection feature for matching algorithm

Felix has two matching algorithms for fuzzy matching: character-based and word-based. The character-based algorithm is best for Asian languages where words aren’t separated by spaces, while the word-based algorithm is best for European and other languages where they are.

Before, the user had to select the best algorithm themselves, but now Felix selects the best algorithm automatically by default. You can still select the algorithm manually in the preferences.

Glossary matching algorithm choice removed

To simplify the interface, the choice of glossary-matching algorithms was removed. Felix now uses a special algorithm fine-tuned for glossary searches.

Register glossary entries dialog: Trim spaces when adding entries

When registering glossary entries in the dialog box, extra spaces were often spuriously added to glossary entries. These extra spaces are now trimmed automatically.

Bug: Toggle markup link for fuzzy matches

The option to toggle markup (showing where the query and source are different) on and off was not being saved between lookups, making the user select again each time. Now the selection is remembered.

Bug: Glossary strings shown for memory tool tips

In version 1.0, the glossary-related tool tips were being shown for the memory window (for example, the tool tip for the “New” toolbar button was “Create a new glossary file.” Now the correct memory-related tooltips are shown.

Bug: Switching languages failed to make tool tip language switch

In version 1.0, even if the UI language was switched, tool tips were sometimes displayed in the previous UI language. Now the tool tip language is also switched in all cases.

GUI: Gave memory and glossary preferences pages consistent labels

The Memory and Glossary preference sheets had different labels for the same features (normalizing case, width, and hiragana/katakana for searches). The same labels are now used.

Word interface Bug: Canceling a lookup did not work as expected

If you try to look up or register a very long segment (> 1,000 characters) in MS Word, a dialog box will ask if you really want to do this. In version 1.0, answering “No” in the dialog box would sometimes not completely cancel the action.

Felix tips

Felix tip: Switch between concordance and match views

Felix has a concordance feature that allows you to see how you’ve translated a word or phrase in the past. It can be used from the Felix window, from the MS Word interface, from the MS PowerPoint interface, and from TagAssist (select Felix >> Concordance from the menu).

The results of concordance are then displayed in the memory window, which will look something like this:

Concordance search results in Felix

(The matching word or phrase is highlighted.)

If you already had a memory lookup displayed in the memory window, you might want to show it again. To do so, select View >> Current View >> Match View from the menu (or press Alt + V, V, M).

Felix menu command to switch to match view

You’ll then be back at the match view:

Felix match view with sentence lookup

(You can go back to concordance view by selecting View >> Current View >> Search View.)

Note that the same functionality is available from the Glossary window as well.

Felix tips

Felix tip: Choosing your own segmentation

The Felix CAT tool

Clicking the right arrow button (or pressing Alt + Right Arrow) will select the next segment for Felix to look up. In MS Word, MS PowerPoint, and TagAssist, this means the next sentence or line of text. For MS Excel, this means the next cell in the worksheet.

Sometimes you may want more fine-grained control of how segements are selected. This is quite simple: just select the text you want to look up, and click the “L” button (or press Alt + L). That will be the segment that Felix looks up. This works in MS Word, MS PowerPoint, and TagAssist.

It’s also fairly easy to extend your lookup segment. This is useful if you want to translate two or more segments/sentences as a single unit. From Word or PowerPoint, press Ctrl + Right Arrow to extend the lookup to the next segment. In TagAssist, the keyboard shortcut is Alt + X. (I plan on making the keyboard shortcuts more consistent in a future version.) Since the Excel interface is cell-based, it’s not possible to extend the lookup from Excel.

In Microsoft Word, you can also control several aspects of segmentation from the preferences. From the Felix menu, select Felix Preferences, then the Segmentation tab.

Felix segmentation preferences for MS Word

Here you can select the “stop” characters (which characters mark the end of a segment), whether to skip segments containing only numbers (useful when translating tables of figures), and whether to skip segments unless they contain Asian characters, or unless they don’t contain Asian characters. (The label says Japanese, but it works for Japanese/Chinese/Korean. This is a UI bug that will be fixed in the next minor release.)

The Felix manual has more information about segmentation for the MS Word and MS PowerPoint interfaces.


New tool: Jamming2Felix

I’ve just released a new free tool: Jamming2Felix.

Jamming2Felix is a simple utility that converts glossaries from jamming format into Felix format.

I originally developed this application at the request of a jamming user, and am now releasing it to the general community. Enjoy, and let me know if you run into any problems.


Development roadmap for Felix

The Felix CAT tool

Now that my translation memory system has a new start as Felix, I’ve got a lot of plans for its development. In this post I want to lay out my development roadmap for the next three months. In June, I’m going to be working on a minor release with several minor enhancements. After that, I’m going to be working on two new features in July and August: translation history and network support (described below). I haven’t decided which order to implement them, so if you have a preference please let me know!

Translation history

This feature will be somewhat analogous to the Trados “bilingual file” concept, except that the information will be stored in a separate file. For example, if you’re translating a file called “MyFile.doc”, the translation history file would be “MyFile.doc.fth”.

This will make reviewing translations a lot easier. It will also make it possible to get rid of the “translation” and “review” modes (which I think introduce too much complexity) — instead Fellix will automatically know whether the current segment is a source or a translation, and behave accordingly.

Another benefit of the translation history feature is that it will allow integration with Trados-based workflows. I’ve long anguished over what to do about “bilingual” Trados files. There is demand to support these in Felix, but I absolutely didn’t want to do it the same way in Felix. I think embedding hidden text in your translation that later needs to be “cleaned up” is a horrible, horrible idea and one of the main reasons why I developed Felix. With a translation history feature, however, I could create a filter that translated between “bilingual” files and translation history files.

Network support

This feature will allow multiple translators to use the same memory simultaneously over a network, or over the Internet using a VPN. This eliminates the coordination problem, when two or more translators work on the same project simultaneously, and translator A translates sentence X or term Y one way, and translator B another way because they haven’t seen each other’s translations yet.

Further out

I don’t have anything concrete planned beyond August, but there are a number of things coming down the pipe. One is a new and improved Align Assist program (for “aligning” legacy translations to create translation memories). Alignment tools generally don’t work very well and are a hard problem, but there’s demand for them so I plan to brush up Align Assist when I hit a good spot with Felix.

I also want to have a better tool for translating XML files, and maybe some other formats like .NET resource files (for localization).

As always, if you have specific preferences for development, please let me know.


Listing on Microsoft Office Marketplace

I’ve just got Felix listed on Microsoft Office Marketplace. If you’re a Felix user, I’d really appreciate it if you’d go over there and leave a rating.

It was actually fairly easy to get listed, and best of all, it was free! I simply created a landing page according to Microsoft specifications, and filled out their application form. One of the Office Marketplace people (Rashida Smith) contacted me right away, and I was approved and listed within a week. Thanks Rashida, you were very helpful.

I got the idea for applying from Bob Walsh’s Micro ISV – From Vision to Reality. I plan to post a complete review of this book later, but it contains a lot of great information for people starting a small software business.


Defining a vision

Software needs to have a vision. A software program can’t be everything to everyone; you’ve got to decide who your users are and what you want to do for them.

I had a very clear vision for Felix (then TransAssist, then “Translation Assistant”): it would be powerful, simple, and get out of your way when you weren’t using it. It wouldn’t force its users to adapt to it; it would adapt to its users.

After all, that’s why I created Felix in the first place. I had been working with a couple of the major translation memory systems out there, and I was appalled at how hard to use and buggy they were, but most of all at how arrogant they were. They treated the translator like some trained monkey who had to jump through their hoops, rather than a professional knowledge worker who had just shelled out $1,000+ to use their crappy program.

Going Astray

Somewhere along the way, however, that vision started to get clouded. It was my fault for not stepping up and handling the marketing of Felix myself. Instead I left that to a company that understood the art of selling, but not of making software. In sales meetings where I wasn’t present, they were promising this feature or that feature; then they’d come back to me and say we had to hold up the next release yet again in order to implement feature X that Big Company Y said they absolutely required. Not quite coincidentally, that feature was usually on some checklist put out by one of the big players in the market.

Fire and Motion

Joel Spolsky describes this kind of feature war very aptly as Fire and Motion. Your competitors put out a slew of features that are useless for 99% of users, much like how an octopus sprays out an ink cloud. By the time you catch up the octopus is long gone, far ahead of you.

Implicit in my desire to finally take over the marketing of Felix was a determination to get back to my vision: simple, easy-to-use software. When you talk to users of translation memory, a lot of them will tell you that they bought their translation-memory program in order to get more work, or because their clients told them to. The classic captive user base. A captive user base is why most enterprise software sucks.

Select and Concentrate

I don’t want Felix to suck. I don’t want people to use Felix because somebody makes them. I want people to use Felix because it helps them work better, faster, and smarter. Sure, not implementing the feature smorgasbord will lose me some users, for whom feature X is a deal maker and deal breaker. On the other hand, keeping a well defined vision should make the software better for my target users.

That’s not to say that I’m not going to add features. In fact I have a big list of features that I’m working on right now. However, my focus is on features that reduce complexity from the user’s point of view, ideally making the program more powerful in the bargain.

Japanese has a handy expression, 選択と集中 – select and concentrate. The idea is that you pick your spots, and focus your efforts there. Rather than trying to be everything to everyone, you become indispensable to a niche that you select. That’s the direction I plan to take Felix.