Monument ([info]marnanel) wrote in [info]marnanel_joule,
@ 2008-10-31 17:10:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:release, translation

Translating Joule
How to translate Joule into your language for glory and a mention in the page footer:

EITHER

you can go to Launchpad and enter translations into a friendly web interface (but please comment here to let me know you've done it)

OR

You can post your translations here. See below for more information about this.

The original post

Some of you offered to translate Joule. Thank you! The current text in Joule is here. If you could email me (thomas at thurman org uk) or, even better, comment with translations here, that would be helpful. If there's more than one of you working on a language (I know more than one person has offered with Russian), maybe you could each do part, or offer other suggestions?

Also, something that's not in the file (mostly because it hasn't come up yet): please also tell me how to say "[language] translation by [your name]." (Of course if multiple people help with a language it will need to have multiple names there.) This will appear on the footer in all pages in that language.

Joule will be released under the GNU Affero General Public Licence version 3 towards the end of the year, and you are licensing your translations under this licence.

update: I should explain .pot files:

This:
# Any problems, please let me know.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2008-10-28 23:10+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"


is a header; put in your language and your name and email address. Then all the others go like this:

msgid "joule is by {Thomas Thurman}"
msgstr ""


and you would put your language's translation into msgstr:
msgid "joule is by {Thomas Thurman}"
msgstr "mae joule gan {Thomas Thurman}"

or whatever.




(Post a new comment)

German (de)
[info]pne
2008-11-01 10:24 am UTC (link)
# Any problems, please let me know.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2008-10-28 23:10+0000\n"
"Last-Translator: Philip Newton <Philip.Newton@pobox.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

# Translate this to the name of your language
msgid "English"
msgstr "Deutsch"

# Text inside {curly brackets} should usually be translated, but will be treated
# specially (usually as a hyperlink).  You should keep these in the same order
# if possible.  If it's not possible, please ask me for advice.
# Text inside [square brackets] should be left alone because it will be replaced
# with a value.  You can reorder these as much as you like.
msgid ""
"<p>Joule is a way of keeping track of who's reading your stuff.</p>"
"<p>Lots of sites allow you to make a list of people you want to follow<br />"
"(sometimes called a friends list, or a watch list).<br />"
"Sometimes they also let you see who has you on their friends list.<br />"
"But wouldn't it be nifty if you could see when people start<br />"
"and stop reading you, like {this}?<br />"
"That's what Joule is for.</p>"
"<p>Joule has been around for five years and has tens of thousands of happy users.<br />"
"Join in by typing your username into the box above.</p>"
msgstr ""
"<p>Mit Joule kannst du nachverfolgen, wer deine Sachen liest.</p>"
"<p>Viele Sites erlauben es dir, eine Liste von Leuten zu erstellen,<br />"
"deren Einträge du verfolgen möchtest (oft Freundesliste oder Watchlist<br />"
"genannt).<br />"
"Manchmal kannst du auch sehen, wer dich auf seiner Freundesliste hat.<br />"
"Aber wäre es nicht cool, wenn du sehen könntest, wann Leute anfangen<br />"
"oder aufhören, dich zu lesen -- etwa {so}?<br />"
"Dafür wurde Joule geschrieben.</p>"
"<p>Joule gibt es jetzt schon seit fünf Jahren, und es hat Zehntausende<br />"
"zufriedener Benutzer.<br />"
"Mach' auch mit! Tippe einfach deinen Benutzernamen in das Feld oben.</p>"

# I suppose "DATE" should really be "SITE", judging by the website?
msgid "Show me the fans of [NAME] on [DATE] as a {chart} or {graph}."
msgstr "Fans von [NAME] auf [DATE] als {Tabelle} oder als {Graphik} zeigen."

msgid "joule is by {Thomas Thurman}"
msgstr "Joule ist von {Thomas Thurman}"

msgid "page designed by {Firinel Thurman}"
msgstr "Seitendesign von {Firinel Thurman}"

