Browse Source

properly implement the translation of property docstrings, update German translation

Natenom/support-murmur-13-1446181288462
Michael Ziegler 14 years ago
parent
commit
43aecc8b27
  1. 2
      pyweb/mumble/forms.py
  2. BIN
      pyweb/mumble/locale/de/LC_MESSAGES/django.mo
  3. 212
      pyweb/mumble/locale/de/LC_MESSAGES/django.po
  4. BIN
      pyweb/mumble/locale/ja/LC_MESSAGES/django.mo
  5. 52
      pyweb/mumble/models.py

2
pyweb/mumble/forms.py

@ -42,7 +42,7 @@ class PropertyModelForm( ModelForm ):
self.fields[fldname].initial = getattr( self.instance, fldname )
prop = getattr( self.instance.__class__, fldname )
if prop.__doc__:
self.fields[fldname].label = prop.__doc__
self.fields[fldname].label = _(prop.__doc__)
def save( self, commit=True ):
inst = ModelForm.save( self, commit=commit )

BIN
pyweb/mumble/locale/de/LC_MESSAGES/django.mo

212
pyweb/mumble/locale/de/LC_MESSAGES/django.po

@ -1,105 +1,114 @@
# German translation file for Mumble-Django.
#
#
# Copyright © 2009-2010, Michael "Svedrin" Ziegler <diese-addy@funzt-halt.net>
#
#
# Mumble-Django is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
#
# This package is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
#
msgid ""
msgstr ""
"Project-Id-Version: Mumble-Django v0.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-03-03 10:36+0100\n"
"PO-Revision-Date: 2010-03-03 10:37\n"
"POT-Creation-Date: 2010-03-03 12:32+0100\n"
"PO-Revision-Date: 2010-03-03 12:30\n"
"Last-Translator: <de@de.de>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Translated-Using: django-rosetta 0.5.3\n"
#: admin.py:40
#: admin.py:34 admin.py:51
msgid "Master is running"
msgstr "Serverprozess läuft"
#: admin.py:47 models.py:129 templates/mumble/mumble.html:28
#: admin.py:58 models.py:131 templates/mumble/mumble.html:28
msgid "Server Address"
msgstr "Serveradresse"
#: admin.py:54 models.py:132
#: admin.py:65 models.py:134
msgid "Server Port"
msgstr "Serverport"
#: admin.py:59
#: admin.py:70
msgid "Instance is running"
msgstr "Serverinstanz läuft"
#: admin.py:69
#: admin.py:80
msgid "Registered users"
msgstr "Registrierte Benutzer"
#: admin.py:79
#: admin.py:90
msgid "Online users"
msgstr "Benutzer online"
#: admin.py:89
#: admin.py:100
msgid "Channel count"
msgstr "Channels"
#: admin.py:96
#: admin.py:107
msgid "Yes"
msgstr "Ja"
#: admin.py:98
#: admin.py:109
msgid "No"
msgstr "Nein"
#: admin.py:102
#: admin.py:113
msgid "Public"
msgstr "Öffentlich"
#: admin.py:118 templates/mumble/mumble.html:214
#: admin.py:131 models.py:592 templates/mumble/mumble.html:214
msgid "Admin on root channel"
msgstr "Admin im Wurzelkanal"
#: forms.py:83
msgid "Password required to join. Leave empty for public servers."
msgstr "Passwort was zum Verbinden benötigt wird. Lasse es leer, wenn der Server öffentlich sein soll."
msgstr ""
"Passwort was zum Verbinden benötigt wird. Lasse es leer, wenn der Server "
"öffentlich sein soll."
#: forms.py:86
msgid "If on, IP adresses of the clients are not logged."
msgstr "Wenn das an ist werden IP-Adressen der Clients nicht ins Log geschrieben."
msgstr ""
"Wenn das an ist werden IP-Adressen der Clients nicht ins Log geschrieben."
#: forms.py:138
#, python-format
msgid "Port number %(portno)d is not within the allowed range %(minrange)d - %(maxrange)d"
msgid ""
"Port number %(portno)d is not within the allowed range %(minrange)d - %"
"(maxrange)d"
msgstr "Portnummer %(portno)d liegt nicht in %(minrange)d - %(maxrange)d"
#: forms.py:183
msgid "That name is forbidden by the server."
msgstr "Dieser Name wird vom Server nicht erlaubt."
#: forms.py:186 models.py:545
#: forms.py:186 models.py:547
msgid "Another player already registered that name."
msgstr "Ein anderer Spieler hat sich unter diesem Namen bereits registriert."
#: forms.py:194 models.py:547
#: forms.py:194 models.py:549
msgid "Cannot register player without a password!"
msgstr "Kann Account nicht ohne Passwort registrieren!"
#: forms.py:206 models.py:146
#: forms.py:206 models.py:148
msgid "Server Password"
msgstr "Serverpasswort"
#: forms.py:207
msgid "This server is private and protected mode is active. Please enter the server password."
msgstr "Dieser Server ist privat und der Registrierungsschutz ist aktiv. Bitte gib das Serverpasswort ein."
msgid ""
"This server is private and protected mode is active. Please enter the server "
"password."
msgstr ""
"Dieser Server ist privat und der Registrierungsschutz ist aktiv. Bitte gib "
"das Serverpasswort ein."
#: forms.py:215 forms.py:267
msgid "The password you entered is incorrect."
@ -110,8 +119,12 @@ msgid "Link account"
msgstr "Accounts verknüpfen"
#: forms.py:231
msgid "The account already exists and belongs to me, just link it instead of creating."
msgstr "Dieser Account existiert bereits und gehört mir. Verknüpfe die Konten nur, anstatt ein neues zu erstellen."
msgid ""
"The account already exists and belongs to me, just link it instead of "
"creating."
msgstr ""
"Dieser Account existiert bereits und gehört mir. Verknüpfe die Konten nur, "
"anstatt ein neues zu erstellen."
#: forms.py:248
msgid "No such user found."
@ -130,8 +143,12 @@ msgid "DBus or ICE base"
msgstr "DBus- oder ICE-String"
#: models.py:63
msgid "Examples: 'net.sourceforge.mumble.murmur' for DBus or 'Meta:tcp -h 127.0.0.1 -p 6502' for Ice."
msgstr "Beispiele: 'net.sourceforge.mumble.murmur' für DBus oder 'Meta:tcp -h 127.0.0.1 -p 6502' für Ice."
msgid ""
"Examples: 'net.sourceforge.mumble.murmur' for DBus or 'Meta:tcp -h 127.0.0.1 "
"-p 6502' for Ice."
msgstr ""
"Beispiele: 'net.sourceforge.mumble.murmur' für DBus oder 'Meta:tcp -h "
"127.0.0.1 -p 6502' für Ice."
#: models.py:64
msgid "Ice Secret"
@ -145,147 +162,165 @@ msgstr "Mumble-Server"
msgid "Mumble Servers"
msgstr "Mumble-Server"
#: models.py:127
#: models.py:129
msgid "Server Name"
msgstr "Servername"
#: models.py:128
#: models.py:130
msgid "Server ID"
msgstr "Server-ID"
#: models.py:130
msgid "Hostname or IP address to bind to. You should use a hostname here, because it will appear on the global server list."
msgstr "Hostname oder IP-Adresse unter der der Server erreichbar sein soll. Du solltest einen Hostname verwenden, da dieses Feld in der globalen Serverliste erscheint."
#: models.py:132
msgid ""
"Hostname or IP address to bind to. You should use a hostname here, because "
"it will appear on the global server list."
msgstr ""
"Hostname oder IP-Adresse unter der der Server erreichbar sein soll. Du "
"solltest einen Hostname verwenden, da dieses Feld in der globalen "
"Serverliste erscheint."
#: models.py:133
#: models.py:135
msgid "Port number to bind to. Leave empty to auto assign one."
msgstr "Portnummer auf die gebunden werden soll. Lasse das Feld leer um automatisch eine zuzuweisen."
msgstr ""
"Portnummer auf die gebunden werden soll. Lasse das Feld leer um automatisch "
"eine zuzuweisen."
#: models.py:134
#: models.py:136
msgid "Server Display Address"
msgstr "Angezeigte Adresse"
#: models.py:135
msgid "This field is only relevant if you are located behind a NAT, and names the Hostname or IP address to use in the Channel Viewer and for the global server list registration. If not given, the addr and port fields are used. If display and bind ports are equal, you can omit it here."
msgstr "Dieses Feld ist nur relevant wenn der Server hinter einem NAT steht, und gibt dann den Hostnamen oder die IP-Adresse die im Channel-Viewer und für die Registrierung in der Serverliste benutzt werden soll. Ist dieses Feld leer, werden die Angaben Addresse und Port stattdessen benutzt. Wenn die Ports identisch sind, kannst du den Port hier weglassen."
#: models.py:137
msgid ""
"This field is only relevant if you are located behind a NAT, and names the "
"Hostname or IP address to use in the Channel Viewer and for the global "
"server list registration. If not given, the addr and port fields are used. "
"If display and bind ports are equal, you can omit it here."
msgstr ""
"Dieses Feld ist nur relevant wenn der Server hinter einem NAT steht, und "
"gibt dann den Hostnamen oder die IP-Adresse die im Channel-Viewer und für "
"die Registrierung in der Serverliste benutzt werden soll. Ist dieses Feld "
"leer, werden die Angaben Addresse und Port stattdessen benutzt. Wenn die "
"Ports identisch sind, kannst du den Port hier weglassen."
#: models.py:141
#: models.py:143
msgid "Superuser Password"
msgstr "SuperUser-Passwort"
#: models.py:144
#: models.py:146
msgid "Website URL"
msgstr "URL der Webseite"
#: models.py:145
#: models.py:147
msgid "Welcome Message"
msgstr "Willkommensnachricht"
#: models.py:147
#: models.py:149
msgid "Max. Users"
msgstr "Max. Benutzer"
#: models.py:148
#: models.py:150
msgid "Bandwidth [Bps]"
msgstr "Bandbreite [Bps]"
#: models.py:149
#: models.py:151
msgid "SSL Certificate"
msgstr "SSL-Zertifikat"
#: models.py:150
#: models.py:152
msgid "SSL Key"
msgstr "SSL-Schlüssel"
#: models.py:151
#: models.py:153
msgid "Player name regex"
msgstr "Regex für Spielernamen"
#: models.py:152
#: models.py:154
msgid "Channel name regex"
msgstr "Regex für Channelnamen"
#: models.py:153
#: models.py:155
msgid "Default channel"
msgstr "Standardchannel"
#: models.py:154
#: models.py:156
msgid "Timeout"
msgstr "Timeout"
#: models.py:156
#: models.py:158
msgid "IP Obfuscation"
msgstr "IP-Adressen anonymisieren"
#: models.py:157
#: models.py:159
msgid "Require Certificate"
msgstr "SSL-Zertifikat erzwingen"
#: models.py:158
#: models.py:160
msgid "Maximum length of text messages"
msgstr "Maximale Länge von Textnachrichten"
#: models.py:159
#: models.py:161
msgid "Allow HTML to be used in messages"
msgstr "Erlaube HTML in Nachrichten"
#: models.py:160
#: models.py:162
msgid "Publish this server via Bonjour"
msgstr "Server via Bonjour bekannt machen"
#: models.py:161
#: models.py:163
msgid "Boot Server when Murmur starts"
msgstr "Instanz starten wenn Murmur startet"
#: models.py:179
#: models.py:181
msgid "Boot Server"
msgstr "Server starten"
#: models.py:183 models.py:506
#: models.py:185 models.py:508
msgid "Server instance"
msgstr "Serverinstanz"
#: models.py:184
#: models.py:186
msgid "Server instances"
msgstr "Serverinstanzen"
#: models.py:469 models.py:649
#: models.py:471 models.py:651
msgid "This field must not be updated once the record has been saved."
msgstr "Dieses Feld darf nicht mehr verändert werden, nachdem der Eintrag zum ersten Mal gespeichert wurde."
msgstr ""
"Dieses Feld darf nicht mehr verändert werden, nachdem der Eintrag zum ersten "
"Mal gespeichert wurde."
#: models.py:503
#: models.py:505
msgid "Mumble player_id"
msgstr "ID des Spielers in Murmur"
#: models.py:504
#: models.py:506
msgid "User name and Login"
msgstr "Benutzername und Login"
#: models.py:505
#: models.py:507
msgid "Login password"
msgstr "Passwort"
#: models.py:507 templates/mumble/mumble.html:284
#: models.py:509 templates/mumble/mumble.html:284
msgid "Account owner"
msgstr "Accountbesitzer"
#: models.py:509
msgid "comment"
#: models.py:511
msgid "The user's comment."
msgstr "Benutzer-Kommentar"
#: models.py:510
msgid "hash"
#: models.py:512
msgid "The user's hash."
msgstr "Signatur des Zertifikats"
#: models.py:514
#: models.py:516
msgid "User account"
msgstr "Benutzerkonto"
#: models.py:515
#: models.py:517
msgid "User accounts"
msgstr "Benutzerkonten"
#: models.py:522
#: models.py:524
#, python-format
msgid "Mumble user %(mu)s on %(srv)s owned by Django user %(du)s"
msgstr "Benutzeraccount %(mu)s auf %(srv)s mit Besitzer %(du)s"
@ -294,15 +329,19 @@ msgstr "Benutzeraccount %(mu)s auf %(srv)s mit Besitzer %(du)s"
msgid ""
"\n"
" <b>Hint:</b><br />\n"
" This area is used to display additional information for each channel and player, but requires JavaScript to be\n"
" displayed correctly. You will not see the detail pages, but you can use all links and forms\n"
" This area is used to display additional information for each channel "
"and player, but requires JavaScript to be\n"
" displayed correctly. You will not see the detail pages, but you can "
"use all links and forms\n"
" that are displayed.\n"
" "
msgstr ""
"\n"
" <b>Hinweis:</b><br />\n"
" Dieser Bereich wird genutzt um zusätzliche Informationen über jeden Channel und Spieler anzuzeigen, erfordert aber JavaScript um\n"
" richtig angezeigt zu werden. Du wirst zwar die Detailseiten nicht sehen, kannst aber alle sichtbaren Formulare benutzen.\n"
" Dieser Bereich wird genutzt um zusätzliche Informationen über jeden "
"Channel und Spieler anzuzeigen, erfordert aber JavaScript um\n"
" richtig angezeigt zu werden. Du wirst zwar die Detailseiten nicht "
"sehen, kannst aber alle sichtbaren Formulare benutzen.\n"
" "
#: templates/mumble/mumble.html:31
@ -333,11 +372,13 @@ msgstr "Du bist auf diesem Server nicht registriert"
#, python-format
msgid ""
"\n"
" <p>You need to be <a href=\"%(login_url)s\">logged in</a> to be able to register an account on this Mumble server.</p>\n"
" <p>You need to be <a href=\"%(login_url)s\">logged in</a> to be able "
"to register an account on this Mumble server.</p>\n"
" "
msgstr ""
"\n"
" <p>Du musst <a href=\"%(login_url)s\">eingeloggt</a> sein um auf diesem Mumble-Server einen Account registrieren zu können.</p>\n"
" <p>Du musst <a href=\"%(login_url)s\">eingeloggt</a> sein um auf "
"diesem Mumble-Server einen Account registrieren zu können.</p>\n"
" "
#: templates/mumble/mumble.html:64 templates/mumble/mumble.html.py:139
@ -348,11 +389,13 @@ msgstr "Benutzertextur"
#: templates/mumble/mumble.html:66
msgid ""
"\n"
" You can upload an image that you would like to use as your user texture here.\n"
" You can upload an image that you would like to use as your user "
"texture here.\n"
" "
msgstr ""
"\n"
" Du kannst hier ein Bild hochladen, das als deine Benutzertextur angezeigt werden soll.\n"
" Du kannst hier ein Bild hochladen, das als deine Benutzertextur "
"angezeigt werden soll.\n"
" "
#: templates/mumble/mumble.html:71
@ -366,12 +409,15 @@ msgstr "Du hast momentan keine Textur gesetzt"
#: templates/mumble/mumble.html:77
msgid ""
"\n"
" Hint: The texture image <b>needs</b> to be 600x60 in size. If you upload an image with\n"
" Hint: The texture image <b>needs</b> to be 600x60 in size. If you "
"upload an image with\n"
" a different size, it will be resized accordingly.<br />\n"
" "
msgstr ""
"\n"
" Hinweis: Das Texturbild <b>muss</b> die Größe 600x60 haben. Wenn du ein Bild mit einer anderen Größe hochlädst, wird es automatisch zurecht geschnitten.<br />\n"
" Hinweis: Das Texturbild <b>muss</b> die Größe 600x60 haben. Wenn "
"du ein Bild mit einer anderen Größe hochlädst, wird es automatisch zurecht "
"geschnitten.<br />\n"
" "
#: templates/mumble/mumble.html:94

