[OTR-users] Instructions for translators

Ian Goldberg ian at cypherpunks.ca
Sat Jun 16 11:00:35 EDT 2012


On Sat, Jun 16, 2012 at 03:54:38PM +1000, Peter wrote:
> Hi Ian et al
> 
> Happy to chip in with Hungarian translation. Am a native Hungarian and write web specs as a job in English. 
> 
> Haven't done much translation apart from a small plugin years ago so would welcome some pointers. 
> 
> Let me know next steps. 
> Bests
> -Peter

Here are the instructions I've been sending people.  I'm hoping they're
accurate.  ;-)

Please install pidgin and the 4.0.0 beta of libotr and pidgin-otr:

http://otr.cypherpunks.ca/libotr-4.0.0-beta1.tar.gz
http://otr.cypherpunks.ca/pidgin-otr-4.0.0-beta1.tar.gz

[Windows users:
http://otr.cypherpunks.ca/binaries/windows/pidgin-otr-4.0.0-0-beta1.exe
]

Now you're going to fill in the attached file.

It consists of strings marked msgid (the English original) followed by
empty strings marked msgstr (in which you'll fill in the translations).

If you look in the pidgin-otr-4.0.0-beta1/po/ directory, you'll see a
bunch of other languages for you to see how it works.

These are C strings, so be sure to preserve any C markup like \n for
newlines, etc.  Some are also used as format strings, so be sure to
preserve anything like %s in the original.

If a string is too long, it can be broken across multiple lines just by
listing one string per line, which will be glued together (with *no*
extra spaces or newlines or anything, so watch for that).  For example:

msgid ""
"Authenticating a buddy helps ensure that the person you are talking to is "
"who he or she claims to be."

Is the same thing as:

msgid "Authenticating a buddy helps ensure that the person you are talking to is who he or she claims to be."

Because it's three strings (the first is empty) that get glued together.

Also fill in the PO-Revision-Date, Last-Translator, Language-Team, and
CHARSET (in the Content-Type) headers at the top.  Also change the two
instances of XX to the language code for your language.

If you're unsure of the context in which the string appears, you can
look in the source files indicated in the comment above the string.

If your language was supported in 3.2.0, you'll find a bunch of strings
already translated for you in the pidgin-otr-4.0.0-beta1/po/ directory;
you can just copy those, or improve upon them, as you like.

What you'll send back to me is the filled-in XX.po file, renamed to
match your language.  Linux users can test it themselves by putting it
in the po directory, and adding your language code to the piding-otr
configure.ac file in the ALL_LINGUAS line (in alphabetical order).  Then
re-run:

    intltoolize --force --copy
    autoreconf -s -i
    ./configure --prefix=/usr --mandir=/usr/share/man

and make && make install to install it.  If your locale is set properly,
pidgin-otr should show up in in your language if you've done it right.

I'm not actually sure of the easiest way for Windows users to test things.
If you send me the .po file, I can send you back the pidgin-otr.mo file you
can install in the right directory to test.

Thanks for your help!

   - Ian
-------------- next part --------------
# Off-the-Record Messaging plugin for pidgin.
# Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew,
#	                       Lisa Du, Nikita Borisov
# This file is distributed under the same license as the pidgin-otr package.
# Ian Goldberg <otr at cypherpunks.ca>, 2012
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: pidgin-otr 4.0.0.XX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-14 09:45-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: ../gtk-dialog.c:332 ../gtk-dialog.c:1141 ../gtk-dialog.c:1145
#: ../gtk-dialog.c:1547 ../gtk-dialog.c:1584 ../gtk-dialog.c:1673
#: ../gtk-dialog.c:1748 ../gtk-dialog.c:2749
msgid "?lang=en"
msgstr "?lang=XX"

#: ../gtk-dialog.c:480
msgid ""
"Your buddy is attempting to determine if he or she is really talking to you, "
"or if it's someone pretending to be you.  Your buddy has asked a question, "
"indicated below.  To authenticate to your buddy, enter the answer and click "
"OK."
msgstr ""

#: ../gtk-dialog.c:487
msgid ""
"To authenticate using a question, pick a question whose answer is known only "
"to you and your buddy.  Enter this question and this answer, then wait for "
"your buddy to enter the answer too.  If the answers don't match, then you "
"may be talking to an imposter."
msgstr ""

#: ../gtk-dialog.c:505
#, c-format
msgid "This is the question asked by your buddy:"
msgstr ""

#: ../gtk-dialog.c:508
#, c-format
msgid "Enter question here:"
msgstr ""

#: ../gtk-dialog.c:540 ../gtk-dialog.c:624
msgid "This buddy is already authenticated."
msgstr ""

#: ../gtk-dialog.c:552
#, c-format
msgid "Enter secret answer here (case sensitive):"
msgstr ""

#: ../gtk-dialog.c:593
msgid ""
"To authenticate, pick a secret known only to you and your buddy.  Enter this "
"secret, then wait for your buddy to enter it too.  If the secrets don't "
"match, then you may be talking to an imposter."
msgstr ""

#: ../gtk-dialog.c:607
#, c-format
msgid "Enter secret here:"
msgstr ""

#: ../gtk-dialog.c:657 ../gtk-dialog.c:1408
msgid ""
"To verify the fingerprint, contact your buddy via some <i>other</i> "
"authenticated channel, such as the telephone or GPG-signed email.  Each of "
"you should tell your fingerprint to the other."
msgstr ""

#: ../gtk-dialog.c:661
msgid ""
"If everything matches up, you should chose <b>I have</b> in the menu below."
msgstr ""

#: ../gtk-dialog.c:672 ../gtk-dialog.c:1397
msgid "[none]"
msgstr ""

#: ../gtk-dialog.c:679 ../gtk-dialog.c:1051 ../gtk-dialog.c:1404
#: ../gtk-dialog.c:1453 ../gtk-ui.c:212 ../otr-plugin.c:127
#: ../otr-plugin.c:300 ../ui.c:112
msgid "Unknown"
msgstr ""

#: ../gtk-dialog.c:680
#, c-format
msgid ""
"Fingerprint for you, %s (%s):\n"
"%s\n"
"\n"
"Purported fingerprint for %s:\n"
"%s\n"
msgstr ""

#: ../gtk-dialog.c:736
msgid "How would you like to authenticate your buddy?"
msgstr ""

#: ../gtk-dialog.c:745
msgid "Question and answer"
msgstr ""

#: ../gtk-dialog.c:748
msgid "Shared secret"
msgstr ""

#: ../gtk-dialog.c:751
msgid "Manual fingerprint verification"
msgstr ""

#: ../gtk-dialog.c:802
msgid "_Authenticate"
msgstr ""

#: ../gtk-dialog.c:836
msgid ""
"Authenticating a buddy helps ensure that the person you are talking to is "
"who he or she claims to be."
msgstr ""

#. Translators: you are asked to authenticate yourself
#: ../gtk-dialog.c:946
msgid "Authenticating to Buddy"
msgstr ""

#. Translators: you asked your buddy to authenticate him/herself
#: ../gtk-dialog.c:948
msgid "Authenticating Buddy"
msgstr ""

#: ../gtk-dialog.c:975
#, c-format
msgid "Authenticating to %s"
msgstr ""

#: ../gtk-dialog.c:976
#, c-format
msgid "Authenticating %s"
msgstr ""

#: ../gtk-dialog.c:1009
msgid "Waiting for buddy..."
msgstr ""

#: ../gtk-dialog.c:1042
msgid "Generating private key"
msgstr ""

#: ../gtk-dialog.c:1043
msgid "Please wait"
msgstr ""

#. Create the Please Wait... dialog
#: ../gtk-dialog.c:1054
#, c-format
msgid "Generating private key for %s (%s)..."
msgstr ""

#: ../gtk-dialog.c:1099
#, c-format
msgid "%s Done."
msgstr ""

#: ../gtk-dialog.c:1139
#, c-format
msgid ""
"%s is contacting you from an unrecognized computer.  You should <a href=\"%s%"
"s\">authenticate</a> this buddy."
msgstr ""

#: ../gtk-dialog.c:1143
#, c-format
msgid ""
"%s has not been authenticated yet.  You should <a href=\"%s%s"
"\">authenticate</a> this buddy."
msgstr ""

#: ../gtk-dialog.c:1195 ../gtk-dialog.c:1969 ../gtk-dialog.c:2745
#: ../gtk-ui.c:83
msgid "Finished"
msgstr ""

#: ../gtk-dialog.c:1196 ../gtk-dialog.c:1966 ../gtk-dialog.c:2742
#: ../gtk-ui.c:82
msgid "Private"
msgstr ""

#: ../gtk-dialog.c:1197 ../gtk-dialog.c:1963 ../gtk-dialog.c:2739
#: ../gtk-ui.c:81
msgid "Unverified"
msgstr ""

#: ../gtk-dialog.c:1198 ../gtk-ui.c:80
msgid "Not private"
msgstr ""

#: ../gtk-dialog.c:1201
msgid "OTR"
msgstr ""

#. Translators: the following four messages should give alternative
#. * sentences. The user selects the first or second message in a combo box;
#. * the third message, a new line, a fingerprint, a new line, and
#. * the fourth message will follow it.
#: ../gtk-dialog.c:1351
msgid "I have not"
msgstr ""

#. 2nd message
#: ../gtk-dialog.c:1353
msgid "I have"
msgstr ""

#. 3rd message
#: ../gtk-dialog.c:1356
msgid " verified that this is in fact the correct"
msgstr ""

#. 4th message
#: ../gtk-dialog.c:1366
#, c-format
msgid "fingerprint for %s."
msgstr ""

#: ../gtk-dialog.c:1393
#, c-format
msgid "Verify fingerprint for %s"
msgstr ""

#: ../gtk-dialog.c:1405
#, c-format
msgid ""
"<small><i>%s %s\n"
"\n"
"</i></small>Fingerprint for you, %s (%s):\n"
"%s\n"
"\n"
"Purported fingerprint for %s:\n"
"%s\n"
msgstr ""

#: ../gtk-dialog.c:1412
msgid ""
"If everything matches up, you should indicate in the above dialog that you "
"<b>have</b> verified the fingerprint."
msgstr ""

#: ../gtk-dialog.c:1418 ../gtk-ui.c:844
msgid "Verify fingerprint"
msgstr ""

#: ../gtk-dialog.c:1445
#, c-format
msgid "Authentication from %s"
msgstr ""

#: ../gtk-dialog.c:1448
#, c-format
msgid "Authenticate %s"
msgstr ""

#: ../gtk-dialog.c:1456
msgid "Authenticate Buddy"
msgstr ""

#: ../gtk-dialog.c:1487
msgid "An error occurred during authentication."
msgstr ""

#: ../gtk-dialog.c:1502
msgid "Authentication successful."
msgstr ""

#: ../gtk-dialog.c:1505
msgid ""
"Your buddy has successfully authenticated you.  You may want to authenticate "
"your buddy as well by asking your own question."
msgstr ""

#: ../gtk-dialog.c:1511
msgid "Authentication failed."
msgstr ""

#: ../gtk-dialog.c:1541
#, c-format
msgid "Private conversation with %s started.%s%s"
msgstr ""

#: ../gtk-dialog.c:1545
#, c-format
msgid "<a href=\"%s%s\">Unverified</a> conversation with %%s started.%%s%%s"
msgstr ""

#. This last case should never happen, since we know
#. * we're in ENCRYPTED.
#: ../gtk-dialog.c:1553
#, c-format
msgid "Not private conversation with %s started.%s%s"
msgstr ""

#: ../gtk-dialog.c:1559 ../gtk-dialog.c:1686
msgid "  Warning: using old protocol version 1."
msgstr ""

#: ../gtk-dialog.c:1561
msgid "  Your client is logging this conversation."
msgstr ""

#: ../gtk-dialog.c:1562
msgid "  Your client is not logging this conversation."
msgstr ""

#: ../gtk-dialog.c:1581
#, c-format
msgid ""
"Your buddy is logged in multiple times and OTR has established <a href=\"%s%s"
"\">multiple sessions</a>. Use the icon menu above if you wish to select the "
"outgoing session."
msgstr ""

#: ../gtk-dialog.c:1601
#, c-format
msgid "Private conversation with %s lost."
msgstr ""

#: ../gtk-dialog.c:1638
#, c-format
msgid ""
"%s has ended his/her private conversation with you; you should do the same."
msgstr ""

#: ../gtk-dialog.c:1665
#, c-format
msgid "Successfully refreshed the private conversation with %s.%s"
msgstr ""

#: ../gtk-dialog.c:1670
#, c-format
msgid ""
"Successfully refreshed the <a href=\"%s%s\">unverified</a> conversation with "
"%%s.%%s"
msgstr ""

#. This last case should never happen, since we know
#. * we're in ENCRYPTED.
#: ../gtk-dialog.c:1679
#, c-format
msgid "Successfully refreshed the not private conversation with %s.%s"
msgstr ""

#: ../gtk-dialog.c:1712
#, c-format
msgid "Attempting to refresh the private conversation with %s..."
msgstr ""

#: ../gtk-dialog.c:1714
#, c-format
msgid "Attempting to start a private conversation with %s..."
msgstr ""

#: ../gtk-dialog.c:1899 ../gtk-dialog.c:2026
msgid "Start _private conversation"
msgstr ""

#: ../gtk-dialog.c:1900
msgid "Refresh _private conversation"
msgstr ""

#: ../gtk-dialog.c:1905
msgid "Re_authenticate buddy"
msgstr ""

#: ../gtk-dialog.c:1906 ../gtk-dialog.c:2030
msgid "_Authenticate buddy"
msgstr ""

#: ../gtk-dialog.c:1960 ../gtk-dialog.c:2736
msgid "Not Private"
msgstr ""

#: ../gtk-dialog.c:1982
msgid "_What's this?"
msgstr ""

#: ../gtk-dialog.c:2028
msgid "_End private conversation"
msgstr ""

#: ../gtk-dialog.c:2207 ../gtk-dialog.c:2255
#, c-format
msgid ""
"Warning: The selected outgoing OTR session (%u) is not the most recently "
"active one (%u). Your buddy may not receive your messages. Use the icon menu "
"above to select a different outgoing session."
msgstr ""

#: ../gtk-dialog.c:2271
msgid "Send to most secure"
msgstr ""

#: ../gtk-dialog.c:2273
msgid "Send to most recent"
msgstr ""

#: ../gtk-dialog.c:2377
#, c-format
msgid "Session %u"
msgstr ""

#: ../gtk-dialog.c:2395 ../gtk-dialog.c:2506
msgid "Select"
msgstr ""

#: ../gtk-dialog.c:2410
msgid "Selected"
msgstr ""

#: ../gtk-dialog.c:2731
#, c-format
msgid ""
"The privacy status of the current conversation is now: <a href=\"%s%s\">%s</"
"a>"
msgstr ""

#: ../gtk-dialog.c:2956
msgid "OTR Messaging"
msgstr ""

#: ../gtk-ui.c:103
#, c-format
msgid "Fingerprint: %.80s"
msgstr ""

#: ../gtk-ui.c:107
#, c-format
msgid "No key present"
msgstr ""

#: ../gtk-ui.c:112
#, c-format
msgid "No account available"
msgstr ""

#: ../gtk-ui.c:179
msgid "Unused"
msgstr ""

#: ../gtk-ui.c:208
msgid "Yes"
msgstr ""

#: ../gtk-ui.c:208
msgid "No"
msgstr ""

#: ../gtk-ui.c:473
msgid "Enable private messaging"
msgstr ""

#: ../gtk-ui.c:475
msgid "Automatically initiate private messaging"
msgstr ""

#: ../gtk-ui.c:477
msgid "Require private messaging"
msgstr ""

#: ../gtk-ui.c:480
msgid "Don't log OTR conversations"
msgstr ""

#: ../gtk-ui.c:524
msgid "Show OTR button in toolbar"
msgstr ""

#: ../gtk-ui.c:663
msgid "My private keys"
msgstr ""

#: ../gtk-ui.c:672
msgid "Key for account:"
msgstr ""

#: ../gtk-ui.c:697
msgid "Generate"
msgstr ""

#: ../gtk-ui.c:738
msgid "Default OTR Settings"
msgstr ""

#: ../gtk-ui.c:765
msgid "OTR UI Options"
msgstr ""

#: ../gtk-ui.c:788
msgid "Screenname"
msgstr ""

#: ../gtk-ui.c:789
msgid "Status"
msgstr ""

#: ../gtk-ui.c:790
msgid "Verified"
msgstr ""

#: ../gtk-ui.c:791
msgid "Fingerprint"
msgstr ""

#: ../gtk-ui.c:792
msgid "Account"
msgstr ""

#: ../gtk-ui.c:828
msgid "Start private connection"
msgstr ""

#: ../gtk-ui.c:836
msgid "End private connection"
msgstr ""

#: ../gtk-ui.c:852
msgid "Forget fingerprint"
msgstr ""

#: ../gtk-ui.c:903
msgid "Config"
msgstr ""

#: ../gtk-ui.c:905
msgid "Known fingerprints"
msgstr ""

#: ../gtk-ui.c:1003 ../otr-plugin.c:964
msgid "OTR Settings"
msgstr ""

#. Set the title
#: ../gtk-ui.c:1021
#, c-format
msgid "OTR Settings for %s"
msgstr ""

#. Make the cascaded checkboxes
#: ../gtk-ui.c:1038
msgid "Use default OTR settings for this buddy"
msgstr ""

#: ../otr-plugin.c:125
#, c-format
msgid "You are not currently connected to account %s (%s)."
msgstr ""

#: ../otr-plugin.c:129
msgid "Not connected"
msgstr ""

#: ../otr-plugin.c:212 ../otr-plugin.c:254
#, c-format
msgid "Out of memory building filenames!\n"
msgstr ""

#: ../otr-plugin.c:224 ../otr-plugin.c:260
#, c-format
msgid "Could not write private key file\n"
msgstr ""

#: ../otr-plugin.c:298
#, c-format
msgid "Unknown account %s (%s)."
msgstr ""

#: ../otr-plugin.c:302
msgid "Unknown account"
msgstr ""

#: ../otr-plugin.c:364
msgid "Error occurred encrypting message."
msgstr ""

#: ../otr-plugin.c:368
#, c-format
msgid "You sent encrypted data to %s, who wasn't expecting it."
msgstr ""

#: ../otr-plugin.c:374
msgid "You transmitted an unreadable encrypted message."
msgstr ""

#: ../otr-plugin.c:377
msgid "You transmitted a malformed data message."
msgstr ""

#: ../otr-plugin.c:390
msgid "[resent]"
msgstr ""

#: ../otr-plugin.c:459
#, c-format
msgid "You attempted to send an unencrypted message to %s"
msgstr ""

#: ../otr-plugin.c:462
msgid "Attempting to start a private conversation..."
msgstr ""

#: ../otr-plugin.c:464
msgid "OTR Policy Violation"
msgstr ""

#: ../otr-plugin.c:465
msgid ""
"Unencrypted messages to this recipient are not allowed.  Attempting to start "
"a private conversation.\n"
"\n"
"Your message will be retransmitted when the private conversation starts."
msgstr ""

#: ../otr-plugin.c:474
msgid ""
"An error occurred when encrypting your message.  The message was not sent."
msgstr ""

#: ../otr-plugin.c:476
msgid "Error encrypting message"
msgstr ""

#: ../otr-plugin.c:477
msgid "An error occurred when encrypting your message"
msgstr ""

#: ../otr-plugin.c:478
msgid "The message was not sent."
msgstr ""

#: ../otr-plugin.c:481
#, c-format
msgid "%s has already closed his/her private connection to you"
msgstr ""

#: ../otr-plugin.c:484
msgid ""
"Your messagewas not sent.  Either end your private conversation, or restart "
"it."
msgstr ""

#: ../otr-plugin.c:487
msgid "Private connection closed"
msgstr ""

#: ../otr-plugin.c:488
msgid ""
"Your message was not sent.  Either close your private connection to him, or "
"refresh it."
msgstr ""

#: ../otr-plugin.c:498
msgid "Error setting up private conversation: Malformed message received"
msgstr ""

#: ../otr-plugin.c:502
#, c-format
msgid "Error setting up private conversation: %s"
msgstr ""

#: ../otr-plugin.c:509 ../otr-plugin.c:520 ../otr-plugin.c:547
#: ../otr-plugin.c:555 ../otr-plugin.c:573
msgid "OTR Error"
msgstr ""

#: ../otr-plugin.c:516
msgid ""
"We are receiving our own OTR messages.  You are either trying to talk to "
"yourself, or someone is reflecting your messages back at you."
msgstr ""

#: ../otr-plugin.c:520
msgid "We are receiving our own OTR messages."
msgstr ""

#: ../otr-plugin.c:521
msgid ""
"You are either trying to talk to yourself, or someone is reflecting your "
"messages back at you."
msgstr ""

#: ../otr-plugin.c:526
#, c-format
msgid "<b>The last message to %s was resent.</b>"
msgstr ""

#: ../otr-plugin.c:530
msgid "Message resent"
msgstr ""

#: ../otr-plugin.c:534
#, c-format
msgid ""
"<b>The encrypted message received from %s is unreadable, as you are not "
"currently communicating privately.</b>"
msgstr ""

#: ../otr-plugin.c:539
msgid "Unreadable message"
msgstr ""

#: ../otr-plugin.c:543
#, c-format
msgid "We received an unreadable encrypted message from %s."
msgstr ""

#: ../otr-plugin.c:551
#, c-format
msgid "We received a malformed data message from %s."
msgstr ""

#: ../otr-plugin.c:559
#, c-format
msgid "Heartbeat received from %s.\n"
msgstr ""

#: ../otr-plugin.c:565
#, c-format
msgid "Heartbeat sent to %s.\n"
msgstr ""

#: ../otr-plugin.c:576
#, c-format
msgid ""
"<b>The following message received from %s was <i>not</i> encrypted: [</b>%"
"s<b>]</b>"
msgstr ""

#: ../otr-plugin.c:581
msgid "Received unencrypted message"
msgstr ""

#: ../otr-plugin.c:587
#, c-format
msgid "Unrecognized OTR message received from %s.\n"
msgstr ""

#: ../otr-plugin.c:596
#, c-format
msgid ""
"%s has sent a message intended for a different session. If you are logged in "
"multiple times, another session may have received the message."
msgstr ""

#: ../otr-plugin.c:602
msgid "Received message for a different session"
msgstr ""

#. 2013-01-01
#: ../otr-plugin.c:1193 ../otr-plugin.c:1220
#, c-format
msgid "OTR PLUGIN v%s"
msgstr ""

#: ../otr-plugin.c:1202
#, c-format
msgid ""
"This beta copy of the Off-the-Record Messaging v%s Pidgin plugin has expired "
"as of 2013-01-01. Please look for an updated release at http://otr."
"cypherpunks.ca/"
msgstr ""

#: ../otr-plugin.c:1229
#, c-format
msgid ""
"You have enabled a beta version of the Off-the-Record Messaging v%s Pidgin "
"plugin. This version is intended for testing purposes only and is not for "
"general purpose use."
msgstr ""

#: ../otr-plugin.c:1414
msgid "Off-the-Record Messaging"
msgstr ""

#: ../otr-plugin.c:1415
msgid "Provides private and secure conversations"
msgstr ""

#: ../otr-plugin.c:1416
msgid ""
"Preserves the privacy of IM communications by providing encryption, "
"authentication, deniability, and perfect forward secrecy."
msgstr ""

#: ../ui.c:110
#, c-format
msgid "Account %s (%s) could not be found"
msgstr ""

#: ../ui.c:114
msgid "Account not found"
msgstr ""


More information about the OTR-users mailing list