msgid "{code released} under {the GNU Affero Licence}"
msgstr "{Code veröffentlicht} unter {der GNU-Affero-Lizenz}"

# I suppose "union" here means "trade union"?
# As in, "this page was produced by a trade union (or members of one),
# and we're proud of that fact"?
msgid "proudly union made"
msgstr "stolz produziert von einer Gewerkschaft"

msgid "hosted by {red stair}"
msgstr "Webhosting von {red stair}"

msgid "valid {html}, {css}, and {rss}"
msgstr "gültiger {HTML-}, {CSS-} und {RSS}-Code"

# statistics
msgid "Yesterday: [RH] RSS hits ([LJ]% LJ, [GR] Google Reader), [HH] HTML hits ([FF]% Firefox, [IE]% IE, [SAF]% Safari); [GH] Google hits"
msgstr "Gestern: [RH] RSS-Zugriffe ([LJ]% LJ, [GR] Google Reader), [HH] HTML-Zugriffe ([FF]% Firefox, [IE]% IE, [SAF]% Safari); [GH] Google-Zugriffe"

msgid "graph"
msgstr "Graphik"

msgid "chart"
msgstr "Tabelle"

msgid "with blanks"
msgstr "mit Leerzeilen"

msgid "without blanks"
msgstr "ohne Leerzeilen"

# Use the same term as for an LJ community
msgid "community"
msgstr "Community"

# frequently asked questions
msgid "faq"
msgstr "FAQ"

msgid "code"
msgstr "Code"

msgid "full view"
msgstr "alles zeigen"

msgid "most recent"
msgstr "neueste Einträge"

# Column heading
msgid "Datestamp"
msgstr "Datum"

# Column heading
msgid "Friended by"
msgstr "als Freund hinzugefügt von"

# Column heading
msgid "Unfriended by"
msgstr "als Freund entfernt von"

# Nobody friended or unfriended them this time
msgid "None."
msgstr "Niemandem."


Edited at 2008-11-01 10:26 am UTC

(Reply to this)


[info]pne
2008-11-01 10:27 am UTC (link)
I put two comments into the translation, about "union" and "[DATE]".

(Reply to this) (Thread)

Re: German (de)
[info]pne
2008-11-01 10:29 am UTC (link)
Oh, and I see you tend to use lower-case in the footer of the site. German capitalises all its nouns, not just proper ones, but I suppose if you wanted to lower-case everything for effect, you could do so.

(Reply to this) (Parent)(Thread)

Re: German (de)
[info]marnanel
2008-11-01 10:25 pm UTC (link)
Thanks so much-- this was useful not just as a language but also as a test case for the internationalisation subsystem as a whole.

I think the syntactic function of capitals overrides the stylistic consideration here, yes.

You're right about [DATE]. Sorry. Fixed in source.

I also realised it's been six years, not five, and I made a few other minor tweaks when the English strings didn't actually match what the program was expecting; I hope I haven't broken anything. New-Joule is running entirely in German at the moment; see my most recent friendslocked post on my own journal if you'd like to see how it's going.

I also forgot to ask you for the two versions of the HTML page title, but I'll update the .pot tomorrow because I've been working on this for hours now.

(Reply to this) (Parent)(Thread)

Re: German (de)
[info]pne
2008-11-01 11:13 pm UTC (link)
see my most recent friendslocked post on my own journal if you'd like to see how it's going.

I'm not on your friends list, though.

I also realised it's been six years, not five, and I made a few other minor tweaks when the English strings didn't actually match what the program was expecting

Let me know when you've put up the new .pot file.

(Reply to this) (Parent)(Thread)

Re: German (de)
[info]marnanel
2008-11-01 11:27 pm UTC (link)
You're not? I'm sorry, I thought you were! Anyway, new version now up; I hope I have everything now.

(Reply to this) (Parent)(Thread)

