mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-22 02:47:27 +08:00
attendance card
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Models\Attendance;
|
||||
use App\Repositories\AttendanceRepository;
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class AttendanceCleanup extends Command
|
||||
@@ -33,39 +34,16 @@ class AttendanceCleanup extends Command
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$query = Attendance::query()->groupBy('uid')->selectRaw('uid, max(id) as max_id');
|
||||
$page = 1;
|
||||
$size = 10000;
|
||||
while (true) {
|
||||
$rows = $query->forPage($page, $size)->get();
|
||||
$log = "sql: " . last_query() . ", count: " . $rows->count();
|
||||
do_log($log);
|
||||
$this->info($log);
|
||||
if ($rows->isEmpty()) {
|
||||
$log = "no more data....";
|
||||
do_log($log);
|
||||
$this->info($log);
|
||||
break;
|
||||
}
|
||||
foreach ($rows as $row) {
|
||||
do {
|
||||
$deleted = Attendance::query()
|
||||
->where('uid', $row->uid)
|
||||
->where('id', '<', $row->max_id)
|
||||
->limit(10000)
|
||||
->delete();
|
||||
$log = "delete: $deleted by sql: " . last_query();
|
||||
do_log($log);
|
||||
$this->info($log);
|
||||
} while ($deleted > 0);
|
||||
}
|
||||
$page++;
|
||||
}
|
||||
return 0;
|
||||
$rep = new AttendanceRepository();
|
||||
$result = $rep->cleanup();
|
||||
$log = sprintf(
|
||||
'[%s], %s, result: %s',
|
||||
nexus()->getRequestId(), __METHOD__, var_export($result, true)
|
||||
);
|
||||
$this->info($log);
|
||||
do_log($log);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,21 +70,21 @@ class Test extends Command
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$searchRep = new SearchRepository();
|
||||
$r = $searchRep->deleteIndex();
|
||||
$r = $searchRep->createIndex();
|
||||
$r = $searchRep->import();
|
||||
|
||||
$arr = [
|
||||
'cat' => 'category',
|
||||
'source' => 'source',
|
||||
'medium' => 'medium',
|
||||
'codec' => 'codec',
|
||||
'audiocodec' => 'audiocodec',
|
||||
'standard' => 'standard',
|
||||
'processing' => 'processing',
|
||||
'team' => 'team',
|
||||
];
|
||||
// $searchRep = new SearchRepository();
|
||||
// $r = $searchRep->deleteIndex();
|
||||
// $r = $searchRep->createIndex();
|
||||
// $r = $searchRep->import();
|
||||
//
|
||||
// $arr = [
|
||||
// 'cat' => 'category',
|
||||
// 'source' => 'source',
|
||||
// 'medium' => 'medium',
|
||||
// 'codec' => 'codec',
|
||||
// 'audiocodec' => 'audiocodec',
|
||||
// 'standard' => 'standard',
|
||||
// 'processing' => 'processing',
|
||||
// 'team' => 'team',
|
||||
// ];
|
||||
$queryString = 'cat401=1&cat404=1&source2=1&medium2=1&medium3=1&codec3=1&audiocodec3=1&standard2=1&standard3=1&processing2=1&team3=1&team4=1&incldead=1&spstate=0&inclbookmarked=0&search=&search_area=0&search_mode=0';
|
||||
$userSetting = '[cat401][cat404][sou1][med1][cod1][sta2][sta3][pro2][tea2][aud2][incldead=0][spstate=3][inclbookmarked=2]';
|
||||
// foreach ($arr as $queryField => $value) {
|
||||
@@ -116,6 +116,11 @@ class Test extends Command
|
||||
// $r = $searchRep->deleteBookmark(1);
|
||||
// $r = $searchRep->addBookmark(1);
|
||||
|
||||
$rep = new AttendanceRepository();
|
||||
$uid = 1;
|
||||
$attendance = $rep->getAttendance($uid);
|
||||
// $r = $rep->migrateAttendanceLogs($uid);
|
||||
$r = $rep->getContinuousDays($attendance);
|
||||
dd($r);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,4 +21,10 @@ class Attendance extends NexusModel
|
||||
30 => 1000
|
||||
];
|
||||
|
||||
|
||||
public function logs(): \Illuminate\Database\Eloquent\Relations\HasMany
|
||||
{
|
||||
return $this->hasMany(AttendanceLog::class, 'uid', 'uid');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
class AttendanceLog extends NexusModel
|
||||
{
|
||||
protected $table = 'attendance_logs';
|
||||
|
||||
protected $fillable = ['uid', 'points', 'date', 'is_retroactive'];
|
||||
|
||||
public $timestamps = true;
|
||||
|
||||
}
|
||||
+1
-1
@@ -41,7 +41,7 @@ class User extends Authenticatable
|
||||
const CLASS_SYSOP = "15";
|
||||
const CLASS_STAFF_LEADER = "16";
|
||||
|
||||
public static $classes = [
|
||||
public static array $classes = [
|
||||
self::CLASS_PEASANT => ['text' => 'Peasant'],
|
||||
self::CLASS_USER => ['text' => 'User', 'min_seed_points' => 0],
|
||||
self::CLASS_POWER_USER => ['text' => 'Power User', 'min_seed_points' => 40000],
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
namespace App\Repositories;
|
||||
|
||||
use App\Models\Attendance;
|
||||
use App\Models\AttendanceLog;
|
||||
use App\Models\Setting;
|
||||
use App\Models\User;
|
||||
use Carbon\Carbon;
|
||||
@@ -16,9 +17,6 @@ class AttendanceRepository extends BaseRepository
|
||||
$today = Carbon::today();
|
||||
$settings = Setting::get('bonus');
|
||||
$initialBonus = $settings['attendance_initial'] ?? Attendance::INITIAL_BONUS;
|
||||
$stepBonus = $settings['attendance_step'] ?? Attendance::STEP_BONUS;
|
||||
$maxBonus = $settings['attendance_max'] ?? Attendance::MAX_BONUS;
|
||||
$continuousBonus = $settings['attendance_continuous'] ?? Attendance::CONTINUOUS_BONUS;
|
||||
$isUpdated = 1;
|
||||
$initialData = [
|
||||
'uid' => $uid,
|
||||
@@ -43,11 +41,12 @@ class AttendanceRepository extends BaseRepository
|
||||
if ($diffDays == 1) {
|
||||
//yesterday do it, it's continuous
|
||||
do_log("[CONTINUOUS]");
|
||||
$points = $this->getContinuousPoints($initialBonus, $stepBonus, $attendance->days, $maxBonus, $continuousBonus);
|
||||
$continuousDays = $this->getContinuousDays($attendance);
|
||||
$points = $this->getContinuousPoints($continuousDays);
|
||||
$update = [
|
||||
'added' => $now,
|
||||
'points' => $points,
|
||||
'days' => $attendance->days + 1,
|
||||
'days' => $continuousDays + 1,
|
||||
'total_days' => $attendance->total_days + 1,
|
||||
];
|
||||
} else {
|
||||
@@ -61,6 +60,12 @@ class AttendanceRepository extends BaseRepository
|
||||
}
|
||||
if ($isUpdated) {
|
||||
User::query()->where('id', $uid)->increment('seedbonus', $update['points']);
|
||||
$attendanceLog = [
|
||||
'uid' => $attendance->uid,
|
||||
'points' => $update['points'],
|
||||
'date' => $now->format('Y-m-d'),
|
||||
];
|
||||
AttendanceLog::query()->insert($attendanceLog);
|
||||
}
|
||||
$attendance->added_time = $now->toTimeString();
|
||||
$attendance->is_updated = $isUpdated;
|
||||
@@ -81,8 +86,13 @@ class AttendanceRepository extends BaseRepository
|
||||
return $query->first();
|
||||
}
|
||||
|
||||
private function getContinuousPoints($initial, $step, $days, $max, $extraAwards)
|
||||
private function getContinuousPoints($days)
|
||||
{
|
||||
$settings = Setting::get('bonus');
|
||||
$initial = $settings['attendance_initial'] ?? Attendance::INITIAL_BONUS;
|
||||
$step = $settings['attendance_step'] ?? Attendance::STEP_BONUS;
|
||||
$max = $settings['attendance_max'] ?? Attendance::MAX_BONUS;
|
||||
$extraAwards = $settings['attendance_continuous'] ?? Attendance::CONTINUOUS_BONUS;
|
||||
$points = min($initial + $days * $step, $max);
|
||||
krsort($extraAwards);
|
||||
foreach ($extraAwards as $key => $value) {
|
||||
@@ -94,6 +104,11 @@ class AttendanceRepository extends BaseRepository
|
||||
return $points;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将旧的 1 人 1 天 1 条迁移到新版 1 人一条
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function migrateAttendance(): int
|
||||
{
|
||||
$page = 1;
|
||||
@@ -137,4 +152,174 @@ class AttendanceRepository extends BaseRepository
|
||||
|
||||
return count($idArr);
|
||||
}
|
||||
|
||||
/**
|
||||
* 清理签到记录,每人只保留一条
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function cleanup(): int
|
||||
{
|
||||
$query = Attendance::query()->groupBy('uid')->havingRaw("count(*) > 1")->selectRaw('uid, max(id) as max_id');
|
||||
$page = 1;
|
||||
$size = 10000;
|
||||
$deleteCounts = 0;
|
||||
while (true) {
|
||||
$rows = $query->forPage($page, $size)->get();
|
||||
$log = "sql: " . last_query() . ", count: " . $rows->count();
|
||||
do_log($log, 'info', app()->runningInConsole());
|
||||
if ($rows->isEmpty()) {
|
||||
$log = "no more data....";
|
||||
do_log($log, 'info', app()->runningInConsole());
|
||||
break;
|
||||
}
|
||||
foreach ($rows as $row) {
|
||||
do {
|
||||
$deleted = Attendance::query()
|
||||
->where('uid', $row->uid)
|
||||
->where('id', '<', $row->max_id)
|
||||
->limit(10000)
|
||||
->delete();
|
||||
$log = "delete: $deleted by sql: " . last_query();
|
||||
$deleteCounts += $deleted;
|
||||
do_log($log, 'info', app()->runningInConsole());
|
||||
} while ($deleted > 0);
|
||||
}
|
||||
$page++;
|
||||
}
|
||||
return $deleteCounts;
|
||||
}
|
||||
|
||||
/**
|
||||
* 为 1.7 新的补签功能回写当前连续签到记录
|
||||
*
|
||||
* @param int $uid
|
||||
* @return int
|
||||
*/
|
||||
public function migrateAttendanceLogs($uid = 0): int
|
||||
{
|
||||
$cleanUpCounts = $this->cleanup();
|
||||
do_log("cleanup count: $cleanUpCounts", 'info', app()->runningInConsole());
|
||||
|
||||
$page = 1;
|
||||
$size = 10000;
|
||||
$insert = [];
|
||||
$table = 'attendance_logs';
|
||||
while (true) {
|
||||
$logPrefix = "[MIGRATE_ATTENDANCE_LOGS], page: $page, size: $size";
|
||||
$query = Attendance::query()
|
||||
->where('added', '>=', Carbon::yesterday())
|
||||
->forPage($page, $size);
|
||||
if ($uid) {
|
||||
$query->where('uid', $uid);
|
||||
}
|
||||
$result = $query->get();
|
||||
do_log("$logPrefix, " . last_query() . ", count: " . $result->count(), 'info', app()->runningInConsole());
|
||||
if ($result->isEmpty()) {
|
||||
do_log("$logPrefix, no more data...");
|
||||
break;
|
||||
}
|
||||
foreach ($result as $row) {
|
||||
$interval =\DateInterval::createFromDateString("-1 day");
|
||||
$period = new \DatePeriod($row->added->addDay(1), $interval, $row->days, \DatePeriod::EXCLUDE_START_DATE);
|
||||
$i = 0;
|
||||
foreach ($period as $periodValue) {
|
||||
$insert[] = [
|
||||
'uid' => $row->uid,
|
||||
'points' => ($i == 0 ? $row->points : 0),
|
||||
'date' => $periodValue->format('Y-m-d'),
|
||||
];
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$page++;
|
||||
}
|
||||
if (empty($insert)) {
|
||||
do_log("no data to insert...", 'info', app()->runningInConsole());
|
||||
return 0;
|
||||
}
|
||||
NexusDB::table($table)->insert($insert);
|
||||
$insertCount = count($insert);
|
||||
do_log("[MIGRATE_ATTENDANCE_LOGS] DONE! insert count: " . $insertCount, 'info', app()->runningInConsole());
|
||||
|
||||
return $insertCount;
|
||||
}
|
||||
|
||||
public function getContinuousDays(Attendance $attendance, $start = ''): int
|
||||
{
|
||||
if (!empty($start)) {
|
||||
$start = Carbon::parse($start);
|
||||
} else {
|
||||
$start = $attendance->added;
|
||||
}
|
||||
$logQuery = $attendance->logs()->where('created_at', '<=', $start)->orderBy('date', 'desc');
|
||||
$attendanceLogs = $logQuery->get(['date'])->keyBy('date');
|
||||
$counts = $attendanceLogs->count();
|
||||
do_log(sprintf('user: %s, log counts: %s from query: %s', $attendance->uid, $counts, last_query()));
|
||||
if ($counts == 0) {
|
||||
return 0;
|
||||
}
|
||||
$interval =\DateInterval::createFromDateString("-1 day");
|
||||
$period = new \DatePeriod($start->clone()->addDay(1), $interval, $counts, \DatePeriod::EXCLUDE_START_DATE);
|
||||
$days = 0;
|
||||
foreach ($period as $value) {
|
||||
$checkDate = $value->format('Y-m-d');
|
||||
if ($attendanceLogs->has($checkDate)) {
|
||||
$days++;
|
||||
do_log(sprintf('user: %s, date: %s, has attendance, now days: %s', $attendance->uid, $checkDate, $days));
|
||||
} else {
|
||||
do_log(sprintf('user: %s, date: %s, not attendance, now days: %s', $attendance->uid, $checkDate, $days));
|
||||
break;
|
||||
}
|
||||
}
|
||||
return $days;
|
||||
|
||||
}
|
||||
|
||||
public function retroactive($user, $timestampMs)
|
||||
{
|
||||
if (!$user instanceof User) {
|
||||
$user = User::query()->findOrFail((int)$user);
|
||||
}
|
||||
$attendance = $this->getAttendance($user->id);
|
||||
if (!$attendance) {
|
||||
throw new \LogicException("Haven't attendance yet");
|
||||
}
|
||||
$date = Carbon::createFromTimestampMs($timestampMs);
|
||||
return NexusDB::transaction(function () use ($user, $attendance, $date) {
|
||||
if (AttendanceLog::query()->where('uid', $user->id)->where('date', $date->format('Y-m-d'))->exists()) {
|
||||
throw new \RuntimeException("Already attendance");
|
||||
}
|
||||
if ($user->attendance_card < 1) {
|
||||
throw new \RuntimeException("Attendance card not enough");
|
||||
}
|
||||
$log = sprintf('user: %s, card: %s, retroactive date: %s', $user->id, $user->attendance_card, $date->format('Y-m-d'));
|
||||
$continuousDays = $this->getContinuousDays($attendance, $date->clone()->subDay(1));
|
||||
$log .= ", continuousDays: $continuousDays";
|
||||
$points = $this->getContinuousPoints($continuousDays);
|
||||
$log .= ", points: $points";
|
||||
do_log($log);
|
||||
$userUpdates = [
|
||||
'attendance_card' => NexusDB::raw('attendance_card - 1'),
|
||||
'seedbonus' => NexusDB::raw("seedbonus + $points"),
|
||||
];
|
||||
$affectedRows = User::query()
|
||||
->where('id', $user->id)
|
||||
->where('attendance_card', $user->attendance_card)
|
||||
->update($userUpdates);
|
||||
$msg = "Decrement user attendance_card and increment bonus";
|
||||
if ($affectedRows != 1) {
|
||||
do_log("$msg fail, query: " . last_query());
|
||||
throw new \RuntimeException("$msg fail");
|
||||
}
|
||||
do_log("$msg success, query: " . last_query());
|
||||
$insert = [
|
||||
'uid' => $user->id,
|
||||
'points' => $points,
|
||||
'date' => $date,
|
||||
'is_retroactive' => 1,
|
||||
];
|
||||
return AttendanceLog::query()->create($insert);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,6 +71,9 @@ class SearchRepository extends BaseRepository
|
||||
//tag
|
||||
'tag_id' => ['type' => 'long', ],
|
||||
|
||||
//use for category.mode
|
||||
'mode' => ['type' => 'long', ],
|
||||
|
||||
//relations
|
||||
'torrent_relations' => [
|
||||
'type' => 'join',
|
||||
@@ -194,7 +197,7 @@ class SearchRepository extends BaseRepository
|
||||
$fields = $this->getTorrentBaseFields();
|
||||
array_unshift($fields, 'id');
|
||||
$query = Torrent::query()
|
||||
->with(['user', 'torrent_tags', 'bookmarks'])
|
||||
->with(['user', 'torrent_tags', 'bookmarks', 'basic_category'])
|
||||
->select($fields);
|
||||
if (!is_null($torrentId)) {
|
||||
$idArr = preg_split('/[,\s]+/', $torrentId);
|
||||
@@ -299,6 +302,7 @@ class SearchRepository extends BaseRepository
|
||||
'routing' => $torrent->owner,
|
||||
];
|
||||
$data = Arr::only($torrent->toArray(), $baseFields);
|
||||
$data['mode'] = $torrent->basic_category->mode;
|
||||
$body = array_merge($data, [
|
||||
'_doc_type' => $docType,
|
||||
'torrent_id' => $torrent->id,
|
||||
@@ -433,6 +437,9 @@ class SearchRepository extends BaseRepository
|
||||
$must = $must_not = [];
|
||||
$mustBoolShould = [];
|
||||
$must[] = ['match' => ['_doc_type' => self::DOC_TYPE_TORRENT]];
|
||||
if (!empty($params['mode'])) {
|
||||
$must[] = ['match' => ['mode' => $params['mode']]];
|
||||
}
|
||||
|
||||
foreach (self::$queryFieldToTorrentFieldMaps as $queryField => $torrentField) {
|
||||
if (isset($params[$queryField]) && $params[$queryField] !== '') {
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('attendance_logs', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->integer('uid')->index();
|
||||
$table->integer('points');
|
||||
$table->date('date')->index();
|
||||
$table->smallInteger('is_retroactive')->default(0);
|
||||
$table->dateTime('created_at')->useCurrent();
|
||||
$table->dateTime('updated_at')->useCurrent()->useCurrentOnUpdate();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('attendance_logs');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->integer('attendance_card')->default(0);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->dropColumn('attendance_card');
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -2375,6 +2375,11 @@ if ($CURUSER){
|
||||
<script type="text/javascript" src="domTT.js<?php echo $cssupdatedate?>"></script>
|
||||
<script type="text/javascript" src="domTT_drag.js<?php echo $cssupdatedate?>"></script>
|
||||
<script type="text/javascript" src="fadomatic.js<?php echo $cssupdatedate?>"></script>
|
||||
<?php
|
||||
foreach (\Nexus\Nexus::getAppendHeaders() as $value) {
|
||||
print($value);
|
||||
}
|
||||
?>
|
||||
<script type="text/javascript" src="jquery-1.12.4.min.js<?php echo $cssupdatedate?>"></script>
|
||||
<script type="text/javascript">jQuery.noConflict();</script>
|
||||
</head>
|
||||
@@ -2490,7 +2495,7 @@ else {
|
||||
<?php if (get_user_class() >= UC_SYSOP) { ?> [<a href="settings.php"><?php echo $lang_functions['text_site_settings'] ?></a>]<?php } ?>
|
||||
[<a href="torrents.php?inclbookmarked=1&allsec=1&incldead=0"><?php echo $lang_functions['text_bookmarks'] ?></a>]
|
||||
<font class = 'color_bonus'><?php echo $lang_functions['text_bonus'] ?></font>[<a href="mybonus.php"><?php echo $lang_functions['text_use'] ?></a>]: <?php echo number_format($CURUSER['seedbonus'], 1)?>
|
||||
<?php if($attendance){ printf(' '.$lang_functions['text_attended'], $attendance->points); }else{ printf(' <a href="attendance.php" class="faqlink">%s</a>', $lang_functions['text_attendance']);}?>
|
||||
<?php if($attendance){ printf(' <a href="attendance.php" class="">'.$lang_functions['text_attended'].'</a>', $attendance->points, $CURUSER['attendance_card']); }else{ printf(' <a href="attendance.php" class="faqlink">%s</a>', $lang_functions['text_attendance']);}?>
|
||||
<font class = 'color_bonus'><?php echo $lang_functions['text_seed_points'] ?></font>: <?php echo number_format($CURUSER['seed_points'], 1)?>
|
||||
<font class = 'color_invite'><?php echo $lang_functions['text_invite'] ?></font>[<a href="invite.php?id=<?php echo $CURUSER['id']?>"><?php echo $lang_functions['text_send'] ?></a>]: <?php echo $CURUSER['invites']?>
|
||||
<br />
|
||||
@@ -2699,6 +2704,9 @@ function stdfoot() {
|
||||
print("</div>");
|
||||
if ($analyticscode_tweak)
|
||||
print("\n".$analyticscode_tweak."\n");
|
||||
foreach (\Nexus\Nexus::getAppendFooters() as $value) {
|
||||
print($value);
|
||||
}
|
||||
print("</body></html>");
|
||||
|
||||
//echo replacePngTags(ob_get_clean());
|
||||
|
||||
@@ -10,4 +10,7 @@ $lang_attendance = array
|
||||
'continuous' => "连续签到 %u 天后,每次签到额外获得 %u 魔力值(不累计)。",
|
||||
'sorry' => "抱歉",
|
||||
'already_attended' => "您今天已经签到过了,请勿重复刷新。",
|
||||
'retroactive_event_text' => '补',
|
||||
'retroactive_confirm_tip' => '确定要补签: ',
|
||||
'retroactive_description' => '点击白色背景的圆点进行补签。你目前拥有补签卡 <b>%d</b> 张。',
|
||||
);
|
||||
|
||||
@@ -296,7 +296,7 @@ $lang_functions = array
|
||||
'text_please_download_something_within' => "请在",
|
||||
'text_inactive_account_be_deleted' => "内做些下载。没有流量的用户会被删除账号。",
|
||||
'text_attendance' => '签到得魔力',
|
||||
'text_attended' => '(签到已得%u)',
|
||||
'text_attended' => '(签到已得%u, 补签卡:%d)',
|
||||
'row_pt_gen_douban_url' => "PT-Gen douban 链接",
|
||||
'text_pt_gen_douban_url_note' => "(来自 <strong><a href=\"https://www.douban.com/\">douban</a></strong> 的链接。如电影 <b>Transformers</b> 的链接是<b> https://movie.douban.com/subject/1794171/</b>)",
|
||||
'row_pt_gen_imdb_url' => "PT-Gen imdb 链接",
|
||||
|
||||
@@ -298,7 +298,7 @@ $lang_functions = array
|
||||
'text_please_download_something_within' => "請在",
|
||||
'text_inactive_account_be_deleted' => "內做些下載。沒有流量的用戶會被移除賬號。",
|
||||
'text_attendance' => '簽到得魔力',
|
||||
'text_attended' => '(簽到已得%u)',
|
||||
'text_attended' => '(簽到已得%u, 補簽卡:%d)',
|
||||
'text_pt_gen_douban_url_note' => "(來自 <strong><a href=\"https://www.douban.com/\">douban</a></strong> 的鏈接。如電影 <b>Transformers</b> 的鏈接是<b> https://movie.douban.com/subject/1794171/</b>)",
|
||||
'row_pt_gen_imdb_url' => "PT-Gen imdb 鏈接",
|
||||
'text_pt_gen_imdb_url_note' => "(來自 <strong><a href=\"https://www.imdb.com//\">imdb</a></strong> 的鏈接。如電影 <b>Transformers</b> 的鏈接是<b> https://www.imdb.com/title/tt0418279/</b>)",
|
||||
|
||||
@@ -298,7 +298,7 @@ $lang_functions = array
|
||||
'text_please_download_something_within' => "Please download something within ",
|
||||
'text_inactive_account_be_deleted' => ". Inactive accounts (with no transfer amount) will be deleted.",
|
||||
'text_attendance' => 'Attend get bouns',
|
||||
'text_attended' => '(Attend got bouns %u)',
|
||||
'text_attended' => '(Attend got bouns %u, card:%d)',
|
||||
'row_pt_gen_douban_url' => "PT-Gen douban link",
|
||||
'text_pt_gen_douban_url_note' => "(URL taken from <strong><a href=\"https://www.douban.com/\">douban</a></strong>. e.g. for movie <b>Transformers</b> the URL is <b> https://movie.douban.com/subject/1794171//</b>)",
|
||||
'row_pt_gen_imdb_url' => "PT-Gen imdb link",
|
||||
|
||||
@@ -198,6 +198,19 @@ class Update extends Install
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 1.7.0
|
||||
*
|
||||
* add attendance_card to users
|
||||
*/
|
||||
if (WITH_LARAVEL && !NexusDB::schema()->hasColumn('users', 'attendance_card')) {
|
||||
$this->runMigrate('database/migrations/2022_04_02_163930_create_attendance_logs_table.php');
|
||||
$this->runMigrate('database/migrations/2022_04_03_041642_add_attendance_card_to_users_table.php');
|
||||
$rep = new AttendanceRepository();
|
||||
$count = $rep->migrateAttendanceLogs();
|
||||
$this->doLog("[ADD_ATTENDANCE_CARD_TO_USERS], migrateAttendanceLogs: $count");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function runExtraMigrate()
|
||||
|
||||
@@ -17,6 +17,10 @@ final class Nexus
|
||||
|
||||
private static ?Nexus $instance = null;
|
||||
|
||||
private static array $appendHeaders = [];
|
||||
|
||||
private static array $appendFooters = [];
|
||||
|
||||
const PLATFORM_USER = 'user';
|
||||
const PLATFORM_ADMIN = 'admin';
|
||||
const PLATFORM_TRACKER = 'tracker';
|
||||
@@ -179,5 +183,48 @@ final class Nexus
|
||||
$this->platform = $platform;
|
||||
}
|
||||
|
||||
public static function js(string $js, string $position, bool $isFile)
|
||||
{
|
||||
if ($isFile) {
|
||||
$append = sprintf('<script type="text/javascript" src="%s"></script>', $js);
|
||||
} else {
|
||||
$append = sprintf('<script type="text/javascript">%s</script>', $js);
|
||||
}
|
||||
if ($position == 'header') {
|
||||
self::$appendHeaders[] = $append;
|
||||
} elseif ($position == 'footer') {
|
||||
self::$appendFooters[] = $append;
|
||||
} else {
|
||||
throw new \InvalidArgumentException("Invalid position: $position");
|
||||
}
|
||||
}
|
||||
|
||||
public static function css(string $css, string $position, bool $isFile)
|
||||
{
|
||||
if ($isFile) {
|
||||
$append = sprintf('<link rel="stylesheet" href="%s" type="text/css">', $css);
|
||||
} else {
|
||||
$append = sprintf('<style type="text/css">%s</style>', $css);
|
||||
}
|
||||
if ($position == 'header') {
|
||||
self::$appendHeaders[] = $append;
|
||||
} elseif ($position == 'footer') {
|
||||
self::$appendFooters[] = $append;
|
||||
} else {
|
||||
throw new \InvalidArgumentException("Invalid position: $position");
|
||||
}
|
||||
}
|
||||
|
||||
public static function getAppendHeaders(): array
|
||||
{
|
||||
return self::$appendHeaders;
|
||||
}
|
||||
|
||||
public static function getAppendFooters(): array
|
||||
{
|
||||
return self::$appendFooters;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -27,3 +27,10 @@ function toggleUserMedalStatus($params)
|
||||
}
|
||||
|
||||
|
||||
function attendanceRetroactive($params)
|
||||
{
|
||||
global $CURUSER;
|
||||
$rep = new \App\Repositories\AttendanceRepository();
|
||||
return $rep->retroactive($CURUSER['id'], $params['timestamp']);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
require "../include/bittorrent.php";
|
||||
dbconn();
|
||||
loggedinorreturn();
|
||||
if (get_user_class() < UC_SYSOP)
|
||||
stderr("Sorry", "Access denied.");
|
||||
stdhead("Add Attendance card", false);
|
||||
$allClass = array_chunk(\App\Models\User::$classes, 4, true);
|
||||
?>
|
||||
<table class=main width=737 border=0 cellspacing=0 cellpadding=0><tr><td class=embedded>
|
||||
<div align=center>
|
||||
<h1>Add attendance card to all staff members and users:</a></h1>
|
||||
<form method=post action=<?php echo $_SERVER['PHP_SELF']?>>
|
||||
<?php
|
||||
|
||||
if (isset($_GET["returnto"]) || $_SERVER["HTTP_REFERER"])
|
||||
{
|
||||
?>
|
||||
<input type=hidden name=returnto value="<?php echo htmlspecialchars($_GET["returnto"]) ? htmlspecialchars($_GET["returnto"]) : htmlspecialchars($_SERVER["HTTP_REFERER"])?>">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<table cellspacing=0 cellpadding=5>
|
||||
<?php
|
||||
if (isset($_GET["sent"]) && $_GET["sent"] == 1) {
|
||||
?>
|
||||
<tr><td colspan=2 class="text" align="center"><font color=red><b>Upload amount has been added and inform message has been sent.</font></b></tr></td>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<tr><td class="rowhead" valign="top">Amount </td><td class="rowfollow"><input type=number name=amount size=10></td></tr>
|
||||
<tr>
|
||||
<td class="rowhead" valign="top">Add to</td><td class="rowfollow">
|
||||
<table style="border: 0" width="100%" cellpadding="0" cellspacing="0">
|
||||
<?php foreach ($allClass as $bulk) {?>
|
||||
<tr>
|
||||
<?php foreach ($bulk as $key => $value) {?>
|
||||
<td style="border: 0" width="20"><input type="checkbox" name="clases[]" value="<?php echo $key?>">
|
||||
</td>
|
||||
<td style="border: 0"><?php echo $value['text'] ?></td>
|
||||
<?php }?>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="rowhead" valign="top">Subject </td><td class="rowfollow"><input type=text name=subject size=82></td></tr>
|
||||
<tr><td class="rowhead" valign="top">Reason </td><td class="rowfollow"><textarea name=msg cols=80 rows=5><?php echo $body ?? ''?></textarea></td></tr>
|
||||
<tr>
|
||||
<td class="rowfollow" colspan=2><div align="center"><b>Operator: </b>
|
||||
<?php echo $CURUSER['username']?>
|
||||
<input name="sender" type="radio" value="self" checked>
|
||||
System
|
||||
<input name="sender" type="radio" value="system">
|
||||
</div></td></tr>
|
||||
<tr><td class="rowfollow" colspan=2 align=center><input type=submit value="Do It!" class=btn></td></tr>
|
||||
</table>
|
||||
<input type=hidden name=receiver value=<?php echo $receiver ?? ''?>>
|
||||
</form>
|
||||
|
||||
</div></td></tr></table>
|
||||
<br />
|
||||
NOTE: Do not use BB codes. (NO HTML)
|
||||
<?php
|
||||
stdfoot();
|
||||
+84
-6
@@ -28,18 +28,96 @@ parked();
|
||||
// stderr($lang_attendance['sorry'], $lang_attendance['already_attended']);
|
||||
//}
|
||||
|
||||
\Nexus\Nexus::css('vendor/fullcalendar-5.10.2/main.min.css', 'header', true);
|
||||
\Nexus\Nexus::js('vendor/fullcalendar-5.10.2/main.min.js', 'footer', true);
|
||||
\Nexus\Nexus::js('vendor/fullcalendar-5.10.2/locales/zh-cn.js', 'footer', true);
|
||||
|
||||
$today = \Carbon\Carbon::today();
|
||||
$tomorrow = \Carbon\Carbon::tomorrow();
|
||||
$end = $today->clone()->endOfMonth();
|
||||
$start = $today->clone()->subMonth(2);
|
||||
$rep = new \App\Repositories\AttendanceRepository();
|
||||
$result = $rep->attend($CURUSER['id']);
|
||||
if ($result->is_updated) {
|
||||
$count = $result->total_days;
|
||||
$cdays = $result->days;
|
||||
$points = $result->points;
|
||||
$attendance = $rep->attend($CURUSER['id']);
|
||||
$logs = $attendance->logs()->where('date', '>=', $start->format('Y-m-d'))->get()->keyBy('date');
|
||||
$interval = new \DateInterval('P1D');
|
||||
$period = new \DatePeriod($start, $interval, $end);
|
||||
$events = [];
|
||||
foreach ($period as $value) {
|
||||
if ($value->gte($tomorrow)) {
|
||||
continue;
|
||||
}
|
||||
$checkDate = $value->format('Y-m-d');
|
||||
$eventBase = ['start' => $checkDate, 'end' => $checkDate];
|
||||
if ($logs->has($checkDate)) {
|
||||
$logValue = $logs->get($checkDate);
|
||||
$events[] = array_merge($eventBase, ['display' => 'background']);
|
||||
if ($logValue->points > 0) {
|
||||
$events[] = array_merge($eventBase, ['title' => $logValue->points]);
|
||||
}
|
||||
if ($logValue->is_retroactive) {
|
||||
$events[] = array_merge($eventBase, ['title' => $lang_attendance['retroactive_event_text'], 'display' => 'list-item']);
|
||||
}
|
||||
} else {
|
||||
$events[] = array_merge($eventBase, ['groupId' => 'to_do', 'display' => 'list-item']);
|
||||
}
|
||||
}
|
||||
$eventStr = json_encode($events);
|
||||
$validRangeStr = json_encode(['start' => $start->format('Y-m-d'), 'end' => $end->format('Y-m-d')]);
|
||||
|
||||
$js = <<<EOP
|
||||
let events = JSON.parse('$eventStr')
|
||||
let validRange = JSON.parse('$validRangeStr')
|
||||
let confirmText = "{$lang_attendance['retroactive_confirm_tip']}"
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var calendarEl = document.getElementById('calendar');
|
||||
var calendar = new FullCalendar.Calendar(calendarEl, {
|
||||
initialView: 'dayGridMonth',
|
||||
locale: 'zh-cn',
|
||||
events: events,
|
||||
validRange: validRange,
|
||||
eventClick: function(info) {
|
||||
console.log(info.event);
|
||||
if (info.event.groupId == 'to_do') {
|
||||
retroactive(info.event.start)
|
||||
}
|
||||
}
|
||||
});
|
||||
calendar.render();
|
||||
});
|
||||
|
||||
function retroactive(start) {
|
||||
let year = start.getFullYear()
|
||||
let month = start.getMonth() + 1
|
||||
let day = start.getDate()
|
||||
let date = year + '-' + month + '-' + day
|
||||
if (!window.confirm(confirmText + date + ' ?')) {
|
||||
console.log("cancel")
|
||||
return
|
||||
}
|
||||
jQuery.post('ajax.php', {params: {timestamp: start.getTime()}, action: 'attendanceRetroactive'}, function (response) {
|
||||
console.log(response);
|
||||
if (response.ret != 0) {
|
||||
alert(response.msg)
|
||||
} else {
|
||||
location.reload();
|
||||
}
|
||||
}, 'json')
|
||||
}
|
||||
EOP;
|
||||
|
||||
\Nexus\Nexus::js($js, 'footer', false);
|
||||
|
||||
if (1) {
|
||||
$count = $attendance->total_days;
|
||||
$cdays = $attendance->days;
|
||||
$points = $attendance->points;
|
||||
|
||||
stdhead($lang_attendance['title']);
|
||||
begin_main_frame();
|
||||
begin_frame($lang_attendance['success']);
|
||||
printf('<p>'.$lang_attendance['attend_info'].'</p>', $count, $cdays, $points);
|
||||
printf('<p>'.$lang_attendance['attend_info'].$lang_attendance['retroactive_description'].'</p>', $count, $cdays, $points, $CURUSER['attendance_card']);
|
||||
end_frame();
|
||||
echo '<div style="display: flex;justify-content: center;padding: 20px 0"><div id="calendar" style="width: 60%"></div></div>';
|
||||
echo '<ul>';
|
||||
printf('<li>'.$lang_attendance['initial'].'</li>', $attendance_initial_bonus);
|
||||
printf('<li>'.$lang_attendance['steps'].'</li>', $attendance_step_bonus, $attendance_max_bonus);
|
||||
|
||||
+3
-1
@@ -850,7 +850,9 @@ else
|
||||
|
||||
if ($elasticsearchEnabled) {
|
||||
$searchRep = new \App\Repositories\SearchRepository();
|
||||
$resultFromElastic = $searchRep->listTorrentFromEs($_GET, $CURUSER['id'], $_SERVER['QUERY_STRING']);
|
||||
$esParams = $_GET;
|
||||
$esParams['mode'] = $sectiontype;
|
||||
$resultFromElastic = $searchRep->listTorrentFromEs($esParams, $CURUSER['id'], $_SERVER['QUERY_STRING']);
|
||||
$count = $resultFromElastic['total'];
|
||||
} else {
|
||||
$res = sql_query($sql);
|
||||
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var af = {
|
||||
code: 'af',
|
||||
week: {
|
||||
dow: 1, // Maandag is die eerste dag van die week.
|
||||
doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Vorige',
|
||||
next: 'Volgende',
|
||||
today: 'Vandag',
|
||||
year: 'Jaar',
|
||||
month: 'Maand',
|
||||
week: 'Week',
|
||||
day: 'Dag',
|
||||
list: 'Agenda',
|
||||
},
|
||||
allDayText: 'Heeldag',
|
||||
moreLinkText: 'Addisionele',
|
||||
noEventsText: 'Daar is geen gebeurtenisse nie',
|
||||
};
|
||||
|
||||
return af;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arDz = {
|
||||
code: 'ar-dz',
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arDz;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arKw = {
|
||||
code: 'ar-kw',
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arKw;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arLy = {
|
||||
code: 'ar-ly',
|
||||
week: {
|
||||
dow: 6, // Saturday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arLy;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arMa = {
|
||||
code: 'ar-ma',
|
||||
week: {
|
||||
dow: 6, // Saturday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arMa;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arSa = {
|
||||
code: 'ar-sa',
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 6, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arSa;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arTn = {
|
||||
code: 'ar-tn',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arTn;
|
||||
|
||||
}());
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ar = {
|
||||
code: 'ar',
|
||||
week: {
|
||||
dow: 6, // Saturday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return ar;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var az = {
|
||||
code: 'az',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Əvvəl',
|
||||
next: 'Sonra',
|
||||
today: 'Bu Gün',
|
||||
month: 'Ay',
|
||||
week: 'Həftə',
|
||||
day: 'Gün',
|
||||
list: 'Gündəm',
|
||||
},
|
||||
weekText: 'Həftə',
|
||||
allDayText: 'Bütün Gün',
|
||||
moreLinkText: function(n) {
|
||||
return '+ daha çox ' + n
|
||||
},
|
||||
noEventsText: 'Göstərmək üçün hadisə yoxdur',
|
||||
};
|
||||
|
||||
return az;
|
||||
|
||||
}());
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var bg = {
|
||||
code: 'bg',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'назад',
|
||||
next: 'напред',
|
||||
today: 'днес',
|
||||
month: 'Месец',
|
||||
week: 'Седмица',
|
||||
day: 'Ден',
|
||||
list: 'График',
|
||||
},
|
||||
allDayText: 'Цял ден',
|
||||
moreLinkText: function(n) {
|
||||
return '+още ' + n
|
||||
},
|
||||
noEventsText: 'Няма събития за показване',
|
||||
};
|
||||
|
||||
return bg;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var bn = {
|
||||
code: 'bn',
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 6, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'পেছনে',
|
||||
next: 'সামনে',
|
||||
today: 'আজ',
|
||||
month: 'মাস',
|
||||
week: 'সপ্তাহ',
|
||||
day: 'দিন',
|
||||
list: 'তালিকা',
|
||||
},
|
||||
weekText: 'সপ্তাহ',
|
||||
allDayText: 'সারাদিন',
|
||||
moreLinkText: function(n) {
|
||||
return '+অন্যান্য ' + n
|
||||
},
|
||||
noEventsText: 'কোনো ইভেন্ট নেই',
|
||||
};
|
||||
|
||||
return bn;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var bs = {
|
||||
code: 'bs',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Prošli',
|
||||
next: 'Sljedeći',
|
||||
today: 'Danas',
|
||||
month: 'Mjesec',
|
||||
week: 'Sedmica',
|
||||
day: 'Dan',
|
||||
list: 'Raspored',
|
||||
},
|
||||
weekText: 'Sed',
|
||||
allDayText: 'Cijeli dan',
|
||||
moreLinkText: function(n) {
|
||||
return '+ još ' + n
|
||||
},
|
||||
noEventsText: 'Nema događaja za prikazivanje',
|
||||
};
|
||||
|
||||
return bs;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ca = {
|
||||
code: 'ca',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Anterior',
|
||||
next: 'Següent',
|
||||
today: 'Avui',
|
||||
month: 'Mes',
|
||||
week: 'Setmana',
|
||||
day: 'Dia',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Set',
|
||||
allDayText: 'Tot el dia',
|
||||
moreLinkText: 'més',
|
||||
noEventsText: 'No hi ha esdeveniments per mostrar',
|
||||
};
|
||||
|
||||
return ca;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var cs = {
|
||||
code: 'cs',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Dříve',
|
||||
next: 'Později',
|
||||
today: 'Nyní',
|
||||
month: 'Měsíc',
|
||||
week: 'Týden',
|
||||
day: 'Den',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Týd',
|
||||
allDayText: 'Celý den',
|
||||
moreLinkText: function(n) {
|
||||
return '+další: ' + n
|
||||
},
|
||||
noEventsText: 'Žádné akce k zobrazení',
|
||||
};
|
||||
|
||||
return cs;
|
||||
|
||||
}());
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var cy = {
|
||||
code: 'cy',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Blaenorol',
|
||||
next: 'Nesaf',
|
||||
today: 'Heddiw',
|
||||
year: 'Blwyddyn',
|
||||
month: 'Mis',
|
||||
week: 'Wythnos',
|
||||
day: 'Dydd',
|
||||
list: 'Rhestr',
|
||||
},
|
||||
weekText: 'Wythnos',
|
||||
allDayText: 'Trwy\'r dydd',
|
||||
moreLinkText: 'Mwy',
|
||||
noEventsText: 'Dim digwyddiadau',
|
||||
};
|
||||
|
||||
return cy;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var da = {
|
||||
code: 'da',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Forrige',
|
||||
next: 'Næste',
|
||||
today: 'I dag',
|
||||
month: 'Måned',
|
||||
week: 'Uge',
|
||||
day: 'Dag',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Uge',
|
||||
allDayText: 'Hele dagen',
|
||||
moreLinkText: 'flere',
|
||||
noEventsText: 'Ingen arrangementer at vise',
|
||||
};
|
||||
|
||||
return da;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,65 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
function affix(buttonText) {
|
||||
return (buttonText === 'Tag' || buttonText === 'Monat') ? 'r' :
|
||||
buttonText === 'Jahr' ? 's' : ''
|
||||
}
|
||||
|
||||
var deAt = {
|
||||
code: 'de-at',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Zurück',
|
||||
next: 'Vor',
|
||||
today: 'Heute',
|
||||
year: 'Jahr',
|
||||
month: 'Monat',
|
||||
week: 'Woche',
|
||||
day: 'Tag',
|
||||
list: 'Terminübersicht',
|
||||
},
|
||||
weekText: 'KW',
|
||||
weekTextLong: 'Woche',
|
||||
allDayText: 'Ganztägig',
|
||||
moreLinkText: function(n) {
|
||||
return '+ weitere ' + n
|
||||
},
|
||||
noEventsText: 'Keine Ereignisse anzuzeigen',
|
||||
buttonHints: {
|
||||
prev(buttonText) {
|
||||
return `Vorherige${affix(buttonText)} ${buttonText}`
|
||||
},
|
||||
next(buttonText) {
|
||||
return `Nächste${affix(buttonText)} ${buttonText}`
|
||||
},
|
||||
today(buttonText) {
|
||||
// → Heute, Diese Woche, Dieser Monat, Dieses Jahr
|
||||
if (buttonText === 'Tag') {
|
||||
return 'Heute'
|
||||
}
|
||||
return `Diese${affix(buttonText)} ${buttonText}`
|
||||
},
|
||||
},
|
||||
viewHint(buttonText) {
|
||||
// → Tagesansicht, Wochenansicht, Monatsansicht, Jahresansicht
|
||||
const glue = buttonText === 'Woche' ? 'n' : buttonText === 'Monat' ? 's' : 'es';
|
||||
return buttonText + glue + 'ansicht'
|
||||
},
|
||||
navLinkHint: 'Gehe zu $0',
|
||||
moreLinkHint(eventCnt) {
|
||||
return 'Zeige ' + (eventCnt === 1 ?
|
||||
'ein weiteres Ereignis' :
|
||||
eventCnt + ' weitere Ereignisse')
|
||||
},
|
||||
closeHint: 'Schließen',
|
||||
timeHint: 'Uhrzeit',
|
||||
eventHint: 'Ereignis',
|
||||
};
|
||||
|
||||
return deAt;
|
||||
|
||||
}());
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
function affix(buttonText) {
|
||||
return (buttonText === 'Tag' || buttonText === 'Monat') ? 'r' :
|
||||
buttonText === 'Jahr' ? 's' : ''
|
||||
}
|
||||
|
||||
var de = {
|
||||
code: 'de',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Zurück',
|
||||
next: 'Vor',
|
||||
today: 'Heute',
|
||||
year: 'Jahr',
|
||||
month: 'Monat',
|
||||
week: 'Woche',
|
||||
day: 'Tag',
|
||||
list: 'Terminübersicht',
|
||||
},
|
||||
weekText: 'KW',
|
||||
weekTextLong: 'Woche',
|
||||
allDayText: 'Ganztägig',
|
||||
moreLinkText: function(n) {
|
||||
return '+ weitere ' + n
|
||||
},
|
||||
noEventsText: 'Keine Ereignisse anzuzeigen',
|
||||
buttonHints: {
|
||||
prev(buttonText) {
|
||||
return `Vorherige${affix(buttonText)} ${buttonText}`
|
||||
},
|
||||
next(buttonText) {
|
||||
return `Nächste${affix(buttonText)} ${buttonText}`
|
||||
},
|
||||
today(buttonText) {
|
||||
// → Heute, Diese Woche, Dieser Monat, Dieses Jahr
|
||||
if (buttonText === 'Tag') {
|
||||
return 'Heute'
|
||||
}
|
||||
return `Diese${affix(buttonText)} ${buttonText}`
|
||||
},
|
||||
},
|
||||
viewHint(buttonText) {
|
||||
// → Tagesansicht, Wochenansicht, Monatsansicht, Jahresansicht
|
||||
const glue = buttonText === 'Woche' ? 'n' : buttonText === 'Monat' ? 's' : 'es';
|
||||
return buttonText + glue + 'ansicht'
|
||||
},
|
||||
navLinkHint: 'Gehe zu $0',
|
||||
moreLinkHint(eventCnt) {
|
||||
return 'Zeige ' + (eventCnt === 1 ?
|
||||
'ein weiteres Ereignis' :
|
||||
eventCnt + ' weitere Ereignisse')
|
||||
},
|
||||
closeHint: 'Schließen',
|
||||
timeHint: 'Uhrzeit',
|
||||
eventHint: 'Ereignis',
|
||||
};
|
||||
|
||||
return de;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var el = {
|
||||
code: 'el',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Προηγούμενος',
|
||||
next: 'Επόμενος',
|
||||
today: 'Σήμερα',
|
||||
month: 'Μήνας',
|
||||
week: 'Εβδομάδα',
|
||||
day: 'Ημέρα',
|
||||
list: 'Ατζέντα',
|
||||
},
|
||||
weekText: 'Εβδ',
|
||||
allDayText: 'Ολοήμερο',
|
||||
moreLinkText: 'περισσότερα',
|
||||
noEventsText: 'Δεν υπάρχουν γεγονότα προς εμφάνιση',
|
||||
};
|
||||
|
||||
return el;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,24 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var enAu = {
|
||||
code: 'en-au',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonHints: {
|
||||
prev: 'Previous $0',
|
||||
next: 'Next $0',
|
||||
today: 'This $0',
|
||||
},
|
||||
viewHint: '$0 view',
|
||||
navLinkHint: 'Go to $0',
|
||||
moreLinkHint(eventCnt) {
|
||||
return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`
|
||||
},
|
||||
};
|
||||
|
||||
return enAu;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,24 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var enGb = {
|
||||
code: 'en-gb',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonHints: {
|
||||
prev: 'Previous $0',
|
||||
next: 'Next $0',
|
||||
today: 'This $0',
|
||||
},
|
||||
viewHint: '$0 view',
|
||||
navLinkHint: 'Go to $0',
|
||||
moreLinkHint(eventCnt) {
|
||||
return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`
|
||||
},
|
||||
};
|
||||
|
||||
return enGb;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,24 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var enNz = {
|
||||
code: 'en-nz',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonHints: {
|
||||
prev: 'Previous $0',
|
||||
next: 'Next $0',
|
||||
today: 'This $0',
|
||||
},
|
||||
viewHint: '$0 view',
|
||||
navLinkHint: 'Go to $0',
|
||||
moreLinkHint(eventCnt) {
|
||||
return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`
|
||||
},
|
||||
};
|
||||
|
||||
return enNz;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var eo = {
|
||||
code: 'eo',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Antaŭa',
|
||||
next: 'Sekva',
|
||||
today: 'Hodiaŭ',
|
||||
month: 'Monato',
|
||||
week: 'Semajno',
|
||||
day: 'Tago',
|
||||
list: 'Tagordo',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'Tuta tago',
|
||||
moreLinkText: 'pli',
|
||||
noEventsText: 'Neniuj eventoj por montri',
|
||||
};
|
||||
|
||||
return eo;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var esUs = {
|
||||
code: 'es',
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 6, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Ant',
|
||||
next: 'Sig',
|
||||
today: 'Hoy',
|
||||
month: 'Mes',
|
||||
week: 'Semana',
|
||||
day: 'Día',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'Todo el día',
|
||||
moreLinkText: 'más',
|
||||
noEventsText: 'No hay eventos para mostrar',
|
||||
};
|
||||
|
||||
return esUs;
|
||||
|
||||
}());
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var es = {
|
||||
code: 'es',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Ant',
|
||||
next: 'Sig',
|
||||
today: 'Hoy',
|
||||
month: 'Mes',
|
||||
week: 'Semana',
|
||||
day: 'Día',
|
||||
list: 'Agenda',
|
||||
},
|
||||
buttonHints: {
|
||||
prev: '$0 antes',
|
||||
next: '$0 siguiente',
|
||||
today(buttonText) {
|
||||
return (buttonText === 'Día') ? 'Hoy' :
|
||||
((buttonText === 'Semana') ? 'Esta' : 'Este') + ' ' + buttonText.toLocaleLowerCase()
|
||||
},
|
||||
},
|
||||
viewHint(buttonText) {
|
||||
return 'Vista ' + (buttonText === 'Semana' ? 'de la' : 'del') + ' ' + buttonText.toLocaleLowerCase()
|
||||
},
|
||||
weekText: 'Sm',
|
||||
weekTextLong: 'Semana',
|
||||
allDayText: 'Todo el día',
|
||||
moreLinkText: 'más',
|
||||
moreLinkHint(eventCnt) {
|
||||
return `Mostrar ${eventCnt} eventos más`
|
||||
},
|
||||
noEventsText: 'No hay eventos para mostrar',
|
||||
navLinkHint: 'Ir al $0',
|
||||
closeHint: 'Cerrar',
|
||||
timeHint: 'La hora',
|
||||
eventHint: 'Evento',
|
||||
};
|
||||
|
||||
return es;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var et = {
|
||||
code: 'et',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Eelnev',
|
||||
next: 'Järgnev',
|
||||
today: 'Täna',
|
||||
month: 'Kuu',
|
||||
week: 'Nädal',
|
||||
day: 'Päev',
|
||||
list: 'Päevakord',
|
||||
},
|
||||
weekText: 'näd',
|
||||
allDayText: 'Kogu päev',
|
||||
moreLinkText: function(n) {
|
||||
return '+ veel ' + n
|
||||
},
|
||||
noEventsText: 'Kuvamiseks puuduvad sündmused',
|
||||
};
|
||||
|
||||
return et;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var eu = {
|
||||
code: 'eu',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Aur',
|
||||
next: 'Hur',
|
||||
today: 'Gaur',
|
||||
month: 'Hilabetea',
|
||||
week: 'Astea',
|
||||
day: 'Eguna',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'As',
|
||||
allDayText: 'Egun osoa',
|
||||
moreLinkText: 'gehiago',
|
||||
noEventsText: 'Ez dago ekitaldirik erakusteko',
|
||||
};
|
||||
|
||||
return eu;
|
||||
|
||||
}());
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var fa = {
|
||||
code: 'fa',
|
||||
week: {
|
||||
dow: 6, // Saturday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'قبلی',
|
||||
next: 'بعدی',
|
||||
today: 'امروز',
|
||||
month: 'ماه',
|
||||
week: 'هفته',
|
||||
day: 'روز',
|
||||
list: 'برنامه',
|
||||
},
|
||||
weekText: 'هف',
|
||||
allDayText: 'تمام روز',
|
||||
moreLinkText: function(n) {
|
||||
return 'بیش از ' + n
|
||||
},
|
||||
noEventsText: 'هیچ رویدادی به نمایش',
|
||||
};
|
||||
|
||||
return fa;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var fi = {
|
||||
code: 'fi',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Edellinen',
|
||||
next: 'Seuraava',
|
||||
today: 'Tänään',
|
||||
month: 'Kuukausi',
|
||||
week: 'Viikko',
|
||||
day: 'Päivä',
|
||||
list: 'Tapahtumat',
|
||||
},
|
||||
weekText: 'Vk',
|
||||
allDayText: 'Koko päivä',
|
||||
moreLinkText: 'lisää',
|
||||
noEventsText: 'Ei näytettäviä tapahtumia',
|
||||
};
|
||||
|
||||
return fi;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,24 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var frCa = {
|
||||
code: 'fr',
|
||||
buttonText: {
|
||||
prev: 'Précédent',
|
||||
next: 'Suivant',
|
||||
today: "Aujourd'hui",
|
||||
year: 'Année',
|
||||
month: 'Mois',
|
||||
week: 'Semaine',
|
||||
day: 'Jour',
|
||||
list: 'Mon planning',
|
||||
},
|
||||
weekText: 'Sem.',
|
||||
allDayText: 'Toute la journée',
|
||||
moreLinkText: 'en plus',
|
||||
noEventsText: 'Aucun événement à afficher',
|
||||
};
|
||||
|
||||
return frCa;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var frCh = {
|
||||
code: 'fr-ch',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Précédent',
|
||||
next: 'Suivant',
|
||||
today: 'Courant',
|
||||
year: 'Année',
|
||||
month: 'Mois',
|
||||
week: 'Semaine',
|
||||
day: 'Jour',
|
||||
list: 'Mon planning',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'Toute la journée',
|
||||
moreLinkText: 'en plus',
|
||||
noEventsText: 'Aucun événement à afficher',
|
||||
};
|
||||
|
||||
return frCh;
|
||||
|
||||
}());
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var fr = {
|
||||
code: 'fr',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Précédent',
|
||||
next: 'Suivant',
|
||||
today: "Aujourd'hui",
|
||||
year: 'Année',
|
||||
month: 'Mois',
|
||||
week: 'Semaine',
|
||||
day: 'Jour',
|
||||
list: 'Planning',
|
||||
},
|
||||
weekText: 'Sem.',
|
||||
allDayText: 'Toute la journée',
|
||||
moreLinkText: 'en plus',
|
||||
noEventsText: 'Aucun événement à afficher',
|
||||
};
|
||||
|
||||
return fr;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var gl = {
|
||||
code: 'gl',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Ant',
|
||||
next: 'Seg',
|
||||
today: 'Hoxe',
|
||||
month: 'Mes',
|
||||
week: 'Semana',
|
||||
day: 'Día',
|
||||
list: 'Axenda',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'Todo o día',
|
||||
moreLinkText: 'máis',
|
||||
noEventsText: 'Non hai eventos para amosar',
|
||||
};
|
||||
|
||||
return gl;
|
||||
|
||||
}());
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var he = {
|
||||
code: 'he',
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'הקודם',
|
||||
next: 'הבא',
|
||||
today: 'היום',
|
||||
month: 'חודש',
|
||||
week: 'שבוע',
|
||||
day: 'יום',
|
||||
list: 'סדר יום',
|
||||
},
|
||||
allDayText: 'כל היום',
|
||||
moreLinkText: 'אחר',
|
||||
noEventsText: 'אין אירועים להצגה',
|
||||
weekText: 'שבוע',
|
||||
};
|
||||
|
||||
return he;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var hi = {
|
||||
code: 'hi',
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 6, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'पिछला',
|
||||
next: 'अगला',
|
||||
today: 'आज',
|
||||
month: 'महीना',
|
||||
week: 'सप्ताह',
|
||||
day: 'दिन',
|
||||
list: 'कार्यसूची',
|
||||
},
|
||||
weekText: 'हफ्ता',
|
||||
allDayText: 'सभी दिन',
|
||||
moreLinkText: function(n) {
|
||||
return '+अधिक ' + n
|
||||
},
|
||||
noEventsText: 'कोई घटनाओं को प्रदर्शित करने के लिए',
|
||||
};
|
||||
|
||||
return hi;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var hr = {
|
||||
code: 'hr',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Prijašnji',
|
||||
next: 'Sljedeći',
|
||||
today: 'Danas',
|
||||
month: 'Mjesec',
|
||||
week: 'Tjedan',
|
||||
day: 'Dan',
|
||||
list: 'Raspored',
|
||||
},
|
||||
weekText: 'Tje',
|
||||
allDayText: 'Cijeli dan',
|
||||
moreLinkText: function(n) {
|
||||
return '+ još ' + n
|
||||
},
|
||||
noEventsText: 'Nema događaja za prikaz',
|
||||
};
|
||||
|
||||
return hr;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var hu = {
|
||||
code: 'hu',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'vissza',
|
||||
next: 'előre',
|
||||
today: 'ma',
|
||||
month: 'Hónap',
|
||||
week: 'Hét',
|
||||
day: 'Nap',
|
||||
list: 'Lista',
|
||||
},
|
||||
weekText: 'Hét',
|
||||
allDayText: 'Egész nap',
|
||||
moreLinkText: 'további',
|
||||
noEventsText: 'Nincs megjeleníthető esemény',
|
||||
};
|
||||
|
||||
return hu;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var hyAm = {
|
||||
code: 'hy-am',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Նախորդ',
|
||||
next: 'Հաջորդ',
|
||||
today: 'Այսօր',
|
||||
month: 'Ամիս',
|
||||
week: 'Շաբաթ',
|
||||
day: 'Օր',
|
||||
list: 'Օրվա ցուցակ',
|
||||
},
|
||||
weekText: 'Շաբ',
|
||||
allDayText: 'Ամբողջ օր',
|
||||
moreLinkText: function(n) {
|
||||
return '+ ևս ' + n
|
||||
},
|
||||
noEventsText: 'Բացակայում է իրադարձությունը ցուցադրելու',
|
||||
};
|
||||
|
||||
return hyAm;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var id = {
|
||||
code: 'id',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'mundur',
|
||||
next: 'maju',
|
||||
today: 'hari ini',
|
||||
month: 'Bulan',
|
||||
week: 'Minggu',
|
||||
day: 'Hari',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Mg',
|
||||
allDayText: 'Sehari penuh',
|
||||
moreLinkText: 'lebih',
|
||||
noEventsText: 'Tidak ada acara untuk ditampilkan',
|
||||
};
|
||||
|
||||
return id;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var is = {
|
||||
code: 'is',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Fyrri',
|
||||
next: 'Næsti',
|
||||
today: 'Í dag',
|
||||
month: 'Mánuður',
|
||||
week: 'Vika',
|
||||
day: 'Dagur',
|
||||
list: 'Dagskrá',
|
||||
},
|
||||
weekText: 'Vika',
|
||||
allDayText: 'Allan daginn',
|
||||
moreLinkText: 'meira',
|
||||
noEventsText: 'Engir viðburðir til að sýna',
|
||||
};
|
||||
|
||||
return is;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var it = {
|
||||
code: 'it',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Prec',
|
||||
next: 'Succ',
|
||||
today: 'Oggi',
|
||||
month: 'Mese',
|
||||
week: 'Settimana',
|
||||
day: 'Giorno',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'Tutto il giorno',
|
||||
moreLinkText: function(n) {
|
||||
return '+altri ' + n
|
||||
},
|
||||
noEventsText: 'Non ci sono eventi da visualizzare',
|
||||
};
|
||||
|
||||
return it;
|
||||
|
||||
}());
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ja = {
|
||||
code: 'ja',
|
||||
buttonText: {
|
||||
prev: '前',
|
||||
next: '次',
|
||||
today: '今日',
|
||||
month: '月',
|
||||
week: '週',
|
||||
day: '日',
|
||||
list: '予定リスト',
|
||||
},
|
||||
weekText: '週',
|
||||
allDayText: '終日',
|
||||
moreLinkText: function(n) {
|
||||
return '他 ' + n + ' 件'
|
||||
},
|
||||
noEventsText: '表示する予定はありません',
|
||||
};
|
||||
|
||||
return ja;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ka = {
|
||||
code: 'ka',
|
||||
week: {
|
||||
dow: 1,
|
||||
doy: 7,
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'წინა',
|
||||
next: 'შემდეგი',
|
||||
today: 'დღეს',
|
||||
month: 'თვე',
|
||||
week: 'კვირა',
|
||||
day: 'დღე',
|
||||
list: 'დღის წესრიგი',
|
||||
},
|
||||
weekText: 'კვ',
|
||||
allDayText: 'მთელი დღე',
|
||||
moreLinkText: function(n) {
|
||||
return '+ კიდევ ' + n
|
||||
},
|
||||
noEventsText: 'ღონისძიებები არ არის',
|
||||
};
|
||||
|
||||
return ka;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var kk = {
|
||||
code: 'kk',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Алдыңғы',
|
||||
next: 'Келесі',
|
||||
today: 'Бүгін',
|
||||
month: 'Ай',
|
||||
week: 'Апта',
|
||||
day: 'Күн',
|
||||
list: 'Күн тәртібі',
|
||||
},
|
||||
weekText: 'Не',
|
||||
allDayText: 'Күні бойы',
|
||||
moreLinkText: function(n) {
|
||||
return '+ тағы ' + n
|
||||
},
|
||||
noEventsText: 'Көрсету үшін оқиғалар жоқ',
|
||||
};
|
||||
|
||||
return kk;
|
||||
|
||||
}());
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var km = {
|
||||
code: 'km',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'មុន',
|
||||
next: 'បន្ទាប់',
|
||||
today: 'ថ្ងៃនេះ',
|
||||
year: 'ឆ្នាំ',
|
||||
month: 'ខែ',
|
||||
week: 'សប្តាហ៍',
|
||||
day: 'ថ្ងៃ',
|
||||
list: 'បញ្ជី',
|
||||
},
|
||||
weekText: 'សប្តាហ៍',
|
||||
allDayText: 'ពេញមួយថ្ងៃ',
|
||||
moreLinkText: 'ច្រើនទៀត',
|
||||
noEventsText: 'គ្មានព្រឹត្តិការណ៍ត្រូវបង្ហាញ',
|
||||
};
|
||||
|
||||
return km;
|
||||
|
||||
}());
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ko = {
|
||||
code: 'ko',
|
||||
buttonText: {
|
||||
prev: '이전달',
|
||||
next: '다음달',
|
||||
today: '오늘',
|
||||
month: '월',
|
||||
week: '주',
|
||||
day: '일',
|
||||
list: '일정목록',
|
||||
},
|
||||
weekText: '주',
|
||||
allDayText: '종일',
|
||||
moreLinkText: '개',
|
||||
noEventsText: '일정이 없습니다',
|
||||
};
|
||||
|
||||
return ko;
|
||||
|
||||
}());
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ku = {
|
||||
code: 'ku',
|
||||
week: {
|
||||
dow: 6, // Saturday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'پێشتر',
|
||||
next: 'دواتر',
|
||||
today: 'ئەمڕو',
|
||||
month: 'مانگ',
|
||||
week: 'هەفتە',
|
||||
day: 'ڕۆژ',
|
||||
list: 'بەرنامە',
|
||||
},
|
||||
weekText: 'هەفتە',
|
||||
allDayText: 'هەموو ڕۆژەکە',
|
||||
moreLinkText: 'زیاتر',
|
||||
noEventsText: 'هیچ ڕووداوێك نیە',
|
||||
};
|
||||
|
||||
return ku;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var lb = {
|
||||
code: 'lb',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Zréck',
|
||||
next: 'Weider',
|
||||
today: 'Haut',
|
||||
month: 'Mount',
|
||||
week: 'Woch',
|
||||
day: 'Dag',
|
||||
list: 'Terminiwwersiicht',
|
||||
},
|
||||
weekText: 'W',
|
||||
allDayText: 'Ganzen Dag',
|
||||
moreLinkText: 'méi',
|
||||
noEventsText: 'Nee Evenementer ze affichéieren',
|
||||
};
|
||||
|
||||
return lb;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var lt = {
|
||||
code: 'lt',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Atgal',
|
||||
next: 'Pirmyn',
|
||||
today: 'Šiandien',
|
||||
month: 'Mėnuo',
|
||||
week: 'Savaitė',
|
||||
day: 'Diena',
|
||||
list: 'Darbotvarkė',
|
||||
},
|
||||
weekText: 'SAV',
|
||||
allDayText: 'Visą dieną',
|
||||
moreLinkText: 'daugiau',
|
||||
noEventsText: 'Nėra įvykių rodyti',
|
||||
};
|
||||
|
||||
return lt;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var lv = {
|
||||
code: 'lv',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Iepr.',
|
||||
next: 'Nāk.',
|
||||
today: 'Šodien',
|
||||
month: 'Mēnesis',
|
||||
week: 'Nedēļa',
|
||||
day: 'Diena',
|
||||
list: 'Dienas kārtība',
|
||||
},
|
||||
weekText: 'Ned.',
|
||||
allDayText: 'Visu dienu',
|
||||
moreLinkText: function(n) {
|
||||
return '+vēl ' + n
|
||||
},
|
||||
noEventsText: 'Nav notikumu',
|
||||
};
|
||||
|
||||
return lv;
|
||||
|
||||
}());
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var mk = {
|
||||
code: 'mk',
|
||||
buttonText: {
|
||||
prev: 'претходно',
|
||||
next: 'следно',
|
||||
today: 'Денес',
|
||||
month: 'Месец',
|
||||
week: 'Недела',
|
||||
day: 'Ден',
|
||||
list: 'График',
|
||||
},
|
||||
weekText: 'Сед',
|
||||
allDayText: 'Цел ден',
|
||||
moreLinkText: function(n) {
|
||||
return '+повеќе ' + n
|
||||
},
|
||||
noEventsText: 'Нема настани за прикажување',
|
||||
};
|
||||
|
||||
return mk;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ms = {
|
||||
code: 'ms',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Sebelum',
|
||||
next: 'Selepas',
|
||||
today: 'hari ini',
|
||||
month: 'Bulan',
|
||||
week: 'Minggu',
|
||||
day: 'Hari',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Mg',
|
||||
allDayText: 'Sepanjang hari',
|
||||
moreLinkText: function(n) {
|
||||
return 'masih ada ' + n + ' acara'
|
||||
},
|
||||
noEventsText: 'Tiada peristiwa untuk dipaparkan',
|
||||
};
|
||||
|
||||
return ms;
|
||||
|
||||
}());
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var nb = {
|
||||
code: 'nb',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Forrige',
|
||||
next: 'Neste',
|
||||
today: 'I dag',
|
||||
month: 'Måned',
|
||||
week: 'Uke',
|
||||
day: 'Dag',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Uke',
|
||||
weekTextLong: 'Uke',
|
||||
allDayText: 'Hele dagen',
|
||||
moreLinkText: 'til',
|
||||
noEventsText: 'Ingen hendelser å vise',
|
||||
buttonHints: {
|
||||
prev: 'Forrige $0',
|
||||
next: 'Neste $0',
|
||||
today: 'Nåværende $0',
|
||||
},
|
||||
viewHint: '$0 visning',
|
||||
navLinkHint: 'Gå til $0',
|
||||
moreLinkHint(eventCnt) {
|
||||
return `Vis ${eventCnt} flere hendelse${eventCnt === 1 ? '' : 'r'}`
|
||||
},
|
||||
};
|
||||
|
||||
return nb;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ne = {
|
||||
code: 'ne', // code for nepal
|
||||
week: {
|
||||
dow: 7, // Sunday is the first day of the week.
|
||||
doy: 1, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'अघिल्लो',
|
||||
next: 'अर्को',
|
||||
today: 'आज',
|
||||
month: 'महिना',
|
||||
week: 'हप्ता',
|
||||
day: 'दिन',
|
||||
list: 'सूची',
|
||||
},
|
||||
weekText: 'हप्ता',
|
||||
allDayText: 'दिनभरि',
|
||||
moreLinkText: 'थप लिंक',
|
||||
noEventsText: 'देखाउनको लागि कुनै घटनाहरू छैनन्',
|
||||
};
|
||||
|
||||
return ne;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var nl = {
|
||||
code: 'nl',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Vorige',
|
||||
next: 'Volgende',
|
||||
today: 'Vandaag',
|
||||
year: 'Jaar',
|
||||
month: 'Maand',
|
||||
week: 'Week',
|
||||
day: 'Dag',
|
||||
list: 'Agenda',
|
||||
},
|
||||
allDayText: 'Hele dag',
|
||||
moreLinkText: 'extra',
|
||||
noEventsText: 'Geen evenementen om te laten zien',
|
||||
};
|
||||
|
||||
return nl;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var nn = {
|
||||
code: 'nn',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Førre',
|
||||
next: 'Neste',
|
||||
today: 'I dag',
|
||||
month: 'Månad',
|
||||
week: 'Veke',
|
||||
day: 'Dag',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Veke',
|
||||
allDayText: 'Heile dagen',
|
||||
moreLinkText: 'til',
|
||||
noEventsText: 'Ingen hendelser å vise',
|
||||
};
|
||||
|
||||
return nn;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var pl = {
|
||||
code: 'pl',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Poprzedni',
|
||||
next: 'Następny',
|
||||
today: 'Dziś',
|
||||
month: 'Miesiąc',
|
||||
week: 'Tydzień',
|
||||
day: 'Dzień',
|
||||
list: 'Plan dnia',
|
||||
},
|
||||
weekText: 'Tydz',
|
||||
allDayText: 'Cały dzień',
|
||||
moreLinkText: 'więcej',
|
||||
noEventsText: 'Brak wydarzeń do wyświetlenia',
|
||||
};
|
||||
|
||||
return pl;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,25 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ptBr = {
|
||||
code: 'pt-br',
|
||||
buttonText: {
|
||||
prev: 'Anterior',
|
||||
next: 'Próximo',
|
||||
today: 'Hoje',
|
||||
month: 'Mês',
|
||||
week: 'Semana',
|
||||
day: 'Dia',
|
||||
list: 'Lista',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'dia inteiro',
|
||||
moreLinkText: function(n) {
|
||||
return 'mais +' + n
|
||||
},
|
||||
noEventsText: 'Não há eventos para mostrar',
|
||||
};
|
||||
|
||||
return ptBr;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var pt = {
|
||||
code: 'pt',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Anterior',
|
||||
next: 'Seguinte',
|
||||
today: 'Hoje',
|
||||
month: 'Mês',
|
||||
week: 'Semana',
|
||||
day: 'Dia',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Sem',
|
||||
allDayText: 'Todo o dia',
|
||||
moreLinkText: 'mais',
|
||||
noEventsText: 'Não há eventos para mostrar',
|
||||
};
|
||||
|
||||
return pt;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ro = {
|
||||
code: 'ro',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'precedentă',
|
||||
next: 'următoare',
|
||||
today: 'Azi',
|
||||
month: 'Lună',
|
||||
week: 'Săptămână',
|
||||
day: 'Zi',
|
||||
list: 'Agendă',
|
||||
},
|
||||
weekText: 'Săpt',
|
||||
allDayText: 'Toată ziua',
|
||||
moreLinkText: function(n) {
|
||||
return '+alte ' + n
|
||||
},
|
||||
noEventsText: 'Nu există evenimente de afișat',
|
||||
};
|
||||
|
||||
return ro;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ru = {
|
||||
code: 'ru',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Пред',
|
||||
next: 'След',
|
||||
today: 'Сегодня',
|
||||
month: 'Месяц',
|
||||
week: 'Неделя',
|
||||
day: 'День',
|
||||
list: 'Повестка дня',
|
||||
},
|
||||
weekText: 'Нед',
|
||||
allDayText: 'Весь день',
|
||||
moreLinkText: function(n) {
|
||||
return '+ ещё ' + n
|
||||
},
|
||||
noEventsText: 'Нет событий для отображения',
|
||||
};
|
||||
|
||||
return ru;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var siLk = {
|
||||
code: 'si-lk',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'පෙර',
|
||||
next: 'පසු',
|
||||
today: 'අද',
|
||||
month: 'මාසය',
|
||||
week: 'සතිය',
|
||||
day: 'දවස',
|
||||
list: 'ලැයිස්තුව',
|
||||
},
|
||||
weekText: 'සති',
|
||||
allDayText: 'සියලු',
|
||||
moreLinkText: 'තවත්',
|
||||
noEventsText: 'මුකුත් නැත',
|
||||
};
|
||||
|
||||
return siLk;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var sk = {
|
||||
code: 'sk',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Predchádzajúci',
|
||||
next: 'Nasledujúci',
|
||||
today: 'Dnes',
|
||||
month: 'Mesiac',
|
||||
week: 'Týždeň',
|
||||
day: 'Deň',
|
||||
list: 'Rozvrh',
|
||||
},
|
||||
weekText: 'Ty',
|
||||
allDayText: 'Celý deň',
|
||||
moreLinkText: function(n) {
|
||||
return '+ďalšie: ' + n
|
||||
},
|
||||
noEventsText: 'Žiadne akcie na zobrazenie',
|
||||
};
|
||||
|
||||
return sk;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var sl = {
|
||||
code: 'sl',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Prejšnji',
|
||||
next: 'Naslednji',
|
||||
today: 'Trenutni',
|
||||
month: 'Mesec',
|
||||
week: 'Teden',
|
||||
day: 'Dan',
|
||||
list: 'Dnevni red',
|
||||
},
|
||||
weekText: 'Teden',
|
||||
allDayText: 'Ves dan',
|
||||
moreLinkText: 'več',
|
||||
noEventsText: 'Ni dogodkov za prikaz',
|
||||
};
|
||||
|
||||
return sl;
|
||||
|
||||
}());
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var sm = {
|
||||
code: 'sm',
|
||||
buttonText: {
|
||||
prev: 'Talu ai',
|
||||
next: 'Mulimuli atu',
|
||||
today: 'Aso nei',
|
||||
month: 'Masina',
|
||||
week: 'Vaiaso',
|
||||
day: 'Aso',
|
||||
list: 'Faasologa',
|
||||
},
|
||||
weekText: 'Vaiaso',
|
||||
allDayText: 'Aso atoa',
|
||||
moreLinkText: 'sili atu',
|
||||
noEventsText: 'Leai ni mea na tutupu',
|
||||
};
|
||||
|
||||
return sm;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var sq = {
|
||||
code: 'sq',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'mbrapa',
|
||||
next: 'Përpara',
|
||||
today: 'sot',
|
||||
month: 'Muaj',
|
||||
week: 'Javë',
|
||||
day: 'Ditë',
|
||||
list: 'Listë',
|
||||
},
|
||||
weekText: 'Ja',
|
||||
allDayText: 'Gjithë ditën',
|
||||
moreLinkText: function(n) {
|
||||
return '+më tepër ' + n
|
||||
},
|
||||
noEventsText: 'Nuk ka evente për të shfaqur',
|
||||
};
|
||||
|
||||
return sq;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var srCyrl = {
|
||||
code: 'sr-cyrl',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Претходна',
|
||||
next: 'следећи',
|
||||
today: 'Данас',
|
||||
month: 'Месец',
|
||||
week: 'Недеља',
|
||||
day: 'Дан',
|
||||
list: 'Планер',
|
||||
},
|
||||
weekText: 'Сед',
|
||||
allDayText: 'Цео дан',
|
||||
moreLinkText: function(n) {
|
||||
return '+ још ' + n
|
||||
},
|
||||
noEventsText: 'Нема догађаја за приказ',
|
||||
};
|
||||
|
||||
return srCyrl;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var sr = {
|
||||
code: 'sr',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Prethodna',
|
||||
next: 'Sledeći',
|
||||
today: 'Danas',
|
||||
month: 'Mеsеc',
|
||||
week: 'Nеdеlja',
|
||||
day: 'Dan',
|
||||
list: 'Planеr',
|
||||
},
|
||||
weekText: 'Sed',
|
||||
allDayText: 'Cеo dan',
|
||||
moreLinkText: function(n) {
|
||||
return '+ još ' + n
|
||||
},
|
||||
noEventsText: 'Nеma događaja za prikaz',
|
||||
};
|
||||
|
||||
return sr;
|
||||
|
||||
}());
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var sv = {
|
||||
code: 'sv',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Förra',
|
||||
next: 'Nästa',
|
||||
today: 'Idag',
|
||||
month: 'Månad',
|
||||
week: 'Vecka',
|
||||
day: 'Dag',
|
||||
list: 'Program',
|
||||
},
|
||||
buttonHints: {
|
||||
prev(buttonText) {
|
||||
return `Föregående ${buttonText.toLocaleLowerCase()}`
|
||||
},
|
||||
next(buttonText) {
|
||||
return `Nästa ${buttonText.toLocaleLowerCase()}`
|
||||
},
|
||||
today(buttonText) {
|
||||
return (buttonText === 'Program' ? 'Detta' : 'Denna') + ' ' + buttonText.toLocaleLowerCase()
|
||||
},
|
||||
},
|
||||
viewHint: '$0 vy',
|
||||
navLinkHint: 'Gå till $0',
|
||||
moreLinkHint(eventCnt) {
|
||||
return `Visa ytterligare ${eventCnt} händelse${eventCnt === 1 ? '' : 'r'}`
|
||||
},
|
||||
weekText: 'v.',
|
||||
weekTextLong: 'Vecka',
|
||||
allDayText: 'Heldag',
|
||||
moreLinkText: 'till',
|
||||
noEventsText: 'Inga händelser att visa',
|
||||
closeHint: 'Stäng',
|
||||
timeHint: 'Klockan',
|
||||
eventHint: 'Händelse',
|
||||
};
|
||||
|
||||
return sv;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var taIn = {
|
||||
code: 'ta-in',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'முந்தைய',
|
||||
next: 'அடுத்தது',
|
||||
today: 'இன்று',
|
||||
month: 'மாதம்',
|
||||
week: 'வாரம்',
|
||||
day: 'நாள்',
|
||||
list: 'தினசரி அட்டவணை',
|
||||
},
|
||||
weekText: 'வாரம்',
|
||||
allDayText: 'நாள் முழுவதும்',
|
||||
moreLinkText: function(n) {
|
||||
return '+ மேலும் ' + n
|
||||
},
|
||||
noEventsText: 'காண்பிக்க நிகழ்வுகள் இல்லை',
|
||||
};
|
||||
|
||||
return taIn;
|
||||
|
||||
}());
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var th = {
|
||||
code: 'th',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'ก่อนหน้า',
|
||||
next: 'ถัดไป',
|
||||
prevYear: 'ปีก่อนหน้า',
|
||||
nextYear: 'ปีถัดไป',
|
||||
year: 'ปี',
|
||||
today: 'วันนี้',
|
||||
month: 'เดือน',
|
||||
week: 'สัปดาห์',
|
||||
day: 'วัน',
|
||||
list: 'กำหนดการ',
|
||||
},
|
||||
weekText: 'สัปดาห์',
|
||||
allDayText: 'ตลอดวัน',
|
||||
moreLinkText: 'เพิ่มเติม',
|
||||
noEventsText: 'ไม่มีกิจกรรมที่จะแสดง',
|
||||
};
|
||||
|
||||
return th;
|
||||
|
||||
}());
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var tr = {
|
||||
code: 'tr',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'geri',
|
||||
next: 'ileri',
|
||||
today: 'bugün',
|
||||
month: 'Ay',
|
||||
week: 'Hafta',
|
||||
day: 'Gün',
|
||||
list: 'Ajanda',
|
||||
},
|
||||
weekText: 'Hf',
|
||||
allDayText: 'Tüm gün',
|
||||
moreLinkText: 'daha fazla',
|
||||
noEventsText: 'Gösterilecek etkinlik yok',
|
||||
};
|
||||
|
||||
return tr;
|
||||
|
||||
}());
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ug = {
|
||||
code: 'ug',
|
||||
buttonText: {
|
||||
month: 'ئاي',
|
||||
week: 'ھەپتە',
|
||||
day: 'كۈن',
|
||||
list: 'كۈنتەرتىپ',
|
||||
},
|
||||
allDayText: 'پۈتۈن كۈن',
|
||||
};
|
||||
|
||||
return ug;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var uk = {
|
||||
code: 'uk',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Попередній',
|
||||
next: 'далі',
|
||||
today: 'Сьогодні',
|
||||
month: 'Місяць',
|
||||
week: 'Тиждень',
|
||||
day: 'День',
|
||||
list: 'Порядок денний',
|
||||
},
|
||||
weekText: 'Тиж',
|
||||
allDayText: 'Увесь день',
|
||||
moreLinkText: function(n) {
|
||||
return '+ще ' + n + '...'
|
||||
},
|
||||
noEventsText: 'Немає подій для відображення',
|
||||
};
|
||||
|
||||
return uk;
|
||||
|
||||
}());
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var uz = {
|
||||
code: 'uz',
|
||||
buttonText: {
|
||||
month: 'Oy',
|
||||
week: 'Xafta',
|
||||
day: 'Kun',
|
||||
list: 'Kun tartibi',
|
||||
},
|
||||
allDayText: "Kun bo'yi",
|
||||
moreLinkText: function(n) {
|
||||
return '+ yana ' + n
|
||||
},
|
||||
noEventsText: "Ko'rsatish uchun voqealar yo'q",
|
||||
};
|
||||
|
||||
return uz;
|
||||
|
||||
}());
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var vi = {
|
||||
code: 'vi',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Trước',
|
||||
next: 'Tiếp',
|
||||
today: 'Hôm nay',
|
||||
month: 'Tháng',
|
||||
week: 'Tuần',
|
||||
day: 'Ngày',
|
||||
list: 'Lịch biểu',
|
||||
},
|
||||
weekText: 'Tu',
|
||||
allDayText: 'Cả ngày',
|
||||
moreLinkText: function(n) {
|
||||
return '+ thêm ' + n
|
||||
},
|
||||
noEventsText: 'Không có sự kiện để hiển thị',
|
||||
};
|
||||
|
||||
return vi;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,30 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var zhCn = {
|
||||
code: 'zh-cn',
|
||||
week: {
|
||||
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: '上月',
|
||||
next: '下月',
|
||||
today: '今天',
|
||||
month: '月',
|
||||
week: '周',
|
||||
day: '日',
|
||||
list: '日程',
|
||||
},
|
||||
weekText: '周',
|
||||
allDayText: '全天',
|
||||
moreLinkText: function(n) {
|
||||
return '另外 ' + n + ' 个'
|
||||
},
|
||||
noEventsText: '没有事件显示',
|
||||
};
|
||||
|
||||
return zhCn;
|
||||
|
||||
}());
|
||||
@@ -0,0 +1,23 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var zhTw = {
|
||||
code: 'zh-tw',
|
||||
buttonText: {
|
||||
prev: '上月',
|
||||
next: '下月',
|
||||
today: '今天',
|
||||
month: '月',
|
||||
week: '週',
|
||||
day: '天',
|
||||
list: '活動列表',
|
||||
},
|
||||
weekText: '周',
|
||||
allDayText: '整天',
|
||||
moreLinkText: '顯示更多',
|
||||
noEventsText: '没有任何活動',
|
||||
};
|
||||
|
||||
return zhTw;
|
||||
|
||||
}());
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user