Fixed translations with plurality. Thanks KillYourTV for the bug report.

This commit is contained in:
dev
2011-07-27 07:32:08 +00:00
parent effc513a67
commit 91ced23635
5 changed files with 241 additions and 18 deletions

View File

@ -71,7 +71,7 @@ do
# then ant distclean updater. # then ant distclean updater.
find $JPATHS -name *.java > $TMPFILE find $JPATHS -name *.java > $TMPFILE
xgettext -f $TMPFILE -F -L java --from-code=UTF-8 --add-comments\ xgettext -f $TMPFILE -F -L java --from-code=UTF-8 --add-comments\
--keyword=_ --keyword=_x --keyword=intl._ --keyword=intl.title \ --keyword=_ --keyword='_:1,2,3c' --keyword=_x --keyword=intl._ --keyword=intl.title \
--keyword=handler._ --keyword=formhandler._ \ --keyword=handler._ --keyword=formhandler._ \
--keyword=net.i2p.router.web.Messages.getString \ --keyword=net.i2p.router.web.Messages.getString \
-o ${i}t -o ${i}t

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: itoopie\n" "Project-Id-Version: itoopie\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-07-25 13:18+0000\n" "POT-Creation-Date: 2011-07-27 07:29+0000\n"
"PO-Revision-Date: 2010-07-25 14:09+0100\n" "PO-Revision-Date: 2010-07-25 14:09+0100\n"
"Last-Translator: hottuna <dev@robertfoss.se>\n" "Last-Translator: hottuna <dev@robertfoss.se>\n"
"Language-Team: hottuna <dev@robertfoss.se>\n" "Language-Team: hottuna <dev@robertfoss.se>\n"
@ -30,7 +30,7 @@ msgid ""
msgstr "" msgstr ""
#: src/net/i2p/itoopie/gui/AboutTab.java:41 #: src/net/i2p/itoopie/gui/AboutTab.java:41
#: src/net/i2p/itoopie/gui/OverviewTab.java:72 #: src/net/i2p/itoopie/gui/OverviewTab.java:74
msgid "Version:" msgid "Version:"
msgstr "" msgstr ""
@ -231,15 +231,15 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "Starting" msgstr "Starting"
#: src/net/i2p/itoopie/gui/OverviewTab.java:86 #: src/net/i2p/itoopie/gui/OverviewTab.java:88
msgid "Uptime:" msgid "Uptime:"
msgstr "" msgstr ""
#: src/net/i2p/itoopie/gui/OverviewTab.java:99 #: src/net/i2p/itoopie/gui/OverviewTab.java:101
msgid "Status:" msgid "Status:"
msgstr "" msgstr ""
#: src/net/i2p/itoopie/gui/OverviewTab.java:111 #: src/net/i2p/itoopie/gui/OverviewTab.java:113
msgid "Netstatus:" msgid "Netstatus:"
msgstr "" msgstr ""
@ -388,10 +388,119 @@ msgstr ""
msgid "Number of tunnels we are participating in." msgid "Number of tunnels we are participating in."
msgstr "" msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:30
msgid "Ok."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:31
#, fuzzy
msgid "Testing."
msgstr "Starting"
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:32
msgid "Firewalled."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:33
msgid "Hidden."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:34
msgid "Warning, firewalled and fast."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:35
msgid "Warning, firewalled and floodfill."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:36
msgid "Warning, firewalled with inbound TCP enabled."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:37
msgid "Warning, firewalled with UDP disabled."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:38
msgid "Error, I2CP issue. Check logs."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:39
msgid "Error, clock skew. Try setting system clock."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:40
msgid "Error, private TCP address."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:41
msgid "Error, behind symmetric NAT. Can't recieve connections."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:42
msgid "Error, UDP port already in use."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:43
msgid "Error, no active peers. Check connection and firewall."
msgstr ""
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:44
msgid "Error, UDP disabled and TCP unset."
msgstr ""
#: src/net/i2p/itoopie/security/CertificateHelper.java:78 #: src/net/i2p/itoopie/security/CertificateHelper.java:78
msgid "Unable to create hash of the given cert, " msgid "Unable to create hash of the given cert, "
msgstr "" msgstr ""
#. milliseconds
#. Note to translators, may be negative or zero, 2999 maximum.
#. {0,number,####} prevents 1234 from being output as 1,234 in the English locale.
#. If you want the digit separator in your locale, translate as {0}.
#: src/net/i2p/itoopie/util/DataHelper.java:25
#, java-format
msgid "1 ms"
msgid_plural "{0,number,####} ms"
msgstr[0] ""
msgstr[1] ""
#. seconds
#: src/net/i2p/itoopie/util/DataHelper.java:28
#, java-format
msgid "1 second"
msgid_plural "{0} seconds"
msgstr[0] ""
msgstr[1] ""
#. minutes
#: src/net/i2p/itoopie/util/DataHelper.java:31
#, java-format
msgid "1 minute"
msgid_plural "{0} minutes"
msgstr[0] ""
msgstr[1] ""
#. hours
#: src/net/i2p/itoopie/util/DataHelper.java:34
#, java-format
msgid "1 hour"
msgid_plural "{0} hours"
msgstr[0] ""
msgstr[1] ""
#. >1000 days
#: src/net/i2p/itoopie/util/DataHelper.java:37
msgid "n/a"
msgstr ""
#. days
#: src/net/i2p/itoopie/util/DataHelper.java:40
#, java-format
msgid "1 day"
msgid_plural "{0} days"
msgstr[0] ""
msgstr[1] ""
#~ msgid "Start I2P" #~ msgid "Start I2P"
#~ msgstr "Start I2P" #~ msgstr "Start I2P"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: itoopie\n" "Project-Id-Version: itoopie\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-07-25 13:18+0000\n" "POT-Creation-Date: 2011-07-27 07:25+0000\n"
"PO-Revision-Date: 2010-07-25 14:09+0100\n" "PO-Revision-Date: 2010-07-25 14:09+0100\n"
"Last-Translator: hottuna <dev@robertfoss.se>\n" "Last-Translator: hottuna <dev@robertfoss.se>\n"
"Language-Team: hottuna <dev@robertfoss.se>\n" "Language-Team: hottuna <dev@robertfoss.se>\n"
@ -30,7 +30,7 @@ msgid ""
msgstr "" msgstr ""
#: src/net/i2p/itoopie/gui/AboutTab.java:41 #: src/net/i2p/itoopie/gui/AboutTab.java:41
#: src/net/i2p/itoopie/gui/OverviewTab.java:72 #: src/net/i2p/itoopie/gui/OverviewTab.java:74
msgid "Version:" msgid "Version:"
msgstr "Version:" msgstr "Version:"
@ -234,15 +234,15 @@ msgstr "Om"
msgid "Settings" msgid "Settings"
msgstr "Inställningar." msgstr "Inställningar."
#: src/net/i2p/itoopie/gui/OverviewTab.java:86 #: src/net/i2p/itoopie/gui/OverviewTab.java:88
msgid "Uptime:" msgid "Uptime:"
msgstr "Uptid:" msgstr "Uptid:"
#: src/net/i2p/itoopie/gui/OverviewTab.java:99 #: src/net/i2p/itoopie/gui/OverviewTab.java:101
msgid "Status:" msgid "Status:"
msgstr "Status:" msgstr "Status:"
#: src/net/i2p/itoopie/gui/OverviewTab.java:111 #: src/net/i2p/itoopie/gui/OverviewTab.java:113
msgid "Netstatus:" msgid "Netstatus:"
msgstr "Nätstatus:" msgstr "Nätstatus:"
@ -404,6 +404,114 @@ msgstr "Tid"
msgid "Number of tunnels we are participating in." msgid "Number of tunnels we are participating in."
msgstr "Antalet I2P tunnlar vi deltar i." msgstr "Antalet I2P tunnlar vi deltar i."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:30
msgid "Ok."
msgstr "Ok."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:31
msgid "Testing."
msgstr "Testar."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:32
msgid "Firewalled."
msgstr "Bakom brandvägg."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:33
msgid "Hidden."
msgstr "Gömd."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:34
msgid "Warning, firewalled and fast."
msgstr "Varning, bakom brandvägg och snabb."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:35
msgid "Warning, firewalled and floodfill."
msgstr "Varning, bakom brandvägg och 'floodfill'."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:36
msgid "Warning, firewalled with inbound TCP enabled."
msgstr "Varning, bakom brandvägg med TCP påslaget."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:37
msgid "Warning, firewalled with UDP disabled."
msgstr "Varning, bakom brandvägg med UDP avslaget."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:38
msgid "Error, I2CP issue. Check logs."
msgstr "Fel, I2CP problem. Kontrollera loggar."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:39
msgid "Error, clock skew. Try setting system clock."
msgstr "Fel, klockvridning. Testa ställa systemklockan."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:40
msgid "Error, private TCP address."
msgstr "Fel, private TCP adress."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:41
msgid "Error, behind symmetric NAT. Can't recieve connections."
msgstr "Fel, bakom symmetrisk NAT. Kan inte ta emot anslutningar."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:42
msgid "Error, UDP port already in use."
msgstr "Fel, UDP porten används redan."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:43
msgid "Error, no active peers. Check connection and firewall."
msgstr "Fel, inga aktiva peers. Kontrollera anslutning och brandvägg."
#: src/net/i2p/itoopie/i2pcontrol/methods/GetRouterInfo.java:44
msgid "Error, UDP disabled and TCP unset."
msgstr "Fel, UDP avslaget och TCP ej inställt."
#: src/net/i2p/itoopie/security/CertificateHelper.java:78 #: src/net/i2p/itoopie/security/CertificateHelper.java:78
msgid "Unable to create hash of the given cert, " msgid "Unable to create hash of the given cert, "
msgstr "Kunde ej skapa en hash av det angivna certifikatet, " msgstr "Kunde ej skapa en hash av det angivna certifikatet, "
#. milliseconds
#. Note to translators, may be negative or zero, 2999 maximum.
#. {0,number,####} prevents 1234 from being output as 1,234 in the English locale.
#. If you want the digit separator in your locale, translate as {0}.
#: src/net/i2p/itoopie/util/DataHelper.java:25
#, java-format
msgid "1 ms"
msgid_plural "{0,number,####} ms"
msgstr[0] "1 ms"
msgstr[1] "{0,number,####} ms"
#. seconds
#: src/net/i2p/itoopie/util/DataHelper.java:28
#, java-format
msgid "1 second"
msgid_plural "{0} seconds"
msgstr[0] "1 sekund"
msgstr[1] "{0} sekunder"
#. minutes
#: src/net/i2p/itoopie/util/DataHelper.java:31
#, java-format
msgid "1 minute"
msgid_plural "{0} minutes"
msgstr[0] "1 minut"
msgstr[1] "{0} minuter"
#. hours
#: src/net/i2p/itoopie/util/DataHelper.java:34
#, java-format
msgid "1 hour"
msgid_plural "{0} hours"
msgstr[0] "1 timme"
msgstr[1] "{0} timmar"
#. >1000 days
#: src/net/i2p/itoopie/util/DataHelper.java:37
msgid "n/a"
msgstr "n/a"
#. days
#: src/net/i2p/itoopie/util/DataHelper.java:40
#, java-format
msgid "1 day"
msgid_plural "{0} days"
msgstr[0] "1 dag"
msgstr[1] "{0} dagar"