Re: German (de)
[info]pne
2008-11-02 06:08 am UTC (link)
New version here: http://pne.wunschzetel.de/joule-de.pot

Edited at 2008-11-02 06:09 am UTC

(Reply to this) (Parent)


[info]marnanel
2008-11-01 11:28 pm UTC (link)
oh-- "proudly union made" == by members of a union, not by the actual union itself.

(Reply to this) (Parent)

Russian [ru]
[info]9000
2008-11-02 12:03 am UTC (link)
# Any problems, please let me know.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2008-10-28 23:10+0000\n"
"Last-Translator: Dmitry Cheryasov <dmitry.cheryasov@gmail.com>\n"
"Language-Team: Russian <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

# Translate this to the name of your language
msgid "English"
msgstr "Русский"

# Text inside {curly brackets} should usually be translated, but will be treated
# specially (usually as a hyperlink). You should keep these in the same order
# if possible. If it's not possible, please ask me for advice.
# Text inside [square brackets] should be left alone because it will be replaced
# with a value. You can reorder these as much as you like.
msgid ""
"<p>Joule is a way of keeping track of who's reading your stuff.</p>"
"<p>Lots of sites allow you to make a list of people you want to follow<br />"
"(sometimes called a friends list, or a watch list).<br />"
"Sometimes they also let you see who has you on their friends list.<br />"
"But wouldn't it be nifty if you could see when people start<br />"
"and stop reading you, like {this}?<br />"
"That's what Joule is for.</p>"
"<p>Joule has been around for five years and has tens of thousands of happy users.<br />"
"Join in by typing your username into the box above.</p>"
msgstr ""
"<p>Joule позволяет проследить, кто читает то, что вы пишете.</p>"
"<p>Куча сайтов позволяет создать список тех, кого вы хотите читать<br />"
"(часто он называется списком друзей или френд-лентой).<br />"
"Иногда они позволяют видеть и тех, кто внёс вас в свой список друзей.<br />"
"Но ведь здорово было бы видеть, когда все эти люди начинают или перестают<br />"
"читать вас, к примеру, {как тут}?<br />"
"Для этого и придуман Joule.</p>"
"<p>Joule уже пять лет в сети, и у него десятки тысяч довольных пользователей.<br />"
"Присоединяйтесь — впишите ваше имя пользователя в поле ввода сверху.</p>"

msgid "Show me the fans of [NAME] on [DATE] as a {chart} or {graph}."
msgstr "Покажите мне фэнов [NAME] на [DATE] в виде {списка} или {диаграммы}"

msgid "joule is by {Thomas Thurman}"
msgstr "автор joule — {Томас Турман}"

msgid "page designed by {Firinel Thurman}"
msgstr "дизайн страницы — {Фиринэл Турман}"

msgid "{code released} under {the GNU Affero Licence}"
msgstr "{исходный код доступен} под {лицензией GNU Affero}"

# XXX not sure about this line!
msgid "proudly union made"
msgstr "с гордостью сообщаем: сделано членами профсоюза"

msgid "hosted by {red stair}"
msgstr "хостинг предоставлен {red stair}"

msgid "valid {html}, {css}, and {rss}"
msgstr "валидный {html}, {css} и {rss}"

# statistics
msgid "Yesterday: [RH] RSS hits ([LJ]% LJ, [GR] Google Reader), [HH] HTML hits ([FF]% Firefox, [IE]% IE, [SAF]% Safari); [GH] Google hits"
msgstr "Вчерашние запросы: [RH] по RSS ([LJ]% ЖЖ, [GR] Google Reader), [HH] в виде HTML ([FF]% Firefox, [IE]% IE, [SAF]% Safari); [GH] через Google"

msgid "graph"
msgstr "список"

msgid "chart"
msgstr "диаграмма"

msgid "with blanks"
msgstr "с пробелами"

msgid "without blanks"
msgstr "без пробелов"

