Fix conflict on translation
Cette révision appartient à :
révision
2ab4d4ad9e
11 fichiers modifiés avec 360 ajouts et 149 suppressions
|
@ -103,7 +103,7 @@ a:hover {
|
|||
}
|
||||
|
||||
:target {
|
||||
background-color: #585b4f;
|
||||
background-color: #b294bb;
|
||||
}
|
||||
|
||||
/* style the dropdown member menu */
|
||||
|
@ -149,3 +149,14 @@ a:hover {
|
|||
background: #29363d;
|
||||
color: #cf9fff;
|
||||
}
|
||||
|
||||
/*Comments*/
|
||||
|
||||
.commentList .commentData {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.commentList .commentBody {
|
||||
background: #29363d;
|
||||
color: #fff;
|
||||
}
|
||||
|
|
|
@ -15,18 +15,18 @@
|
|||
color: white;
|
||||
}
|
||||
#mainmenu {
|
||||
position: fixed;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 4;
|
||||
border: 0px solid white;
|
||||
}
|
||||
#mainmenu a {
|
||||
background: none;
|
||||
color: white;
|
||||
background: none;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#mainmenu .divider {
|
||||
background: black;
|
||||
background: black;
|
||||
}
|
||||
|
||||
#container {
|
||||
|
@ -54,7 +54,7 @@ body {
|
|||
}
|
||||
|
||||
.torrentNav {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.pagination > .active > a {
|
||||
|
@ -65,8 +65,8 @@ body {
|
|||
|
||||
/* Links, Text */
|
||||
a {
|
||||
color: #106655;
|
||||
text-decoration : none;
|
||||
color: #106655;
|
||||
text-decoration : none;
|
||||
}
|
||||
|
||||
.download-btn {
|
||||
|
@ -87,25 +87,25 @@ td {
|
|||
}
|
||||
|
||||
.torrent-info .name {
|
||||
font-weight: bold;
|
||||
overflow: hidden;
|
||||
padding-bottom: 3px;
|
||||
padding-top: 3px;
|
||||
word-wrap: break-word;
|
||||
font-weight: bold;
|
||||
overflow: hidden;
|
||||
padding-bottom: 3px;
|
||||
padding-top: 3px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.torrent-hash {
|
||||
font-family: monospace;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.torrent-info .filesize {
|
||||
white-space: nowrap;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.comment-row td:first-of-type {
|
||||
vertical-align: top;
|
||||
text-align: left;
|
||||
color:#bbb;
|
||||
vertical-align: top;
|
||||
text-align: left;
|
||||
color:#bbb;
|
||||
}
|
||||
|
||||
/* Table style & fixes */
|
||||
|
@ -115,25 +115,25 @@ td {
|
|||
}
|
||||
|
||||
.table > tbody > tr > th, .table > tbody > tr > td {
|
||||
padding: 4px;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.captcha-container {
|
||||
display: grid;
|
||||
grid-template-rows: auto;
|
||||
grid-template-columns: 240px;
|
||||
display: grid;
|
||||
grid-template-rows: auto;
|
||||
grid-template-columns: 240px;
|
||||
}
|
||||
|
||||
tr.torrent-info td.date {
|
||||
white-space: nowrap;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.custom-table-hover > tbody > tr:hover {
|
||||
opacity: 0.82;
|
||||
opacity: 0.82;
|
||||
}
|
||||
|
||||
.comment-row {
|
||||
border-top: 1px solid #ddd;
|
||||
border-top: 1px solid #ddd;
|
||||
}
|
||||
|
||||
div.container div.blockBody:nth-of-type(2) table{table-layout:fixed;}
|
||||
|
@ -144,25 +144,25 @@ div.container div.blockBody:nth-of-type(2) table tr:first-of-type th:last-of-typ
|
|||
|
||||
/* Mobile-friendly main table */
|
||||
@media only screen and (max-width: 700px) {
|
||||
table, thead, tbody, tr {
|
||||
display: block;
|
||||
}
|
||||
table, thead, tbody, tr {
|
||||
display: block;
|
||||
}
|
||||
|
||||
th {
|
||||
display: none;
|
||||
}
|
||||
th {
|
||||
display: none;
|
||||
}
|
||||
|
||||
td {
|
||||
display: inline-block;
|
||||
}
|
||||
td {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
td:nth-of-type(1), td:nth-of-type(2) {
|
||||
display: block;
|
||||
}
|
||||
td:nth-of-type(1), td:nth-of-type(2) {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.table > tbody > tr > td {
|
||||
border: none;
|
||||
}
|
||||
.table > tbody > tr > td {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Credit to bootsnipp.com for the css for the color graph */
|
||||
|
@ -178,8 +178,8 @@ div.container div.blockBody:nth-of-type(2) table tr:first-of-type th:last-of-typ
|
|||
}
|
||||
|
||||
.center-image {
|
||||
max-width: 100%;
|
||||
max-height: 80vh;
|
||||
max-width: 100%;
|
||||
max-height: 80vh;
|
||||
}
|
||||
|
||||
/* the curved edges triggered my autism */
|
||||
|
@ -196,11 +196,11 @@ div.container div.blockBody:nth-of-type(2) table tr:first-of-type th:last-of-typ
|
|||
}
|
||||
|
||||
#mainmenu button .search_text {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
#mainmenu .navbar-form select.form-control
|
||||
{
|
||||
width: 12rem;
|
||||
width: 12rem;
|
||||
}
|
||||
#mainmenu .navbar-form select.form-control#max
|
||||
{
|
||||
|
@ -365,10 +365,10 @@ select#bottom_language_selector {
|
|||
|
||||
/* Psuedo green-text fuckery. */
|
||||
#comments blockquote {
|
||||
color: #789922;
|
||||
color: #789922;
|
||||
}
|
||||
#comments blockquote:before {
|
||||
content: ">";
|
||||
content: ">";
|
||||
}
|
||||
|
||||
.completed {
|
||||
|
@ -395,11 +395,108 @@ select#bottom_language_selector {
|
|||
}
|
||||
|
||||
.comment-date {
|
||||
font-size: smaller;
|
||||
width: auto; /* Undo bootstrap's fixed width */
|
||||
font-size: smaller;
|
||||
width: auto; /* Undo bootstrap's fixed width */
|
||||
}
|
||||
|
||||
.text-error {
|
||||
background: white;
|
||||
color: #cf9fff;
|
||||
}
|
||||
|
||||
/* Wordbreak fix*/
|
||||
|
||||
.break {
|
||||
word-break:break-all;
|
||||
-webkit-hyphens: auto;
|
||||
-moz-hyphens: auto;
|
||||
-ms-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
|
||||
/*Comments*/
|
||||
|
||||
.commentList::before,
|
||||
.commentList::after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.commentList ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.commentList img {
|
||||
opacity: 1;
|
||||
filter: Alpha(opacity=100);
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
-o-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.commentList img.avatar {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-top: 0;
|
||||
width: 65px;
|
||||
height: 65px;
|
||||
}
|
||||
|
||||
.commentList .commentBody {
|
||||
border: 1px solid #eee;
|
||||
margin-bottom: 20px;
|
||||
margin-left: 85px;
|
||||
margin-right: 0px;
|
||||
padding: 10px 20px;
|
||||
position: relative;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
-o-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
background: #fff;
|
||||
color: #6b6e80;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.commentList .commentData {
|
||||
font-size: 13px;
|
||||
color: #aaaaaa;
|
||||
padding-bottom: 8px;
|
||||
margin-bottom: 10px !important;
|
||||
border-bottom: 1px solid #eee;
|
||||
height: 2.5em;
|
||||
}
|
||||
|
||||
.commentList ul.comments ul{
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin-left: 85px;
|
||||
}
|
||||
|
||||
|
||||
.commentList h3 {
|
||||
margin-bottom: 40px;
|
||||
font-size: 26px;
|
||||
line-height: 30px;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.comment {
|
||||
margin: 1em;
|
||||
padding: 1em;
|
||||
width: 75%;
|
||||
margin-left: 12%;
|
||||
}
|
||||
|
||||
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) {
|
||||
|
||||
.comment {
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,6 +48,12 @@ for(var i in list) {
|
|||
e.innerText = date.toDateString() + " " + date.toLocaleTimeString();
|
||||
}
|
||||
|
||||
/*Fixed-Navbar offset fix*/
|
||||
window.onload = function() {
|
||||
var shiftWindow = function() { scrollBy(0, -70) };
|
||||
if (location.hash) shiftWindow();
|
||||
window.addEventListener("hashchange", shiftWindow);
|
||||
};
|
||||
function loadLanguages() {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.onreadystatechange = function() {
|
||||
|
@ -78,4 +84,4 @@ function loadLanguages() {
|
|||
xhr.send()
|
||||
}
|
||||
|
||||
loadLanguages();
|
||||
loadLanguages();
|
||||
|
|
|
@ -41,55 +41,56 @@ var FuncMap = template.FuncMap{
|
|||
order := false
|
||||
if _, ok := values["order"]; ok {
|
||||
order, _ = strconv.ParseBool(values["order"][0])
|
||||
if values["sort"][0]==sortBy {
|
||||
order=!order //Flip order by repeat-clicking
|
||||
if values["sort"][0] == sortBy {
|
||||
order = !order //Flip order by repeat-clicking
|
||||
} else {
|
||||
order=false //Default to descending when sorting by something new
|
||||
order = false //Default to descending when sorting by something new
|
||||
}
|
||||
}
|
||||
values.Set("sort", sortBy)
|
||||
values.Set("order", strconv.FormatBool(order))
|
||||
|
||||
currentUrl.RawQuery=values.Encode()
|
||||
|
||||
return template.URL(currentUrl.String())
|
||||
url, _ := Router.Get("search").URL()
|
||||
url.RawQuery = values.Encode()
|
||||
|
||||
return template.URL(url.String())
|
||||
},
|
||||
"genNav": func(nav Navigation, currentUrl *url.URL, pagesSelectable int) template.HTML {
|
||||
var ret = ""
|
||||
if (nav.TotalItem > 0) {
|
||||
maxPages := math.Ceil(float64(nav.TotalItem) / float64(nav.MaxItemPerPage))
|
||||
if nav.TotalItem > 0 {
|
||||
maxPages := math.Ceil(float64(nav.TotalItem) / float64(nav.MaxItemPerPage))
|
||||
|
||||
if nav.CurrentPage-1 > 0 {
|
||||
url, _ := Router.Get(nav.Route).URL("page", "1")
|
||||
ret = ret + "<li><a id=\"page-prev\" href=\"" + url.String() + "?" + currentUrl.RawQuery + "\" aria-label=\"Previous\"><span aria-hidden=\"true\">«</span></a></li>"
|
||||
}
|
||||
startValue := 1
|
||||
if nav.CurrentPage > pagesSelectable/2 {
|
||||
startValue = (int(math.Min((float64(nav.CurrentPage)+math.Floor(float64(pagesSelectable)/2)), maxPages)) - pagesSelectable + 1)
|
||||
}
|
||||
endValue := (startValue + pagesSelectable - 1)
|
||||
if endValue > int(maxPages) {
|
||||
endValue = int(maxPages)
|
||||
}
|
||||
log.Println(nav.TotalItem)
|
||||
for i := startValue; i <= endValue; i++ {
|
||||
pageNum := strconv.Itoa(i)
|
||||
url, _ := Router.Get(nav.Route).URL("page", pageNum)
|
||||
ret = ret + "<li"
|
||||
if i == nav.CurrentPage {
|
||||
ret = ret + " class=\"active\""
|
||||
if nav.CurrentPage-1 > 0 {
|
||||
url, _ := Router.Get(nav.Route).URL("page", "1")
|
||||
ret = ret + "<li><a id=\"page-prev\" href=\"" + url.String() + "?" + currentUrl.RawQuery + "\" aria-label=\"Previous\"><span aria-hidden=\"true\">«</span></a></li>"
|
||||
}
|
||||
startValue := 1
|
||||
if nav.CurrentPage > pagesSelectable/2 {
|
||||
startValue = (int(math.Min((float64(nav.CurrentPage)+math.Floor(float64(pagesSelectable)/2)), maxPages)) - pagesSelectable + 1)
|
||||
}
|
||||
endValue := (startValue + pagesSelectable - 1)
|
||||
if endValue > int(maxPages) {
|
||||
endValue = int(maxPages)
|
||||
}
|
||||
log.Println(nav.TotalItem)
|
||||
for i := startValue; i <= endValue; i++ {
|
||||
pageNum := strconv.Itoa(i)
|
||||
url, _ := Router.Get(nav.Route).URL("page", pageNum)
|
||||
ret = ret + "<li"
|
||||
if i == nav.CurrentPage {
|
||||
ret = ret + " class=\"active\""
|
||||
}
|
||||
|
||||
ret = ret + "><a href=\"" + url.String() + "?" + currentUrl.RawQuery + "\">" + strconv.Itoa(i) + "</a></li>"
|
||||
}
|
||||
if nav.CurrentPage < int(maxPages) {
|
||||
url, _ := Router.Get(nav.Route).URL("page", strconv.Itoa(nav.CurrentPage+1))
|
||||
ret = ret + "<li><a id=\"page-next\" href=\"" + url.String() + "?" + currentUrl.RawQuery + "\" aria-label=\"Next\"><span aria-hidden=\"true\">»</span></a></li>"
|
||||
}
|
||||
ret = ret + "><a href=\"" + url.String() + "?" + currentUrl.RawQuery + "\">" + strconv.Itoa(i) + "</a></li>"
|
||||
}
|
||||
if nav.CurrentPage < int(maxPages) {
|
||||
url, _ := Router.Get(nav.Route).URL("page", strconv.Itoa(nav.CurrentPage+1))
|
||||
ret = ret + "<li><a id=\"page-next\" href=\"" + url.String() + "?" + currentUrl.RawQuery + "\" aria-label=\"Next\"><span aria-hidden=\"true\">»</span></a></li>"
|
||||
}
|
||||
}
|
||||
return template.HTML(ret)
|
||||
},
|
||||
"T": i18n.IdentityTfunc,
|
||||
"T": i18n.IdentityTfunc,
|
||||
"Ts": i18n.IdentityTfunc,
|
||||
"getAvatar": func(hash string, size int) string {
|
||||
return "https://www.gravatar.com/avatar/" + hash + "?s=" + strconv.Itoa(size)
|
||||
|
@ -104,9 +105,9 @@ var FuncMap = template.FuncMap{
|
|||
return template.HTML(str)
|
||||
},
|
||||
"calcWidthSeed": func(seed uint32, leech uint32) float64 {
|
||||
return float64(float64(seed)/(float64(seed)+float64(leech)))*100
|
||||
return float64(float64(seed)/(float64(seed)+float64(leech))) * 100
|
||||
},
|
||||
"calcWidthLeech": func(seed uint32, leech uint32) float64 {
|
||||
return float64(float64(leech)/(float64(seed)+float64(leech)))*100
|
||||
return float64(float64(leech)/(float64(seed)+float64(leech))) * 100
|
||||
},
|
||||
}
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
<a href="{{ genSearchWithOrdering .URL "1" }}">{{T "name"}}</a>
|
||||
</th>
|
||||
<th class="col-xs-1 hidden-xs">
|
||||
<a href="{{ genSearchWithOrdering .URL "4" }}">{{T "S"}}</a> /
|
||||
<a href="{{ genSearchWithOrdering .URL "4" }}">{{T "L"}}</a> /
|
||||
<a href="{{ genSearchWithOrdering .URL "3" }}">{{T "D"}}</a>
|
||||
<a href="{{ genSearchWithOrdering .URL "5" }}">{{T "S"}}</a> /
|
||||
<a href="{{ genSearchWithOrdering .URL "6" }}">{{T "L"}}</a> /
|
||||
<a href="{{ genSearchWithOrdering .URL "7" }}">{{T "D"}}</a>
|
||||
</th>
|
||||
<th class="col-xs-1 hidden-xs"><a href="{{ genSearchWithOrdering .URL "2" }}">{{T "date"}}</th></a>
|
||||
<th class="col-xs-1 hidden-xs"><a href="{{ genSearchWithOrdering .URL "4" }}">{{T "size"}}</a></th>
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
{{with .Torrent}}
|
||||
<hr>
|
||||
<div class="content" style="margin-bottom: 2em;">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h3 style="word-break:break-all" {{if eq .Status 2}}class="remake" {{end}} {{if eq .Status 3}}class="trusted" {{end}} {{if eq .Status 4}}class="aplus"{{end}}>{{.Name}}</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h3 class="break" {{if eq .Status 2}}class="remake" {{end}} {{if eq .Status 3}}class="trusted" {{end}} {{if eq .Status 4}}class="aplus"{{end}}>{{.Name}}</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="row" id="description">
|
||||
|
@ -17,24 +17,25 @@
|
|||
<div style="float: left;">
|
||||
<div class="uploaded_by">
|
||||
<img style="float:left; margin-right: 1em;" src="{{$.URL.Parse (printf "/img/torrents/%s.png" .SubCategory) }}">
|
||||
<h4>Uploaded by <a href="{{$.URL.Parse (printf "/user/%d/-" .UploaderID) }}">{{.UploaderName}}</a></h4>
|
||||
<h4>{{ T "uploaded_by" }} <a href="{{$.URL.Parse (printf "/user/%d/-" .UploaderID) }}">{{.UploaderName}}</a></h4>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="float:right;">
|
||||
<a style="margin: 5px;" aria-label="Magnet Button" href="{{.Magnet}}" type="button" class="btn btn-lg btn-success">
|
||||
<span class="glyphicon glyphicon-magnet" aria-hidden="true"></span> Download!
|
||||
<span class="glyphicon glyphicon-magnet" aria-hidden="true"></span> {{ T "download_btn" }}
|
||||
</a>
|
||||
{{if ne .TorrentLink ""}}
|
||||
<a style="margin: 5px;" aria-label="Torrent file" href="{{.TorrentLink}}" type="button" class="btn btn-lg btn-success">
|
||||
<span class="glyphicon glyphicon-floppy-save" aria-hidden="true"></span> Torrent file
|
||||
<span class="glyphicon glyphicon-floppy-save" aria-hidden="true"></span> {{ T "torrent_file" }}
|
||||
</a>
|
||||
{{end}}
|
||||
<a style="margin: 5px;" aria-label="Report button" data-toggle="modal" data-target="#reportModal" class="btn btn-danger btn-sm">
|
||||
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span> Report!
|
||||
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span> {{ T "report" }}
|
||||
</a>
|
||||
|
||||
{{ if HasAdmin $.User}}
|
||||
<a href="{{ genRoute "mod_tdelete" }}?id={{ .ID }}" class="btn btn-danger btn-lg" onclick="if (!confirm('Are you sure?')) return false;"><i class="glyphicon glyphicon-trash"></i></a>
|
||||
<a href="{{ genRoute "mod_tdelete" }}?id={{ .ID }}" class="btn btn-danger btn-lg" onclick="if (!confirm('{{ T "are_you_sure" }}')) return false;"><i class="glyphicon glyphicon-trash"></i></a>
|
||||
<a href="{{ genRoute "mod_tedit" }}?id={{ .ID }}" class="btn btn-warning btn-lg"><i class="glyphicon glyphicon-pencil"></i></a>
|
||||
{{end}}
|
||||
</div>
|
||||
|
@ -42,13 +43,13 @@
|
|||
</div>
|
||||
<div class="col-md-12">
|
||||
<h4>{{T "description"}}</h4>
|
||||
<div style="word-break:break-all;">{{.Description}}</div>
|
||||
<div class="break">{{.Description}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h4>{{T "hash"}}</h4>
|
||||
<p class="torrent-hash">{{.Hash}}</p>
|
||||
<p class="torrent-hash break">{{.Hash}}</p>
|
||||
<hr>
|
||||
<h4>{{T "date"}}</h4>
|
||||
<p class="date-full">{{.Date}}</p>
|
||||
|
@ -62,20 +63,20 @@
|
|||
<hr>
|
||||
{{end}}
|
||||
<div class="row">
|
||||
<div class="col-md-4">{{T "seeders"}}</div>
|
||||
<div class="col-md-4">{{T "leechers"}}</div>
|
||||
<div class="col-md-4">{{T "completed"}}</div>
|
||||
<div class="col-md-4">{{T "seeders"}}</div>
|
||||
<div class="col-md-4">{{T "leechers"}}</div>
|
||||
<div class="col-md-4">{{T "completed"}}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">{{.Seeders}}</div>
|
||||
<div class="col-md-4">{{.Leechers}}</div>
|
||||
<div class="col-md-4"><span class="completed" style="">{{.Completed}}</span></div>
|
||||
<div class="col-md-8">
|
||||
<div class="proSeedBar">
|
||||
<div class="seeds" style="width: {{ calcWidthSeed .Seeders .Leechers }}%;"></div>
|
||||
<div class="leechs" style="width: {{ calcWidthLeech .Seeders .Leechers }}%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">{{.Seeders}}</div>
|
||||
<div class="col-md-4">{{.Leechers}}</div>
|
||||
<div class="col-md-4"><span class="completed" style="">{{.Completed}}</span></div>
|
||||
<div class="col-md-8">
|
||||
<div class="proSeedBar">
|
||||
<div class="seeds" style="width: {{ calcWidthSeed .Seeders .Leechers }}%;"></div>
|
||||
<div class="leechs" style="width: {{ calcWidthLeech .Seeders .Leechers }}%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
|
@ -103,29 +104,52 @@
|
|||
{{ end }}
|
||||
<div class="row" id="comments">
|
||||
<div class="col-md-12">
|
||||
<h4>{{T "comments"}}</h4>
|
||||
{{ range $index, $element := .Comments }}
|
||||
<div class="row comment-row" id="comment_{{$index}}">
|
||||
<div class="col-md-2">
|
||||
{{if eq .UserID -1}}
|
||||
<a href="#comment_{{$index}}">{{$index}}</a>
|
||||
{{.Username}}
|
||||
{{else}}
|
||||
<a href="#comment_{{$index}}">{{$index}}</a>
|
||||
<a href="{{$.URL.Parse (printf "/user/%d/-" .UserID ) }}">{{.Username}}</a>
|
||||
<div class="commentList">
|
||||
<h4>{{T "comments"}}</h4>
|
||||
<hr/>
|
||||
<ul class="comments">
|
||||
{{ range $index, $element := .Comments }}
|
||||
<li class="clearfix comment jumptarget" id="comment_{{$index}}">
|
||||
{{/* The following line is wrong. Should be using the MD5 User hash but i don't knwo how to access it. */}}
|
||||
{{/* Changing Gravatar for something else, so it can stay like this. */}}
|
||||
<img src="https://www.gravatar.com/avatar/{{ .UserID }}?s=50" class="avatar" alt="">
|
||||
<div class="commentBody">
|
||||
<div class="commentData">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-sm-9">
|
||||
{{if eq .UserID -1}}
|
||||
<a href="#comment_{{$index}}">#{{$index}}</a> by {{.Username}}
|
||||
{{else}}
|
||||
<a href="#comment_{{$index}}">#{{$index}}</a>
|
||||
by <span class="break"><a href="{{$.URL.Parse (printf "/user/%d/-" .UserID ) }}">{{.Username}}</a></span>
|
||||
{{end}}
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<i class="pull-right date-short comment-date">
|
||||
<small>
|
||||
{{ .Date.Format ( Ts "date_format" ) }}
|
||||
{{/* output: "2017-05-01 15:30"
|
||||
Went with "Year-Month-Day" because it's the most unambiguous.
|
||||
If you want it to be determined by where you're from, be my guest. */}}
|
||||
</small>
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
{{.Content}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{{end}}
|
||||
</div>
|
||||
<div class="col-md-1 date-short comment-date">
|
||||
{{ .Date.Format ( Ts "date_format" ) }}
|
||||
{{/* output: "2017-05-01 15:30"
|
||||
Went with "Year-Month-Day" because it's the most unambiguous.
|
||||
If you want it to be determined by where you're from, be my guest. */}}
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
{{.Content}}
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -151,17 +175,17 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<h4 class="modal-title">Report Torrent #{{.Torrent.ID}}</h4>
|
||||
<h4 class="modal-title">{{ T "report_torrent_number" (print .Torrent.ID) }}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<b>Report type:</b>
|
||||
<b>{{ T "report_type" }}:</b>
|
||||
<form method="post" action="/report/{{.Torrent.ID}}">
|
||||
<input type="radio" name="report_type" value="illegal" required> Illegal content<br />
|
||||
<input type="radio" name="report_type" value="spam" required> Spam / Garbage<br />
|
||||
<input type="radio" name="report_type" value="wrongcat" required> Wrong category<br />
|
||||
<input type="radio" name="report_type" value="dup" required> Duplicate / Deprecated<br />
|
||||
<input type="radio" name="report_type" value="illegal" required> {{ T "illegal_content" }}<br />
|
||||
<input type="radio" name="report_type" value="spam" required> {{ T "spam_garbage" }}<br />
|
||||
<input type="radio" name="report_type" value="wrongcat" required> {{ T "wrong_category" }}<br />
|
||||
<input type="radio" name="report_type" value="dup" required> {{ T "duplicate_deprecated" }}<br />
|
||||
{{block "captcha" .}}{{end}}
|
||||
<button type="submit" class="btn btn-default">Report!</button>
|
||||
<button type="submit" class="btn btn-default">{{ T "report_btn" }}</button>
|
||||
</form> <br />
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
|
|
|
@ -101,7 +101,7 @@
|
|||
},
|
||||
{
|
||||
"id":"signup_verification_email",
|
||||
"translation": "Finally, please check your mail inbox (and spam folder!) for the verification email."
|
||||
"translation": "Email verification is disabled at the moment, so you may use your account immediately. In the future, please check your mail inbox (and spam folder!) for the verification email."
|
||||
},
|
||||
{
|
||||
"id":"signup_verification_noemail",
|
||||
|
@ -654,5 +654,45 @@
|
|||
{
|
||||
"id": "filename",
|
||||
"translation": "Filename"
|
||||
},
|
||||
{
|
||||
"id": "uploaded_by",
|
||||
"translation": "Uploaded by"
|
||||
},
|
||||
{
|
||||
"id": "download_btn",
|
||||
"translation": "Download!"
|
||||
},
|
||||
{
|
||||
"id": "report",
|
||||
"translation": "Report!"
|
||||
},
|
||||
{
|
||||
"id": "are_you_sure",
|
||||
"translation": "Are you sure?"
|
||||
},
|
||||
{
|
||||
"id": "report_torrent_number",
|
||||
"translation": "Report Torrent #"
|
||||
},
|
||||
{
|
||||
"id": "report_type",
|
||||
"translation": "Report type"
|
||||
},
|
||||
{
|
||||
"id": "illegal_content",
|
||||
"translation": "Illegal content"
|
||||
},
|
||||
{
|
||||
"id": "spam_garbage",
|
||||
"translation": "Spam / Garbage"
|
||||
},
|
||||
{
|
||||
"id": "wrong_category",
|
||||
"translation": "Wrong category"
|
||||
},
|
||||
{
|
||||
"id": "duplicate_deprecated",
|
||||
"translation": "Duplicate / Deprecated"
|
||||
}
|
||||
]
|
||||
|
|
|
@ -351,6 +351,10 @@
|
|||
"id": "all_categories",
|
||||
"translation": "Toutes les catégories"
|
||||
},
|
||||
{
|
||||
"id": "select_a_torrent_category",
|
||||
"translation": "Choisir une catégorie de torrents"
|
||||
},
|
||||
{
|
||||
"id": "anime",
|
||||
"translation": "Anime"
|
||||
|
@ -511,10 +515,6 @@
|
|||
"id": "personal_info",
|
||||
"translation": "Informations personnelles"
|
||||
},
|
||||
{
|
||||
"id": "email",
|
||||
"translation": "Adresse email"
|
||||
},
|
||||
{
|
||||
"id": "language",
|
||||
"translation": "Langue"
|
||||
|
@ -617,7 +617,11 @@
|
|||
},
|
||||
{
|
||||
"id": "completed",
|
||||
"translation": "Terminé"
|
||||
"translation": "Complété"
|
||||
},
|
||||
{
|
||||
"id": "change_language",
|
||||
"translation": "Changer la langue"
|
||||
},
|
||||
{
|
||||
"id": "language_name",
|
||||
|
|
|
@ -225,7 +225,7 @@
|
|||
},
|
||||
{
|
||||
"id": "notice_keep_seeding",
|
||||
"translation": "ATTENZIONE: CONTINUA A SEEDARE I TORRENT E ABILITA IL DHT RITARDATO"
|
||||
"translation": "ATTENZIONE: CONTINUA A SEEDARE I TORRENT E ABILITA IL DHT IDIOTA"
|
||||
},
|
||||
{
|
||||
"id": "official_nyaapocalipse_faq",
|
||||
|
@ -317,7 +317,7 @@
|
|||
},
|
||||
{
|
||||
"id": "answer_how_can_i_help",
|
||||
"translation": "Se hai esperienza nel web design, vieni sul canale IRC #nyaapantsu su irc.rizon.net. Se hai dei database aggiornati, specialmente per sukebei, <b>CARICALI!</b>."
|
||||
"translation": "Se hai esperienza nel web design, vieni sul canale IRC #nyaapantsu su irc.rizon.net. Se hai dei database aggiornati, specialmente per sukebei,per favore caricali."
|
||||
},
|
||||
{
|
||||
"id": "your_design_sucks_found_a_bug",
|
||||
|
@ -351,6 +351,10 @@
|
|||
"id": "all_categories",
|
||||
"translation": "Tutte le categorie"
|
||||
},
|
||||
{
|
||||
"id": "select_a_torrent_category",
|
||||
"translation": "Seleziona una Categoria Torrent"
|
||||
},
|
||||
{
|
||||
"id": "anime",
|
||||
"translation": "Anime"
|
||||
|
@ -614,6 +618,10 @@
|
|||
{
|
||||
"id": "completed",
|
||||
"translation": "Completato"
|
||||
},
|
||||
{
|
||||
"id": "change_language",
|
||||
"translation": "Cambia Lingua"
|
||||
},
|
||||
{
|
||||
"id": "language_name",
|
||||
|
|
|
@ -284,6 +284,14 @@
|
|||
"translation": "Os bancos de dados estão hospedados em nyaa.pantsu.cat e sukebei.pantsu.cat. Há uma função de busca, e (quase) todas as funcionalidades do nyaa devem estar de volta em breve. Estatísticas de seeders/leechers estão disponíveis via raspagem de dados e podem ser restauradas no futuro, já que outras funções são prioridade no momento."
|
||||
},
|
||||
{
|
||||
"id": "how_do_i_link_my_old_account",
|
||||
"translation": "O que devo fazer para transferir meus antigos envios de volta a minha nova conta?"
|
||||
},
|
||||
{
|
||||
"id": "answer_how_do_i_link_my_old_account",
|
||||
"translation": "Entre em <a href=\"ircs://irc.rizon.net/nyaapantsu-help\">#nyaapantsu-help@Rizon</a> e informe a moderação seu antigo e novo nome de usuário."
|
||||
},
|
||||
{
|
||||
"id": "are_the_trackers_working",
|
||||
"translation": "Os torrents ainda funcionam?"
|
||||
},
|
||||
|
|
|
@ -283,6 +283,14 @@
|
|||
"id": "answer_how_are_we_recovering",
|
||||
"translation": "ฐานข้อมูลดังกล่าวถูกใช้งานกับ nyaa.pantsu.cat และ sukebei.pantsu.cat ซึ่งมีระบบค้นหา และระบบของ Nyaa (เกือบ) ครบถ้วนควรจะมาในเร็วๆ นี้"
|
||||
},
|
||||
{
|
||||
"id": "how_do_i_link_my_old_account",
|
||||
"translation": "จะลิงค์ไฟล์ที่เคยอัพโหลดกลับเข้าแอคเคาท์ของตัวเองยังไง?"
|
||||
},
|
||||
{
|
||||
"id": "answer_how_do_i_link_my_old_account",
|
||||
"translation": "เข้าไปถาม Moderator ที่ <a href=\"ircs://irc.rizon.net/nyaapantsu-help\">#nyaapantsu-help@Rizon</a> เพื่อโอนทอร์เรนท์เก่าของคุณและแจ้งชื่อผู้ใช้ทั้งของเดิมและของใหม่"
|
||||
},
|
||||
{
|
||||
"id": "are_the_trackers_working",
|
||||
"translation": "ตัวทอร์เรนท์จะยังใช้ได้รึเปล่า?"
|
||||
|
@ -547,6 +555,10 @@
|
|||
"id": "moderator",
|
||||
"translation": "Moderator"
|
||||
},
|
||||
{
|
||||
"id":" api_token",
|
||||
"translation": "API Token"
|
||||
},
|
||||
{
|
||||
"id": "save_changes",
|
||||
"translation": "บันทึกการเปลี่ยนแปลง"
|
||||
|
|
Référencer dans un nouveau ticket