View File

@ -2,7 +2,7 @@ package net.i2p.itoopie.i18n;
public class Transl { public class Transl {
private static final String BUNDLE_NAME = "net.i2p.itoopie.messages"; public static final String BUNDLE_NAME = "net.i2p.itoopie.messages";
public static String _(String s) { public static String _(String s) {
@ -39,7 +39,7 @@ public class Transl {
* @param s singluar string, optionally with {0} e.g. "one tunnel" * @param s singluar string, optionally with {0} e.g. "one tunnel"
* @param p plural string optionally with {0} e.g. "{0} tunnels" * @param p plural string optionally with {0} e.g. "{0} tunnels"
*/ */
public static String getString(int n, String s, String p) { public static String _(int n, String s, String p) {
return Translate.getString( n, s, p, BUNDLE_NAME); return Translate.getString( n, s, p, BUNDLE_NAME);
} }

View File

@ -1,6 +1,7 @@
package net.i2p.itoopie.util; package net.i2p.itoopie.util;
import net.i2p.itoopie.i18n.Transl; import net.i2p.itoopie.i18n.Transl;
import net.i2p.itoopie.i18n.Translate;
public class DataHelper { public class DataHelper {
@ -21,22 +22,27 @@ public class DataHelper {
// Note to translators, may be negative or zero, 2999 maximum. // Note to translators, may be negative or zero, 2999 maximum.
// {0,number,####} prevents 1234 from being output as 1,234 in the English locale. // {0,number,####} prevents 1234 from being output as 1,234 in the English locale.
// If you want the digit separator in your locale, translate as {0}. // If you want the digit separator in your locale, translate as {0}.
return Transl._("1 ms", "{0,number,####} ms", (int) ms); return ngettext("1 ms", "{0,number,####} ms", (int) ms);
} else if (ms < 2 * 60 * 1000) { } else if (ms < 2 * 60 * 1000) {
// seconds // seconds
return Transl._("1 sec", "{0} sec", (int) (ms / 1000)); return ngettext("1 second", "{0} seconds", (int) (ms / 1000));
} else if (ms < 120 * 60 * 1000) { } else if (ms < 120 * 60 * 1000) {
// minutes // minutes
return Transl._("1 min", "{0} min", (int) (ms / (60 * 1000))); return ngettext("1 minute", "{0} minutes", (int) (ms / (60 * 1000)));
} else if (ms < 2 * 24 * 60 * 60 * 1000) { } else if (ms < 2 * 24 * 60 * 60 * 1000) {
// hours // hours
return Transl._("1 hour", "{0} hours", (int) (ms / (60 * 60 * 1000))); return ngettext("1 hour", "{0} hours", (int) (ms / (60 * 60 * 1000)));
} else if (ms > 1000l * 24l * 60l * 60l * 1000l) { } else if (ms > 1000l * 24l * 60l * 60l * 1000l) {
// >1000 days // >1000 days
return Transl._("n/a"); return Transl._("n/a");
} else { } else {
// days // days
return Transl._("1 day", "{0} days", (int) (ms / (24 * 60 * 60 * 1000))); return ngettext("1 day", "{0} days", (int) (ms / (24 * 60 * 60 * 1000)));
} }
} }
private static String ngettext(String s, String p, int n) {
return Translate.getString(n, s, p, Transl.BUNDLE_NAME);
}
} }