Memory Serves release

Memory Serves version 1.0 released

I’ve just released version 1.0 of Memory Serves. There are a number of improvements over the early releases of Memory Serves. The main ones are listed below.

  • Browse memories and glossaries
  • Search memories and glossaries
  • Edit, delete, and view records
  • Utility to clear admin account if you forget your password*

* The utility can only be used from the host machine, and will only affect the account of the logged-on user.

About Memory Serves

Memory Serves is free program that shares Felix memories over the local network. This is useful when two or more translators are working collaboratively, and want to share the same translation memories/glossaries. It also makes it possible to manage your group’s translation memories in a central location.

Felix version 1.2 on the way

Barring a meteor strike to the Japanese archipelago, I’ll be releasing Felix version 1.2 tomorrow. This will enable networking goodness using Felix memories.

Other tools website

Find broken links on your website

I’ve been revamping the Felix manual, and I was worried about creating broken links in the process.

I was able to use a very cool tool called Xenu to find all the broken links on my site and quickly fix them. Xenu has a minimalistic interface, but it does what you need it to do, and very simply. First you feed it a URL or the path to a file on your computer. Xenu then spiders your site, and pops up a web page with all the broken links and the pages containing them. This is a great touch, because you can then jump right to the offending page and see where the broken link is.

The Google webmaster tools also give you a report on broken links, but it’s usually outdated (since they last spidered your site) and it doesn’t tell you where the broken links were. Xenu is thus a valuable addition to the webmaster’s toolkit.


Poor support for Japanese at Plimus: worse than I imagined

I already blogged about poor support for Japanese at Plimus here and here. By the lame form email they sent me each time I reported a bug with Japanese, I knew that they had no interest in supporting it.

That’s why when a customer pointed out the fatal bug in their Japanese page, I jumped ship and went to Avangate.

Plimus provides a Japanese-localized order form, but it turns out you can’t enter Japanese text in the name field!

EPIC fail by Plimus

In this form, I’ve entered a common Japanese name under “customer information” — Taro Suzuki — and the red error message is telling me I’ve made invalid input. The only way to complete the form is to write the name using the Roman alphabet — it won’t accept Japanese characters on the Japanese page.

Plimus masks this critical bug from vendors. It has a feature to “test drive” purchase pages, and allows you to enter Japanese text there with no errors. What I later realized, however, was that behind the scenes Plimus changes any name you enter on the test page to “John Doe.” I’ll assume this wasn’t intentional on Plimus’ part — they just seem completely clueless about handling Japanese, and show no desire to learn.

Luckily, a customer emailed me and told me she was having problems entering Japanese text on the purchase form. No telling how many customers simply gave up when faced with this bug, but my logs do show a number of people located in Japan navigating to the Japanese purchase page, but not completing the form.

Here’s a summary of the bugs I’ve found in Japanese support at Plimus, and which made me drop them as a payment provider:

  • Can’t enter Japanese text on Japanese page
  • Can’t customize purchase page with Japanese text
  • Yen prices shown to two decimal places

If you’re selling to Japanese customers, I recommend not using Plimus. I switched to Avangate, which has flawless support for Japanese.

From my research of resellers, Avangate is probably the only solution for selling to Japanese customers apart from rolling your own shopping cart with a merchant account, or using something like PayPal. As a one-man shop, I have only limited time to dedicate to Felix. I’d rather spend that time improving Felix than dealing with payment providers, which doesn’t help my users. That’s why it’s too bad that Plimus couldn’t meet my needs.

Felix Memory Serves

Early releases: Felix 1.1.8 and Memory Serves 0.3

I’ve got Felix working with Memory Serves now. There are still a couple of kinks to work out; for example, memories on the server aren’t fully integrated with the Memory Manager dialog in Felix. But normal memory and glossary searches are working, so I’m making this early release.

I expect to have the final release of Felix 1.2 and Memory Serves 1.0 within about a week, right on schedule. In addition to the network capability, I’m planning on adding a couple more improvements to Felix for the 1.2 release, along with some improvements to Memory Serves for the 1.0 release.

You’ll need the latest version of Memory Serves in order to use it from Felix, because I had to make a couple of changes to get them working together well.

Download Felix version 1.1.8 (6.7 MB)
Download Memory Serves version 0.3 (6.9 MB)

Using the Network Function

To connect to a memory on the server, copy the connection string for the desired memory/glossary in Memory Serves, then from the Felix File menu, select Connect… (you can do the same thing from the glossary window).

Felix Connect menu

The Connection Dialog appears. Copy in the connection string, and click OK.

Felix Connection Dialog

Now you should be able to use the networked memory just like an ordinary Felix memory.

There are still some kinks to work out before the official 1.2 release, but if you’d like a preview of the network function, I’d greatly appreciate any feedback and bug reports.

Felix Memory Serves

Progress report: Memory Serves 0.2

I was hoping to have an early release of Felix with support for Memory Serves memories by today, but unfortunately there is still a little bit of work to do. I’m leaving today for a trip with my family (going to climb Mt. Fuji with my son for his 10th birthday), so the release of Felix 1.1.8 will have to wait until sometime next week.