# Use the same term as for an LJ community
msgid "community"
msgstr "сообщество"

# frequently asked questions
msgid "faq"
msgstr "чаво"

msgid "code"
msgstr "код"

msgid "full view"
msgstr "целиком"

msgid "most recent"
msgstr "недавнее"

# Column heading
msgid "Datestamp"
msgstr "Дата"

# Column heading
msgid "Friended by"
msgstr "Подружились"

# Column heading
msgid "Unfriended by"
msgstr "Перестали дружить"

# Nobody friended or unfriended them this time
msgid "None."
msgstr "Никто."


This should suffice; on the first and then second glance, it does not contain severe blunders or stylistic failures.

The only line I'm really not sure about is marked with "XXX". It is translated under assumption that Joule is made by members of a trade union and pride of this fact is to be expressed; still I may be completely wrong.

Also please note that Russian dates are DD.MM.YY, not MM.DD.YY. Hopefully your l10n library handles this already.

(Reply to this) (Thread)

Re: Russian [ru]
[info]marnanel
2008-11-02 12:23 am UTC (link)
Thank you so much!

I have added a few (three, perhaps) extra strings since you read that, and it now says *six* years, because I forgot how long it'd been. Can you find translations for those too? I've replaced the linked joule.pot with the new slightly different one. Thank you.

(I don't know if you know msgmerge which will merge the old and new translations, but if not you could just post the new text.)

You're correct about the union line.

The dates on Joule currently are ISO format YYYY-MM-DD, but I'm going to l10n them as appropriate, yes. (Russian format seems to be the same as British.)

Edited at 2008-11-02 12:24 am UTC

(Reply to this) (Parent)(Thread)

Re: Russian [ru]
[info]9000
2008-11-02 02:04 am UTC (link)
Never mind.

Here come two updated versions, first with "joule" intact, and then with "joule" transliterated and inflected the way James Joule's name is traditionally spelled.

(Reply to this) (Parent)(Thread)

Re: Russian [ru]
[info]9000
2008-11-02 02:11 am UTC (link)
pot files don't fit to comment size now; here are the links.

http://9000.pp.ru/lj/joule-ru-1.pot — with "joule"

http://9000.pp.ru/lj/joule-ru-2.pot — with "джоуль"

(Reply to this) (Parent)(Thread)

Re: Russian [ru]
[info]9000
2008-11-04 03:14 pm UTC (link)
Wow, the translations have been deployed :) After looking at the actual web pages of new Joule, I noticed and fixed some minor translation problems.
Please take the updates: http://9000.pp.ru/lj/joule-ru-1.pot

(Reply to this) (Parent)

Re: Russian [ru]
[info]marnanel
2008-11-02 12:39 am UTC (link)
Another thing:

Should it be "Joule" in Russian or (looks at Wikipedia) Джоуль? I mean, do you/should we transliterate the name of the program or not?

(Reply to this) (Parent)(Thread)

Re: Russian [ru]
[info]9000
2008-11-02 01:36 am UTC (link)
It depends. Is this the proper name of James Joule and you expect it to be translated as such?

(Reply to this) (Parent)(Thread)

Re: Russian [ru]
[info]marnanel
2008-11-02 01:37 am UTC (link)
I don't know how best to translate it. It was named after James Joule originally (see the FAQ) but it's not particularly important either way. I don't know how it should be translated.

(Reply to this) (Parent)(Thread)

Re: Russian [ru]
[info]9000
2008-11-02 01:51 am UTC (link)
Probably I'd stick with "joule" being left as is. The uncapitalized version is a unit of energy, and is widely known as it. Skewing this meaning to a different direction takes some explicit effort. In English version (and probably most any other latin-based) you see "joule" in the URL and it does not look too strange. In Russian version you don't. But if you want, you may somehow push the name to the users, and they'll get used to it.

I'll produce two versions, one with "joule" transliterated and one with it left intact. You choose :)

