Albirew/nyaa-pantsu
Archivé
1
0
Bifurcation 0

Merge remote-tracking branch 'origin/master' into handle-interrupt-signal

Cette révision appartient à :
Jeff Becker 2017-05-10 08:26:07 -04:00
révision 67fecd650a
14 fichiers modifiés avec 642 ajouts et 37 suppressions

Voir le fichier

@ -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

Voir le fichier

@ -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)}

Voir le fichier

@ -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"
}

Voir le fichier

@ -1,5 +1,3 @@
/* Torrent status colors */
.remake {
background-color: rgb(240, 176, 128);
@ -323,7 +321,8 @@ 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 */
/* Night mode switcher */
#mainmenu a.nightswitch {
background: transparent url(/img/sun.png) no-repeat;
background-size: 24px;
@ -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;
}

Voir le fichier

@ -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)
}

Voir le fichier

@ -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
@ -98,7 +105,7 @@ func getTorrentsOrderBy(parameters *WhereParams, orderBy string, limit int, offs
torrents []model.Torrent, count int, err error,
) {
var conditionArray []string
conditionArray = append(conditionArray, "deleted_at IS NULL")
conditionArray = append(conditionArray, "deleted_at IS NULL")
if strings.HasPrefix(orderBy, "filesize") {
// torrents w/ NULL filesize fuck up the sorting on Postgres
conditionArray = append(conditionArray, "filesize IS NOT NULL")
@ -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"

Voir le fichier

@ -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}}

Voir le fichier

@ -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>

Voir le fichier

@ -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
Voir le fichier

@ -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!"
}
]

Voir le fichier

@ -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."
},
{

Voir le fichier

@ -328,7 +328,7 @@
"translation": "토렌트 파일"
},
{
"id": "uploading_torrent_prefills_fields",
"id": "uploading_file_prefills_fields",
"translation": "토렌트 파일을 업로드하면 몇몇 필드가 자동으로 채워집니다. 추천드립니다."
},
{

Voir le fichier

@ -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",

Voir le fichier

@ -328,7 +328,7 @@
"translation": "Торрент-файл"
},
{
"id": "uploading_torrent_prefills_fields",
"id": "uploading_file_prefills_fields",
"translation": "Загрузка торрент-файла позволяет предварительно заполнить некоторые поля, это рекомендуется."
},
{