Last updated 2010-03-13.

XARK is an open-source resource string library. It is a project I can't devote many esources to, but I saw the need and decided to act.

This started because I'd like to localize my apps into a few other languages, all of which I can barely order a drink in. There would be benefit for my users, but the time and money simply isn't there for a translation project. I suspect many other developers are in the same situation.

I looked for an online resource for translations of common software menu options, messages, etc. into other languages, and found that even though the OSS community has many localized applications, there was no common, reliable place to collaborate on translated text.

The closest I could find is Launchpad Translations, but it treats every project as a separate problem space rather than being a more general-purpose library of software-specific translations. Also, it's very Unix-centric, and as a .NET guy myself, I'd like to think there's no reason to have this stuck to one particular platform.


The project has three goals:

  1. Identify strings such as menu commands, and error messages that apply to many classes of software -- desktop, web-based, and mobile, all platforms.
  2. Translate each string into a number of useful languages, with rationale and discussion possible (wiki-style) for each chosen translation.
  3. Provide tidy release packages of strings that developers can plug easily into a number of development platforms.

Where is it?

Here. There's not much there because I'm basically just setting up the initial template. Email me (see bottom of page) if you want to contribute.

Hosting / Format

I'm still trying to figure out the best place to host this data. Advice welcome. For now it's a Google Docs spreadsheet.


What's with the name?

I came up with the name when Sam Ruby et al were seeking names for the standard to replace RSS. When I suggested the name, I reserved the domain just in case. The name "Atom" was chosen ultimately for that project, but I kept the domain and have been looking for a good use for it. This is an archive ("ark") of translations ("x" is often an abbreviation for "trans-"), so it seemed to be an excellent fit.

I considered other names. Anything with the word "Rosetta" in it seemed too obvious, and could fall afoul of other translation product trademarks. "Canopus" was a good alternative, but also has domain stakeholders and a history of use as a product name and a software company.


Content from this project will be considered Public Domain. Pure and simple. Can be used for any purpose, commercial or otherwise. It's highly debatable whether or not translations of simple words and phrases could even be considered copyright-protected anyway, and so I went with the simplest option available.

If any software projects wish to contribute their library of resource strings, you don't have to release the code implementation of your resource strings into the public domain, but the actual words, tags, translations, and comments about the translations will be considered public domain.

But this won't work, every application is different!

Sure, every application has unique phrases. But I see this just like I see the benefit of the excellent Silk icon library. If using this database allows me to translate 20%, 50%, or 80% of my menus, dialogs, and messages into the preferred language of my users with little or no effort, then I can focus only on the application-specific strings.

Application-specific strings also tend to do well when translated via services like Google Translate, because they're often full phrases or sentences that have meaning outside the IT world. But when it comes to, say, menu commands, there might be 3 words in a language for "Open", but only one is really appropriate for a dialog box to open a file. This is all about finding the most appropriate, most familiar words for software users.

How can I help?

"I" meaning you, the reader. Here's the thing. I don't do translation of software for a living. I've barely used resource files at all in my code and usually just use database tables for string lookup. I know how to be a polite American tourist in three languages, but I'm realistically only an English speaker. This really isn't my area of expertise.

So, any help you can give will, simply, be awesome. Suggest phrases for translation. Suggest translations. Offer discussion where you see translations that may be confusing. Help create scripts to download the raw data and package it so developers can link it directly to their apps and start using it.

Most of all, dogfood it. Use it in your own apps, because if you don't, you'll probably not come back here and pitch in. Admit it. OSS works only when you get use from it, so make it easy for you to use and it'll likely be more useful to others as well.

If you're a Google employee and are looking for a 20% project, I'd be happy to hand over the reigns entirely. I'm only starting this because no one else has and it seems like a terribly obvious collaborative problem.

Why does this web page suck?

Because I'm typing it freehand at 2:30am in a text editor. Don't have time for a fancy design.


Richard Tallent
Twitter and just about everywhere else: richardtallent