(Reply to this) (Parent)

Dutch (part one)
[info]agirlnamedluna
2008-11-16 09:37 pm UTC (link)
# Any problems, let me know.
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2008-10-28 23:10+0000\n"
"Last-Translator: Nathalie Cassiers <wordofwyrd@yahoo.com>\n"
"Language-Team: Dutch <ll@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

# Translate this to the name of your language
msgid "English"
msgstr "Nederlands"

# Translate this to include your language and name.
# (The English isn't really shown.)
msgid "English translation by Thomas Thurman"
msgstr "Nederlandse vertaling door Nathalie Cassiers"

# Text inside {curly brackets} should usually be translated, but will be treated
# specially (usually as a hyperlink). You should keep these in the same order
# if possible. If it's not possible, please ask me for advice.
# Text inside [square brackets] should be left alone because it will be replaced
# with a value. You can reorder these as much as you like.
msgid ""
"

Joule is a way of keeping track of who's reading your stuff.

"
"

Lots of sites allow you to make a list of people you want to follow
"
"(sometimes called a friends list, or a watch list).
"
"Sometimes they also let you see who has you on their friends list.
"
"But wouldn't it be nifty if you could see when people start
"
"and stop reading you, like {this}?
"
"That's what Joule is for.

"
"

Joule has been around for six years and has tens of thousands of happy users.
"
"Join in by typing your username into the box above.

"
msgstr " "
"

Joule is een manier om op de hoogte te blijven van wie jouw schrijfsels leest.
"
"

Heel wat sites laten je toe een lijst samen te stellen van mensen die je wil volgen.

"
"(soms wordt dit een vriendenlijst genoemd, of volglijst).
"
"Soms laten ze ook toe dat je ziet wie jou toegevoegd heeft aan hun lijst.
"
"Maar zou het niet super zijn mocht je zien wanneer ze je beginnen volgen
"
"of wanneer ze daarmee ophouden, zoals (dit)?
"
"Daarvoor is er Joule.

"
"

Joule bestaat al zes jaar en heeft tienduizenden tevreden gebruikers.
"
"Voeg je bij hen door jouw gebruikersnaam in het veld hierboven in te vullen.

"


Edited at 2008-11-16 09:38 pm UTC

(Reply to this)

Dutch (part two)
[info]agirlnamedluna
2008-11-16 09:38 pm UTC (link)
msgid "Show me the fans of [NAME] on [SITE] as a {chart} or {graph}."
msgstr "Toon de fans van [NAME] op [SITE] als {tabel} of {grafiek}."

msgid "joule is by {Thomas Thurman}"
msgstr "joule wordt gemaakt door {Thomas Thurman}"

msgid "page designed by {Firinel Thurman}"
msgstr "pagina design door {Firinel Thurman}"

msgid "{code released} under {the GNU Affero Licence}"
msgstr "code uitgebracht onder de {GNU Affero Licentie}"

msgid "proudly union made"
msgstr "trots vakbondswerk"

msgid "hosted by {red stair}"
msgstr "webhosting door {red stair}"

msgid "valid {html}, {css}, and {rss}"
msgstr "geldig {html}, {css}, en {rss}"

# some pages don't have an RSS feed
msgid "valid {html} and {css}"
msgstr "geldig {html} en {css}"

# statistics. {} gets replaced by numbers throughout
msgid "Yesterday: {} RSS hits ({}% LJ, {} Google Reader), {} HTML hits ({}% Firefox, {}% IE, {}% Safari); {} Google hits"
msgstr " Gisteren: {} RSS hits ({}% LJ, {} Google Reader), {} HTML hits ({}% Firefox, {}% IE, {}% Safari); {} Google hits "

msgid "graph"
msgstr "grafiek"

msgid "chart"
msgstr "tabel"

msgid "with blanks"
msgstr "met tussenruimtes"

msgid "without blanks"
msgstr "zonder tussenruimtes"