BIN
pyweb/mumble/locale/ja/LC_MESSAGES/django.mo

52
pyweb/mumble/models.py

@ -16,7 +16,7 @@
import socket, Ice
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext_noop, ugettext_lazy as _
from django.contrib.auth.models import User
from django.db import models
from django.db.models import signals
@ -88,6 +88,7 @@ class MumbleServer( models.Model ):
ctl = property( getCtl, doc="Get a Control object for this server. The ctl is cached for later reuse." );
def getDefaultConf( self, field=None ):
""" Get a field from the default conf dictionary, or None if the field isn't set. """
if self._conf is None:
self._conf = self.ctl.getDefaultConf()
if field is None:
@ -97,6 +98,7 @@ class MumbleServer( models.Model ):
return None
def isOnline( self ):
""" Return true if this server process is running. """
try:
self.ctl
except Ice.ConnectionRefusedException:
@ -141,24 +143,24 @@ class Mumble( models.Model ):
doc=_('Superuser Password')
)
url = mk_config_property( "registerurl", _("Website URL") )
motd = mk_config_property( "welcometext", _("Welcome Message") )
passwd = mk_config_property( "password", _("Server Password") )
users = mk_config_property( "users", _("Max. Users"), get_coerce=int )
bwidth = mk_config_property( "bandwidth", _("Bandwidth [Bps]"), get_coerce=int )
sslcrt = mk_config_property( "certificate", _("SSL Certificate") )
sslkey = mk_config_property( "key", _("SSL Key") )
player = mk_config_property( "username", _("Player name regex") )
channel = mk_config_property( "channelname", _("Channel name regex") )
defchan = mk_config_property( "defaultchannel", _("Default channel"), get_coerce=int )
timeout = mk_config_property( "timeout", _("Timeout"), get_coerce=int )
obfsc = mk_config_bool_property( "obfuscate", _("IP Obfuscation") )
certreq = mk_config_bool_property( "certrequired", _("Require Certificate") )
textlen = mk_config_bool_property( "textmessagelength", _("Maximum length of text messages") )
html = mk_config_bool_property( "allowhtml", _("Allow HTML to be used in messages") )
bonjour = mk_config_bool_property( "bonjour", _("Publish this server via Bonjour") )
autoboot= mk_config_bool_property( "boot", _("Boot Server when Murmur starts") )
url = mk_config_property( "registerurl", ugettext_noop("Website URL") )
motd = mk_config_property( "welcometext", ugettext_noop("Welcome Message") )
passwd = mk_config_property( "password", ugettext_noop("Server Password") )
users = mk_config_property( "users", ugettext_noop("Max. Users"), get_coerce=int )
bwidth = mk_config_property( "bandwidth", ugettext_noop("Bandwidth [Bps]"), get_coerce=int )
sslcrt = mk_config_property( "certificate", ugettext_noop("SSL Certificate") )
sslkey = mk_config_property( "key", ugettext_noop("SSL Key") )
player = mk_config_property( "username", ugettext_noop("Player name regex") )
channel = mk_config_property( "channelname", ugettext_noop("Channel name regex") )
defchan = mk_config_property( "defaultchannel", ugettext_noop("Default channel"), get_coerce=int )
timeout = mk_config_property( "timeout", ugettext_noop("Timeout"), get_coerce=int )
obfsc = mk_config_bool_property( "obfuscate", ugettext_noop("IP Obfuscation") )
certreq = mk_config_bool_property( "certrequired", ugettext_noop("Require Certificate") )
textlen = mk_config_bool_property( "textmessagelength", ugettext_noop("Maximum length of text messages") )
html = mk_config_bool_property( "allowhtml", ugettext_noop("Allow HTML to be used in messages") )
bonjour = mk_config_bool_property( "bonjour", ugettext_noop("Publish this server via Bonjour") )
autoboot= mk_config_bool_property( "boot", ugettext_noop("Boot Server when Murmur starts") )
def getBooted( self ):
if self.id is not None:
@ -176,7 +178,7 @@ class Mumble( models.Model ):
else:
self.ctl.stop( self.srvid );
booted = property( getBooted, setBooted, doc=_("Boot Server") )
booted = property( getBooted, setBooted, doc=ugettext_noop("Boot Server") )
class Meta:
unique_together = ( ( 'server', 'srvid' ), );
@ -438,7 +440,7 @@ class Mumble( models.Model ):
else:
return daddr;
netloc = property( getNetloc, doc=getNetloc.__doc__ );
netloc = property( getNetloc );
def getURL( self, forUser = None ):
""" Create an URL of the form mumble://username@host:port/ for this server. """
@ -506,8 +508,8 @@ class MumbleUser( models.Model ):
server = models.ForeignKey( Mumble, verbose_name=_('Server instance'), related_name="mumbleuser_set" );
owner = models.ForeignKey( User, verbose_name=_('Account owner'), related_name="mumbleuser_set", null=True, blank=True );
comment = mk_registration_property( _("comment"), doc="The user's comment." );
hash = mk_registration_property( _("hash"), doc="The user's hash." );
comment = mk_registration_property( "comment", doc=ugettext_noop("The user's comment.") );
hash = mk_registration_property( "hash", doc=ugettext_noop("The user's hash.") );
class Meta:
unique_together = ( ( 'server', 'owner' ), ( 'server', 'mumbleid' ) );
@ -587,7 +589,7 @@ class MumbleUser( models.Model ):
self.server.rootchan.acl.save();
return value;
aclAdmin = property( getAdmin, setAdmin, doc='Admin on root channel' );
aclAdmin = property( getAdmin, setAdmin, doc=ugettext_noop('Admin on root channel') );
# Registration fetching
@ -627,7 +629,7 @@ class MumbleUser( models.Model ):
from django.core.urlresolvers import reverse
return reverse( showTexture, kwargs={ 'server': self.server.id, 'userid': self.id } );
textureUrl = property( getTextureUrl, doc=getTextureUrl.__doc__ );
textureUrl = property( getTextureUrl );
# Deletion handler

Loading…
Cancel
Save