Merge remote-tracking branch 'origin/master' into handle-interrupt-signal
Cette révision appartient à :
révision
67fecd650a
14 fichiers modifiés avec 642 ajouts et 37 suppressions
|
@ -30,7 +30,9 @@ func GormInit(conf *config.Config) (*gorm.DB, error) {
|
|||
// TODO: Enable Gorm initialization for non-development builds
|
||||
if config.Environment == "DEVELOPMENT" {
|
||||
db.LogMode(true)
|
||||
db.AutoMigrate(&model.Torrent{}, &model.UserFollows{}, &model.User{}, &model.Comment{}, &model.OldComment{}, &model.TorrentReport{})
|
||||
db.AutoMigrate(&model.User{}, &model.UserFollows{}, &model.UserUploadsOld{})
|
||||
db.AutoMigrate(&model.Torrent{}, &model.TorrentReport{})
|
||||
db.AutoMigrate(&model.Comment{}, &model.OldComment{})
|
||||
}
|
||||
|
||||
return db, nil
|
||||
|
|
|
@ -5,7 +5,6 @@ import (
|
|||
"github.com/ewhal/nyaa/util"
|
||||
|
||||
"fmt"
|
||||
"html"
|
||||
"html/template"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
@ -37,11 +36,13 @@ type Torrent struct {
|
|||
DeletedAt *time.Time
|
||||
|
||||
Uploader *User `gorm:"ForeignKey:UploaderId"`
|
||||
OldUploader string `gorm:"-"` // ???????
|
||||
OldComments []OldComment `gorm:"ForeignKey:torrent_id"`
|
||||
Comments []Comment `gorm:"ForeignKey:torrent_id"`
|
||||
}
|
||||
|
||||
// Returns the total size of memory recursively allocated for this struct
|
||||
// FIXME: doesn't go have sizeof or something nicer for this?
|
||||
func (t Torrent) Size() (s int) {
|
||||
s += 8 + // ints
|
||||
2*3 + // time.Time
|
||||
|
@ -108,6 +109,7 @@ type TorrentJSON struct {
|
|||
Downloads int `json:"downloads"`
|
||||
UploaderID uint `json:"uploader_id"`
|
||||
UploaderName template.HTML `json:"uploader_name"`
|
||||
OldUploader template.HTML `json:"uploader_old"`
|
||||
WebsiteLink template.URL `json:"website_link"`
|
||||
Magnet template.URL `json:"magnet"`
|
||||
TorrentLink template.URL `json:"torrent"`
|
||||
|
@ -132,8 +134,7 @@ func (t *Torrent) ToJSON() TorrentJSON {
|
|||
magnet := util.InfoHashToMagnet(strings.TrimSpace(t.Hash), t.Name, config.Trackers...)
|
||||
commentsJSON := make([]CommentJSON, 0, len(t.OldComments)+len(t.Comments))
|
||||
for _, c := range t.OldComments {
|
||||
escapedContent := template.HTML(html.EscapeString(c.Content))
|
||||
commentsJSON = append(commentsJSON, CommentJSON{Username: c.Username, Content: escapedContent, Date: c.Date})
|
||||
commentsJSON = append(commentsJSON, CommentJSON{Username: c.Username, Content: template.HTML(c.Content), Date: c.Date})
|
||||
}
|
||||
for _, c := range t.Comments {
|
||||
commentsJSON = append(commentsJSON, CommentJSON{Username: c.User.Username, Content: util.MarkdownToHTML(c.Content), Date: c.CreatedAt})
|
||||
|
@ -162,6 +163,7 @@ func (t *Torrent) ToJSON() TorrentJSON {
|
|||
Downloads: t.Downloads,
|
||||
UploaderID: t.UploaderID,
|
||||
UploaderName: util.SafeText(uploader),
|
||||
OldUploader: util.SafeText(t.OldUploader),
|
||||
WebsiteLink: util.Safe(t.WebsiteLink),
|
||||
Magnet: util.Safe(magnet),
|
||||
TorrentLink: util.Safe(torrentlink)}
|
||||
|
|
|
@ -22,7 +22,7 @@ type User struct {
|
|||
Likings []User // Don't work `gorm:"foreignkey:user_id;associationforeignkey:follower_id;many2many:user_follows"`
|
||||
Liked []User // Don't work `gorm:"foreignkey:follower_id;associationforeignkey:user_id;many2many:user_follows"`
|
||||
|
||||
MD5 string `json:"md5"` // Hash of email address, used for Gravatar
|
||||
MD5 string `json:"md5" gorm:"column:md5"` // Hash of email address, used for Gravatar
|
||||
Torrents []Torrent `gorm:"ForeignKey:UploaderID"`
|
||||
}
|
||||
|
||||
|
@ -50,3 +50,13 @@ type UserFollows struct {
|
|||
UserID uint `gorm:"column:user_id"`
|
||||
FollowerID uint `gorm:"column:following"`
|
||||
}
|
||||
|
||||
type UserUploadsOld struct {
|
||||
Username string `gorm:"column:username"`
|
||||
TorrentId uint `gorm:"column:torrent_id"`
|
||||
}
|
||||
|
||||
func (c UserUploadsOld) TableName() string {
|
||||
// TODO: rename this in db
|
||||
return "user_uploads_old"
|
||||
}
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
/* Torrent status colors */
|
||||
.remake {
|
||||
background-color: rgb(240, 176, 128);
|
||||
|
@ -323,6 +321,7 @@ div.container div.blockBody:nth-of-type(2) table tr:first-of-type th:last-of-typ
|
|||
background: #fff;
|
||||
min-height: 460px;
|
||||
}
|
||||
|
||||
/* Night mode switcher */
|
||||
#mainmenu a.nightswitch {
|
||||
background: transparent url(/img/sun.png) no-repeat;
|
||||
|
@ -331,11 +330,12 @@ div.container div.blockBody:nth-of-type(2) table tr:first-of-type th:last-of-typ
|
|||
margin-left: 3px;
|
||||
width: 24px;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
padding: 2rem;
|
||||
padding-bottom: 2rem;
|
||||
font-size: 2rem;
|
||||
font-family: cursive;
|
||||
color: #CCC;
|
||||
text-shadow: 0px -1px #999999;
|
||||
color: #616161;
|
||||
text-shadow: -1px -1px #999999;
|
||||
}
|
|
@ -83,7 +83,7 @@ func init() {
|
|||
Router.Handle("/user/{id}/{username}/follow", gzipUserFollowHandler).Name("user_follow").Methods("GET")
|
||||
Router.Handle("/user/{id}/{username}", wrapHandler(gzipUserProfileFormHandler)).Name("user_profile").Methods("POST")
|
||||
|
||||
Router.Handle("/mod/", gzipIndexModPanel).Name("mod_index")
|
||||
Router.Handle("/mod", gzipIndexModPanel).Name("mod_index")
|
||||
Router.Handle("/mod/torrents", gzipTorrentsListPanel).Name("mod_tlist")
|
||||
Router.Handle("/mod/users", gzipUsersListPanel).Name("mod_ulist")
|
||||
Router.Handle("/mod/comments", gzipCommentsListPanel).Name("mod_clist")
|
||||
|
@ -102,7 +102,7 @@ func init() {
|
|||
// TODO Allow only moderators to access /moderation/*
|
||||
//Router.Handle("/moderation/report/delete", gzipTorrentReportDeleteHandler).Name("torrent_report_delete").Methods("POST")
|
||||
//Router.Handle("/moderation/torrent/delete", gzipTorrentDeleteHandler).Name("torrent_delete").Methods("POST")
|
||||
Router.Handle("/moderation/report", gzipGetTorrentReportHandler ).Name("torrent_report").Methods("GET")
|
||||
Router.Handle("/mod/reports", gzipGetTorrentReportHandler).Name("torrent_report").Methods("GET")
|
||||
|
||||
Router.NotFoundHandler = http.HandlerFunc(NotFoundHandler)
|
||||
}
|
||||
|
|
|
@ -73,6 +73,13 @@ func GetTorrentById(id string) (torrent model.Torrent, err error) {
|
|||
// (or maybe I'm just retarded)
|
||||
torrent.Uploader = new(model.User)
|
||||
db.ORM.Where("user_id = ?", torrent.UploaderID).Find(torrent.Uploader)
|
||||
torrent.OldUploader = ""
|
||||
if torrent.ID <= config.LastOldTorrentID {
|
||||
var tmp model.UserUploadsOld
|
||||
if !db.ORM.Where("torrent_id = ?", torrent.ID).Find(&tmp).RecordNotFound() {
|
||||
torrent.OldUploader = tmp.Username
|
||||
}
|
||||
}
|
||||
for i := range torrent.Comments {
|
||||
torrent.Comments[i].User = new(model.User)
|
||||
err = db.ORM.Where("user_id = ?", torrent.Comments[i].UserID).Find(torrent.Comments[i].User).Error
|
||||
|
@ -112,12 +119,13 @@ func getTorrentsOrderBy(parameters *WhereParams, orderBy string, limit int, offs
|
|||
}
|
||||
conditions := strings.Join(conditionArray, " AND ")
|
||||
if countAll {
|
||||
// FIXME: `deleted_at IS NULL` is duplicate in here because GORM handles this for us
|
||||
err = db.ORM.Model(&torrents).Where(conditions, params...).Count(&count).Error
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
// TODO: Vulnerable to injections. Use query builder.
|
||||
// TODO: Vulnerable to injections. Use query builder. (is it?)
|
||||
|
||||
// build custom db query for performance reasons
|
||||
dbQuery := "SELECT * FROM torrents"
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<th>{{T "links"}}</th>
|
||||
</tr>
|
||||
{{ range .Torrents }}
|
||||
{{ with .ToJson }}
|
||||
{{ with .ToJSON }}
|
||||
<tr class="torrent-info
|
||||
{{if eq .Status 2}}remake{{end}}
|
||||
{{if eq .Status 3}}trusted{{end}}
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
{{.Name}}
|
||||
</a>
|
||||
</td>
|
||||
<td class="hidden-xs" class="date date-short">{{.Date}}</td>
|
||||
<td class="hidden-xs" class="filesize">{{.Filesize}}</td>
|
||||
<td class="hidden-xs date date-short">{{.Date}}</td>
|
||||
<td class="hidden-xs filesize">{{.Filesize}}</td>
|
||||
<td class="hidden-xs">
|
||||
<a href="{{.Magnet}}" title="Magnet link">
|
||||
<span class="glyphicon glyphicon-magnet" aria-hidden="true"></span>
|
||||
|
|
|
@ -28,7 +28,12 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td>Uploader</td>
|
||||
<td><a href="{{$.URL.Parse (printf "/user/%d/-" .UploaderID) }}">{{.UploaderName}}</a></td>
|
||||
<td>
|
||||
<a href="{{$.URL.Parse (printf "/user/%d/-" .UploaderID) }}">{{.UploaderName}}</a>
|
||||
{{if ne .OldUploader ""}}
|
||||
({{.OldUploader}})
|
||||
{{end}}
|
||||
</td>
|
||||
{{if ne .WebsiteLink ""}}
|
||||
<tr>
|
||||
<td>{{T "Link"}}</td>
|
||||
|
|
566
translations/de-de.all.json
Fichier normal
566
translations/de-de.all.json
Fichier normal
|
@ -0,0 +1,566 @@
|
|||
[
|
||||
{
|
||||
"id": "link",
|
||||
"translation": "Link"
|
||||
},
|
||||
{
|
||||
"id": "verify_email_title",
|
||||
"translation": "Bestätige deine E-Mail Adresse für Nyaapantsu."
|
||||
},
|
||||
{
|
||||
"id": "verify_email_content",
|
||||
"translation": "Klicke unten auf den Link um deine E-Mail Adresse zu verifizieren."
|
||||
},
|
||||
{
|
||||
"id": "reset_password_title",
|
||||
"translation": "Setze dein nyaapantsu Passwort zurück."
|
||||
},
|
||||
{
|
||||
"id": "reset_password_content",
|
||||
"translation": "Klicke unten auf den Link um dein Passwort zurückzusetzen."
|
||||
},
|
||||
{
|
||||
"id":"register_title",
|
||||
"translation": "Neuen Account erstellen"
|
||||
},
|
||||
{
|
||||
"id":"signup_box_title",
|
||||
"translation": "Registrier dich <small>Es ist kostenlos und wird immer so bleiben.</small>"
|
||||
},
|
||||
{
|
||||
"id":"username",
|
||||
"translation": "Nutzername"
|
||||
},
|
||||
{
|
||||
"id":"email_address_or_username",
|
||||
"translation": "E-Mail-Adresse oder Nutzername"
|
||||
},
|
||||
{
|
||||
"id":"email_address",
|
||||
"translation": "E-Mail Adresse"
|
||||
},
|
||||
{
|
||||
"id":"password",
|
||||
"translation": "Passwort"
|
||||
},
|
||||
{
|
||||
"id":"confirm_password",
|
||||
"translation": "Bestätige dein Passwort"
|
||||
},
|
||||
{
|
||||
"id":"i_agree",
|
||||
"translation": "Ich stimme zu"
|
||||
},
|
||||
{
|
||||
"id":"terms_conditions_confirm",
|
||||
"translation": "Mit Klick auf <strong class=\"label label-primary\">Registrieren</strong> stimmst du den <a href=\"#\" data-toggle=\"modal\" data-target=\"#t_and_c_m\">Nutzungsbedingungen</a> sowie der Nutzung von Cookies zu."
|
||||
},
|
||||
{
|
||||
"id":"signin",
|
||||
"translation": "Einloggen"
|
||||
},
|
||||
{
|
||||
"id":"register",
|
||||
"translation": "Registrieren"
|
||||
},
|
||||
{
|
||||
"id":"terms_conditions",
|
||||
"translation": "Nutzungsbedingungen"
|
||||
},
|
||||
{
|
||||
"id":"terms_conditions_full",
|
||||
"translation": "Coming sooner than you might expect..."
|
||||
},
|
||||
{
|
||||
"id":"remember_me",
|
||||
"translation": "Login speichern"
|
||||
},
|
||||
{
|
||||
"id":"forgot_password",
|
||||
"translation": "Passwort vergessen?"
|
||||
},
|
||||
{
|
||||
"id":"sign_in_box_title",
|
||||
"translation": "Bitte logge dich zuerst ein"
|
||||
},
|
||||
{
|
||||
"id":"sign_in_title",
|
||||
"translation": "Login"
|
||||
},
|
||||
{
|
||||
"id":"register_success_title",
|
||||
"translation": "Login erfolgreich"
|
||||
},
|
||||
{
|
||||
"id":"sign_up_success",
|
||||
"translation": "Danke für's Registrieren!"
|
||||
},
|
||||
{
|
||||
"id":"verify_success",
|
||||
"translation": "<i style=\"color:limegreen\" class=\"glyphicon glyphicon-ok-circle\"></i>Dein Account ist jetzt aktiviert!"
|
||||
},
|
||||
{
|
||||
"id":"signup_verification_email",
|
||||
"translation": "Geschafft, überprüfe deinen Posteingang (und Spam Ordner!) auf eine Bestätigungsmail."
|
||||
},
|
||||
{
|
||||
"id":"signup_verification_noemail",
|
||||
"translation": "Die Registrierung war erfolgreich, du kannst deinen Account jetzt benutzen."
|
||||
},
|
||||
{
|
||||
"id":"settings",
|
||||
"translation": "Profil-Einstellungen"
|
||||
},
|
||||
{
|
||||
"id":"torrents",
|
||||
"translation": "Torrents"
|
||||
},
|
||||
{
|
||||
"id":"follow",
|
||||
"translation": "Folgen"
|
||||
},
|
||||
{
|
||||
"id":"unfollow",
|
||||
"translation": "Nicht mehr Folgen"
|
||||
},
|
||||
{
|
||||
"id":"user_followed_msg",
|
||||
"translation": "Du folgst jetzt %s!"
|
||||
},
|
||||
{
|
||||
"id":"user_unfollowed_msg",
|
||||
"translation": "Du folgst %s nicht mehr!"
|
||||
},
|
||||
{
|
||||
"id":"profile_page",
|
||||
"translation": "Profil von %s"
|
||||
},
|
||||
{
|
||||
"id":"see_more_torrents_from",
|
||||
"translation": "Mehr Torrents von %s "
|
||||
},
|
||||
{
|
||||
"id":"category",
|
||||
"translation": "Kategorie"
|
||||
},
|
||||
{
|
||||
"id": "name",
|
||||
"translation": "Name"
|
||||
},
|
||||
{
|
||||
"id": "date",
|
||||
"translation": "Datum"
|
||||
},
|
||||
{
|
||||
"id": "size",
|
||||
"translation": "Größe"
|
||||
},
|
||||
{
|
||||
"id": "links",
|
||||
"translation": "Links"
|
||||
},
|
||||
{
|
||||
"id": "home",
|
||||
"translation": "Home"
|
||||
},
|
||||
{
|
||||
"id": "error_404",
|
||||
"translation": "Fehler 404"
|
||||
},
|
||||
{
|
||||
"id": "toggle_navigation",
|
||||
"translation": "Navigation umschalten"
|
||||
},
|
||||
{
|
||||
"id": "upload",
|
||||
"translation": "Hochladen"
|
||||
},
|
||||
{
|
||||
"id": "faq",
|
||||
"translation": "FAQ"
|
||||
},
|
||||
{
|
||||
"id": "fap",
|
||||
"translation": "Fap"
|
||||
},
|
||||
{
|
||||
"id": "advanced_search",
|
||||
"translation": "Erweiterte Suche"
|
||||
},
|
||||
{
|
||||
"id": "nothing_here",
|
||||
"translation": "Nichts zu finden."
|
||||
},
|
||||
{
|
||||
"id": "404_not_found",
|
||||
"translation": "404 nichts gefunden"
|
||||
},
|
||||
{
|
||||
"id": "no_torrents_uploaded",
|
||||
"translation": "Es sind noch keine Torrents hochgeladen worden!"
|
||||
},
|
||||
{
|
||||
"id": "profile",
|
||||
"translation": "Profil"
|
||||
},
|
||||
{
|
||||
"id": "sign_out",
|
||||
"translation": "Logout"
|
||||
},
|
||||
{
|
||||
"id": "member",
|
||||
"translation": "Mitglied"
|
||||
},
|
||||
{
|
||||
"id": "sign_in",
|
||||
"translation": "Einloggen"
|
||||
},
|
||||
{
|
||||
"id": "sign_up",
|
||||
"translation": "Registrieren"
|
||||
},
|
||||
{
|
||||
"id": "no_results_found",
|
||||
"translation": "Es wurden keine Ergebnisse gefunden"
|
||||
},
|
||||
{
|
||||
"id": "notice_keep_seeding",
|
||||
"translation": "WICHTIG: WEITER SEEDEN UND DHT AKTIVIEREN"
|
||||
},
|
||||
{
|
||||
"id": "official_nyaapocalipse_faq",
|
||||
"translation": "Offizielles Nyaapocalypse FAQ"
|
||||
},
|
||||
{
|
||||
"id": "links_replacement_mirror",
|
||||
"translation": "Ersatzlinks"
|
||||
},
|
||||
{
|
||||
"id": "what_happened",
|
||||
"translation": "Was ist passiert?"
|
||||
},
|
||||
{
|
||||
"id": "nyaa_se_went_offline",
|
||||
"translation": "nyaa.se und andere Domains (wie nyaatorrents.info) gingen am 01. Mai 2017 offline."
|
||||
},
|
||||
{
|
||||
"id": "its_not_a_ddos",
|
||||
"translation": "Die Seite wurde deaktiviert, es war kein DDoS Angriff."
|
||||
},
|
||||
{
|
||||
"id": "future_not_looking_good",
|
||||
"translation": "Die Zukunft für nyaa sieht schlecht aus. (Die Seite ist tot)"
|
||||
},
|
||||
{
|
||||
"id": "recovery_effort",
|
||||
"translation": "Zur Zeit wird versucht die Seite zu ersetzen."
|
||||
},
|
||||
{
|
||||
"id": "is_everything_lost",
|
||||
"translation": "Ist alles verloren?"
|
||||
},
|
||||
{
|
||||
"id": "in_short_no",
|
||||
"translation": "Kurzgesagt, Nein."
|
||||
},
|
||||
{
|
||||
"id": "are_some_things_lost",
|
||||
"translation": "Gibt es Verluste?"
|
||||
},
|
||||
{
|
||||
"id": "answer_is_nyaa_db_lost",
|
||||
"translation": "Wir haben die Torrent-Datenbank von nyaa bis zum <s>5. April</s> 1. Mai. Das heißt es fehlt fast gar nichts."
|
||||
},
|
||||
{
|
||||
"id": "answer_is_sukebei_db_lost",
|
||||
"translation": "Um Sukebei steht es hingegen schlechter. Zurzeit haben wir nur eine Sukebei-Datenbank bis 2016, aber eine neuere Datenbank steht möglicherweise zu Verfügung."
|
||||
},
|
||||
{
|
||||
"id": "how_are_we_recovering",
|
||||
"translation": "Wie läuft die Wiederherstellung ab?"
|
||||
},
|
||||
{
|
||||
"id": "answer_how_are_we_recovering",
|
||||
"translation": "Die obengenannten Datenbanken werden im Moment auf nyaa.pantsu.cat und sukebei.pantsu.cat bereitgestellt. Es gibt eine Suchfunktion und (fast) vollständige Funktionalität von nyaa sollte bald wiederhergestellt sein. Seeder/Leecher Statistiken sind via Scraping möglich und werden in Zukunft vielleicht wiederhergestellt werden, da andere Funktionen Vorrang haben."
|
||||
},
|
||||
{
|
||||
"id": "are_the_trackers_working",
|
||||
"translation": "Funktionieren die Torrents noch?"
|
||||
},
|
||||
{
|
||||
"id": "answer_are_the_trackers_working",
|
||||
"translation": "Auch went die Tracker offline sind, sind die Seeder immernoch mit dem dezentralisierten DHT Netzwerk verbunden. Solange das DHT Netzwerk die Torrentdaten hat, sollte es wie gewohnt weitergehen."
|
||||
},
|
||||
{
|
||||
"id": "how_do_i_download_the_torrents",
|
||||
"translation": "Wie lade ich Torrents herunter?"
|
||||
},
|
||||
{
|
||||
"id": "answer_how_do_i_download_the_torrents",
|
||||
"translation": "Benutze einfach <b>Magnet Links</b>. Deine BitTorrent Software liest den Magnet Link und durchsucht das DHT Netzwerk nach den Metadaten und der Download sollte ohne weiteres funktionieren."
|
||||
},
|
||||
{
|
||||
"id": "magnet_link_should_look_like",
|
||||
"translation": "Ein Magnet Link sollte so aussehen:"
|
||||
},
|
||||
{
|
||||
"id": "which_trackers_do_you_recommend",
|
||||
"translation": "Welche Tracker sind empfohlen?"
|
||||
},
|
||||
{
|
||||
"id": "answer_which_trackers_do_you_recommend",
|
||||
"translation": "Wenn deine Torrents wegen Trackern Probleme machen, solltest du einige dieser hinzufügen:"
|
||||
},
|
||||
{
|
||||
"id": "how_can_i_help",
|
||||
"translation": "Wie kann ich helfen?"
|
||||
},
|
||||
{
|
||||
"id": "answer_how_can_i_help",
|
||||
"translation": "Wenn du Erfahrungen mit Webseitenprogrammierung hast, kannst du dem IRC-Kanal #nyaapantsu auf irc.rizon.net(Englisch) beitreten. Wenn du irgendwelche Datenbanken hast, insbesondere für Sukebei, <b>LAD SIE HOCH</b>."
|
||||
},
|
||||
{
|
||||
"id": "your_design_sucks_found_a_bug",
|
||||
"translation": "Euer Design ist mies / Ich habe einen Fehler gefunden"
|
||||
},
|
||||
{
|
||||
"id": "why_written_in_go",
|
||||
"translation": "Warum in Gottesnamen ist eurer Code in Go geschrieben?"
|
||||
},
|
||||
{
|
||||
"id": "authors_favorite_language",
|
||||
"translation": "Weil es die Lieblingsprogrammiersprache des Entwicklers ist."
|
||||
},
|
||||
{
|
||||
"id": "nyaa_pantsu_dont_host_files",
|
||||
"translation": "nyaa.pantsu.cat und sukebei.pantsu.cat stellen keine Dateien bereit."
|
||||
},
|
||||
{
|
||||
"id": "upload_magnet",
|
||||
"translation": "Magnet hochladen"
|
||||
},
|
||||
{
|
||||
"id": "torrent_file",
|
||||
"translation": "Torrent Datei"
|
||||
},
|
||||
{
|
||||
"id": "uploading_file_prefills_fields",
|
||||
"translation": "Beim hochladen einer Torrentdatei werden einige Felder automatisch ausgefüllt (wird bevorzugt)."
|
||||
},
|
||||
{
|
||||
"id": "magnet_link",
|
||||
"translation": "Magnet Link"
|
||||
},
|
||||
{
|
||||
"id": "all_categories",
|
||||
"translation": "Alle Kategorien"
|
||||
},
|
||||
{
|
||||
"id": "anime",
|
||||
"translation": "Anime"
|
||||
},
|
||||
{
|
||||
"id": "anime_amv",
|
||||
"translation": "Anime - Anime Music Video"
|
||||
},
|
||||
{
|
||||
"id": "anime_english_translated",
|
||||
"translation": "Anime - Englisch-übersetzt"
|
||||
},
|
||||
{
|
||||
"id": "anime_non_english_translated",
|
||||
"translation": "Anime - andere Übersetzungen"
|
||||
},
|
||||
{
|
||||
"id": "anime_raw",
|
||||
"translation": "Anime - Raw"
|
||||
},
|
||||
{
|
||||
"id": "audio",
|
||||
"translation": "Audio"
|
||||
},
|
||||
{
|
||||
"id": "audio_lossless",
|
||||
"translation": "Audio - Verlustfrei"
|
||||
},
|
||||
{
|
||||
"id": "audio_lossy",
|
||||
"translation": "Audio - Verlustbehaftet"
|
||||
},
|
||||
{
|
||||
"id": "literature",
|
||||
"translation": "Literatur"
|
||||
},
|
||||
{
|
||||
"id": "literature_english_translated",
|
||||
"translation": "Literatur - Englisch-übersetzt"
|
||||
},
|
||||
{
|
||||
"id": "literature_raw",
|
||||
"translation": "Literatur - Raw"
|
||||
},
|
||||
{
|
||||
"id": "literature_non_english_translated",
|
||||
"translation": "Literature - andere Übersetzungen"
|
||||
},
|
||||
{
|
||||
"id": "live_action",
|
||||
"translation": "Live Action"
|
||||
},
|
||||
{
|
||||
"id": "live_action_english_translated",
|
||||
"translation": "Live Action - Englisch-übersetzt"
|
||||
},
|
||||
{
|
||||
"id": "live_action_idol_pv",
|
||||
"translation": "Live Action - Idol/Promotional Video"
|
||||
},
|
||||
{
|
||||
"id": "live_action_non_english_translated",
|
||||
"translation": "Live Action - andere Übersetzungen"
|
||||
},
|
||||
{
|
||||
"id": "live_action_raw",
|
||||
"translation": "Live Action - Raw"
|
||||
},
|
||||
{
|
||||
"id": "pictures",
|
||||
"translation": "Bilder"
|
||||
},
|
||||
{
|
||||
"id": "pictures_graphics",
|
||||
"translation": "Bilder - Grafiken"
|
||||
},
|
||||
{
|
||||
"id": "pictures_photos",
|
||||
"translation": "Bilder - Fotos"
|
||||
},
|
||||
{
|
||||
"id": "software",
|
||||
"translation": "Software"
|
||||
},
|
||||
{
|
||||
"id": "software_applications",
|
||||
"translation": "Software - Programme"
|
||||
},
|
||||
{
|
||||
"id": "software_games",
|
||||
"translation": "Software - Spiele"
|
||||
},
|
||||
{
|
||||
"id": "torrent_description",
|
||||
"translation": "Torrent Beschreibung"
|
||||
},
|
||||
{
|
||||
"id": "description_markdown_notice",
|
||||
"translation": "Markdown kann in der Beschreibung verwendet werden."
|
||||
},
|
||||
{
|
||||
"id": "show_all",
|
||||
"translation": "Alle anzeigen"
|
||||
},
|
||||
{
|
||||
"id": "filter_remakes",
|
||||
"translation": "Remakes herausfiltern"
|
||||
},
|
||||
{
|
||||
"id": "trusted",
|
||||
"translation": "Trusted"
|
||||
},
|
||||
{
|
||||
"id": "id",
|
||||
"translation": "ID"
|
||||
},
|
||||
{
|
||||
"id": "downloads",
|
||||
"translation": "Downloads"
|
||||
},
|
||||
{
|
||||
"id": "descending",
|
||||
"translation": "Absteigend"
|
||||
},
|
||||
{
|
||||
"id": "ascending",
|
||||
"translation": "Aufsteigend"
|
||||
},
|
||||
{
|
||||
"id": "search",
|
||||
"translation": "Suche"
|
||||
},
|
||||
{
|
||||
"id": "hash",
|
||||
"translation": "Hash"
|
||||
},
|
||||
{
|
||||
"id": "description",
|
||||
"translation": "Beschreibung"
|
||||
},
|
||||
{
|
||||
"id": "comments",
|
||||
"translation": "Kommentare"
|
||||
},
|
||||
{
|
||||
"id": "submit_a_comment_as_username",
|
||||
"translation": "Kommentar als %s verfassen"
|
||||
},
|
||||
{
|
||||
"id": "submit_a_comment_as_anonymous",
|
||||
"translation": "anonymen Kommentar verfassen"
|
||||
},
|
||||
{
|
||||
"id": "submit",
|
||||
"translation": "Absenden"
|
||||
},
|
||||
{
|
||||
"id": "personal_info",
|
||||
"translation": "Persönliche Informationen"
|
||||
},
|
||||
{
|
||||
"id": "language",
|
||||
"translation": "Sprache"
|
||||
},
|
||||
{
|
||||
"id": "current_password",
|
||||
"translation": "Derzeitiges Passwort"
|
||||
},
|
||||
{
|
||||
"id": "role",
|
||||
"translation": "Rolle"
|
||||
},
|
||||
{
|
||||
"id": "banned",
|
||||
"translation": "Gebannt"
|
||||
},
|
||||
{
|
||||
"id": "default",
|
||||
"translation": "Standard"
|
||||
},
|
||||
{
|
||||
"id": "trusted_member",
|
||||
"translation": "Trusted"
|
||||
},
|
||||
{
|
||||
"id": "moderator",
|
||||
"translation": "Moderator"
|
||||
},
|
||||
{
|
||||
"id": "save_changes",
|
||||
"translation": "Änderungen speichern"
|
||||
},
|
||||
{
|
||||
"id": "profile_updated",
|
||||
"translation": "Dein Profil wurde entsprechend geändert!"
|
||||
},
|
||||
{
|
||||
"id": "delete_account",
|
||||
"translation": "Profil löschen"
|
||||
},
|
||||
{
|
||||
"id": "delete_account_confirm",
|
||||
"translation": "Bist du sicher das du dein Profil löschen möchtest?"
|
||||
},
|
||||
{
|
||||
"id": "delete_success",
|
||||
"translation": "Dein Profil wurde erfolgreich gelöscht!"
|
||||
}
|
||||
]
|
|
@ -328,7 +328,7 @@
|
|||
"translation": "Archivo Torrent"
|
||||
},
|
||||
{
|
||||
"id": "uploading_torrent_prefills_fields",
|
||||
"id": "uploading_file_prefills_fields",
|
||||
"translation": "Subir un archivo torrent permite pre-llenar algunos campos, esto es recomendado."
|
||||
},
|
||||
{
|
||||
|
|
|
@ -328,7 +328,7 @@
|
|||
"translation": "토렌트 파일"
|
||||
},
|
||||
{
|
||||
"id": "uploading_torrent_prefills_fields",
|
||||
"id": "uploading_file_prefills_fields",
|
||||
"translation": "토렌트 파일을 업로드하면 몇몇 필드가 자동으로 채워집니다. 추천드립니다."
|
||||
},
|
||||
{
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
},
|
||||
{
|
||||
"id": "verify_email_title",
|
||||
"translation": "Verifique seu e-mail."
|
||||
"translation": "Verifique seu e-mail para o Nyaapantsu."
|
||||
},
|
||||
{
|
||||
"id": "verify_email_content",
|
||||
|
@ -49,7 +49,7 @@
|
|||
},
|
||||
{
|
||||
"id":"i_agree",
|
||||
"translation": "Eu concordo."
|
||||
"translation": "Eu concordo"
|
||||
},
|
||||
{
|
||||
"id":"terms_conditions_confirm",
|
||||
|
@ -73,7 +73,7 @@
|
|||
},
|
||||
{
|
||||
"id":"remember_me",
|
||||
"translation": "Lembrar de mim."
|
||||
"translation": "Lembrar de mim"
|
||||
},
|
||||
{
|
||||
"id":"forgot_password",
|
||||
|
@ -115,13 +115,25 @@
|
|||
"id":"follow",
|
||||
"translation": "Seguir"
|
||||
},
|
||||
{
|
||||
"id": "unfollow",
|
||||
"translation": "Deixar de seguir"
|
||||
},
|
||||
{
|
||||
"id": "user_followed_msg",
|
||||
"translation": "Você seguiu %s!"
|
||||
},
|
||||
{
|
||||
"id": "user_unfollowed_msg",
|
||||
"translation": "Você deixou de seguir %s!"
|
||||
},
|
||||
{
|
||||
"id":"profile_page",
|
||||
"translation": "Perfil"
|
||||
"translation": "Perfil de %s"
|
||||
},
|
||||
{
|
||||
"id":"see_more_torrents_from",
|
||||
"translation": "Ver mais torrents de"
|
||||
"translation": "Ver mais torrents de %s "
|
||||
},
|
||||
{
|
||||
"id":"category",
|
||||
|
@ -177,7 +189,7 @@
|
|||
},
|
||||
{
|
||||
"id": "404_not_found",
|
||||
"translation": "404 não encontrado"
|
||||
"translation": "404 Não Encontrado"
|
||||
},
|
||||
{
|
||||
"id": "no_torrents_uploaded",
|
||||
|
@ -205,7 +217,7 @@
|
|||
},
|
||||
{
|
||||
"id": "no_results_found",
|
||||
"translation": "Nenhum resultado encontrado."
|
||||
"translation": "Nenhum resultado encontrado"
|
||||
},
|
||||
{
|
||||
"id": "notice_keep_seeding",
|
||||
|
@ -253,7 +265,7 @@
|
|||
},
|
||||
{
|
||||
"id": "answer_is_nyaa_db_lost",
|
||||
"translation": "Possuímos uma database dos torrents do antigo nyaa até o dia primeiro de Maio. Isto quer dizer que quase nada foi perdido."
|
||||
"translation": "Possuímos uma database dos torrents do antigo nyaa até o dia <s>5 de Abril</s> 1 de Maio. Isto quer dizer que quase nada foi perdido."
|
||||
},
|
||||
{
|
||||
"id": "answer_is_sukebei_db_lost",
|
||||
|
@ -281,7 +293,7 @@
|
|||
},
|
||||
{
|
||||
"id": "answer_how_do_i_download_the_torrents",
|
||||
"translation": "Basta usar os links ímã (magnets). Eles serão utilizados pelo seu client de BitTorrent para encontrar os arquivos na rede DHT e realizar o download."
|
||||
"translation": "Basta usar os <b>links ímã (magnets)</b>. Eles serão utilizados pelo seu client de BitTorrent para encontrar os arquivos na rede DHT e realizar o download."
|
||||
},
|
||||
{
|
||||
"id": "magnet_link_should_look_like",
|
||||
|
@ -301,7 +313,7 @@
|
|||
},
|
||||
{
|
||||
"id": "answer_how_can_i_help",
|
||||
"translation": "Se possuir experiência em desenvolvimento de sites e habilidades de inglês, você pode se juntar ao canal de IRC #nyaapantsu em irc.rizon.net. Se você possuir databases atualizadas, especialmente para o Sukebei, UPLOADE-AS."
|
||||
"translation": "Se possuir experiência em desenvolvimento de sites e habilidades de inglês, você pode se juntar ao canal de IRC #nyaapantsu em irc.rizon.net. Se você possuir databases atualizadas, especialmente para o Sukebei, <b>UPLOADE-AS</b>."
|
||||
},
|
||||
{
|
||||
"id": "your_design_sucks_found_a_bug",
|
||||
|
@ -328,7 +340,7 @@
|
|||
"translation": "Arquivo Torrent"
|
||||
},
|
||||
{
|
||||
"id": "uploading_torrent_prefills_fields",
|
||||
"id": "uploading_file_prefills_fields",
|
||||
"translation": "Uploadar um arquivo torrent preencherá alguns campos automaticamente, e é recomendado."
|
||||
},
|
||||
{
|
||||
|
@ -436,8 +448,8 @@
|
|||
"translation": "Descrição do Torrent"
|
||||
},
|
||||
{
|
||||
"id": "limited_html_set_is_allowed_use",
|
||||
"translation": "HTML limitado é permitido na descrição."
|
||||
"id": "description_markdown_notice",
|
||||
"translation": "Markdown é permitido na descrição."
|
||||
},
|
||||
{
|
||||
"id": "show_all",
|
||||
|
@ -485,7 +497,7 @@
|
|||
},
|
||||
{
|
||||
"id": "submit_a_comment_as_username",
|
||||
"translation": "Comentar com nome de Usuário"
|
||||
"translation": "Comentar como %s"
|
||||
},
|
||||
{
|
||||
"id": "submit_a_comment_as_anonymous",
|
||||
|
|
|
@ -328,7 +328,7 @@
|
|||
"translation": "Торрент-файл"
|
||||
},
|
||||
{
|
||||
"id": "uploading_torrent_prefills_fields",
|
||||
"id": "uploading_file_prefills_fields",
|
||||
"translation": "Загрузка торрент-файла позволяет предварительно заполнить некоторые поля, это рекомендуется."
|
||||
},
|
||||
{
|
||||
|
|
Référencer dans un nouveau ticket