# Use the same term as for an LJ community
msgid "community"
msgstr "community"

# frequently asked questions
msgid "faq"
msgstr "FAQ"

msgid "code"
msgstr "code"

msgid "full view"
msgstr "alles tonen"

msgid "most recent"
msgstr "meest recente"

# Column heading
msgid "Datestamp"
msgstr "datum"

# Column heading
msgid "Friended by"
msgstr "als vriend toegevoegd door"

# Column heading
msgid "Unfriended by"
msgstr "als vriend verwijderd door "

# Nobody friended or unfriended them this time
msgid "None."
msgstr "niemand"

# this is the title of most pages
msgid "joule - your friendly friend-of monitor"
msgstr "joule - de vriendelijke vriendenmonitor"

# this is the title of the report pages
msgid "fans of [USERNAME] on [SITENAME], past and present"
msgstr "fans van [USERNAME] op [SITENAME], verleden en heden"

# title of the report table
msgid "Changes in the fan list over time"
msgstr "verandering in de fan lijst door de tijd"

# in the top links-- links to the RSS feed
msgid "feed"
msgstr "feed"

(Reply to this) (Thread)

Re: Dutch (part two)
[info]marnanel
2008-11-16 09:58 pm UTC (link)
That's wonderful! Thank you so much. It's up now with credit to you:

http://joule.marnanel.org/chart/lj/marnanel?lang=nl

(Reply to this) (Parent)(Thread)

Re: Dutch (part two)
[info]agirlnamedluna
2008-11-16 11:03 pm UTC (link)
Welcome :) I'll be working on a French version if I find the time!

(Reply to this) (Parent)


[info]torenheksje
2008-11-17 06:57 am UTC (link)
Apparently this tool decides for itself what language you read it in? I've always had it in English, and prefer it that way, but all I get is Dutch, no matter which button I click. Is this something temporary?

(Reply to this) (Thread)


[info]marnanel
2008-11-17 12:54 pm UTC (link)
So even if you go to

http://joule.marnanel.org/?lang=en

it still comes up in Dutch? Do you have cookies disabled, do you know?

(Reply to this) (Parent)(Thread)


[info]torenheksje
2008-11-17 02:20 pm UTC (link)
Yes. Actually, that link goes to http://joule.marnanel.org/ and yes, it's in Dutch. I don't have cookies disabled, either. It apparently doesn't want to acknowledge the ?lang=en bit. :c/

(Reply to this) (Parent)(Thread)


[info]marnanel
2008-11-17 02:23 pm UTC (link)
The link sets a cookie and redirects to Joule's main page. I suspect a bug-- can you tell me whether it works to set the language to, say, Russian? http://joule.marnanel.org/?lang=ru

(Reply to this) (Parent)(Thread)


[info]torenheksje
2008-11-17 03:19 pm UTC (link)
That goes to the main page, and it is indeed in Russian. When I try to access the English version from the Russian main page, I get sent to the Dutch main page instead.

(Reply to this) (Parent)(Thread)


[info]marnanel
2008-11-19 02:07 am UTC (link)
I found and fixed a bug matching that description. Does it work for you now?

(Reply to this) (Parent)(Thread)


[info]torenheksje
2008-11-19 06:56 am UTC (link)
Yay! It works just fine now. Thank you! :c)

(Reply to this) (Parent)

more Russian
[info]9000
2008-12-11 10:51 am UTC (link)
"New: mobile version of Joule at {url}" = "Новое: мобильная версия Joule на {url}"

This item is not shown on the launchpad, so I post it here.

(Reply to this)

French translation
(Anonymous)
2009-04-12 05:43 pm UTC (link)
Done on launchpad: https://translations.launchpad.net/joule/trunk/+pots/joule/fr/+translate

I was a bit unclear on what the google and RSS statistics represented (syndicated hits or individual hits, googlebot hits or google referrers). That's the only issue I had.

(Reply to this)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…