Memory Serves welcome screen
I did release Memory Serves version 0.2, however. The main change from version 0.1 is that there is now an admin account, which is needed to delete memories and shut down the server. When you first launch Memory Serves, it will prompt you to create an admin account.

Please note that installing version 0.2 will wipe out any memories/glossaries you had loaded in version 0.1, as the database schema has changed.

translation memory

Three types of translation memory search

When you’re relatively new to computer aided translation (CAT), the terminology can get a little confusing. In this post I want to describe the three main types of search used by translation memory managers (TMMs): memory search, glossary search, and concordance search.

Memory Search

This is the bread-and-butter feature of TMMs. Remember that a “translation memory” is basically just a database, where each entry is a string of source text, paired with its corresponding translation. The translation memory (TM) might have some other information, like who created each entry, how reliable the translation is, and so on, but the source-translation pair is the only essential part.

A memory search compares the sentence (or segment of text) that you’re currently translating against each source segment in your TM. If the TMM finds a match, then it displays the corresponding translation so you can insert it into your text without doing the translation again. This is the key function of a translation memory tool.

There are two kinds of matches that the TMM might find. The first is a perfect match: this is when there’s a source segment in the TM that’s identical to the sentence you’re currently translating. The other type of match is a fuzzy match: this is when there’s a source segment that’s similar but not identical to the sentence you’re translating. In either case, you need to decide whether to use the suggested translation (editing as needed), or ignore it and translate the sentence from scratch. Even with a perfect match, the translation might not fit in the current context; you’ve got to decide on a case-by-case basis. Which means that unfortunately, you can’t disconnect your brain when using translation memory.

Glossary Search

Another name for this is “terminology search.” Most TMMs these days have a glossary search function, although it might be an add-on with some. A glossary search matches source terms in a glossary against the sentence you’re translating; if it finds a matching term, the TMM suggests the term’s translation to you.

For example, if you’re translating the sentence “I like ice cream,” and your glossary has the entry [“ice cream” = “helado”], then your TMM will suggest the term “helado” to you.

It’s also possible to use fuzzy matching with glossary searches, although this isn’t as common a feature as with memory searches (Felix does have it).

Concordance Search

A concordance search (also called “context search”) is where you search your TM for occurrences of a particular term. They’re kind of the opposite of glossary searches: with a glossary search, the TMM is scanning the sentence you’re translating for matches in your glossary. With a concordance search, the TMM is scanning your translation memory for matches with the term you supply.

This feature can be really useful if you know you’ve translated a certain term before, but no matches are appearing in your memory search, and the term isn’t in your glossary. You can use a concordance search to find all the instances where you translated it before, the idea being that this should help you translate the term this time (and since you took the trouble to do a concordance search, maybe stick it into your glossary for the next time around).

For example, say you’re translating the sentence “I love ham for breakfast.” You don’t have any matches, but you know you’ve translated “ham” before (but can’t remember how). You could do a concordance search for “ham,” and might get matches like:

  • We roast a ham every Christmas.
  • That actor is a real ham.

(Which shows that it’s important to take the term’s context into account.) You could presumably then look at the translation for the first sentence, and see how you translated the edible type of ham in the past.

Those are the three main types of search performed by translation memory software. Now the next time you see these terms mentioned, you’ll know what they refer to. You can also see the Retrieval section of the Wikipedia article on translation memory.

Felix Memory Serves

Early release: version 0.1 of Memory Serves

I’ve just released version 0.1 of Memory Serves. This is ahead of an early release of Felix version 1.2, planned for next weekend. Together, it’ll be possible to share Felix memories over a local network.

This early release of Memory Serves is in order to get feedback and hopefully uncover any problems running on different systems. Well, hopefully there won’t be any bugs to be found (and I’ll win the lottery), but we all know how likely that is. An early release gives me wiggle room to declare a “bug free” major release :).

That said, I have tested it fairly thoroughly on my own XP and Vista systems. Since it does include a built-in server, it’ll be interesting to see how various firewall and security settings deal with it.

Felix Memory Serves tools

Progress report: Memory Serves

As I stated in my May development roadmap, this month I’m working on a server component for Felix. Development is going very well, and I should have an initial version of the server itself ready for release by this weekend. After that I’ll work on creating an interface to the server from Felix, and together with a couple more features, that’ll be the 1.2 release.

I’m calling the component Memory Serves. Not too creative I know — if you’ve got a better idea I’d love to hear it! It’ll be a separate download from Felix, and will be free. I’ll create a page for it along with the initial release.

The server will work as follows: it’ll launch a Web server on the local computer; you can use your web browser to configure the search preferences, upload Felix memory files, and so on. You can also “download” any of the memories/glossaries in Felix format, to use locally, email, or whatever. Also, anyone on the local network can access this server, and upload/download memories, etc. For the small collaborative groups I’m envisioning, this shouldn’t be a problem, but if you’ve got a use case that calls for permission levels (like who can add/delete a memory), please let me know.

Memory Serves memories page

From Felix, you’ll then be able to connect to the memories/glossaries on the server from any computer on your local network, using the connection string for each memory/glossary. From there, it will be just like using a local memory, except that you won’t have to worry about saving your memory: the server will handle that automatically.

I’m planning to make early releases of both the server and version 1.2 of Felix, in order to see if users can uncover any problems before I make the official release later this month.