mirror of
https://github.com/openvk/openvk
synced 2025-07-05 15:29:57 +03:00
Merge remote-tracking branch 'origin/master' into feature-reports
This commit is contained in:
commit
8ee4c9c037
44 changed files with 1720 additions and 286 deletions
|
@ -17,8 +17,8 @@ Updating the source code is done with this command: `git pull`
|
|||
## Instances
|
||||
|
||||
* **[openvk.su](https://openvk.su/)**
|
||||
* **[openvk.uk](https://openvk.uk)** - official mirror of openvk.su (<https://t.me/openvkch/1609>)
|
||||
* [social.fetbuk.ru](http://social.fetbuk.ru/)
|
||||
* [openvk.zavsc.pw](https://openvk.zavsc.pw/)
|
||||
|
||||
## Can I create my own OpenVK instance?
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@ _[English](README.md)_
|
|||
## Инстанции
|
||||
|
||||
* **[openvk.su](https://openvk.su/)**
|
||||
* **[openvk.uk](https://openvk.uk)** - официальное зеркало openvk.su (<https://t.me/openvkch/1609>)
|
||||
* [social.fetbuk.ru](http://social.fetbuk.ru/)
|
||||
* [openvk.zavsc.pw](https://openvk.zavsc.pw/)
|
||||
|
||||
## Могу ли я создать свою собственную инстанцию OpenVK?
|
||||
|
||||
|
@ -80,8 +80,8 @@ ln -s /path/to/chandler/extensions/available/openvk /path/to/chandler/extensions
|
|||
* [Обсуждения](https://github.com/openvk/openvk/discussions)
|
||||
* Чат в Matrix: #ovk:matrix.org
|
||||
|
||||
**Внимание**: баг-трекер, телеграм- и matrix-чат являются публичными местами, и жалобы в OVK обслуживается волонтерами. Если вам нужно сообщить о чем-то, что не должно быть раскрыто широкой публике (например, сообщение об уязвимости), пожалуйста, свяжитесь с нами напрямую по этому адресу: **openvk [at] tutanota [dot] com**.
|
||||
**Внимание**: баг-трекер, телеграм- и matrix-чат являются публичными местами, и жалобы в OVK обслуживается волонтерами. Если вам нужно сообщить о чем-то, что не должно быть раскрыто широкой публике (например, сообщение об уязвимости), пожалуйста, свяжитесь с нами напрямую по этому адресу: **openvk [собака] tutanota [точка] com**.
|
||||
|
||||
<a href="https://codeberg.org/OpenVK/openvk">
|
||||
<img alt="Get it on Codeberg" src="https://codeberg.org/Codeberg/GetItOnCodeberg/media/branch/main/get-it-on-blue-on-white.png" height="60">
|
||||
<img alt="Получить на Codeberg" src="https://codeberg.org/Codeberg/GetItOnCodeberg/media/branch/main/get-it-on-blue-on-white.png" height="60">
|
||||
</a>
|
||||
|
|
|
@ -88,4 +88,100 @@ final class Groups extends VKAPIRequestHandler
|
|||
"items" => $rClubs
|
||||
];
|
||||
}
|
||||
|
||||
function getById(string $group_ids = "", string $group_id = "", string $fields = ""): ?array
|
||||
{
|
||||
$this->requireUser();
|
||||
|
||||
$clubs = new ClubsRepo;
|
||||
|
||||
if ($group_ids == null && $group_id != null)
|
||||
$group_ids = $group_id;
|
||||
|
||||
if ($group_ids == null && $group_id == null)
|
||||
$this->fail(100, "One of the parameters specified was missing or invalid: group_ids is undefined");
|
||||
|
||||
$clbs = explode(',', $group_ids);
|
||||
$response;
|
||||
|
||||
$ic = sizeof($clbs);
|
||||
|
||||
for ($i=0; $i < $ic; $i++) {
|
||||
if($i > 500)
|
||||
break;
|
||||
|
||||
if($clbs[$i] < 0)
|
||||
$this->fail(100, "ты ошибся чутка, у айди группы убери минус");
|
||||
|
||||
$clb = $clubs->get((int) $clbs[$i]);
|
||||
if(is_null($clb))
|
||||
{
|
||||
$response[$i] = (object)[
|
||||
"id" => intval($clbs[$i]),
|
||||
"name" => "DELETED",
|
||||
"screen_name" => "club".intval($clbs[$i]),
|
||||
"type" => "group",
|
||||
"description" => "This group was deleted or it doesn't exist"
|
||||
];
|
||||
}else if($clbs[$i] == null){
|
||||
|
||||
}else{
|
||||
$response[$i] = (object)[
|
||||
"id" => $clb->getId(),
|
||||
"name" => $clb->getName(),
|
||||
"screen_name" => $clb->getShortCode() ?? "club".$clb->getId(),
|
||||
"is_closed" => false,
|
||||
"type" => "group",
|
||||
"can_access_closed" => true,
|
||||
];
|
||||
|
||||
$flds = explode(',', $fields);
|
||||
|
||||
foreach($flds as $field) {
|
||||
switch ($field) {
|
||||
case 'verified':
|
||||
$response[$i]->verified = intval($clb->isVerified());
|
||||
break;
|
||||
case 'has_photo':
|
||||
$response[$i]->has_photo = is_null($clb->getAvatarPhoto()) ? 0 : 1;
|
||||
break;
|
||||
case 'photo_max_orig':
|
||||
$response[$i]->photo_max_orig = $clb->getAvatarURL();
|
||||
break;
|
||||
case 'photo_max':
|
||||
$response[$i]->photo_max = $clb->getAvatarURL();
|
||||
break;
|
||||
case 'members_count':
|
||||
$response[$i]->members_count = $clb->getFollowersCount();
|
||||
break;
|
||||
case 'site':
|
||||
$response[$i]->site = $clb->getWebsite();
|
||||
break;
|
||||
case 'description':
|
||||
$response[$i]->desctiption = $clb->getDescription();
|
||||
break;
|
||||
case 'contacts':
|
||||
$contacts;
|
||||
$contactTmp = $clb->getManagers(1, true);
|
||||
foreach($contactTmp as $contact) {
|
||||
$contacts[] = array(
|
||||
'user_id' => $contact->getUser()->getId(),
|
||||
'desc' => $contact->getComment()
|
||||
);
|
||||
}
|
||||
$response[$i]->contacts = $contacts;
|
||||
break;
|
||||
case 'can_post':
|
||||
if($clb->canBeModifiedBy($this->getUser()))
|
||||
$response[$i]->can_post = true;
|
||||
else
|
||||
$response[$i]->can_post = $clb->canPost();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
|
42
VKAPI/Handlers/Newsfeed.php
Normal file
42
VKAPI/Handlers/Newsfeed.php
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?php declare(strict_types=1);
|
||||
namespace openvk\VKAPI\Handlers;
|
||||
use openvk\Web\Models\Entities\User;
|
||||
use openvk\Web\Models\Entities\Post;
|
||||
use openvk\Web\Models\Entities\Postable;
|
||||
use Chandler\Database\DatabaseConnection;
|
||||
use openvk\Web\Models\Repositories\Posts as PostsRepo;
|
||||
use openvk\VKAPI\Handlers\Wall;
|
||||
|
||||
final class Newsfeed extends VKAPIRequestHandler
|
||||
{
|
||||
function get(string $fields = "", int $start_from = 0, int $offset = 0, int $count = 30, int $extended = 0)
|
||||
{
|
||||
$this->requireUser();
|
||||
|
||||
if($offset != 0) $start_from = $offset;
|
||||
|
||||
$id = $this->getUser()->getId();
|
||||
$subs = DatabaseConnection::i()
|
||||
->getContext()
|
||||
->table("subscriptions")
|
||||
->where("follower", $id);
|
||||
$ids = array_map(function($rel) {
|
||||
return $rel->target * ($rel->model === "openvk\Web\Models\Entities\User" ? 1 : -1);
|
||||
}, iterator_to_array($subs));
|
||||
$ids[] = $this->getUser()->getId();
|
||||
|
||||
$posts = DatabaseConnection::i()
|
||||
->getContext()
|
||||
->table("posts")
|
||||
->select("id")
|
||||
->where("wall IN (?)", $ids)
|
||||
->where("deleted", 0)
|
||||
->order("created DESC");
|
||||
|
||||
$rposts = [];
|
||||
foreach($posts->page((int) ($offset + 1), $count) as $post)
|
||||
$rposts[] = (new PostsRepo)->get($post->id)->getPrettyId();
|
||||
|
||||
return (new Wall)->getById(implode(',', $rposts), $extended, $fields, $this->getUser());
|
||||
}
|
||||
}
|
|
@ -110,6 +110,110 @@ final class Wall extends VKAPIRequestHandler
|
|||
];
|
||||
}
|
||||
|
||||
function getById(string $posts, int $extended = 0, string $fields = "", User $user = null)
|
||||
{
|
||||
if($user == null) $user = $this->getUser(); // костыли костыли крылышки
|
||||
|
||||
$items = [];
|
||||
$profiles = [];
|
||||
$groups = [];
|
||||
# $count = $posts->getPostCountOnUserWall((int) $owner_id);
|
||||
|
||||
$psts = explode(",", $posts);
|
||||
|
||||
foreach($psts as $pst)
|
||||
{
|
||||
$id = explode("_", $pst);
|
||||
$post = (new PostsRepo)->getPostById(intval($id[0]), intval($id[1]));
|
||||
if($post) {
|
||||
$from_id = get_class($post->getOwner()) == "openvk\Web\Models\Entities\Club" ? $post->getOwner()->getId() * (-1) : $post->getOwner()->getId();
|
||||
$items[] = (object)[
|
||||
"id" => $post->getVirtualId(),
|
||||
"from_id" => $from_id,
|
||||
"owner_id" => $post->getTargetWall(),
|
||||
"date" => $post->getPublicationTime()->timestamp(),
|
||||
"post_type" => "post",
|
||||
"text" => $post->getText(),
|
||||
"can_edit" => 0, // TODO
|
||||
"can_delete" => $post->canBeDeletedBy($user),
|
||||
"can_pin" => $post->canBePinnedBy($user),
|
||||
"can_archive" => false, // TODO MAYBE
|
||||
"is_archived" => false,
|
||||
"is_pinned" => $post->isPinned(),
|
||||
"post_source" => (object)["type" => "vk"],
|
||||
"comments" => (object)[
|
||||
"count" => $post->getCommentsCount(),
|
||||
"can_post" => 1
|
||||
],
|
||||
"likes" => (object)[
|
||||
"count" => $post->getLikesCount(),
|
||||
"user_likes" => (int) $post->hasLikeFrom($user),
|
||||
"can_like" => 1,
|
||||
"can_publish" => 1,
|
||||
],
|
||||
"reposts" => (object)[
|
||||
"count" => $post->getRepostCount(),
|
||||
"user_reposted" => 0
|
||||
]
|
||||
];
|
||||
|
||||
if ($from_id > 0)
|
||||
$profiles[] = $from_id;
|
||||
else
|
||||
$groups[] = $from_id * -1;
|
||||
}
|
||||
}
|
||||
|
||||
if($extended == 1)
|
||||
{
|
||||
$profiles = array_unique($profiles);
|
||||
$groups = array_unique($groups);
|
||||
|
||||
$profilesFormatted = [];
|
||||
$groupsFormatted = [];
|
||||
|
||||
foreach ($profiles as $prof) {
|
||||
$user = (new UsersRepo)->get($prof);
|
||||
$profilesFormatted[] = (object)[
|
||||
"first_name" => $user->getFirstName(),
|
||||
"id" => $user->getId(),
|
||||
"last_name" => $user->getLastName(),
|
||||
"can_access_closed" => false,
|
||||
"is_closed" => false,
|
||||
"sex" => $user->isFemale() ? 1 : 2,
|
||||
"screen_name" => $user->getShortCode(),
|
||||
"photo_50" => $user->getAvatarUrl(),
|
||||
"photo_100" => $user->getAvatarUrl(),
|
||||
"online" => $user->isOnline()
|
||||
];
|
||||
}
|
||||
|
||||
foreach($groups as $g) {
|
||||
$group = (new ClubsRepo)->get($g);
|
||||
$groupsFormatted[] = (object)[
|
||||
"id" => $group->getId(),
|
||||
"name" => $group->getName(),
|
||||
"screen_name" => $group->getShortCode(),
|
||||
"is_closed" => 0,
|
||||
"type" => "group",
|
||||
"photo_50" => $group->getAvatarUrl(),
|
||||
"photo_100" => $group->getAvatarUrl(),
|
||||
"photo_200" => $group->getAvatarUrl(),
|
||||
];
|
||||
}
|
||||
|
||||
return (object)[
|
||||
"items" => (array)$items,
|
||||
"profiles" => (array)$profilesFormatted,
|
||||
"groups" => (array)$groupsFormatted
|
||||
];
|
||||
}
|
||||
else
|
||||
return (object)[
|
||||
"items" => (array)$items
|
||||
];
|
||||
}
|
||||
|
||||
function post(string $owner_id, string $message = "", int $from_group = 0, int $signed = 0): object
|
||||
{
|
||||
$this->requireUser();
|
||||
|
|
|
@ -48,6 +48,7 @@ class Note extends Postable
|
|||
"acronym",
|
||||
"blockquote",
|
||||
"cite",
|
||||
"span",
|
||||
]);
|
||||
$config->set("HTML.AllowedAttributes", [
|
||||
"table.summary",
|
||||
|
@ -59,6 +60,8 @@ class Note extends Postable
|
|||
"img.style",
|
||||
"div.style",
|
||||
"div.title",
|
||||
"span.class",
|
||||
"p.class",
|
||||
]);
|
||||
$config->set("CSS.AllowedProperties", [
|
||||
"float",
|
||||
|
@ -68,6 +71,9 @@ class Note extends Postable
|
|||
"max-width",
|
||||
"font-weight",
|
||||
]);
|
||||
$config->set("Attr.AllowedClasses", [
|
||||
"underline",
|
||||
]);
|
||||
|
||||
$purifier = new HTMLPurifier($config);
|
||||
return $purifier->purify($this->getRecord()->source);
|
||||
|
|
|
@ -41,7 +41,9 @@ class Video extends Media
|
|||
mkdir($dirId);
|
||||
|
||||
$dir = $this->getBaseDir();
|
||||
Shell::bash(__DIR__ . "/../shell/processVideo.sh", OPENVK_ROOT, $filename, $dir, $hash)->start(); #async :DDD
|
||||
$ext = Shell::isPowershell() ? "ps1" : "sh";
|
||||
$cmd = Shell::isPowershell() ? "powershell" : "bash";
|
||||
Shell::$cmd(__DIR__ . "/../shell/processVideo.$ext", OPENVK_ROOT, $filename, $dir, $hash)->start(); #async :DDD
|
||||
} catch(ShellUnavailableException $suex) {
|
||||
exit(OPENVK_ROOT_CONF["openvk"]["debug"] ? "Shell is unavailable" : VIDEOS_FRIENDLY_ERROR);
|
||||
} catch(UnknownCommandException $ucex) {
|
||||
|
|
|
@ -29,7 +29,7 @@ class Notes
|
|||
function getUserNotes(User $user, int $page = 1, ?int $perPage = NULL): \Traversable
|
||||
{
|
||||
$perPage = $perPage ?? OPENVK_DEFAULT_PER_PAGE;
|
||||
foreach($this->notes->where("owner", $user->getId())->where("deleted", 0)->page($page, $perPage) as $album)
|
||||
foreach($this->notes->where("owner", $user->getId())->where("deleted", 0)->order("created DESC")->page($page, $perPage) as $album)
|
||||
yield new Note($album);
|
||||
}
|
||||
|
||||
|
|
20
Web/Models/shell/processVideo.ps1
Normal file
20
Web/Models/shell/processVideo.ps1
Normal file
|
@ -0,0 +1,20 @@
|
|||
$ovkRoot = $args[0]
|
||||
$file = $args[1]
|
||||
$dir = $args[2]
|
||||
$hash = $args[3]
|
||||
$hashT = $hash.substring(0, 2)
|
||||
$temp = [System.IO.Path]::GetTempFileName()
|
||||
$temp2 = [System.IO.Path]::GetTempFileName()
|
||||
|
||||
$shell = Get-WmiObject Win32_process -filter "ProcessId = $PID"
|
||||
$shell.SetPriority(16384)
|
||||
|
||||
Move-Item $file $temp
|
||||
|
||||
# video stub logic was implicitly deprecated, so we start processing at once
|
||||
ffmpeg -i $temp -ss 00:00:01.000 -vframes 1 "$dir$hashT/$hash.gif"
|
||||
ffmpeg -i $temp -c:v libtheora -q:v 7 -c:a libvorbis -q:a 4 -vf scale=640x360,setsar=1:1 -y $temp2
|
||||
|
||||
Move-Item $temp2 "$dir$hashT/$hash.ogv"
|
||||
Remove-Item $temp
|
||||
Remove-Item $temp2
|
|
@ -31,7 +31,7 @@ final class UserPresenter extends OpenVKPresenter
|
|||
{
|
||||
$user = $this->users->get($id);
|
||||
if(!$user || $user->isDeleted())
|
||||
$this->notFound();
|
||||
$this->template->_template = "User/deleted.xml";
|
||||
else {
|
||||
if($user->getShortCode())
|
||||
if(parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH) !== "/" . $user->getShortCode())
|
||||
|
|
|
@ -98,8 +98,8 @@
|
|||
|
||||
<div class="layout">
|
||||
<div id="xhead" class="dm"></div>
|
||||
<div class="page_header {if $instance_name != OPENVK_DEFAULT_INSTANCE_NAME}page_custom_header{/if}">
|
||||
<a href="/" class="home_button {if $instance_name != OPENVK_DEFAULT_INSTANCE_NAME}home_button_custom{/if}" title="{$instance_name}">{$instance_name}</a>
|
||||
<div class="page_header{if $instance_name != OPENVK_DEFAULT_INSTANCE_NAME} page_custom_header{/if}">
|
||||
<a href="/" class="home_button{if $instance_name != OPENVK_DEFAULT_INSTANCE_NAME} home_button_custom{/if}" title="{$instance_name}">{if $instance_name != OPENVK_DEFAULT_INSTANCE_NAME}{$instance_name}{/if}</a>
|
||||
<div n:if="isset($thisUser) ? (!$thisUser->isBanned() XOR !$thisUser->isActivated()) : true" class="header_navigation">
|
||||
{ifset $thisUser}
|
||||
<div class="link">
|
||||
|
@ -129,7 +129,7 @@
|
|||
<div class="link">
|
||||
<a href="/login">{_header_login}</a>
|
||||
</div>
|
||||
<div n:if="OPENVK_ROOT_CONF['openvk']['preferences']['registration']['enable']" class="link">
|
||||
<div class="link">
|
||||
<a href="/reg">{_header_registration}</a>
|
||||
</div>
|
||||
<div class="link">
|
||||
|
@ -213,7 +213,7 @@
|
|||
<input type="hidden" name="jReturnTo" value="{$_SERVER['REQUEST_URI']}" />
|
||||
<input type="hidden" name="hash" value="{$csrfToken}" />
|
||||
<input type="submit" value="{_log_in}" class="button" style="display: inline-block;" />
|
||||
<a n:if="OPENVK_ROOT_CONF['openvk']['preferences']['registration']['enable']" href="/reg" class="button" style="display: inline-block;">{_registration}</a><br><br>
|
||||
<a href="/reg" class="button" style="display: inline-block;">{_registration}</a><br><br>
|
||||
<a href="/restore">{_forgot_password}</a>
|
||||
</form>
|
||||
{/ifset}
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
{extends "@layout.xml"}
|
||||
|
||||
{block wrap}
|
||||
<div class="page_wrap">
|
||||
<div n:ifset="tabs" n:ifcontent class="tabs">
|
||||
<div class="wrap2">
|
||||
<div class="wrap1">
|
||||
<div class="page_wrap padding_top">
|
||||
<div n:ifset="tabs" class="tabs">
|
||||
{include tabs}
|
||||
</div>
|
||||
|
||||
|
@ -27,8 +29,8 @@
|
|||
</a>
|
||||
</td>
|
||||
<td valign="top" style="width: 100%">
|
||||
{ifset infoTable}
|
||||
{include infoTable, x => $dat}
|
||||
{ifset infotable}
|
||||
{include infotable, x => $dat}
|
||||
{else}
|
||||
<a href="{include link, x => $dat}">
|
||||
<b>
|
||||
|
@ -67,4 +69,6 @@
|
|||
{include bottom}
|
||||
{/ifset}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
|
@ -9,7 +9,7 @@
|
|||
{presenter "openvk!Support->knowledgeBaseArticle", "about"}
|
||||
<center>
|
||||
<a class="button" style="margin-right: 5px;cursor: pointer;" href="/login">{_"log_in"}</a>
|
||||
<a n:if="OPENVK_ROOT_CONF['openvk']['preferences']['registration']['enable']" class="button" style="cursor: pointer;" href="/reg">{_"registration"}</a>
|
||||
<a class="button" style="cursor: pointer;" href="/reg">{_"registration"}</a>
|
||||
</center>
|
||||
{* TO-DO: Add statistics about this instance as on mastodon.social *}
|
||||
{/block}
|
||||
|
|
|
@ -33,6 +33,12 @@
|
|||
</label>
|
||||
<input class="text medium-field" id="guid" disabled value="{$user->getChandlerUser()->getId()}" />
|
||||
</div>
|
||||
<div class="field-group">
|
||||
<label for="registration_ip">
|
||||
Первый IP
|
||||
</label>
|
||||
<input class="text medium-field" id="registration_ip" disabled value="{$user->getRegistrationIP()}" />
|
||||
</div>
|
||||
<div class="field-group">
|
||||
<label for="first_name">
|
||||
Имя
|
||||
|
|
|
@ -34,6 +34,32 @@
|
|||
{* BEGIN ELEMENTS DESCRIPTION *}
|
||||
|
||||
{block specpage}
|
||||
<style>
|
||||
#userContent img {
|
||||
max-width: 245pt;
|
||||
max-height: 200pt;
|
||||
}
|
||||
|
||||
#userContent blockquote {
|
||||
background-color: #f3f3f3;
|
||||
border-bottom: 5px solid #969696;
|
||||
padding: 1;
|
||||
}
|
||||
|
||||
#userContent cite {
|
||||
margin-top: 1em;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#userContent cite::before {
|
||||
content: "— ";
|
||||
}
|
||||
|
||||
#userContent .underline {
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="container_gray" style="background: white; border-top: none;">
|
||||
|
||||
{var data = is_array($iterator) ? $iterator : iterator_to_array($iterator)}
|
||||
|
|
|
@ -33,6 +33,10 @@
|
|||
#userContent cite::before {
|
||||
content: "— ";
|
||||
}
|
||||
|
||||
#userContent .underline {
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
|
||||
<article id="userContent" style="margin: 10px 10px 0;">
|
||||
|
|
|
@ -5,12 +5,29 @@
|
|||
{block title}{_"albums"} {$owner->getCanonicalName()}{/block}
|
||||
|
||||
{block header}
|
||||
<a href="{$owner->getURL()}">{$owner->getCanonicalName()}</a>
|
||||
» {_"albums"}
|
||||
{if isset($thisUser) && $thisUser->getId() == $owner->getId()}
|
||||
{_my_photos}
|
||||
{else}
|
||||
<a href="{$owner->getURL()}">
|
||||
{$owner->getCanonicalName()}</a>
|
||||
»
|
||||
{_albums}
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
<div n:if="$canEdit" style="float: right;">
|
||||
{var isClub = ($owner instanceof openvk\Web\Models\Entities\Club)}
|
||||
<a href="/albums/create{$isClub ? '?gpid=' . $owner->getId() : ''}">{_"create_album"}</a>
|
||||
{block size}
|
||||
<div style="padding-bottom: 0px; padding-top: 0;" class="summaryBar">
|
||||
<div class="summary">
|
||||
{if !is_null($thisUser) && $owner->getId() === $thisUser->getId()}
|
||||
{tr("albums_list", $count)}
|
||||
{else}
|
||||
{tr("albums", $count)}
|
||||
{/if}
|
||||
<span n:if="isset($thisUser) && $thisUser->getId() == $owner->getId()">
|
||||
|
|
||||
<a href="/albums/create">{_create_album}</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
|
|
|
@ -25,6 +25,9 @@
|
|||
{/block}
|
||||
|
||||
{block header}
|
||||
{if isset($thisUser) && $thisUser->getId() == $user->getId()}
|
||||
{_my_friends}
|
||||
{else}
|
||||
<a href="{$user->getURL()}">{$user->getCanonicalName()}</a> »
|
||||
{if $act == "incoming"}
|
||||
{_"incoming_req"}
|
||||
|
@ -33,17 +36,45 @@
|
|||
{else}
|
||||
{_"friends"}
|
||||
{/if}
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block tabs}
|
||||
<div n:attr="id => ($act === 'friends' ? 'activetabs' : 'ki')" class="tab">
|
||||
<a n:attr="id => ($act === 'friends' ? 'act_tab_a' : 'ki')" href="?">{_friends}</a>
|
||||
</div>
|
||||
<div n:attr="id => ($act === 'incoming' ? 'activetabs' : 'ki')" class="tab">
|
||||
<a n:attr="id => ($act === 'incoming' ? 'act_tab_a' : 'ki')" href="?act=incoming">{_incoming_req}</a>
|
||||
<div n:attr="id => ($act === 'incoming' || $act === 'outcoming' ? 'activetabs' : 'ki')" class="tab">
|
||||
<a n:attr="id => ($act === 'incoming' || $act === 'outcoming' ? 'act_tab_a' : 'ki')" href="?act=incoming">{_req}</a>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block size}
|
||||
<div n:if="$act === 'incoming' || $act === 'outcoming'" class="mb_tabs">
|
||||
<div n:attr="id => ($act === 'incoming' ? 'active' : 'ki')" class="mb_tab">
|
||||
<div>
|
||||
<a href="?act=incoming">{_incoming_req}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div n:attr="id => ($act === 'outcoming' ? 'active' : 'ki')" class="mb_tab">
|
||||
<div>
|
||||
<a href="?act=outcoming">{_outcoming_req}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="padding-bottom: 0px;" class="summaryBar">
|
||||
<div class="summary">
|
||||
{if !is_null($thisUser) && $user->getId() === $thisUser->getId()}
|
||||
{if $act == "incoming"}
|
||||
{tr("req", $count)}
|
||||
{elseif $act == "outcoming"}
|
||||
{tr("req", $count)}
|
||||
{else}
|
||||
{tr("friends_list", $count)}
|
||||
{/if}
|
||||
{else}
|
||||
{tr("friends", $count)}
|
||||
{/if}
|
||||
</div>
|
||||
<div n:attr="id => ($act === 'outcoming' ? 'activetabs' : 'ki')" class="tab">
|
||||
<a n:attr="id => ($act === 'outcoming' ? 'act_tab_a' : 'ki')" href="?act=outcoming">{_outcoming_req}</a>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
{/block}
|
||||
|
||||
{block size}
|
||||
<div n:if="!is_null($thisUser) && $user->getId() === $thisUser->getId()" style="padding-bottom: 0px; border-bottom: 0;" class="summaryBar">
|
||||
<div style="padding-bottom: 0px;" class="summaryBar">
|
||||
<div class="summary">
|
||||
{if !is_null($thisUser) && $user->getId() === $thisUser->getId()}
|
||||
{tr("groups_list", $thisUser->getClubCount())}
|
||||
|
@ -53,7 +53,7 @@
|
|||
|
||||
{block name}{/block}
|
||||
|
||||
{block infoTable}
|
||||
{block infotable}
|
||||
<table id="basicInfo" class="ugc-table group_info" cellspacing="0" cellpadding="0" border="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
|
@ -75,11 +75,12 @@
|
|||
{block actions}
|
||||
{var clubPinned = $thisUser->isClubPinned($x)}
|
||||
{if $x->canBeModifiedBy($thisUser ?? NULL)}
|
||||
<a style="width: 140px;" class="profile_link" href="{$x->getURL()}">
|
||||
<div class="navigation" style="width: 140px;">
|
||||
<a class="link" href="{$x->getURL()}">
|
||||
{_check_community}
|
||||
</a>
|
||||
{if ($clubPinned || $thisUser->getPinnedClubCount() <= 10)}
|
||||
<a style="width: 140px;" class="profile_link" href="/groups_pin?club={$x->getId()}&hash={rawurlencode($csrfToken)}" id="_pinGroup" data-group-name="{$x->getName()}" data-group-url="{$x->getUrl()}">
|
||||
<a class="link" href="/groups_pin?club={$x->getId()}&hash={rawurlencode($csrfToken)}" id="_pinGroup" data-group-name="{$x->getName()}" data-group-url="{$x->getUrl()}">
|
||||
{if $clubPinned}
|
||||
{_remove_from_left_menu}
|
||||
{else}
|
||||
|
@ -91,8 +92,9 @@
|
|||
<input type="hidden" name="act" value="rem" />
|
||||
<input type="hidden" name="id" value="{$x->getId()}" />
|
||||
<input type="hidden" name="hash" value="{$csrfToken}" />
|
||||
<input style="width: 140px; text-transform: lowercase;" type="submit" id="profile_link" value="{_leave_community}" />
|
||||
<input style="text-transform: lowercase; width: 100%;" class="link" type="submit" value="{_"leave_community"}" />
|
||||
</form>
|
||||
</div>
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
|
|
|
@ -407,7 +407,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<select name="style_avatar">
|
||||
<option value="0" {if $user->getStyleAvatar() == 0}selected{/if}>{_"default"}</option>
|
||||
<option value="0" {if $user->getStyleAvatar() == 0}selected{/if}>{_"arbitrary_avatars"} ({_"default"})</option>
|
||||
<option value="1" {if $user->getStyleAvatar() == 1}selected{/if}>{_"cut"}</option>
|
||||
<option value="2" {if $user->getStyleAvatar() == 2}selected{/if}>{_"round_avatars"}</option>
|
||||
</select>
|
||||
|
|
14
Web/Presenters/templates/User/deleted.xml
Normal file
14
Web/Presenters/templates/User/deleted.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
{extends "../@layout.xml"}
|
||||
{block title}{_information}{/block}
|
||||
|
||||
{block header}
|
||||
{_information}
|
||||
{/block}
|
||||
|
||||
{block content}
|
||||
<center style="background: white;border: #DEDEDE solid 1px;">
|
||||
<span style="color: #707070;margin: 60px 0;display: block;">
|
||||
{_profile_not_found_text}
|
||||
</span>
|
||||
</center>
|
||||
{/block}
|
|
@ -11,7 +11,7 @@
|
|||
{/block}
|
||||
|
||||
{block size}
|
||||
<div style="padding-bottom: 0px;border-bottom: 0; padding-top: 0;" class="summaryBar">
|
||||
<div style="padding-bottom: 0px; padding-top: 0;" class="summaryBar">
|
||||
<div class="summary">
|
||||
{tr("videos", $count)}
|
||||
<span n:if="isset($thisUser) && $thisUser->getId() == $user->getId()">
|
||||
|
@ -33,9 +33,11 @@
|
|||
{/block}
|
||||
|
||||
{block preview}
|
||||
<div class="video-preview">
|
||||
<img src="{$x->getThumbnailURL()}"
|
||||
alt="{$x->getName()}"
|
||||
style="max-height: 43pt; max-width: 140px; height: unset; width: unset; border-radius: unset;" />
|
||||
style="max-width: 170px; max-height: 127px; margin: auto;" />
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name}
|
||||
|
@ -43,7 +45,13 @@
|
|||
{/block}
|
||||
|
||||
{block description}
|
||||
<span>{$x->getDescription() ?? ""}</span><br/>
|
||||
<p>
|
||||
<span>{$x->getDescription() ?? ""}</span>
|
||||
</p>
|
||||
<span style="color: grey;">{_"video_uploaded"} {$x->getPublicationTime()}</span><br/>
|
||||
<span style="color: grey;">{_"video_updated"} {$x->getEditTime() ?? $x->getPublicationTime()}</span>
|
||||
<p>
|
||||
<a href="/video{$x->getPrettyId()}">{_view_video}</a>
|
||||
{if $x->getCommentsCount() > 0}| <a href="/video{$x->getPrettyId()}#comments">{_"comments"} ({$x->getCommentsCount()})</a>{/if}
|
||||
</p>
|
||||
{/block}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<center style="background: white;border: #DEDEDE solid 1px;">
|
||||
<span style="color: #707070;margin: 60px 0;display: block;">
|
||||
<b>{$title}</b><br><br>
|
||||
<b n:if="!empty($title)">{$title}<br><br></b>
|
||||
{$description}
|
||||
</span>
|
||||
</center>
|
|
@ -1 +1 @@
|
|||
{include "error.xml", title => tr("no_data"), description => tr("no_data_description")}
|
||||
{include "error.xml", description => tr("no_data_description")}
|
||||
|
|
|
@ -11,7 +11,22 @@ class Shell
|
|||
$functions = array_map(function($x) {
|
||||
return trim($x);
|
||||
}, explode(" ", ini_get("disable_functions")));
|
||||
return !in_array("system", $functions);
|
||||
if(in_array("system", $functions))
|
||||
return FALSE;
|
||||
|
||||
if(Shell::isPowershell()) {
|
||||
exec("WHERE powershell", $_x, $_c);
|
||||
unset($_x);
|
||||
|
||||
return $_c === 0;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static function isPowershell(): bool
|
||||
{
|
||||
return strncasecmp(PHP_OS, 'WIN', 3) === 0;
|
||||
}
|
||||
|
||||
static function commandAvailable(string $name): bool
|
||||
|
@ -19,6 +34,13 @@ class Shell
|
|||
if(!Shell::shellAvailable())
|
||||
throw new Exceptions\ShellUnavailableException;
|
||||
|
||||
if(Shell::isPowershell()) {
|
||||
exec("WHERE $name", $_x, $_c);
|
||||
unset($_x);
|
||||
|
||||
return $_c === 0;
|
||||
}
|
||||
|
||||
return !is_null(`command -v $name`);
|
||||
}
|
||||
|
||||
|
@ -41,14 +63,25 @@ class Shell
|
|||
function execute(?int &$result = nullptr): string
|
||||
{
|
||||
$stdout = [];
|
||||
|
||||
if(Shell::isPowershell()) {
|
||||
$cmd = escapeshellarg($this->command);
|
||||
exec("powershell -Command $this->command", $stdout, $result);
|
||||
} else {
|
||||
exec($this->command, $stdout, $result);
|
||||
}
|
||||
|
||||
return implode(PHP_EOL, $stdout);
|
||||
}
|
||||
|
||||
function start(): string
|
||||
{
|
||||
if(Shell::isPowershell()) {
|
||||
$cmd = escapeshellarg($this->command);
|
||||
pclose(popen("start /b powershell -Command $this->command", "r"));
|
||||
} else {
|
||||
system("nohup " . $this->command . " > /dev/null 2>/dev/null &");
|
||||
}
|
||||
|
||||
return $this->command;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ span {
|
|||
font-weight: bold;
|
||||
}
|
||||
|
||||
.nobold, nobold {
|
||||
.nobold,
|
||||
nobold {
|
||||
font-weight: normal;
|
||||
color: gray;
|
||||
}
|
||||
|
@ -34,6 +35,10 @@ a {
|
|||
cursor: pointer;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.layout {
|
||||
width: 791px;
|
||||
margin: 0 auto;
|
||||
|
@ -63,7 +68,6 @@ a {
|
|||
.home_button {
|
||||
position: absolute;
|
||||
width: 145px;
|
||||
text-indent: -999px;
|
||||
height: 42px;
|
||||
}
|
||||
|
||||
|
@ -159,7 +163,8 @@ a {
|
|||
display: block;
|
||||
padding: 3px 3px 3px 6px;
|
||||
text-decoration: none;
|
||||
border-top: 1px solid #fff; /* fix */
|
||||
border-top: 1px solid #fff;
|
||||
/* fix */
|
||||
color: #000;
|
||||
}
|
||||
|
||||
|
@ -226,9 +231,10 @@ a {
|
|||
border-bottom: solid 1px #c3cad2;
|
||||
border-left: solid 1px #d5dde6;
|
||||
border-right: solid 1px #d5dde6;
|
||||
padding: 12px;
|
||||
width: 604px;
|
||||
margin-left: 1px;
|
||||
}
|
||||
|
||||
.page_wrap.padding_top {
|
||||
padding-top: 12px;
|
||||
}
|
||||
|
||||
.content-main-tile {
|
||||
|
@ -276,7 +282,7 @@ a {
|
|||
background-color: #fff;
|
||||
}
|
||||
|
||||
.album-photo > .album-photo--delete {
|
||||
.album-photo>.album-photo--delete {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
|
@ -291,7 +297,7 @@ a {
|
|||
transition: .1s opacity ease-out;
|
||||
}
|
||||
|
||||
.album-photo:hover > .album-photo--delete {
|
||||
.album-photo:hover>.album-photo--delete {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
|
@ -304,7 +310,8 @@ a {
|
|||
margin-left: 2pt;
|
||||
}
|
||||
|
||||
#profile_link, .profile_link {
|
||||
#profile_link,
|
||||
.profile_link {
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
padding: 3px;
|
||||
|
@ -326,20 +333,24 @@ a {
|
|||
margin: 10px 0;
|
||||
}
|
||||
|
||||
#profile_link:hover, .profile_link:hover {
|
||||
#profile_link:hover,
|
||||
.profile_link:hover {
|
||||
background: #ECECEC;
|
||||
}
|
||||
|
||||
.action_links > .profile_link, .action_links > .profile_link_form > .profile_link {
|
||||
.action_links>.profile_link,
|
||||
.action_links>.profile_link_form>.profile_link {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.profile_link.disable > a, .profile_link.disable {
|
||||
.profile_link.disable>a,
|
||||
.profile_link.disable {
|
||||
cursor: not-allowed;
|
||||
color: grey;
|
||||
}
|
||||
|
||||
.profile_link.loading > a::after, .profile_link.loading::after {
|
||||
.profile_link.loading>a::after,
|
||||
.profile_link.loading::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
background-image: url('/assets/packages/static/openvk/img/loading_mini.gif');
|
||||
|
@ -413,7 +424,7 @@ table {
|
|||
position: absolute;
|
||||
border: 1px solid #CCC;
|
||||
background-color: #f7f7f7;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
|
||||
padding: 10px;
|
||||
float: right;
|
||||
margin-top: 5px;
|
||||
|
@ -455,7 +466,8 @@ input[class=button] {
|
|||
padding: 5px 7px 4px;
|
||||
}
|
||||
|
||||
input[type=checkbox], input[type=radio] {
|
||||
input[type=checkbox],
|
||||
input[type=radio] {
|
||||
background-color: transparent;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
|
@ -476,11 +488,13 @@ input[type=radio] {
|
|||
background-image: url("../img/radio.png");
|
||||
}
|
||||
|
||||
input[type=checkbox]:hover, input[type=radio]:hover {
|
||||
input[type=checkbox]:hover,
|
||||
input[type=radio]:hover {
|
||||
background-position: 0 -28px;
|
||||
}
|
||||
|
||||
input[type=checkbox]:checked, input[type=radio]:checked {
|
||||
input[type=checkbox]:checked,
|
||||
input[type=radio]:checked {
|
||||
background-position: 0 -14px;
|
||||
}
|
||||
|
||||
|
@ -557,7 +571,17 @@ input[type=checkbox]:checked, input[type=radio]:checked {
|
|||
padding-top: 0px;
|
||||
}
|
||||
|
||||
input[type="text"], input[type="password"], input[type~="text"], input[type~="password"], input[type="email"], input[type="phone"], input[type~="email"], input[type~="phone"], input[type="search"], input[type~="search"], select {
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type~="text"],
|
||||
input[type~="password"],
|
||||
input[type="email"],
|
||||
input[type="phone"],
|
||||
input[type~="email"],
|
||||
input[type~="phone"],
|
||||
input[type="search"],
|
||||
input[type~="search"],
|
||||
select {
|
||||
border: 1px solid #C0CAD5;
|
||||
padding: 3px;
|
||||
font-size: 11px;
|
||||
|
@ -704,7 +728,8 @@ span {
|
|||
margin-top: 5px;
|
||||
}
|
||||
|
||||
#fastlogin input[type=text], #fastlogin input[type=password] {
|
||||
#fastlogin input[type=text],
|
||||
#fastlogin input[type=password] {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
@ -768,12 +793,8 @@ table.User {
|
|||
}
|
||||
|
||||
.container_gray {
|
||||
background: #F7F7F7;
|
||||
width: 604px;
|
||||
background: #F6F6F6;
|
||||
padding: 12px;
|
||||
border-top: #EBEBEB solid 1px;
|
||||
margin-left: -12px;
|
||||
margin-bottom: -12px;
|
||||
}
|
||||
|
||||
.container_gray.bottom {
|
||||
|
@ -795,13 +816,11 @@ table.User {
|
|||
|
||||
.tabs {
|
||||
border-bottom: 1px solid #707070;
|
||||
margin-right: -12px;
|
||||
margin-left: -12px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
#activetabs {
|
||||
background: #707070;
|
||||
border-radius: 3px 3px 0px 0px;
|
||||
}
|
||||
|
||||
|
||||
|
@ -811,8 +830,13 @@ table.User {
|
|||
|
||||
.tab {
|
||||
display: inline-block;
|
||||
padding: 4px 6px;
|
||||
margin-left: 15px;
|
||||
padding: 5px 10px;
|
||||
margin-right: 3px;
|
||||
border-radius: 3px 3px 0px 0px;
|
||||
}
|
||||
|
||||
.tab:hover {
|
||||
background: #E4E4E4;
|
||||
}
|
||||
|
||||
#act_tab_a {
|
||||
|
@ -833,14 +857,15 @@ table.User {
|
|||
background: #F7F7F7;
|
||||
border: #DEDEDE solid 1px;
|
||||
padding: 6px;
|
||||
margin-top:6px;
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.ovk-album {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ovk-album:not(:first-child), .ovk-note:not(:first-child) {
|
||||
.ovk-album:not(:first-child),
|
||||
.ovk-note:not(:first-child) {
|
||||
display: inline-block;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
@ -854,7 +879,7 @@ table.User {
|
|||
background-color: #e6f2f3;
|
||||
}
|
||||
|
||||
#wrapHI > .msg {
|
||||
#wrapHI>.msg {
|
||||
margin-top: 15pt;
|
||||
}
|
||||
|
||||
|
@ -901,7 +926,8 @@ table.User {
|
|||
border-top: 1px solid #d6d6d6;
|
||||
}
|
||||
|
||||
.crp-entry--image, .crp-entry--info {
|
||||
.crp-entry--image,
|
||||
.crp-entry--info {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
|
@ -909,7 +935,7 @@ table.User {
|
|||
width: 190px;
|
||||
}
|
||||
|
||||
.crp-entry--image > img {
|
||||
.crp-entry--image>img {
|
||||
max-width: 64px;
|
||||
}
|
||||
|
||||
|
@ -951,7 +977,8 @@ table.User {
|
|||
max-width: 42px;
|
||||
}
|
||||
|
||||
.crp-entry--message---av, .crp-entry--message---text {
|
||||
.crp-entry--message---av,
|
||||
.crp-entry--message---text {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
@ -963,15 +990,18 @@ table.User {
|
|||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.crp-entry--message---text, .messenger-app--messages---message .time {
|
||||
.crp-entry--message---text,
|
||||
.messenger-app--messages---message .time {
|
||||
color: #404036;
|
||||
}
|
||||
|
||||
.messenger-app--messages, .messenger-app--input {
|
||||
.messenger-app--messages,
|
||||
.messenger-app--input {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.messenger-app--messages, .messenger-app--input {
|
||||
.messenger-app--messages,
|
||||
.messenger-app--input {
|
||||
padding: 10px 70px;
|
||||
}
|
||||
|
||||
|
@ -980,7 +1010,8 @@ table.User {
|
|||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.messenger-app--messages---message, .messenger-app--input {
|
||||
.messenger-app--messages---message,
|
||||
.messenger-app--input {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
|
@ -990,11 +1021,13 @@ table.User {
|
|||
margin-bottom: 1.2rem;
|
||||
}
|
||||
|
||||
.messenger-app--messages---message .ava, .messenger-app--input > .ava {
|
||||
.messenger-app--messages---message .ava,
|
||||
.messenger-app--input>.ava {
|
||||
max-width: 64px;
|
||||
}
|
||||
|
||||
.messenger-app--messages---message .ava, .messenger-app--input > .ava {
|
||||
.messenger-app--messages---message .ava,
|
||||
.messenger-app--input>.ava {
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
}
|
||||
|
@ -1004,7 +1037,8 @@ table.User {
|
|||
width: 300px;
|
||||
}
|
||||
|
||||
.messenger-app--messages---message ._content span, .messenger-app--messages---message ._content > a {
|
||||
.messenger-app--messages---message ._content span,
|
||||
.messenger-app--messages---message ._content>a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
@ -1018,7 +1052,7 @@ table.User {
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
.messenger-app--messages---message ._content .attachments > .msg-attach-j * {
|
||||
.messenger-app--messages---message ._content .attachments>.msg-attach-j * {
|
||||
max-width: 86%;
|
||||
}
|
||||
|
||||
|
@ -1090,7 +1124,9 @@ table.User {
|
|||
border-bottom-style: dashed;
|
||||
}
|
||||
|
||||
.music-app--player .play, .music-app--player .perv, .music-app--player .next {
|
||||
.music-app--player .play,
|
||||
.music-app--player .perv,
|
||||
.music-app--player .next {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
background-color: #507597;
|
||||
|
@ -1173,31 +1209,31 @@ textarea {
|
|||
border-bottom: solid 1px #c4c4c4;
|
||||
}
|
||||
|
||||
.ovk-lw-container > .ovk-lw--list {
|
||||
.ovk-lw-container>.ovk-lw--list {
|
||||
flex: 9;
|
||||
border-right: 1px solid #BEBEBE;
|
||||
}
|
||||
|
||||
.ovk-lw-container > .ovk-lw--list > .post {
|
||||
.ovk-lw-container>.ovk-lw--list>.post {
|
||||
margin-left: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.ovk-lw-container > .ovk-lw--actions {
|
||||
.ovk-lw-container>.ovk-lw--actions {
|
||||
flex: 5;
|
||||
}
|
||||
|
||||
.ovk-lw-container > .ovk-lw--actions > .tile {
|
||||
.ovk-lw-container>.ovk-lw--actions>.tile {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 10px 5px;
|
||||
}
|
||||
|
||||
.ovk-lw-container > .ovk-lw--actions > .tile > .profile_link {
|
||||
width: auto!important;
|
||||
.ovk-lw-container>.ovk-lw--actions>.tile>.profile_link {
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
.ovk-lw-container > .ovk-lw--actions > hr {
|
||||
.ovk-lw-container>.ovk-lw--actions>hr {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
@ -1218,12 +1254,12 @@ textarea {
|
|||
border-top: 1px solid #bbb;
|
||||
}
|
||||
|
||||
.completeness-gauge > div {
|
||||
.completeness-gauge>div {
|
||||
height: 100%;
|
||||
background-color: #d4d4d4;
|
||||
}
|
||||
|
||||
.completeness-gauge > span {
|
||||
.completeness-gauge>span {
|
||||
position: absolute;
|
||||
top: 55%;
|
||||
left: 50%;
|
||||
|
@ -1236,7 +1272,7 @@ textarea {
|
|||
border-top: 1px solid #b9b597;
|
||||
}
|
||||
|
||||
.completeness-gauge-gold > div {
|
||||
.completeness-gauge-gold>div {
|
||||
background-color: #e1d7a2;
|
||||
}
|
||||
|
||||
|
@ -1262,26 +1298,26 @@ body.scrolled .toTop:hover {
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
.ugc-table tr > td {
|
||||
.ugc-table tr>td {
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.ugc-table tr > td:nth-of-type(1) {
|
||||
.ugc-table tr>td:nth-of-type(1) {
|
||||
width: 120px;
|
||||
vertical-align: super;
|
||||
}
|
||||
|
||||
.ugc-table tr > td:nth-of-type(2) {
|
||||
.ugc-table tr>td:nth-of-type(2) {
|
||||
display: block;
|
||||
width: 270px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ugc-table.slim tr > td:nth-of-type(1) {
|
||||
.ugc-table.slim tr>td:nth-of-type(1) {
|
||||
width: unset;
|
||||
}
|
||||
|
||||
.ugc-table.slim tr > td:nth-of-type(2) {
|
||||
.ugc-table.slim tr>td:nth-of-type(2) {
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
|
@ -1400,7 +1436,7 @@ body.scrolled .toTop:hover {
|
|||
color: gray;
|
||||
}
|
||||
|
||||
.ugc-table tr > td:nth-of-type(2) {
|
||||
.ugc-table tr>td:nth-of-type(2) {
|
||||
display: block;
|
||||
width: unset;
|
||||
overflow: hidden;
|
||||
|
@ -1507,11 +1543,13 @@ body.scrolled .toTop:hover {
|
|||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.gift_sel > .gift_price, .gift_sel > .gift_limit {
|
||||
.gift_sel>.gift_price,
|
||||
.gift_sel>.gift_limit {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.gift_sel:hover > .gift_price, .gift_sel:hover > .gift_limit {
|
||||
.gift_sel:hover>.gift_price,
|
||||
.gift_sel:hover>.gift_limit {
|
||||
visibility: unset;
|
||||
}
|
||||
|
||||
|
@ -1524,13 +1562,14 @@ body.scrolled .toTop:hover {
|
|||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.ovk-video > .preview {
|
||||
.ovk-video>.preview, .video-preview {
|
||||
width: 170px;
|
||||
height: 127px;
|
||||
border: 1px solid #ccc;
|
||||
align-content: center;
|
||||
display: flex;
|
||||
padding: 1px;
|
||||
padding: 2px;
|
||||
box-shadow: inset 0 0 0px 1px #ccc, inset 0 0 0px 2px #fff;
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
#wallAttachmentMenu {
|
||||
|
@ -1541,17 +1580,17 @@ body.scrolled .toTop:hover {
|
|||
z-index: 32;
|
||||
}
|
||||
|
||||
#wallAttachmentMenu > a {
|
||||
#wallAttachmentMenu>a {
|
||||
display: block;
|
||||
padding: 2px 6px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#wallAttachmentMenu > a > img {
|
||||
#wallAttachmentMenu>a>img {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#wallAttachmentMenu > a:hover {
|
||||
#wallAttachmentMenu>a:hover {
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
|
@ -1567,16 +1606,19 @@ body.scrolled .toTop:hover {
|
|||
border-radius: 0;
|
||||
}
|
||||
|
||||
#ovkDraw .literally .lc-picker, .literally .lc-options.horz-toolbar {
|
||||
#ovkDraw .literally .lc-picker,
|
||||
.literally .lc-options.horz-toolbar {
|
||||
background-color: #f7f7f7;
|
||||
border-color: rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
#ovkDraw .literally .lc-picker .toolbar-button.selected:not(.disabled), #ovkDraw .literally .horz-toolbar .square-toolbar-button.selected:not(.disabled) {
|
||||
#ovkDraw .literally .lc-picker .toolbar-button.selected:not(.disabled),
|
||||
#ovkDraw .literally .horz-toolbar .square-toolbar-button.selected:not(.disabled) {
|
||||
background-color: #cdcdcd;
|
||||
}
|
||||
|
||||
#ovkDraw .literally .lc-picker .toolbar-button:hover:not(.disabled), #ovkDraw .literally .horz-toolbar .square-toolbar-button:hover:not(.disabled) {
|
||||
#ovkDraw .literally .lc-picker .toolbar-button:hover:not(.disabled),
|
||||
#ovkDraw .literally .horz-toolbar .square-toolbar-button:hover:not(.disabled) {
|
||||
border-color: #cdcdcd;
|
||||
}
|
||||
|
||||
|
@ -1598,7 +1640,8 @@ body.scrolled .toTop:hover {
|
|||
}
|
||||
|
||||
.knowledgeBaseArticle {
|
||||
margin-top: -11px; /* this is very stupid fix but nah */
|
||||
margin-top: -11px;
|
||||
/* this is very stupid fix but nah */
|
||||
}
|
||||
|
||||
.avatar-list {
|
||||
|
@ -1735,11 +1778,11 @@ body.scrolled .toTop:hover {
|
|||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
.content_search_list_ava img{
|
||||
.content_search_list_ava img {
|
||||
width: 75px;
|
||||
}
|
||||
|
||||
.content_search_list_ava{
|
||||
.content_search_list_ava {
|
||||
width: 85px;
|
||||
}
|
||||
|
||||
|
@ -1787,14 +1830,11 @@ body.scrolled .toTop:hover {
|
|||
}
|
||||
|
||||
.summaryBar {
|
||||
border-bottom: 1px solid #DAE2E8;
|
||||
border-bottom: #DEDEDE solid 1px;
|
||||
clear: both;
|
||||
padding: 11px 10px;
|
||||
color: black;
|
||||
font-weight: normal;
|
||||
padding-bottom: 11px;
|
||||
line-height: normal;
|
||||
margin-left: -12px;
|
||||
margin-right: -12px;
|
||||
}
|
||||
|
||||
.summaryBar .summary {
|
||||
|
@ -1835,9 +1875,6 @@ body.scrolled .toTop:hover {
|
|||
.groups_options {
|
||||
padding: 10px 20px 20px;
|
||||
border-top: #DEDEDE solid 1px;
|
||||
margin-top: 12px;
|
||||
margin-left: -12px;
|
||||
margin-right: -12px;
|
||||
}
|
||||
|
||||
#gp_container {
|
||||
|
@ -1877,6 +1914,59 @@ table td[width="120"] {
|
|||
vertical-align: top;
|
||||
}
|
||||
|
||||
.mb_tabs {
|
||||
background-color: #F6F6F6;
|
||||
border-bottom: #DEDEDE solid 1px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.mb_tab {
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
margin-right: 10px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.mb_tab div {
|
||||
padding: 3px 7px;
|
||||
}
|
||||
|
||||
#gp_container span {
|
||||
display: block;
|
||||
margin: 10px 0 15px;
|
||||
}
|
||||
|
||||
#gp_container h4 {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.container_gray .content:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.group_info {
|
||||
padding: 0 0 0 5px !important;
|
||||
}
|
||||
|
||||
.mb_tab#active {
|
||||
background-color: #898989;
|
||||
}
|
||||
|
||||
.mb_tab#active div {
|
||||
border: 2px solid #5f5f5f;
|
||||
}
|
||||
|
||||
.mb_tab#active a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.profile_thumb {
|
||||
padding: 0px 10px 0px 0px;
|
||||
width: 50px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.border-block {
|
||||
box-shadow: inset 0px 0 0px 1px #b6bfca, inset 0px 0 0px 10px #d8dfe7;
|
||||
width: 300px;
|
||||
|
|
|
@ -208,7 +208,7 @@
|
|||
"outcoming_req" = "Հայցեր";
|
||||
"req" = "Հայցեր";
|
||||
|
||||
"firends_zero" = "Ոչ մի ընկեր չկա";
|
||||
"friends_zero" = "Ոչ մի ընկեր չկա";
|
||||
"friends_one" = "$1 ընկեր";
|
||||
"friends_few" = "$1 ընկեր";
|
||||
"friends_many" = "$1 հատ ընկեր";
|
||||
|
|
|
@ -124,7 +124,7 @@
|
|||
"outcoming_req" = "Заяўкі";
|
||||
"req" = "Заяўкі";
|
||||
|
||||
"firends_zero" = "Няма сяброў";
|
||||
"friends_zero" = "Няма сяброў";
|
||||
"friends_one" = "$1 сябар";
|
||||
"friends_few" = "$1 аднаго";
|
||||
"friends_many" = "$1 сяброў";
|
||||
|
|
|
@ -132,7 +132,7 @@
|
|||
"outcoming_req" = "Zajavy";
|
||||
"req" = "Zajavy";
|
||||
|
||||
"firends_zero" = "Niama siabroŭ";
|
||||
"friends_zero" = "Niama siabroŭ";
|
||||
"friends_one" = "$1 siabar";
|
||||
"friends_few" = "$1 siabra";
|
||||
"friends_many" = "$1 siabroŭ";
|
||||
|
|
|
@ -151,7 +151,7 @@
|
|||
"outcoming_req" = "Anfragen";
|
||||
"req" = "Anfragen";
|
||||
|
||||
"firends_zero" = "Keine Freunde";
|
||||
"friends_zero" = "Keine Freunde";
|
||||
"friends_one" = "$1 Freund";
|
||||
"friends_other" = "$1 Freunde";
|
||||
|
||||
|
|
|
@ -199,14 +199,22 @@
|
|||
"friends_reject" = "Reject request";
|
||||
"friends_accept" = "Accept request";
|
||||
"send_message" = "Send a message";
|
||||
"incoming_req" = "Subscribers";
|
||||
"outcoming_req" = "Requests";
|
||||
"incoming_req" = "Pending";
|
||||
"outcoming_req" = "Outgoing";
|
||||
"req" = "Requests";
|
||||
|
||||
"firends_zero" = "No friends";
|
||||
"req_zero" = "No requests were found...";
|
||||
"req_one" = "Found $1 request";
|
||||
"req_other" = "Found $1 requests";
|
||||
|
||||
"friends_zero" = "No friends";
|
||||
"friends_one" = "$1 friend";
|
||||
"friends_other" = "$1 friends";
|
||||
|
||||
"friends_list_zero" = "You have no friends yet";
|
||||
"friends_list_one" = "You have $1 friend";
|
||||
"friends_list_other" = "You have $1 friends";
|
||||
|
||||
"followers_zero" = "No followers";
|
||||
"followers_one" = "$1 follower";
|
||||
"followers_other" = "$1 followers";
|
||||
|
@ -308,6 +316,10 @@
|
|||
"albums_one" = "$1 album";
|
||||
"albums_other" = "$1 albums";
|
||||
|
||||
"albums_list_zero" = "You don't have any albums";
|
||||
"albums_list_one" = "You have one album";
|
||||
"albums_list_other" = "You have $1 albums";
|
||||
|
||||
/* Notes */
|
||||
|
||||
"notes" = "Notes";
|
||||
|
@ -393,7 +405,9 @@
|
|||
"avatars_style" = "Avatar style";
|
||||
"style" = "Style";
|
||||
|
||||
"default" = "Arbitrary (default)";
|
||||
"default" = "default";
|
||||
|
||||
"arbitrary_avatars" = "Arbitrary";
|
||||
"cut" = "Square";
|
||||
"round_avatars" = "Round";
|
||||
|
||||
|
@ -499,6 +513,8 @@
|
|||
"videos_one" = "$1 video";
|
||||
"videos_other" = "$1 videos";
|
||||
|
||||
"view_video" = "View";
|
||||
|
||||
/* Notifications */
|
||||
|
||||
"feedback" = "Feedback";
|
||||
|
@ -750,7 +766,7 @@
|
|||
"information_-2" = "Login success";
|
||||
|
||||
"no_data" = "No data";
|
||||
"no_data_description" = "There is no data.";
|
||||
"no_data_description" = "There is nothing here... yet...";
|
||||
|
||||
"error" = "Error";
|
||||
"error_shorturl" = "This short address is already owned.";
|
||||
|
@ -762,7 +778,7 @@
|
|||
"error_repost_fail" = "Failed to share post";
|
||||
|
||||
"forbidden" = "Access error";
|
||||
"forbidden_comment" = "This user\'s privacy settings do not allow you to look at his page.";
|
||||
"forbidden_comment" = "This user's privacy settings do not allow you to look at his page.";
|
||||
|
||||
"changes_saved" = "Changes saved";
|
||||
"changes_saved_comment" = "New data will appear on your page";
|
||||
|
@ -789,6 +805,7 @@
|
|||
"profile_changed" = "Profile changed";
|
||||
"profile_changed_comment" = "Your active profile has been changed.";
|
||||
"profile_not_found" = "User is not found.";
|
||||
"profile_not_found_text" = "This profile has either been deleted or not been created yet.";
|
||||
|
||||
"suspicious_registration_attempt" = "Suspicious registration attempt";
|
||||
"suspicious_registration_attempt_comment" = "You tried to register from a suspicious location.";
|
||||
|
|
|
@ -189,7 +189,7 @@
|
|||
"outcoming_req" = "Petoj";
|
||||
"req" = "Petoj";
|
||||
|
||||
"firends_zero" = "Neniuj amikoj";
|
||||
"friends_zero" = "Neniuj amikoj";
|
||||
"friends_one" = "$1 amiko";
|
||||
"friends_few" = "$1 amikoj";
|
||||
"friends_many" = "$1 amikoj";
|
||||
|
|
880
locales/id.strings
Normal file
880
locales/id.strings
Normal file
|
@ -0,0 +1,880 @@
|
|||
"__locale" = "en_ID.UTF-8;Id";
|
||||
|
||||
/* Check for https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html */
|
||||
|
||||
/* Main page */
|
||||
|
||||
"home" = "Home";
|
||||
"welcome" = "Selamat datang";
|
||||
"to_top" = "Ke awal";
|
||||
|
||||
/* Login */
|
||||
|
||||
"log_in" = "Masuk";
|
||||
"password" = "Kata Sandi";
|
||||
"registration" = "Buat Akun Baru";
|
||||
"forgot_password" = "Lupa Kata Sandi?";
|
||||
|
||||
"login_failed" = "Masuk Gagal";
|
||||
"invalid_username_or_password" = "Nama pengguna atau Sandi yang kamu masukan tidak benar. <a href='/restore'>Lupa Kata Sandimu?</a>";
|
||||
|
||||
"failed_to_register" = "Pendaftaran Akun Baru Gagal";
|
||||
"referral_link_invalid" = "Tautan rujukan tidak valid.";
|
||||
"registration_disabled" = "Pendaftaran dinonaktifkan oleh sistem administrator.";
|
||||
"user_already_exists" = "Pengguna dengan email ini sudah ada.";
|
||||
|
||||
"access_recovery" = "Akses pemulihan";
|
||||
"page_access_recovery" = "Pulihkan akses ke halaman";
|
||||
"access_recovery_info" = "lupa kata sandimu? Jangan khawatir, masukkan rincianmu dan kami akan mengirimkan email berisi petunjuk tentang bagaimana cara memulihkan akunmu.";
|
||||
"access_recovery_info_2" = "Masukkan kata sandi barumu. Semua sesi saat ini akan ditangguhkan dan token akses akan dicabut.";
|
||||
"reset_password" = "Atur Ulang Sandi";
|
||||
"2fa_code_2" = "Pengamanan Otentikasi dua faktor";
|
||||
|
||||
"password_successfully_reset" = "Kata sandimu berhasil diatur ulang.";
|
||||
"password_reset_email_sent" = "Jika kamu telah terdaftar, kamu akan menerima instruksi melalui surelmu.";
|
||||
"password_reset_error" = "Terjadi kesalahan saat mengatur ulang kata sandi.";
|
||||
"password_reset_rate_limit_error" = "Kamu tidak dapat melakukan hal ini terlalu sering,akses ditangguhkan sementara, maaf.";
|
||||
|
||||
"email_sent" = "Pesan ke Surel telah berhasil dikirimkan.";
|
||||
"email_sent_desc" = "Jika kamu telah terdaftar, kamu akan menerima instruksi melalui surelmu.";
|
||||
"email_error" = "Terjadi kesalahan saat mengkirimkan pesan ke surel";
|
||||
"email_rate_limit_error" = "Kamu tidak dapat melakukan hal ini terlalu sering,akses ditangguhkan sementara, maaf.";
|
||||
|
||||
"email_verify_success" = "Surelmu telah diverifikasi. Selamat bersenang-senang!";
|
||||
|
||||
"registration_disabled_info" = "Pendaftaran dinonaktifkan oleh sistem administrator . Jika memungkinkan, mintalah undangan dari temanmu lagi, jika dia terdaftar di situs ini.";
|
||||
"registration_closed" = "Pendaftaran ditutup.";
|
||||
"invites_you_to" = "<strong>$1</strong> mengundangmu ke $2";
|
||||
|
||||
"register_meta_desc" = "Register in $1 sekarang!";
|
||||
"register_referer_meta_title" = "$1 mengundangmu ke $2!";
|
||||
"register_referer_meta_desc" = "Bergabunglah $1 dan banyak pengguna lainnya di $2!";
|
||||
|
||||
"users" = "Pengguna";
|
||||
|
||||
/* Profile information */
|
||||
|
||||
"select_language" = "Pilih Bahasa";
|
||||
"edit" = "Sunting";
|
||||
"birth_date" = "Tanggal lahir";
|
||||
"registration_date" = "Bergabung sejak";
|
||||
"hometown" = "Tempat Asal";
|
||||
"this_is_you" = "ini kamu";
|
||||
"edit_page" = "Sunting halaman";
|
||||
"edit_group" = "Sunting grup";
|
||||
"change_status" = "Ubah status";
|
||||
"name" = "Nama";
|
||||
"surname" = "Nama Belakang";
|
||||
"gender" = "Jenis kelamin";
|
||||
"male" = "Pria";
|
||||
"female" = "Wanita";
|
||||
"description" = "Deskripsi";
|
||||
"save" = "Simpan";
|
||||
"main_information" = "Informasi Utama";
|
||||
"nickname" = "Nama Panggilan";
|
||||
"online" = "Aktif";
|
||||
"was_online" = "Terakhir kali terlihat";
|
||||
"was_online_m" = "Terakhir kali terlihat";
|
||||
"was_online_f" = "Terakhir kali terlihat";
|
||||
/* For male and female */
|
||||
"all_title" = "Semua";
|
||||
"information" = "Informasi";
|
||||
"status" = "Status";
|
||||
"no_information_provided" = "Tidak ada informasi yang diberikan.";
|
||||
"deceased_person" = "mendiang";
|
||||
"none" = "nihil";
|
||||
"send" = "Kirim";
|
||||
|
||||
"years_zero" = "berumur 0 tahun";
|
||||
"years_one" = "berumur 1 tahun";
|
||||
"years_other" = "berumur $1 tahun";
|
||||
|
||||
"relationship" = "Status Hubungan";
|
||||
|
||||
"relationship_0" = "Tidak ada yang dipilih";
|
||||
"relationship_1" = "Belum Menikah";
|
||||
"relationship_2" = "Berpacaran";
|
||||
"relationship_3" = "Engaged";
|
||||
"relationship_4" = "Menikah";
|
||||
"relationship_5" = "In a civil marriage";
|
||||
"relationship_6" = "In love";
|
||||
"relationship_7" = "Rumit";
|
||||
"relationship_8" = "Sedang Aktif mencari";
|
||||
|
||||
"politViews" = "Pandangan Politik";
|
||||
|
||||
"politViews_0" = "Tidak ada yang dipilih";
|
||||
"politViews_1" = "Indifferent";
|
||||
"politViews_2" = "Kommunisme";
|
||||
"politViews_3" = "Sosialisme";
|
||||
"politViews_4" = "Moderatisme";
|
||||
"politViews_5" = "Liberalisme";
|
||||
"politViews_6" = "konservatisme";
|
||||
"politViews_7" = "Monarkisme";
|
||||
"politViews_8" = "Ultra-Conservative";
|
||||
"politViews_9" = "Libertarianisme";
|
||||
|
||||
"contact_information" = "Informasi Kontak";
|
||||
|
||||
"email" = "Surel";
|
||||
"phone" = "Telp.";
|
||||
"telegram" = "Telegram";
|
||||
"personal_website" = "Situs";
|
||||
"city" = "Kota";
|
||||
"address" = "Alamat";
|
||||
|
||||
"personal_information" = "Informasi personal ";
|
||||
|
||||
"interests" = "Minat";
|
||||
"favorite_music" = "Musik favorit";
|
||||
"favorite_films" = "Film favorit";
|
||||
"favorite_shows" = "Acara TV favorit";
|
||||
"favorite_books" = "Buku favorit";
|
||||
"favorite_quotes" = "Kutipan favorit";
|
||||
"information_about" = "Personalia";
|
||||
|
||||
"updated_at" = "Diperbarui pada $1";
|
||||
|
||||
"user_banned" = "Sayangnya, kami harus memblokir pengguna halaman <b>$1</b> .";
|
||||
"user_banned_comment" = "Komentar moderator:";
|
||||
|
||||
/* Wall */
|
||||
|
||||
"feed" = "Beranda";
|
||||
|
||||
"post_writes_m" = "Kirim";
|
||||
"post_writes_f" = "Kirim";
|
||||
"post_writes_g" = "Kirim";
|
||||
"wall" = "dinding";
|
||||
"post" = "Post";
|
||||
"write" = "tulis";
|
||||
"publish" = "publikasikan";
|
||||
"delete" = "Hapus";
|
||||
"comments" = "Komentar";
|
||||
"share" = "Bagikan";
|
||||
"pin" = "sematkan";
|
||||
"unpin" = "batalkan sematkan";
|
||||
"pinned" = "disematkan";
|
||||
"comments_tip" = "Jadilah yang pertama yang berkomentar,pada postingan ini!";
|
||||
"your_comment" = "Komentarmu";
|
||||
"shown" = "Tampil";
|
||||
"x_out_of" = "$1 dari";
|
||||
"wall_zero" = "tidak ada postingan";
|
||||
"wall_one" = "$1 postingan";
|
||||
"wall_other" = "$1 postingan";
|
||||
"publish_post" = "Tambah";
|
||||
"view_other_comments" = "Lihat komentar lain.";
|
||||
|
||||
"no_comments" = "Tidak ada Komentar";
|
||||
|
||||
"all_news" = "All news";
|
||||
"posts_per_page" = "Number of posts per page";
|
||||
|
||||
"attachment" = "Lampiran";
|
||||
"post_as_group" = "Post sebagai grup";
|
||||
"comment_as_group" = "Komen sebagai group";
|
||||
"add_signature" = "Tambahkan Teken";
|
||||
/* ^ can be translated as "author's signature". ^ */
|
||||
"contains_nsfw" = "Konten Dewasa (NSFW)";
|
||||
"nsfw_warning" = "Postingan ini mungkin terdapat konten Dewasa (NSFW)";
|
||||
"report" = "Lapor";
|
||||
"attach" = "Lampiran";
|
||||
"attach_photo" = "Lampirkan foto";
|
||||
"attach_video" = "Lampirkan video";
|
||||
"draw_graffiti" = "Lampirankan graffiti";
|
||||
"no_posts_abstract" = "belum ada yang tertulis disini...";
|
||||
"attach_no_longer_available" = "Lampiran ini tidak lagi tersedia.";
|
||||
"open_post" = "Buka postingan";
|
||||
"version_incompatibility" = "Lampiran ini tidak dapat ditampilkan. Mungkin databasenya tidak kompatibel dengan versi OpenVK saat ini .";
|
||||
|
||||
"reply" = "Balas";
|
||||
|
||||
/* Friends */
|
||||
|
||||
"friends" = "Teman";
|
||||
"followers" = "Pengikut";
|
||||
"follower" = "Pengikut";
|
||||
"friends_add" = "Tambahkan sebagai teman";
|
||||
"friends_delete" = "Hapus pertemanan";
|
||||
"friends_reject" = "Tolak Permintaan";
|
||||
"friends_accept" = "Terima Permintaan";
|
||||
"send_message" = "Kirim Pesan";
|
||||
"incoming_req" = "Menunggu";
|
||||
"outcoming_req" = "Keluar";
|
||||
"req" = "Permintaan";
|
||||
|
||||
"req_zero" = "Tidak ada permintaan ditemukan...";
|
||||
"req_one" = "Terdapat $1 permintaan";
|
||||
"req_other" = "Terdapat $1 permintaan";
|
||||
|
||||
"friends_zero" = "Tidak ada pertemanan";
|
||||
"friends_one" = "$1 teman";
|
||||
"friends_other" = "$1 teman";
|
||||
|
||||
"friends_list_zero" = "Kamu belum memiliki pertemanan";
|
||||
"friends_list_one" = "Kamu memiliki $1 pertemanan";
|
||||
"friends_list_other" = "Kamu memiliki $1 pertemanan";
|
||||
|
||||
"followers_zero" = "Tidak ada pengikut";
|
||||
"followers_one" = "$1 pengikut";
|
||||
"followers_other" = "$1 pengikut";
|
||||
|
||||
"subscriptions_zero" = "Tidak ada Langganan";
|
||||
"subscriptions_one" = "$1 Langganan";
|
||||
"subscriptions_other" = "$1 Langganan";
|
||||
|
||||
/* Group */
|
||||
|
||||
"name_group" = "Nama";
|
||||
"subscribe" = "Berlangganan";
|
||||
"unsubscribe" = "Berhenti berlangganan";
|
||||
"subscriptions" = "Langganan";
|
||||
"join_community" = "Gabung komunitas";
|
||||
"leave_community" = "Tinggalkan Komunitas";
|
||||
"check_community" = "Lihat komunitas";
|
||||
"min_6_community" = "Nama grup setidaknya minimal memiliki 6 digit huruf";
|
||||
"participants" = "Partisipan";
|
||||
"groups" = "Grup";
|
||||
"meetings" = "Rapat";
|
||||
"create_group" = "Buat Grup";
|
||||
"group_managers" = "Pengurus";
|
||||
"group_type" = "Tipe Grup";
|
||||
"group_type_open" = "This is an open group, anyone can enter it.";
|
||||
"group_type_closed" = "This is an closed group. To enter, you must submit an request.";
|
||||
"creator" = "Pembuat";
|
||||
"administrators" = "Administrator";
|
||||
"add_to_left_menu" = "Add to left menu";
|
||||
"remove_from_left_menu" = "Remove from left menu";
|
||||
"all_followers" = "Seluruh pengikut";
|
||||
"only_administrators" = "Hanya administrator";
|
||||
"website" = "Situs";
|
||||
"managed" = "Managed";
|
||||
"size" = "Jumlah";
|
||||
|
||||
"administrators_one" = "$1 administrator";
|
||||
"administrators_other" = "$1 administrator";
|
||||
|
||||
"role" = "Role";
|
||||
"administrator" = "Administrator";
|
||||
"promote_to_admin" = "Promosikan sebagai admin";
|
||||
"promote_to_owner" = "Promosikan sebagai pemilik";
|
||||
"devote" = "Devote";
|
||||
"set_comment" = "Atur Komentar";
|
||||
"hidden_yes" = "Sembunyikan: Ya";
|
||||
"hidden_no" = "Sembunyikan: No";
|
||||
"group_allow_post_for_everyone" = "Izinkan semua dapat memposting";
|
||||
"group_hide_from_global_feed" = "Don't display posts in the global feed";
|
||||
"statistics" = "Statistik";
|
||||
"group_administrators_list" = "Lis Admin";
|
||||
"group_display_only_creator" = "Tampilkan hanya pembuat grup";
|
||||
"group_display_all_administrators" = "Tampilkan seluruh administrator";
|
||||
"group_dont_display_administrators_list" = "Jangan tampilkan apapun";
|
||||
|
||||
"group_changeowner_modal_title" = "Owner's permissions transfer";
|
||||
"group_changeowner_modal_text" = "Attention! You are transferring owner rights to user $1. This action is irreversible. After the transfer, you will remain an administrator, but you can easily stop being one.";
|
||||
"group_owner_setted" = "The new owner ($1) has been successfully assigned to the community $2. You have been granted administrator rights in the community. If you want to return the owner role, contact <a href='/support?act=new'>site technical support</a>.";
|
||||
|
||||
"participants_zero" = "Tidak ada partisipan";
|
||||
"participants_one" = "$1 partisipan";
|
||||
"participants_other" = "$1 partisipan";
|
||||
|
||||
"groups_zero" = "Tidak ada grup";
|
||||
"groups_one" = "$1 grup";
|
||||
"groups_other" = "$1 grup";
|
||||
|
||||
"groups_list_zero" = "Kamu belum berpatisipasi dalam grup manapun";
|
||||
"groups_list_one" = "Kamu berpatisipasi dalam satu grup";
|
||||
"groups_list_other" = "Kamu berpatisipasi dalam of $1 grup";
|
||||
|
||||
"meetings_zero" = "tidak terdapat rapat/pertemuan";
|
||||
"meetings_one" = "$1 rapat/pertemuan";
|
||||
"meetings_other" = "$1 rapat/pertemuan";
|
||||
|
||||
"open_new_group" = "Open a new group";
|
||||
"open_group_desc" = "Can't find the right group? Open your own...";
|
||||
"search_group" = "Cari grup";
|
||||
"search_by_groups" = "Search by groups";
|
||||
"search_group_desc" = "Here you can browse through the existing groups and choose a group to suit your needs...";
|
||||
|
||||
/* Albums */
|
||||
|
||||
"create" = "Buat";
|
||||
"albums" = "Album";
|
||||
"create_album" = "Buat album";
|
||||
"edit_album" = "Sunting album";
|
||||
"creating_album" = "Membuat album";
|
||||
"upload_photo" = "Unggah foto";
|
||||
"photo" = "Foto";
|
||||
"upload_button" = "Unggah";
|
||||
|
||||
"open_original" = "Buka ukuran file asli";
|
||||
|
||||
"avatar_album" = "Foto Profil";
|
||||
"wall_album" = "Foto dingdings";
|
||||
|
||||
"albums_zero" = "tidak ada album";
|
||||
"albums_one" = "$1 album";
|
||||
"albums_other" = "$1 album";
|
||||
|
||||
"albums_list_zero" = "Kamu belum mempunya album apapun";
|
||||
"albums_list_one" = "Kamu hanya memiliki satu album";
|
||||
"albums_list_other" = "Kamu memiliki $1 album";
|
||||
|
||||
/* Notes */
|
||||
|
||||
"notes" = "Catatan";
|
||||
"note" = "Catatan";
|
||||
"name_note" = "Judul";
|
||||
"text_note" = "Isi";
|
||||
"create_note" = "Tambahkan catatan";
|
||||
"edit_note" = "Sunting catatan";
|
||||
"actions" = "Aksi";
|
||||
|
||||
"edited" = "Tersunting";
|
||||
|
||||
"notes_zero" = "Tidak ada catatan";
|
||||
"notes_one" = "$1 catatan";
|
||||
"notes_other" = "$1 catatan";
|
||||
"notes_start_screen" = "With notes, you can share your events with friends and see what's going on with them.";
|
||||
|
||||
"notes_list_zero" = "No notes found";
|
||||
"notes_list_one" = "$1 note found";
|
||||
"notes_list_other" = "$1 notes found";
|
||||
|
||||
/* Menus */
|
||||
|
||||
/* Note that is string need to fit into the "My Page" link */
|
||||
|
||||
"edit_button" = "sunting";
|
||||
"my_page" = "Halamanku";
|
||||
"my_friends" = "Pertemanan";
|
||||
"my_photos" = "Foto";
|
||||
"my_videos" = "Video";
|
||||
"my_messages" = "Perpesanan";
|
||||
"my_notes" = "Catatan";
|
||||
"my_groups" = "Grup";
|
||||
"my_feed" = "Beranda";
|
||||
"my_feedback" = "Pemberandaan";
|
||||
"my_settings" = "Pengaturan";
|
||||
"bug_tracker" = "Bug-tracker";
|
||||
|
||||
"menu_login" = "Masuk";
|
||||
"menu_registration" = "Pendaftaran";
|
||||
"menu_help" = "Bantuan";
|
||||
|
||||
"menu_logout" = "Keluar";
|
||||
"menu_support" = "Dukungan";
|
||||
|
||||
"header_home" = "beranda";
|
||||
"header_groups" = "grup";
|
||||
"header_people" = "orang";
|
||||
"header_invite" = "undang";
|
||||
"header_help" = "bantuan";
|
||||
"header_log_out" = "keluar";
|
||||
"header_search" = "Cari";
|
||||
|
||||
"header_login" = "masuk";
|
||||
"header_registration" = "pendaftaran";
|
||||
|
||||
"left_menu_donate" = "Donasi";
|
||||
|
||||
"footer_about_instance" = "Tentang";
|
||||
"footer_blog" = "blog";
|
||||
"footer_help" = "bantuan";
|
||||
"footer_developers" = "developers";
|
||||
"footer_choose_language" = "pilih bahasa";
|
||||
"footer_privacy" = "privasi";
|
||||
|
||||
/* Settings */
|
||||
|
||||
"main" = "Main";
|
||||
"contacts" = "kontak";
|
||||
"avatar" = "Avatar";
|
||||
"privacy" = "Privasi";
|
||||
"interface" = "Antarmuka";
|
||||
|
||||
"profile_picture" = "Gambar Foto Profil";
|
||||
|
||||
"picture" = "Gambar";
|
||||
|
||||
"change_password" = "Ubah kata sandi";
|
||||
"old_password" = "Kata Sandi Lama";
|
||||
"new_password" = "Kata Sandi Baru";
|
||||
"repeat_password" = "Ulang Kata Sandi Baru";
|
||||
|
||||
"avatars_style" = "Tampilan Gaya Avatar";
|
||||
"style" = "Gaya";
|
||||
|
||||
"default" = "bawaan";
|
||||
|
||||
"arbitrary_avatars" = "acak";
|
||||
"cut" = "Kotak";
|
||||
"round_avatars" = "Bulat";
|
||||
|
||||
"apply_style_for_this_device" = "Hanya terapkan gaya ini pada perangkat ini";
|
||||
|
||||
"search_for_groups" = "Cari grup";
|
||||
"search_for_people" = "Cari orang";
|
||||
"search_button" = "Cari";
|
||||
"search_placeholder" = "Masukkan nama,judul atau suatu kata.";
|
||||
"results_zero" = "Tidak ada hasil";
|
||||
"results_one" = "$1 hasil";
|
||||
"results_other" = "$1 hasil";
|
||||
|
||||
"privacy_setting_access_page" = "Siapa saja yang dapat melihat halamanku";
|
||||
"privacy_setting_read_info" = "Siapa saja yang dapat melihat informasi utama halamanku";
|
||||
"privacy_setting_see_groups" = "Who can see my groups and meetings";
|
||||
"privacy_setting_see_photos" = "Siapa saja yang dapat melihat fotoku";
|
||||
"privacy_setting_see_videos" = "Siapa saja yang dapat melihat videosku";
|
||||
"privacy_setting_see_notes" = "Siapa saja yang dapat melihat catatanku";
|
||||
"privacy_setting_see_friends" = "Siapa saja yang dapat melihat pertemananku";
|
||||
"privacy_setting_add_to_friends" = "Siapa saja yang dapat menambahkan pertemanan ke saya";
|
||||
"privacy_setting_write_wall" = "Siapa saja yang dapat menuliskan postingan kedinding saya";
|
||||
"privacy_setting_write_messages" = "Siapa saja yang dapat mengirim pesan ke saya";
|
||||
"privacy_value_anybody" = "Siapa saja";
|
||||
"privacy_value_anybody_dative" = "Siapa saja";
|
||||
"privacy_value_users" = "Pengguna OpenVK";
|
||||
"privacy_value_friends" = "Teman";
|
||||
"privacy_value_friends_dative" = "Teman";
|
||||
"privacy_value_only_me" = "Hanya saya";
|
||||
"privacy_value_only_me_dative" = "Hanya saya";
|
||||
"privacy_value_nobody" = "Tidak ada";
|
||||
|
||||
"your_email_address" = "Alamat Surelmu";
|
||||
"your_page_address" = "Alamat halamanmu";
|
||||
"page_address" = "Address page";
|
||||
"current_email_address" = "Alamat surel sekarang";
|
||||
"page_id" = "ID Halaman";
|
||||
"you_can_also" = "Kamu juga dapat";
|
||||
"delete_your_page" = "hapus halamanmu";
|
||||
"delete_album" = "hapus album";
|
||||
|
||||
"ui_settings_interface" = "Antarmuka";
|
||||
"ui_settings_sidebar" = "Left menu";
|
||||
"ui_settings_rating" = "Rating";
|
||||
"ui_settings_rating_show" = "Tampilkan";
|
||||
"ui_settings_rating_hide" = "Sembunyikan";
|
||||
|
||||
"additional_links" = "Tautan tambahan";
|
||||
"ad_poster" = "Periklanan";
|
||||
|
||||
/* Two-factor authentication */
|
||||
|
||||
"two_factor_authentication" = "Keamanan autentikasi dua faktor";
|
||||
"two_factor_authentication_disabled" = "Memberikan perlindungan keamanan yang lebih andal terhadap peretasan: untuk memasuki halaman, Anda harus memasukkan kode yang diperoleh dalam aplikasi 2FA.";
|
||||
"two_factor_authentication_enabled" = "Keamanan autentikasi dua faktor diaktifkan. Halaman Anda dilindungi.";
|
||||
"two_factor_authentication_login" = "Anda mengaktifkan autentikasi dua faktor, saat masuk masukkan kode yang diterima dalam aplikasi.";
|
||||
|
||||
"two_factor_authentication_settings_1" = "Two-factor authentication via TOTP can be used even without internet. To do this, you need a code generation app. For example, <b>Google Authenticator</b> for Android and iOS or <b>FOSS Aegis and andOTP</b> for Android. Make sure the date and time is set correctly on your phone.";
|
||||
"two_factor_authentication_settings_2" = "Using the app for two-factor authentication, scan the QR code below:";
|
||||
"two_factor_authentication_settings_3" = "or manually enter the given secret key: <b>$1</b>.";
|
||||
"two_factor_authentication_settings_4" = "Now enter the code that the application gave you and the password for your page so that we can confirm that you really are.";
|
||||
|
||||
"connect" = "Hubungkan";
|
||||
"enable" = "Aktifkan";
|
||||
"disable" = "nonaktifkan";
|
||||
"code" = "Kode";
|
||||
"2fa_code" = "Kode 2FA";
|
||||
|
||||
"incorrect_password" = "kata sandi tidak sesuai";
|
||||
"incorrect_code" = "kode tidak sesuai";
|
||||
"incorrect_2fa_code" = "Keamanan autentikasi dua faktor tidak sesuai";
|
||||
"two_factor_authentication_enabled_message" = "Two-factor authentication enabled";
|
||||
"two_factor_authentication_enabled_message_description" = "Your page has become more difficult to hack. We recommend that you download <a href='javascript:viewBackupCodes()'>backup codes</a>";
|
||||
"two_factor_authentication_disabled_message" = "Keamanan autentikasi dua faktor dinon-aktifkan";
|
||||
|
||||
"view_backup_codes" = "lihat kode cadang";
|
||||
"backup_codes" = "Backup codes for login confirmation";
|
||||
"two_factor_authentication_backup_codes_1" = "Backup codes allow you to validate your login when you don't have access to your phone, for example, while traveling.";
|
||||
"two_factor_authentication_backup_codes_2" = "You have <b>10 more codes</b>, each code can only be used once. Print them out, put them away in a safe place and use them when you need codes to validate your login.";
|
||||
"two_factor_authentication_backup_codes_3" = "You can get new codes if they run out. Only the last created backup codes are valid.";
|
||||
|
||||
/* Sorting */
|
||||
|
||||
"sort_randomly" = "Urutkan secara acak";
|
||||
"sort_up" = "Urutkan berdasarkan ID terawal";
|
||||
"sort_down" = "Urutkan berdasarkan ID terakhir";
|
||||
|
||||
/* Videos */
|
||||
|
||||
"videos" = "Video";
|
||||
"video" = "Video";
|
||||
"upload_video" = "Unggah video";
|
||||
"video_uploaded" = "Uploaded";
|
||||
"video_updated" = "Updated";
|
||||
"video_link_to_yt" = "Pintaskan ke YouTube";
|
||||
|
||||
"info_name" = "Judul";
|
||||
"info_description" = "Deskripsi";
|
||||
"info_uploaded_by" = "Diunggah oleh";
|
||||
"info_upload_date" = "Tanggal unggah";
|
||||
|
||||
"videos_zero" = "Tidak ada video";
|
||||
"videos_one" = "$1 video";
|
||||
"videos_other" = "$1 video";
|
||||
|
||||
"view_video" = "Lihat Video";
|
||||
|
||||
/* Notifications */
|
||||
|
||||
"feedback" = "Pemberandaan";
|
||||
"unread" = "Belum dibaca";
|
||||
"archive" = "Arsip";
|
||||
|
||||
"notifications_like" = "$1 liked your $2post$3 from $4";
|
||||
"notifications_repost" = "$1 shared your $2post$3 from $4";
|
||||
"notifications_comment_under" = "$1 leaved a comment on $2";
|
||||
"notifications_under_note" = "your $3note$4";
|
||||
"notifications_under_photo" = "your $3photo$4";
|
||||
"notifications_under_post" = "your $3post$4 from $5";
|
||||
"notifications_under_video" = "your $3video$4";
|
||||
"notifications_post" = "$1 published $2a post$3 on your wall: $4";
|
||||
"notifications_appoint" = "$1 appointed you as community manager $2";
|
||||
|
||||
"nt_liked_yours" = "liked yours";
|
||||
"nt_shared_yours" = "shared yours";
|
||||
"nt_commented_yours" = "commented";
|
||||
"nt_written_on_your_wall" = "wrote on your wall";
|
||||
"nt_made_you_admin" = "appointed you in the community";
|
||||
|
||||
"nt_from" = "dari";
|
||||
"nt_yours_adjective" = "kamu";
|
||||
"nt_yours_feminitive_adjective" = "kamu";
|
||||
"nt_post_nominative" = "post";
|
||||
"nt_post_instrumental" = "post";
|
||||
"nt_note_instrumental" = "catatan";
|
||||
"nt_photo_instrumental" = "foto";
|
||||
"nt_topic_instrumental" = "topik";
|
||||
|
||||
/* Time */
|
||||
|
||||
"time_at_sp" = " pada ";
|
||||
"time_just_now" = "baru saja";
|
||||
"time_exactly_five_minutes_ago" = "5 menit yang lalu";
|
||||
"time_minutes_ago" = "$1 menit yang lalu";
|
||||
"time_today" = "hari ini";
|
||||
"time_yesterday" = "kemarin";
|
||||
|
||||
"points" = "Votes";
|
||||
"points_count" = "votes";
|
||||
"on_your_account" = "Pada akunmu";
|
||||
|
||||
"vouchers" = "Voucher";
|
||||
"have_voucher" = "voucher dimiliki";
|
||||
"voucher_token" = "Voucher token";
|
||||
"voucher_activators" = "Pengguna";
|
||||
"voucher_explanation" = "Masukkan nomor seri pada voucher. Biasanya tercantum pada tanda terima atau dalam suatu pesan.";
|
||||
"voucher_explanation_ex" = "Perlu diketahui bahwa voucher dapat kedaluwarsa dan hanya dapat digunakan sekali.";
|
||||
"invalid_voucher" = "Voucher tidak valid";
|
||||
"voucher_bad" = "Kamu mungkin memasukkan nomor seri yang tidak valid atau voucher sudah digunakan, atau juga voucher sudah kedaluwarsa.";
|
||||
"voucher_good" = "Voucher telah diaktifkan";
|
||||
"voucher_redeemed" = "Voucher telah berhasil diaktifkan.poin akan segera diterima, tetapi kamu tidak lagi dapat mengaktifkannya dengan kode ini.";
|
||||
"redeem" = "Gunakan voucher";
|
||||
"deactivate" = "Nonaktifkan";
|
||||
"usages_total" = "Total telah digunakan";
|
||||
"usages_left" = "Sisa penggunaan";
|
||||
|
||||
"points_transfer_dialog_header_1" = "You can send as a gift or transfer part of the votes to another person.";
|
||||
"points_transfer_dialog_header_2" = "Your current balance:";
|
||||
|
||||
"points_amount_one" = "1 vote";
|
||||
"points_amount_other" = "$1 vote";
|
||||
|
||||
"transfer_poins" = "Transfer vote";
|
||||
"transfer_poins_button" = "Transfer vote";
|
||||
"also_you_can_transfer_points" = "Kamu juga dapat <a href=\"javascript:showCoinsTransferDialog($1, '$2')\">membagikan vote</a>ke orang lain.";
|
||||
|
||||
"transferred_to_you" = "transferred to you";
|
||||
|
||||
"receiver_address" = "Receiver address";
|
||||
"coins_count" = "Jumlah of vote";
|
||||
"message" = "Pesan";
|
||||
|
||||
"failed_to_tranfer_points" = "Gagal mentransfer vote";
|
||||
|
||||
"points_transfer_successful" = "You have successfully transferred <b>$1</b> to <b><a href=\"$2\">$3</a></b>.";
|
||||
"not_all_information_has_been_entered" = "Informasi tidak lengkap";
|
||||
"negative_transfer_value" = "Maaf,kami tidak bisa mencuri atau menggelapkan votes dari orang lain.";
|
||||
"message_is_too_long" = "Pesan terlalu panjang";
|
||||
"receiver_not_found" = "Penerima tidak ditemukan / tidak ada";
|
||||
"you_dont_have_enough_points" = "Kamu tidak memiliki cukup vote";
|
||||
|
||||
"increase_rating" = "Increase rating";
|
||||
"increase_rating_button" = "Increase";
|
||||
"to_whom" = "Kepada ";
|
||||
"increase_by" = "Increase by";
|
||||
"price" = "Harga";
|
||||
|
||||
"you_have_unused_votes" = "Kamu memiliki $1 vote yang belum digunakan.";
|
||||
"apply_voucher" = "Apply voucher";
|
||||
|
||||
"failed_to_increase_rating" = "Failed to increase rating";
|
||||
"rating_increase_successful" = "You have successfully increased rating of <b><a href=\"$1\">$2</a></b> by <b>$3%</b>.";
|
||||
"negative_rating_value" = "We cannot steal rating from another person, sorry.";
|
||||
|
||||
"increased_your_rating_by" = "increased your rating by";
|
||||
|
||||
/* Gifts */
|
||||
|
||||
"gift" = "Hadiah";
|
||||
"gifts" = "Hadiah";
|
||||
"gifts_zero" = "0 Hadiah";
|
||||
"gifts_one" = "1 Hadiah";
|
||||
"gifts_other" = "$1 Hadiah";
|
||||
"gifts_left" = "Hadiah tersedia: $1";
|
||||
"gifts_left_zero" = "tidak ada Hadiah tersedia";
|
||||
"gifts_left_one" = "satu Hadiah tersedia";
|
||||
"gifts_left_other" = "$1 Hadiah tersisa";
|
||||
|
||||
"send_gift" = "Beri Hadiah";
|
||||
|
||||
"gift_select" = "Pilih Hadiah";
|
||||
"collections" = "Koleksi";
|
||||
"confirm" = "Konfirmasi";
|
||||
"as_anonymous" = "sebagai anonim";
|
||||
"gift_your_message" = "Pesanmu";
|
||||
|
||||
"free_gift" = "Gratis";
|
||||
"coins" = "Vote";
|
||||
"coins_zero" = "0 vote";
|
||||
"coins_one" = "1 vote";
|
||||
"coins_other" = "$1 vote";
|
||||
|
||||
"users_gifts" = "Hadiah";
|
||||
|
||||
/* Support */
|
||||
|
||||
"support_opened" = "Opened";
|
||||
"support_answered" = "With a response";
|
||||
"support_closed" = "Closed";
|
||||
"support_ticket" = "Tiket";
|
||||
"support_tickets" = "Tiket";
|
||||
"support_status_0" = "Issue under consideration";
|
||||
"support_status_1" = "There's a response";
|
||||
"support_status_2" = "Closed";
|
||||
"support_greeting_hi" = "Greetings, $1!";
|
||||
"support_greeting_regards" = "Best regards,<br/>$1 support team.";
|
||||
|
||||
"support_faq" = "Pertanyaan yang sering diajukan";
|
||||
"support_list" = "Lis tiket";
|
||||
"support_new" = "Tiket baru";
|
||||
|
||||
"support_faq_title" = "Who is this website for?";
|
||||
"support_faq_content" = "The site is designed to find friends and acquaintances, as well as view user data. It is like a city directory, through which people can quickly find relevant information about a person.";
|
||||
|
||||
"support_new_title" = "Masukkkan topik tiketmu";
|
||||
"support_new_content" = "Deskripsikan keluh kesahmu atau sugesti ataupun kritik dan saranmu";
|
||||
|
||||
"support_rate_good_answer" = "Jawaban yang baik";
|
||||
"support_rate_bad_answer" = "Jawaban yang tidak baik";
|
||||
"support_good_answer_user" = "Kamu memberikan umpan balik positif.";
|
||||
"support_bad_answer_user" = "Kamu memberikan umpan balik negatif.";
|
||||
"support_good_answer_agent" = "Pengguna memberikan umpan balik positif.";
|
||||
"support_bad_answer_agent" = "Pengguna memberikan umpan balik negatif.";
|
||||
"support_rated_good" = "Kamu memberikan umpan balik positif terhadap jawabannya.";
|
||||
"support_rated_bad" = "Kamu memberikan umpan balik negatif terhadap jawabannya.";
|
||||
"wrong_parameters" = "Parameter permintaan tidak valid.";
|
||||
|
||||
"fast_answers" = "Balasan cepat";
|
||||
|
||||
"comment" = "Komen";
|
||||
"sender" = "Pengirim";
|
||||
|
||||
"author" = "Pembuat";
|
||||
|
||||
"you_have_not_entered_text" = "Kamu belum memasukkan teks apa pun";
|
||||
"you_have_not_entered_name_or_text" = "Kamu tidak memasukkan nama atau teks";
|
||||
|
||||
"ticket_changed" = "Tiket diubah";
|
||||
"ticket_changed_comment" = "Perubahan akan berlaku dalam beberapa saat.";
|
||||
|
||||
/* Invite */
|
||||
|
||||
"invite" = "Undang";
|
||||
"you_can_invite" = "You can invite your friends or acquaintances to the network using an individual link:";
|
||||
"you_can_invite_2" = "Attach this link to your post. When the user signs up, he will immediately appear in your friends.";
|
||||
|
||||
/* Banned */
|
||||
|
||||
"banned_title" = "Kamu dibanned";
|
||||
"banned_header" = "Kamu dibanned";
|
||||
"banned_alt" = "Pengguna diblokir.";
|
||||
"banned_1" = "Maaf <b>$1</b>, tapi kamu telah dibanned.";
|
||||
"banned_2" = "dan alasannya cukup sederhana: <b>$1</b>. namun, saat ini kamu diblokir selamanya.";
|
||||
"banned_3" = "Kamu masih dapat <a href=\"/support?act=new\">menulis dukungan,masukkan,atau banding</a> jika kamu berpikir bahwa itu adalah kesalahan atau kamu bisa <a href=\"/logout?hash=$1\">keluar</a>.";
|
||||
|
||||
/* Registration confirm */
|
||||
|
||||
"ec_header" = "Konfirmasi Pendaftaran";
|
||||
"ec_title" = "Terima kasih!";
|
||||
"ec_1" = "<b>$1</b>, pendaftaranmu hampir selesai. Dalam beberapa saat kamu akan menerima pesan pada surel dengan tautan untuk mengonfirmasi alamat surelmnu.";
|
||||
"ec_2" = "Apabila kamu dengan alasan tertentu tidak menerima pesan ke surelmu, coba periksa folder spam surelmu.namun apabila tidak menemukan pesan apapun, kamu dapat mengirimnya ulang.";
|
||||
"ec_resend" = "Kirim ulang";
|
||||
|
||||
/* Discussions */
|
||||
|
||||
"discussions" = "Diskusi";
|
||||
|
||||
"messages_one" = "Satu Pesan";
|
||||
"messages_other" = "$1 Pesan";
|
||||
|
||||
"topic_messages_count_zero" = "Topic has no messages";
|
||||
"topic_messages_count_one" = "There are one message in the topic";
|
||||
"topic_messages_count_other" = "There are $1 messages in the topic";
|
||||
|
||||
"replied" = "balas";
|
||||
"create_topic" = "Buat topik";
|
||||
|
||||
"new_topic" = "Topik baru";
|
||||
"title" = "Judul";
|
||||
"text" = "Teks";
|
||||
|
||||
"view_topic" = "Lihat topik";
|
||||
"edit_topic_action" = "Sunting topik";
|
||||
"edit_topic" = "Sunting topik";
|
||||
"topic_settings" = "Pengaturan topik";
|
||||
"pin_topic" = "Sematkan Topik";
|
||||
"close_topic" = "Tutup topik";
|
||||
"delete_topic" = "Hapus topik";
|
||||
|
||||
"topics_one" = "Satu topik";
|
||||
"topics_other" = "$1 topik";
|
||||
|
||||
"created" = "Dibuat";
|
||||
|
||||
"everyone_can_create_topics" = "Siapa saja dapat membuat topik";
|
||||
"display_list_of_topics_above_wall" = "Display a list of topics above the wall";
|
||||
|
||||
"topic_changes_saved_comment" = "The updated title and settings will appear on the topic page.";
|
||||
|
||||
"failed_to_create_topic" = "Pembuatan topik gagal";
|
||||
"failed_to_change_topic" = "Pergantian topik gagal";
|
||||
"no_title_specified" = "No title specified.";
|
||||
|
||||
/* Errors */
|
||||
|
||||
"error_1" = "Incorrect query";
|
||||
"error_2" = "Incorrect login and password";
|
||||
"error_3" = "Non authorized";
|
||||
"error_4" = "User does not exist";
|
||||
"information_-1" = "Sukses";
|
||||
"information_-2" = "Masuk sukses";
|
||||
|
||||
"no_data" = "Tidaka ada data";
|
||||
"no_data_description" = "Belum ada apa-apa disini... ";
|
||||
|
||||
"error" = "Error";
|
||||
"error_shorturl" = "Alamat tidak tersedia atau telah dimiliki.";
|
||||
"error_segmentation" = "terjadi kesalahan";
|
||||
"error_upload_failed" = "Gagal mengunggah foto";
|
||||
"error_old_password" = "Kata sandi lama tidak cocok";
|
||||
"error_new_password" = "Kata sandi baru tidak cocok";
|
||||
"error_shorturl_incorrect" = "Alamat singkat memiliki format yang salah.";
|
||||
"error_repost_fail" = "Gagal membagikan postingan";
|
||||
|
||||
"forbidden" = "Access error";
|
||||
"forbidden_comment" = "This user\'s privacy settings do not allow you to look at his page.";
|
||||
|
||||
"changes_saved" = "Perubahan tersimpan";
|
||||
"changes_saved_comment" = "Data baru akan muncul di halamanmu";
|
||||
|
||||
"photo_saved" = "Foto berhasil disimpan";
|
||||
"photo_saved_comment" = "Gambar / foto profil baru akan muncul di halamanmu";
|
||||
|
||||
"shared_succ" = "Postingan akan tampil pada dindingmu,klik notifikasi untuk menuju dinding halamanmu.";
|
||||
|
||||
"invalid_email_address" = "Alamat sural tidak valid";
|
||||
"invalid_email_address_comment" = "Surel yang kamu masukkan tidak benar atau tidak sesuai penulisan yang benar.";
|
||||
|
||||
"invalid_real_name" = "Silakan, masukkan nama aslimu. Akan lebih mudah bagi temanmu atau kenalanmu untuk menemukanmu seperti ini.";
|
||||
|
||||
"invalid_birth_date" = "Tanggal lahir tidak valid";
|
||||
"invalid_birth_date_comment" = "Tanggal lahir yang kamu masukkan tidak benar atau tidak sesuai penulisan yang benar.";
|
||||
|
||||
"invalid_telegram_name" = "Akun Telegram tidak valid";
|
||||
"invalid_telegram_name_comment" = "Akun Telegram yang kamu masukkan tidak benar atau tidak sesuai penulisan yang benar.";
|
||||
|
||||
"token_manipulation_error" = "Token manipulation error";
|
||||
"token_manipulation_error_comment" = "The token is invalid or expired";
|
||||
|
||||
"profile_changed" = "Profile changed";
|
||||
"profile_changed_comment" = "Your active profile has been changed.";
|
||||
"profile_not_found" = "Pengguna tidak ditemukan.";
|
||||
|
||||
"suspicious_registration_attempt" = "Upaya yang mencurigakan / asing";
|
||||
"suspicious_registration_attempt_comment" = "Kamu mencoba mendaftar dari lokasi yang mencurigakan atau sesuai dengan kebijakan";
|
||||
|
||||
"rate_limit_error" = "Choomba, are you completely fucked up?";
|
||||
"rate_limit_error_comment" = "Go to the brainwrap, drink the wheels. In $1, you cannot drop shitposts as often. Exception code: $2.";
|
||||
|
||||
"not_enough_permissions" = "izin / akses diperlukan";
|
||||
"not_enough_permissions_comment" = "Kamu tidak memiliki izin / akses yang memadai untuk melakukan tindakan ini.";
|
||||
|
||||
"login_required_error" = "Akses masuk diperlukan";
|
||||
"login_required_error_comment" = "Untuk melihat halaman ini, kamu harus masuk terlebih dahulu.";
|
||||
|
||||
"captcha_error" = "captcha error";
|
||||
"captcha_error_comment" = "Pastikan Kamu mengisi kolom captcha dengan benar.";
|
||||
|
||||
"failed_to_publish_post" = "Gagal memposting postingan";
|
||||
"failed_to_delete_post" = "Gagal menghapus postingan";
|
||||
|
||||
"media_file_corrupted" = "File konten media rusak / korup.";
|
||||
"media_file_corrupted_or_too_large" = "File konten media rusak atau terlalu besar.";
|
||||
"post_is_empty_or_too_big" = "Postingan nihil atau ukurannya terlalu besar.";
|
||||
"post_is_too_big" = "ukuran postingan terlalu besar";
|
||||
|
||||
/* Admin actions */
|
||||
|
||||
"login_as" = "Masuk sebagai $1";
|
||||
"manage_user_action" = "Atur pengguna";
|
||||
"manage_group_action" = "Atur grup";
|
||||
"ban_user_action" = "Ban pengguna";
|
||||
"warn_user_action" = "peringatkan pengguna";
|
||||
|
||||
/* Paginator (deprecated) */
|
||||
|
||||
"paginator_back" = "Sebelumnya";
|
||||
"paginator_page" = "Halaman $1";
|
||||
"paginator_next" = "Selanjutnya";
|
||||
|
||||
/* About */
|
||||
|
||||
"about_openvk" = "Tentang OpenVK";
|
||||
|
||||
"about_this_instance" = "About this instance";
|
||||
"rules" = "Rules";
|
||||
"most_popular_groups" = "Most popular groups";
|
||||
"on_this_instance_are" = "On this instance are:";
|
||||
|
||||
"about_users_one" = "<b>1</b> pengguna";
|
||||
"about_users_other" = "<b>$1</b> pengguna";
|
||||
|
||||
"about_online_users_one" = "<b>1</b> pengguna aktif";
|
||||
"about_online_users_other" = "<b>$1</b> pengguna aktif";
|
||||
|
||||
"about_active_users_one" = "<b>1</b> pengguna aktif";
|
||||
"about_active_users_other" = "<b>$1</b> pengguna aktif";
|
||||
|
||||
"about_groups_one" = "<b>1</b> grup";
|
||||
"about_groups_other" = "<b>$1</b> grup";
|
||||
|
||||
"about_wall_posts_one" = "<b>1</b> wall post";
|
||||
"about_wall_posts_other" = "<b>$1</b> wall posts";
|
||||
|
||||
/* Dialogs */
|
||||
|
||||
"ok" = "OK";
|
||||
"yes" = "Ya";
|
||||
"no" = "Tidak";
|
||||
"cancel" = "Batal";
|
||||
"edit_action" = "Ubah";
|
||||
"transfer" = "Transfer";
|
||||
"close" = "Tutup";
|
||||
|
||||
"warning" = "Peringatan";
|
||||
"question_confirm" = "Tindakan ini tidak dapat diurungkan. Apakah kamu yakin ?";
|
||||
|
||||
/* User alerts */
|
||||
|
||||
"user_alert_scam" = "Akun ini telah banyak dilaporkan melakukan penipuan. Berhati-hatilah, terutama jika ia meminta uang.";
|
|
@ -206,7 +206,7 @@
|
|||
"outcoming_req" = "Өтінімдер";
|
||||
"req" = "Өтінімдер";
|
||||
|
||||
"firends_zero" = "Достарыңыз жоқ";
|
||||
"friends_zero" = "Достарыңыз жоқ";
|
||||
"friends_one" = "$1 дос";
|
||||
"friends_other" = "$1 дос";
|
||||
|
||||
|
@ -396,7 +396,9 @@
|
|||
"avatars_style" = "Аватарлардың стилі";
|
||||
"style" = "Стилі";
|
||||
|
||||
"default" = "Ерікті (әдепкі)";
|
||||
"default" = "әдепкі";
|
||||
|
||||
"arbitrary_avatars" = "Ерікті"
|
||||
"cut" = "Шаршы";
|
||||
"round_avatars" = "Дөңгелек";
|
||||
|
||||
|
|
|
@ -79,3 +79,8 @@ list:
|
|||
name: "Udmurtskiy"
|
||||
native_name: "Удмуртский"
|
||||
author: "mohooks"
|
||||
- code: "id"
|
||||
flag: "id"
|
||||
name: "Indonesian"
|
||||
native_name: "Bahasa Indonesia"
|
||||
author: "loliconazter"
|
||||
|
|
|
@ -200,7 +200,7 @@
|
|||
"outcoming_req" = "Zgłoszenie";
|
||||
"req" = "Zgłoszenie";
|
||||
|
||||
"firends_zero" = "Ani jednego przyjaciela";
|
||||
"friends_zero" = "Ani jednego przyjaciela";
|
||||
"friends_one" = "$1 przyjaciel";
|
||||
"friends_few" = "$1 przyjaciela";
|
||||
"friends_many" = "$1 przyjaciół";
|
||||
|
|
|
@ -202,16 +202,28 @@
|
|||
"friends_reject" = "Отменить заявку";
|
||||
"friends_accept" = "Принять заявку";
|
||||
"send_message" = "Отправить сообщение";
|
||||
"incoming_req" = "Подписчики";
|
||||
"outcoming_req" = "Заявки";
|
||||
"incoming_req" = "Входящие";
|
||||
"outcoming_req" = "Исходящие";
|
||||
"req" = "Заявки";
|
||||
|
||||
"firends_zero" = "Ни одного друга";
|
||||
"req_zero" = "Не найдено ни одной заявки...";
|
||||
"req_one" = "Найдена $1 заявка";
|
||||
"req_few" = "Найдено $1 заявки";
|
||||
"req_many" = "Найдено $1 заявки";
|
||||
"req_other" = "Найдено $1 заявок";
|
||||
|
||||
"friends_zero" = "Ни одного друга";
|
||||
"friends_one" = "$1 друг";
|
||||
"friends_few" = "$1 друга";
|
||||
"friends_many" = "$1 друзей";
|
||||
"friends_other" = "$1 друзей";
|
||||
|
||||
"friends_list_zero" = "У Вас пока нет друзей";
|
||||
"friends_list_one" = "У Вас $1 друг";
|
||||
"friends_list_few" = "У Вас $1 друга";
|
||||
"friends_list_many" = "У Вас $1 друзей";
|
||||
"friends_list_other" = "У Вас $1 друзей";
|
||||
|
||||
"followers_zero" = "Ни одного подписчика";
|
||||
"followers_one" = "$1 подписчик";
|
||||
"followers_few" = "$1 подписчика";
|
||||
|
@ -326,6 +338,12 @@
|
|||
"albums_many" = "$1 альбомов";
|
||||
"albums_other" = "$1 альбомов";
|
||||
|
||||
"albums_list_zero" = "У Вас нет ни одного альбома";
|
||||
"albums_list_one" = "У Вас один альбом";
|
||||
"albums_list_few" = "У Вас $1 альбома";
|
||||
"albums_list_many" = "У Вас $1 альбомов";
|
||||
"albums_list_other" = "У Вас $1 альбомов";
|
||||
|
||||
/* Notes */
|
||||
|
||||
"notes" = "Заметки";
|
||||
|
@ -413,7 +431,9 @@
|
|||
"avatars_style" = "Отображение аватаров";
|
||||
"style" = "Стиль";
|
||||
|
||||
"default" = "Произвольные (по умолчанию)";
|
||||
"default" = "по умолчанию";
|
||||
|
||||
"arbitrary_avatars" = "Произвольные";
|
||||
"cut" = "Квадратные";
|
||||
"round_avatars" = "Круглые";
|
||||
|
||||
|
@ -523,6 +543,8 @@
|
|||
"videos_many" = "$1 видеозаписей";
|
||||
"videos_other" = "$1 видеозаписей";
|
||||
|
||||
"view_video" = "Просмотр";
|
||||
|
||||
/* Notifications */
|
||||
|
||||
"feedback" = "Ответы";
|
||||
|
@ -787,7 +809,7 @@
|
|||
"information_-2" = "Вход выполнен успешно";
|
||||
|
||||
"no_data" = "Нет данных";
|
||||
"no_data_description" = "В этом представлении отсутствуют данные.";
|
||||
"no_data_description" = "Тут ничего нет... Пока...";
|
||||
|
||||
"error" = "Ошибка";
|
||||
"error_shorturl" = "Данный короткий адрес уже занят.";
|
||||
|
@ -826,6 +848,7 @@
|
|||
"profile_changed" = "Профиль изменён";
|
||||
"profile_changed_comment" = "Ваш активный профиль был изменён.";
|
||||
"profile_not_found" = "Пользователь не найден.";
|
||||
"profile_not_found_text" = "Страница удалена либо ещё не создана.";
|
||||
|
||||
"suspicious_registration_attempt" = "Подозрительная попытка регистрации";
|
||||
"suspicious_registration_attempt_comment" = "Вы пытались зарегистрироваться из подозрительного места.";
|
||||
|
|
|
@ -190,7 +190,7 @@
|
|||
"outcoming_req" = "Входящіе прошенія";
|
||||
"req" = "Исходящіе прошенія";
|
||||
|
||||
"firends_zero" = "Ни одного знакомца";
|
||||
"friends_zero" = "Ни одного знакомца";
|
||||
"friends_one" = "$1 знакомецъ";
|
||||
"friends_few" = "$1 знакомца";
|
||||
"friends_many" = "$1 знакомцевъ";
|
||||
|
@ -364,7 +364,9 @@
|
|||
"avatars_style" = "Отображеніе портрета";
|
||||
"style" = "Стиль";
|
||||
|
||||
"default" = "Произвольный (по умолчанію)";
|
||||
"default" = "по умолчанію";
|
||||
|
||||
"arbitrary_avatars" = "Произвольные";
|
||||
"cut" = "Квадратные";
|
||||
"round_avatars" = "Круглые";
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@
|
|||
"outcoming_req" = "Захтеви";
|
||||
"req" = "Захтеви";
|
||||
|
||||
"firends_zero" = "Нема ниједног пријатеља";
|
||||
"friends_zero" = "Нема ниједног пријатеља";
|
||||
"friends_one" = "$1 пријатељ";
|
||||
"friends_few" = "$1 пријатеља";
|
||||
"friends_many" = "$1 пријатеља";
|
||||
|
|
|
@ -124,7 +124,7 @@
|
|||
"outcoming_req" = "Zahtevi";
|
||||
"req" = "Zahtevi";
|
||||
|
||||
"firends_zero" = "Nema nijednog prijatelja";
|
||||
"friends_zero" = "Nema nijednog prijatelja";
|
||||
"friends_one" = "$1 prijatelj";
|
||||
"friends_few" = "$1 prijatelja";
|
||||
"friends_many" = "$1 prijatelja";
|
||||
|
|
|
@ -198,7 +198,7 @@
|
|||
"outcoming_req" = "Заявки";
|
||||
"req" = "Заявки";
|
||||
|
||||
"firends_zero" = "Ни одного товарища";
|
||||
"friends_zero" = "Ни одного товарища";
|
||||
"friends_one" = "$1 товарищ";
|
||||
"friends_few" = "$1 товарища";
|
||||
"friends_many" = "$1 товарищей";
|
||||
|
|
|
@ -153,7 +153,7 @@
|
|||
"outcoming_req" = "İstekler";
|
||||
"req" = "İstekler";
|
||||
|
||||
"firends_zero" = "Arkadaş yok";
|
||||
"friends_zero" = "Arkadaş yok";
|
||||
"friends_one" = "$1 arkadaş";
|
||||
"friends_other" = "$1 arkadaş";
|
||||
|
||||
|
|
|
@ -190,7 +190,7 @@
|
|||
"outcoming_req" = "Заявки";
|
||||
"req" = "Заявки";
|
||||
|
||||
"firends_zero" = "Жодного друга";
|
||||
"friends_zero" = "Жодного друга";
|
||||
"friends_one" = "$1 друг";
|
||||
"friends_few" = "$1 друга";
|
||||
"friends_many" = "$1 друзів";
|
||||
|
|
|
@ -196,7 +196,7 @@
|
|||
"outcoming_req" = "Заявки";
|
||||
"req" = "Заявки";
|
||||
|
||||
"firends_zero" = "Одӥг но эшъёс";
|
||||
"friends_zero" = "Одӥг но эшъёс";
|
||||
"friends_one" = "$1 эшъёс";
|
||||
"friends_few" = "$1 эшъёс";
|
||||
"friends_many" = "$1 эшъёс";
|
||||
|
|
Loading…
Reference in a new issue