@ -0,0 +1,3 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
<component name="PyDocumentationSettings">
|
||||
<option name="format" value="PLAIN" />
|
||||
<option name="myDocStringFormat" value="Plain" />
|
||||
</component>
|
||||
</module>
|
@ -0,0 +1,6 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<settings>
|
||||
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||
<version value="1.0" />
|
||||
</settings>
|
||||
</component>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
|
||||
<component name="PyCharmProfessionalAdvertiser">
|
||||
<option name="shown" value="true" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/SunShine.iml" filepath="$PROJECT_DIR$/.idea/SunShine.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,3 @@
|
||||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
@ -0,0 +1,3 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
@ -0,0 +1,50 @@
|
||||
# Generated by Django 5.0.3 on 2024-05-06 02:26
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='TravelInfo',
|
||||
fields=[
|
||||
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='id')),
|
||||
('title', models.CharField(default='', max_length=255, verbose_name='景区名')),
|
||||
('level', models.CharField(default='', max_length=255, verbose_name='等级')),
|
||||
('discount', models.CharField(default='', max_length=255, verbose_name='折扣')),
|
||||
('saleCount', models.CharField(default='', max_length=255, verbose_name='销量')),
|
||||
('province', models.CharField(default='', max_length=255, verbose_name='省份')),
|
||||
('star', models.CharField(default='', max_length=255, verbose_name='热度')),
|
||||
('detailAddress', models.CharField(default='', max_length=255, verbose_name='景点详情地址')),
|
||||
('shortIntro', models.CharField(default='', max_length=255, verbose_name='短评')),
|
||||
('detailUrl', models.CharField(default='', max_length=255, verbose_name='详情地址')),
|
||||
('score', models.CharField(default='', max_length=255, verbose_name='评分')),
|
||||
('price', models.CharField(default='', max_length=255, verbose_name='价格')),
|
||||
('commentsLen', models.CharField(default='', max_length=255, verbose_name='评论个数')),
|
||||
('detailIntro', models.CharField(default='', max_length=2550, verbose_name='详情简介')),
|
||||
('img_list', models.CharField(default='', max_length=2550, verbose_name='照片列表')),
|
||||
('comments', models.TextField(default='', verbose_name='用户评论')),
|
||||
('cover', models.CharField(default='', max_length=2550, verbose_name='封面')),
|
||||
('createTime', models.DateField(auto_now_add=True, verbose_name='爬取时间')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='User',
|
||||
fields=[
|
||||
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='id')),
|
||||
('username', models.CharField(default='', max_length=255, verbose_name='用户名')),
|
||||
('password', models.CharField(default='', max_length=255, verbose_name='密码')),
|
||||
('sex', models.CharField(default='', max_length=255, verbose_name='性别')),
|
||||
('address', models.CharField(default='', max_length=255, verbose_name='地址')),
|
||||
('avatar', models.FileField(default='', max_length=255, upload_to='', verbose_name='头像')),
|
||||
('textarea', models.CharField(default='这个人很懒什么也没留下。', max_length=255, verbose_name='个人简介')),
|
||||
('createTime', models.DateField(auto_now_add=True, verbose_name='创建时间')),
|
||||
],
|
||||
),
|
||||
]
|
@ -0,0 +1,24 @@
|
||||
# Generated by Django 5.0.3 on 2024-05-17 10:09
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('SS01', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='SaleTicketDetail',
|
||||
fields=[
|
||||
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='id')),
|
||||
('title', models.CharField(default='', max_length=255, verbose_name='景区名')),
|
||||
('day', models.CharField(default='', max_length=50, verbose_name='预约日期')),
|
||||
('name', models.CharField(default='', max_length=50, verbose_name='姓名')),
|
||||
('Idcard', models.CharField(default='', max_length=50, verbose_name='身份证号')),
|
||||
('connection', models.CharField(default='', max_length=100, verbose_name='联系方式')),
|
||||
],
|
||||
),
|
||||
]
|
@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.0.3 on 2024-06-01 06:28
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('SS01', '0002_saleticketdetail'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='ZHlei',
|
||||
field=models.CharField(default='', max_length=255, verbose_name='账户类型'),
|
||||
),
|
||||
]
|
@ -0,0 +1,45 @@
|
||||
from django.db import models
|
||||
|
||||
# Create your models here.
|
||||
|
||||
class TravelInfo(models.Model):
|
||||
id = models.AutoField('id',primary_key=True)
|
||||
title = models.CharField('景区名',max_length=255,default='')
|
||||
level = models.CharField('等级',max_length=255,default='')
|
||||
discount = models.CharField('折扣', max_length=255, default='')
|
||||
saleCount = models.CharField('销量', max_length=255, default='')
|
||||
province = models.CharField('省份',max_length=255,default='')
|
||||
star = models.CharField('热度', max_length=255, default='')
|
||||
detailAddress = models.CharField('景点详情地址', max_length=255, default='')
|
||||
shortIntro = models.CharField('短评', max_length=255, default='')
|
||||
detailUrl = models.CharField('详情地址', max_length=255, default='')
|
||||
score = models.CharField('评分', max_length=255, default='')
|
||||
price = models.CharField('价格', max_length=255, default='')
|
||||
commentsLen = models.CharField('评论个数', max_length=255, default='')
|
||||
detailIntro = models.CharField('详情简介', max_length=2550, default='')
|
||||
img_list = models.CharField('照片列表', max_length=2550, default='')
|
||||
comments = models.TextField('用户评论', default='')
|
||||
cover = models.CharField('封面', max_length=2550, default='')
|
||||
createTime = models.DateField('爬取时间', auto_now_add=True)
|
||||
|
||||
class User(models.Model):
|
||||
id = models.AutoField('id', primary_key=True)
|
||||
username = models.CharField('用户名', max_length=255, default='')
|
||||
password = models.CharField('密码', max_length=255, default='')
|
||||
sex = models.CharField('性别', max_length=255, default='')
|
||||
address = models.CharField('地址', max_length=255, default='')
|
||||
avatar = models.FileField('头像', max_length=255, default='')
|
||||
textarea = models.CharField('个人简介', max_length=255, default='这个人很懒什么也没留下。')
|
||||
createTime = models.DateField('创建时间', auto_now_add=True)
|
||||
ZHlei = models.CharField('账户类型', max_length=255, default='')
|
||||
|
||||
class SaleTicketDetail(models.Model):
|
||||
id = models.AutoField('id', primary_key=True)
|
||||
title = models.CharField('景区名', max_length=255, default='')
|
||||
day = models.CharField('预约日期',max_length=50,default='')
|
||||
name = models.CharField('姓名', max_length=50, default='')
|
||||
Idcard = models.CharField('身份证号', max_length=50, default='')
|
||||
connection = models.CharField('联系方式', max_length=100, default='')
|
||||
|
||||
|
||||
|
@ -0,0 +1,87 @@
|
||||
{% extends 'Mindex.html' %}
|
||||
|
||||
{% block title %}
|
||||
景点管理页面
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
<div class="pagetitle" style="display:flex;align-items:center">
|
||||
<div style="margin-right:auto">
|
||||
<h1>景点管理页</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="#">管理中心</a></li>
|
||||
<li class="breadcrumb-item active">景点管理页</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<h5>
|
||||
{{ nowTime.year}}-{{ nowTime.mon}}-{{ nowTime.day}}
|
||||
</h5>
|
||||
|
||||
</div>
|
||||
|
||||
<section class="section dashboard">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">景点管理页</h5>
|
||||
|
||||
<div class="activity">
|
||||
<div class="col-12">
|
||||
<div class="card recent-sales overflow-auto">
|
||||
<div class="card-body">
|
||||
<table class="table table-borderless">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" style="width:300px;">景区名称</th>
|
||||
<th scope="col">景点等级</th>
|
||||
<th scope="col">景区地点</th>
|
||||
<th scope="col">景点评分</th>
|
||||
<th scope="col">价格</th>
|
||||
<th scope="col">销量</th>
|
||||
<th scope="col">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for i in MaddressDetailData %}
|
||||
<tr>
|
||||
<td>{{ i.title }}</td>
|
||||
<td>{{ i.level }}</td>
|
||||
<td>{{ i.province }}</td>
|
||||
<td>{{ i.score }}</td>
|
||||
<td>{{ i.price }} 元</td>
|
||||
<td>{{ i.saleCount }} 元</td>
|
||||
<td>
|
||||
<a href="MaddressFox/?nid={{ i.id }}"><button class="btn btn-primary">修改</button></a>
|
||||
<a href="delete/?nid={{ i.id }}"><button class="btn btn-danger">删除</button></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block echarts %}
|
||||
<script>
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
@ -0,0 +1,324 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>{% block title %}首页{% endblock %}</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
|
||||
<!-- Favicons -->
|
||||
<link href="/static/img/favicon.png" rel="icon">
|
||||
<link href="/static/img/apple-touch-icon.png" rel="apple-touch-icon">
|
||||
<link href="/static/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="/static/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="/static/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
|
||||
<link href="/static/vendor/quill/quill.snow.css" rel="stylesheet">
|
||||
<link href="/static/vendor/quill/quill.bubble.css" rel="stylesheet">
|
||||
<link href="/static/vendor/remixicon/remixicon.css" rel="stylesheet">
|
||||
<link href="/static/vendor/simple-datatables/style.css" rel="stylesheet">
|
||||
<link href="/static/css/style.css" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- ======= Header ======= -->
|
||||
<header id="header" class="header fixed-top d-flex align-items-center">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<a href="{% url 'Mindex' %}" class="logo d-flex align-items-center">
|
||||
<img src="/static/img/logo.png" alt="">
|
||||
<span class="d-none d-lg-block">ShineShe旅游系统</span>
|
||||
</a>
|
||||
<i class="bi bi-list toggle-sidebar-btn"></i>
|
||||
</div><!-- End Logo -->
|
||||
|
||||
<nav class="header-nav ms-auto">
|
||||
<ul class="d-flex align-items-center">
|
||||
<li class="nav-item dropdown pe-3">
|
||||
|
||||
<a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown">
|
||||
<img src="/media/{{ userInfo.avatar }}" alt="Profile" class="rounded-circle"><!-- 修改头像 -->
|
||||
<span class="d-none d-md-block dropdown-toggle ps-2">{{ userInfo.username }}</span>
|
||||
</a><!-- End Profile Iamge Icon -->
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile">
|
||||
<li class="dropdown-header">
|
||||
<h6>{{ userInfo.username }}</h6>
|
||||
<span>{{ userInfo.textarea }}</span>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||
<i class="bi bi-person"></i>
|
||||
<span>个人简介</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="{% url 'logOut' %}">
|
||||
<i class="bi bi-box-arrow-right"></i>
|
||||
<span>注销账户</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul><!-- End Profile Dropdown Items -->
|
||||
</li><!-- End Profile Nav -->
|
||||
|
||||
</ul>
|
||||
</nav><!-- End Icons Navigation -->
|
||||
|
||||
</header><!-- End Header -->
|
||||
|
||||
<!-- ======= Sidebar ======= -->
|
||||
{% block sidebar %}
|
||||
<aside id="sidebar" class="sidebar">
|
||||
|
||||
<ul class="sidebar-nav" id="sidebar-nav">
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link " href="{% url 'Mindex' %}">
|
||||
|
||||
<span>首页</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-heading">管理员个人中心</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link collapsed" href="{% url 'MGchangeSelfInfo' %}">
|
||||
<span>修改信息</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link collapsed" href="{% url 'MGchangePassword' %}">
|
||||
<span>修改密码</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-heading">管理中心</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link collapsed" href="{% url 'MAddJD' %}">
|
||||
<span>添加景点</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link collapsed" href="{% url 'MaddressDetail' %}">
|
||||
<span>景点管理页</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link collapsed" href="{% url 'userDetail' %}">
|
||||
<span>用户购票管理页</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</aside>
|
||||
{% endblock sidebar %}
|
||||
<!-- End Sidebar-->
|
||||
|
||||
<main id="main" class="main">
|
||||
|
||||
{% block content %}
|
||||
<div class="pagetitle" style="display:flex;align-items:center">
|
||||
<div style="margin-right:auto">
|
||||
<h1>首页</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="{% url 'index' %}">首页</a></li>
|
||||
<li class="breadcrumb-item active">首页</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<h5>
|
||||
{{ nowTime.year}}-{{ nowTime.mon}}-{{ nowTime.day}}
|
||||
</h5>
|
||||
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<section class="section dashboard">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-8">
|
||||
<div class="row">
|
||||
|
||||
<!-- 5A级景点的个数 -->
|
||||
<div class="col-xxl-4 col-md-6">
|
||||
<div class="card info-card sales-card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">5A级景点的个数</h5>
|
||||
|
||||
<div class="d-flex align-items-center">
|
||||
|
||||
<div class="ps-3">
|
||||
<h6>{{ A5Len }}</h6>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- End Sales Card -->
|
||||
|
||||
<!-- 评论最多的景区 -->
|
||||
<div class="col-xxl-4 col-md-6">
|
||||
<div class="card info-card revenue-card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">评论最多的景区</span></h5>
|
||||
|
||||
<div class="d-flex align-items-center">
|
||||
|
||||
<div class="ps-3">
|
||||
<h6>{{ commentsLenTitle }}</h6>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- End Revenue Card -->
|
||||
|
||||
<!-- 景点最多的地方 -->
|
||||
<div class="col-xxl-4 col-xl-12">
|
||||
|
||||
<div class="card info-card customers-card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">景点最多的地方</h5>
|
||||
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="ps-3">
|
||||
<h6>{{ provienceDicSort }}</h6>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- End Customers Card -->
|
||||
|
||||
<!-- 销量前十 -->
|
||||
<div class="col-12">
|
||||
<div class="card recent-sales overflow-auto">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">销量前十 <span>| 景点</span></h5>
|
||||
|
||||
<table class="table table-borderless">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">id</th>
|
||||
<th scope="col">景区名称</th>
|
||||
<th scope="col">景区等级</th>
|
||||
<th scope="col">景区地点</th>
|
||||
<th scope="col">景区评分</th>
|
||||
<th scope="col">价格</th>
|
||||
<th scope="col">月销量</th>
|
||||
<th scope="col">图片</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for i in saleCountTop10 %}
|
||||
<tr>
|
||||
<th scope="row"><a href="#">{{ i.id }}</a></th>
|
||||
<td>{{ i.title }}</td>
|
||||
<td><a href="#" class="text-primary">{{ i.level }}</a></td>
|
||||
<td><a href="#" class="text-dark">{{ i.province }}</a></td>
|
||||
<td><span class="badge bg-success">{{ i.score }}分</span></td>
|
||||
<td><span class="text-danger">{{ i.price }}</span></td>
|
||||
<td><span class="text-primary">{{ i.saleCount }}</span></td>
|
||||
<td>
|
||||
<a href="{{ i.detailUrl }}"></a>
|
||||
<a href="{% url 'saleTicket' %}"><img style="width:100%;height:120px;" src="{{ i.cover }}" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- End Recent Sales -->
|
||||
|
||||
</div>
|
||||
</div><!-- End Left side columns -->
|
||||
|
||||
<!-- -->
|
||||
<div class="col-lg-4">
|
||||
|
||||
<!-- start评分排名前十 -->
|
||||
<div class="card">
|
||||
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">评分排名前十<span>| 景点</span></h5>
|
||||
|
||||
<div class="activity">
|
||||
|
||||
|
||||
{% for travel in scoreTop10Data %}
|
||||
<div class="activity-item d-flex" style="margin-bottom:5px;">
|
||||
<a href="{% url 'saleTicket' %}">
|
||||
<img style="width:120px;height:96.5px;object-fit:cover;margin-right:5px;" src="{{ travel.cover }}" alt="">
|
||||
</a>
|
||||
<div class="activite-label">
|
||||
{{ travel.title }}
|
||||
</div>
|
||||
|
||||
<i class='bi bi-circle-fill activity-badge text-danger align-self-start'></i>
|
||||
<div class="activity-content">
|
||||
{{ travel.detailAddress }} <a href="#" style="margin-left:5px;color:orange!important;" class="fw-bold text-dark">评分:{{ travel.score }}</a>
|
||||
</div>
|
||||
</div><!-- 运用一个循环显示10条数据 -->
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- End 评分排名前十 -->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
</main><!-- End #main -->
|
||||
|
||||
<!-- ======= Footer ======= -->
|
||||
<footer id="footer" class="footer">
|
||||
<div class="copyright">
|
||||
Shineshe旅游推荐系统
|
||||
</div>
|
||||
</footer><!-- End Footer -->
|
||||
|
||||
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
||||
<script src="/static/china.js"></script>
|
||||
<script src="/static/echarts.min.js"></script>
|
||||
{% block echarts%}
|
||||
<script>
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
<script src="/static/vendor/apexcharts/apexcharts.min.js"></script>
|
||||
<script src="/static/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="/static/vendor/chart.js/chart.min.js"></script>
|
||||
<script src="/static/vendor/echarts/echarts.min.js"></script>
|
||||
<script src="/static/vendor/quill/quill.min.js"></script>
|
||||
<script src="/static/vendor/simple-datatables/simple-datatables.js"></script>
|
||||
<script src="/static/vendor/tinymce/tinymce.min.js"></script>
|
||||
<script src="/static/vendor/php-email-form/validate.js"></script>
|
||||
<script src="/static/js/main.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1 @@
|
||||
{% extends 'base.html' %}
|
@ -0,0 +1,85 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block title %}
|
||||
购票详情页面
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
<div class="pagetitle" style="display:flex;align-items:center">
|
||||
<div style="margin-right:auto">
|
||||
<h1>购票详情页</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="#">购票中心</a></li>
|
||||
<li class="breadcrumb-item active">购票详情页</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<h5>
|
||||
{{ nowTime.year}}-{{ nowTime.mon}}-{{ nowTime.day}}
|
||||
</h5>
|
||||
|
||||
</div>
|
||||
|
||||
<section class="section dashboard">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">购票详情页</h5>
|
||||
|
||||
<div class="activity">
|
||||
<div class="col-12">
|
||||
<div class="card recent-sales overflow-auto">
|
||||
<div class="card-body">
|
||||
<table class="table table-borderless">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">景区名称</th>
|
||||
<th scope="col">预约时间</th>
|
||||
<th scope="col">真实姓名</th>
|
||||
<th scope="col">身份证号</th>
|
||||
<th scope="col">联系方式</th>
|
||||
<th scope="col">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for i in saleTicketInfoData %}
|
||||
<tr>
|
||||
<td>{{ i.title }}</td>
|
||||
<td>{{ i.day }}</td>
|
||||
<td>{{ i.name }}</td>
|
||||
<td>{{ i.Idcard }}</td>
|
||||
<td>{{ i.connection }}</td>
|
||||
<td>
|
||||
<a href="ticketFox/?nid={{ i.id }}"><button class="btn btn-primary">修改</button></a>
|
||||
<a href="delete/?nid={{ i.id }}"><button class="btn btn-danger">删除</button></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block echarts %}
|
||||
<script>
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
@ -0,0 +1,84 @@
|
||||
{% extends 'Mindex.html' %}
|
||||
|
||||
{% block title %}
|
||||
用户购票管理页面
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="pagetitle" style="display:flex;align-items:center">
|
||||
<div style="margin-right:auto">
|
||||
<h1>用户购票管理页</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="#">管理中心</a></li>
|
||||
<li class="breadcrumb-item active">用户购票管理页</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<h5>
|
||||
{{ nowTime.year}}-{{ nowTime.mon}}-{{ nowTime.day}}
|
||||
</h5>
|
||||
|
||||
</div>
|
||||
|
||||
<section class="section dashboard">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">用户详情页</h5>
|
||||
|
||||
<div class="activity">
|
||||
<div class="col-12">
|
||||
<div class="card recent-sales overflow-auto">
|
||||
<div class="card-body">
|
||||
<table class="table table-borderless">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">景区名称</th>
|
||||
<th scope="col">预约时间</th>
|
||||
<th scope="col">真实姓名</th>
|
||||
<th scope="col">身份证号</th>
|
||||
<th scope="col">联系方式</th>
|
||||
<th scope="col">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for i in userDetailData %}
|
||||
<tr>
|
||||
<td>{{ i.title }}</td>
|
||||
<td>{{ i.day }}</td>
|
||||
<td>{{ i.name }}</td>
|
||||
<td>{{ i.Idcard }}</td>
|
||||
<td>{{ i.connection }}</td>
|
||||
<td>
|
||||
<a href="userFox/?nid={{ i.id }}"><button class="btn btn-primary">修改</button></a>
|
||||
<a href="delete/?nid={{ i.id }}"><button class="btn btn-danger">删除</button></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block echarts %}
|
||||
<script>
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
@ -0,0 +1,12 @@
|
||||
from django.shortcuts import render,redirect
|
||||
|
||||
def errorResponse(request,errorMsg):
|
||||
return render(request,'404.html',{
|
||||
'errorMsg':errorMsg
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,27 @@
|
||||
from SS01.models import User,SaleTicketDetail
|
||||
|
||||
def changeSelfInfo(username,formData,file):
|
||||
user = User.objects.get(username=username)
|
||||
user.address = formData['address']
|
||||
user.sex = formData['sex']
|
||||
if formData['textarea']:
|
||||
user.textarea = formData['textarea']
|
||||
if file.get('avatar') != None:
|
||||
user.avatar = file.get('avatar')
|
||||
|
||||
user.save()
|
||||
|
||||
def getChangePassword(userInfo,passwordInfo):
|
||||
oldPwd = passwordInfo['oldPassword']
|
||||
newPwd = passwordInfo['newPassword']
|
||||
newPwdConfirm = passwordInfo['newPasswordConfirm']
|
||||
user = User.objects.get(username=userInfo.username)
|
||||
if oldPwd != userInfo.password: return '初始密码错误'
|
||||
if newPwd != newPwdConfirm: return '两次密码不一致'
|
||||
|
||||
user.password = newPwd
|
||||
user.save()
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,68 @@
|
||||
from SS01.utils import getPublicData
|
||||
import random
|
||||
import time
|
||||
|
||||
travelMapData = getPublicData.getAllTravelInfoMapData()
|
||||
|
||||
def getIndexTagData(): #获得数据库中的数据
|
||||
A5Len = 0
|
||||
commentsLenMax = 0
|
||||
commentsLenTitle = ''
|
||||
provienceDic = {}
|
||||
for travel in travelMapData:
|
||||
if travel.level == '5A景区':
|
||||
A5Len += 1
|
||||
if int(travel.commentsLen) > commentsLenMax:
|
||||
commentsLenMax = int(travel.commentsLen)
|
||||
commentsLenTitle = travel.title
|
||||
if provienceDic.get(travel.province,-1) == -1:
|
||||
provienceDic[travel.province] = 1
|
||||
else:
|
||||
provienceDic[travel.province] += 1
|
||||
|
||||
provienceDicSort = list(sorted(provienceDic.items(),key=lambda x:x[1],reverse=True))[0][0]
|
||||
|
||||
return A5Len,commentsLenTitle,provienceDicSort
|
||||
|
||||
def getAnthorData(): #获得数据库中评分数据
|
||||
scoreTop10 = []
|
||||
for travel in travelMapData:
|
||||
if travel.score == '5':
|
||||
scoreTop10.append(travel)
|
||||
|
||||
maxLen = len(scoreTop10)
|
||||
scoreTop10Data = []
|
||||
for i in range(10):
|
||||
randomIndex = random.randint(0, maxLen - 1)
|
||||
scoreTop10Data.append(scoreTop10[randomIndex])
|
||||
|
||||
saleCountTop10 = list(sorted(travelMapData,key=lambda x:int(x.saleCount),reverse=True))[:10]#对销量前十进行排序
|
||||
return scoreTop10Data,saleCountTop10
|
||||
|
||||
def getNowTime(): #时间
|
||||
timeFormat = time.localtime()
|
||||
year = timeFormat.tm_year
|
||||
mon = timeFormat.tm_mon
|
||||
day = timeFormat.tm_mday
|
||||
return year,mon,day
|
||||
|
||||
def getGeoData():
|
||||
dataDic = {}
|
||||
for i in travelMapData:
|
||||
for j in getPublicData.cityList:
|
||||
for city in j['city']:
|
||||
if city.find(i.province) != -1:
|
||||
if dataDic.get(j['province'],-1) == -1:
|
||||
dataDic[j['province']] = 1
|
||||
else:
|
||||
dataDic[j['province']] += 1
|
||||
|
||||
resultData = []
|
||||
for key,value in dataDic.items():
|
||||
resultData.append({
|
||||
'name':key,
|
||||
'value':value,
|
||||
})
|
||||
return resultData
|
||||
|
||||
|
@ -0,0 +1,113 @@
|
||||
from SS01.models import TravelInfo,User
|
||||
import json
|
||||
import time
|
||||
|
||||
monthList = ['January','February','March','April','May','June','July','August','September','October','November','December']
|
||||
|
||||
cityList = [
|
||||
{'province': '北京', 'city': ['北京市']},
|
||||
{'province': '天津', 'city': ['天津市']},
|
||||
{'province': '河北',
|
||||
'city': ['石家庄市', '唐山市', '秦皇岛市', '邯郸市', '邢台市', '保定市', '张家口市', '承德市', '沧州市', '廊坊市',
|
||||
'衡水市']},
|
||||
{'province': '山西',
|
||||
'city': ['太原市', '大同市', '阳泉市', '长治市', '晋城市', '朔州市', '晋中市', '运城市', '忻州市', '临汾市',
|
||||
'吕梁市']},
|
||||
{'province': '内蒙古自治区',
|
||||
'city': ['呼和浩特市', '包头市', '乌海市', '赤峰市', '通辽市', '鄂尔多斯市', '呼伦贝尔市', '巴彦淖尔市',
|
||||
'乌兰察布市', '兴安盟', '锡林郭勒盟', '阿拉善盟']},
|
||||
{'province': '辽宁',
|
||||
'city': ['沈阳市', '大连市', '鞍山市', '抚顺市', '本溪市', '丹东市', '锦州市', '营口市', '阜新市', '辽阳市',
|
||||
'盘锦市', '铁岭市', '朝阳市', '葫芦岛市']},
|
||||
{'province': '吉林',
|
||||
'city': ['长春市', '吉林市', '四平市', '辽源市', '通化市', '白山市', '松原市', '白城市', '延吉市']},
|
||||
{'province': '黑龙江',
|
||||
'city': ['哈尔滨市', '齐齐哈尔市', '鸡西市', '鹤岗市', '双鸭山市', '大庆市', '伊春市', '佳木斯市', '七台河市',
|
||||
'牡丹江市', '黑河市', '绥化市',
|
||||
'大兴安岭地区']},
|
||||
{'province': '上海', 'city': ['上海市']},
|
||||
{'province': '江苏',
|
||||
'city': ['南京市', '无锡市', '徐州市', '常州市', '苏州市', '南通市', '连云港市', '淮安市', '盐城市', '扬州市',
|
||||
'镇江市', '泰州市', '宿迁市']},
|
||||
{'province': '浙江',
|
||||
'city': ['杭州市', '宁波市', '温州市', '嘉兴市', '湖州市', '绍兴市', '金华市', '衢州市', '舟山市', '台州市',
|
||||
'丽水市']},
|
||||
{'province': '安徽',
|
||||
'city': ['合肥市', '芜湖市', '蚌埠市', '淮南市', '马鞍山市', '淮北市', '铜陵市', '安庆市', '黄山市', '滁州市',
|
||||
'阜阳市', '宿州市', '六安市', '亳州市',
|
||||
'巢湖市', '池州市', '宣城市']},
|
||||
{'province': '福建',
|
||||
'city': ['福州市', '厦门市', '莆田市', '三明市', '泉州市', '漳州市', '南平市', '龙岩市', '宁德市']},
|
||||
{'province': '江西',
|
||||
'city': ['南昌市', '景德镇市', '萍乡市', '新余市', '九江市', '鹰潭市', '赣州市', '吉安市', '宜春市', '抚州市',
|
||||
'上饶市']},
|
||||
{'province': '山东',
|
||||
'city': ['济南市', '青岛市', '淄博市', '枣庄市', '东营市', '烟台市', '潍坊市', '济宁市', '泰安市', '威海市',
|
||||
'日照市', '莱芜市', '临沂市', '德州市',
|
||||
'聊城市', '滨州市', '荷泽市']},
|
||||
{'province': '河南',
|
||||
'city': ['郑州市', '开封市', '洛阳市', '平顶山市', '安阳市', '鹤壁市', '新乡市', '焦作市', '济源市', '濮阳市',
|
||||
'许昌市', '漯河市', '三门峡市', '南阳市',
|
||||
'商丘市', '信阳市', '周口市', '驻马店市']},
|
||||
{'province': '湖北',
|
||||
'city': ['武汉市', '黄石市', '十堰市', '宜昌市', '襄阳市', '荆州市', '荆门市', '鄂州市', '孝感市', '黄冈市',
|
||||
'咸宁市', '随州市', '恩施市', '仙桃市',
|
||||
'天门市', '潜江市', '神农架林区']},
|
||||
{'province': '湖南',
|
||||
'city': ['长沙市', '株洲市', '湘潭市', '衡阳市', '邵阳市', '岳阳市', '常德市', '张家界市', '益阳市', '郴州市',
|
||||
'永州市', '怀化市', '娄底市', '吉首市', '湘西']},
|
||||
{'province': '广东',
|
||||
'city': ['广州市', '韶关市', '深圳市', '珠海市', '汕头市', '佛山市', '江门市', '湛江市', '茂名市', '肇庆市',
|
||||
'惠州市', '梅州市', '汕尾市', '河源市',
|
||||
'阳江市', '清远市', '东莞市', '中山市', '东沙群岛', '潮州市', '揭阳市', '云浮市']},
|
||||
{'province': '广西',
|
||||
'city': ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '钦州市', '贵港市', '玉林市', '百色市', '贺州市',
|
||||
'河池市', '来宾市', '崇左市', '防城港市']},
|
||||
{'province': '海南',
|
||||
'city': ['海口市', '三亚市', '三沙市', '五指山市', '琼海市', '儋州市', '文昌市', '万宁市', '东方市', '安定县',
|
||||
'屯昌县', '澄迈县', '临高县', '白沙',
|
||||
'昌江', '乐东', '陵水', '保亭', '琼中']},
|
||||
{'province': '重庆', 'city': ['重庆市']},
|
||||
{'province': '四川',
|
||||
'city': ['成都市', '自贡市', '攀枝花市', '泸州市', '德阳市', '绵阳市', '广元市', '遂宁市', '内江市', '乐山市',
|
||||
'南充市', '眉山市', '宜宾市', '广安市',
|
||||
'达州市', '雅安市', '巴中市', '资阳市', '阿坝', '甘孜', '凉山', ]},
|
||||
{'province': '贵州',
|
||||
'city': ['贵阳市', '六盘水市', '遵义市', '安顺市', '铜仁市', '黔西南', '毕节市', '黔东南', '黔南']},
|
||||
{'province': '云南',
|
||||
'city': ['昆明市', '曲靖市', '玉溪市', '保山市', '昭通市', '丽江市', '普洱市', '临沧市', '楚雄', '文山',
|
||||
'西双版纳', '大理', '德宏', '怒江', '迪庆']},
|
||||
{'province': '西藏', 'city': ['拉萨市', '昌都地区', '山南地区', '日喀则地区', '那曲地区', '阿里地区', '林芝地区']},
|
||||
{'province': '陕西',
|
||||
'city': ['西安市', '铜川市', '宝鸡市', '咸阳市', '渭南市', '延安市', '汉中市', '榆林市', '安康市', '商洛市']},
|
||||
{'province': '甘肃',
|
||||
'city': ['兰州市', '嘉峪关市', '金昌市', '白银市', '天水市', '武威市', '张掖市', '平凉市', '酒泉市', '庆阳市',
|
||||
'定西市', '陇南市', '临夏', '甘南']},
|
||||
{'province': '青海', 'city': ['西宁市', '海乐市', '海北', '黄南', '海南', '果洛', '玉树', '海西']},
|
||||
{'province': '宁夏', 'city': ['银川市', '石嘴山市', '吴忠市', '固原市', '中卫市', ]},
|
||||
{'province': '新疆',
|
||||
'city': ['乌鲁木齐市', '克拉玛依市', '吐鲁番地区', '哈密地区', '昌吉', '博尔塔拉', '巴音郭楞', '阿克苏地区',
|
||||
'克孜勒苏柯尔克孜自治州', '喀什地区', '和田地区', '伊犁',
|
||||
'塔城地区', '阿勒泰地区', '石河子市', '阿拉尔地区', '图木舒克市', '五家渠市', ]},
|
||||
{'province': '台湾',
|
||||
'city': ['台北市', '高雄市', '台南市', '台中市', '金门县', '南投县', '基隆市', '新竹市', '嘉义市', '新北市',
|
||||
'宜兰县', '新竹县', '桃园县', '苗粟县',
|
||||
'彰化县', '嘉义县', '云林县', '屏东县', '台东县', '花莲县', '澎湖县', '连江县']},
|
||||
{'province': '香港', 'city': ['香港岛', '新界']},
|
||||
{'province': '澳门', 'city': ['澳门', '离岛']},
|
||||
]
|
||||
|
||||
def getAllTravelInfoMapData():
|
||||
def map_fn(item):
|
||||
item.img_list = json.loads(item.img_list) #直接用django中的模型
|
||||
item.comments = json.loads(item.comments)
|
||||
return item
|
||||
|
||||
travelList = TravelInfo.objects.all()
|
||||
travelListMap = list(map(map_fn,travelList))
|
||||
return travelListMap
|
||||
|
||||
def getAllUsersData():
|
||||
return User.objects.all()
|
||||
|
||||
|
@ -0,0 +1,4 @@
|
||||
#很重要关系到数据库的连接
|
||||
import pymysql
|
||||
pymysql.version_info = (1,4,13,'final',0)
|
||||
pymysql.install_as_MySQLdb()
|
@ -0,0 +1,16 @@
|
||||
"""
|
||||
ASGI config for SunShine project.
|
||||
|
||||
It exposes the ASGI callable as a module-level variable named ``application``.
|
||||
|
||||
For more information on this file, see
|
||||
https://docs.djangoproject.com/en/5.0/howto/deployment/asgi/
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
from django.core.asgi import get_asgi_application
|
||||
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'SunShine.settings')
|
||||
|
||||
application = get_asgi_application()
|
@ -0,0 +1,142 @@
|
||||
"""
|
||||
Django settings for SunShine project.
|
||||
|
||||
Generated by 'django-admin startproject' using Django 5.0.3.
|
||||
|
||||
For more information on this file, see
|
||||
https://docs.djangoproject.com/en/5.0/topics/settings/
|
||||
|
||||
For the full list of settings and their values, see
|
||||
https://docs.djangoproject.com/en/5.0/ref/settings/
|
||||
"""
|
||||
|
||||
from pathlib import Path
|
||||
import os
|
||||
|
||||
|
||||
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
||||
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||
|
||||
|
||||
# Quick-start development settings - unsuitable for production
|
||||
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
|
||||
|
||||
# SECURITY WARNING: keep the secret key used in production secret!
|
||||
SECRET_KEY = 'django-insecure-7^4%p89@01j+i*i6yefl0d#l*!pjy+)o1p97%gz*_rz*xr-1b%'
|
||||
|
||||
# SECURITY WARNING: don't run with debug turned on in production!
|
||||
DEBUG = True
|
||||
|
||||
ALLOWED_HOSTS = []
|
||||
|
||||
|
||||
# Application definition
|
||||
|
||||
INSTALLED_APPS = [
|
||||
'django.contrib.admin',
|
||||
'django.contrib.auth',
|
||||
'django.contrib.contenttypes',
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'SS01', #注册SS01
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
'django.middleware.security.SecurityMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
# 'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
'middleware.userMiddleware.UserMiddleware',
|
||||
]
|
||||
|
||||
ROOT_URLCONF = 'SunShine.urls'
|
||||
|
||||
TEMPLATES = [
|
||||
{
|
||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||
'DIRS': [BASE_DIR / 'templates'],
|
||||
'APP_DIRS': True,
|
||||
'OPTIONS': {
|
||||
'context_processors': [
|
||||
'django.template.context_processors.debug',
|
||||
'django.template.context_processors.request',
|
||||
'django.contrib.auth.context_processors.auth',
|
||||
'django.contrib.messages.context_processors.messages',
|
||||
],
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
WSGI_APPLICATION = 'SunShine.wsgi.application'
|
||||
|
||||
# Database
|
||||
# https://docs.djangoproject.com/en/5.0/ref/settings/#databases
|
||||
# DATABASES = {
|
||||
# 'default': {
|
||||
# 'ENGINE': 'django.db.backends.sqlite3',
|
||||
# 'NAME': BASE_DIR / 'db.sqlite3',
|
||||
# }
|
||||
# }
|
||||
DATABASES = {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.mysql",
|
||||
"NAME": "SunShine", #数据库名字
|
||||
"USER": "root",
|
||||
"PASSWORD": "0000",
|
||||
"HOST": "127.0.0.1", #本机
|
||||
"PORT": "3306", #端口
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Password validation
|
||||
# https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators
|
||||
|
||||
AUTH_PASSWORD_VALIDATORS = [
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
|
||||
},
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
|
||||
},
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
|
||||
},
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
|
||||
},
|
||||
]
|
||||
|
||||
# Internationalization
|
||||
# https://docs.djangoproject.com/en/5.0/topics/i18n/
|
||||
|
||||
LANGUAGE_CODE = 'zh-hans'
|
||||
|
||||
TIME_ZONE = 'Asia/Shanghai'
|
||||
|
||||
USE_I18N = True
|
||||
|
||||
USE_LION = True
|
||||
|
||||
USE_TZ = True
|
||||
|
||||
|
||||
# Static files (CSS, JavaScript, Images)
|
||||
# https://docs.djangoproject.com/en/5.0/howto/static-files/
|
||||
|
||||
STATIC_URL = '/static/'
|
||||
STATICFILES_DIRS = (
|
||||
os.path.join(BASE_DIR,'static'),
|
||||
)
|
||||
|
||||
MEDIA_URL = '/media/'
|
||||
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
|
||||
|
||||
# Default primary key field type
|
||||
# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field
|
||||
|
||||
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
@ -0,0 +1,37 @@
|
||||
"""
|
||||
URL configuration for SunShine project.
|
||||
|
||||
The `urlpatterns` list routes URLs to views. For more information please see:
|
||||
https://docs.djangoproject.com/en/5.0/topics/http/urls/
|
||||
Examples:
|
||||
Function views
|
||||
1. Add an import: from my_app import views
|
||||
2. Add a URL to urlpatterns: path('', views.home, name='home')
|
||||
Class-based views
|
||||
1. Add an import: from other_app.views import Home
|
||||
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
|
||||
Including another URLconf
|
||||
1. Import the include() function: from django.urls import include, path
|
||||
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||
"""
|
||||
from django.contrib import admin
|
||||
from django.urls import path,include
|
||||
from SS01 import views
|
||||
from django.conf import settings
|
||||
from django.conf.urls.static import static
|
||||
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
path('admin/', admin.site.urls),
|
||||
path('SS01/', include('SS01.urls')),
|
||||
path('', views.login,name='login'),
|
||||
]
|
||||
|
||||
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,16 @@
|
||||
"""
|
||||
WSGI config for SunShine project.
|
||||
|
||||
It exposes the WSGI callable as a module-level variable named ``application``.
|
||||
|
||||
For more information on this file, see
|
||||
https://docs.djangoproject.com/en/5.0/howto/deployment/wsgi/
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'SunShine.settings')
|
||||
|
||||
application = get_wsgi_application()
|
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env python
|
||||
"""Django's command-line utility for administrative tasks."""
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def main():
|
||||
"""Run administrative tasks."""
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'SunShine.settings')
|
||||
try:
|
||||
from django.core.management import execute_from_command_line
|
||||
except ImportError as exc:
|
||||
raise ImportError(
|
||||
"Couldn't import Django. Are you sure it's installed and "
|
||||
"available on your PYTHONPATH environment variable? Did you "
|
||||
"forget to activate a virtual environment?"
|
||||
) from exc
|
||||
execute_from_command_line(sys.argv)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
After Width: | Height: | Size: 233 KiB |
After Width: | Height: | Size: 609 KiB |
After Width: | Height: | Size: 609 KiB |
After Width: | Height: | Size: 609 KiB |
After Width: | Height: | Size: 167 KiB |
After Width: | Height: | Size: 167 KiB |
@ -0,0 +1,20 @@
|
||||
from django.utils.deprecation import MiddlewareMixin
|
||||
from django.shortcuts import render,redirect
|
||||
|
||||
class UserMiddleware(MiddlewareMixin):#django中有三个中间键
|
||||
def process_request(self,request):
|
||||
path = request.path_info
|
||||
if path == '/SS01/login/' or path == '/SS01/register/':
|
||||
return None
|
||||
else:
|
||||
if not request.session.get('username'):# 如果进入了/SS01/index这样的地址
|
||||
return redirect('/SS01/login/')
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
def process_view(self,request,callback,callback_args,callback_kwargs):
|
||||
pass
|
||||
|
||||
def process_response(self,request,response):
|
||||
return response
|
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 643 KiB |
After Width: | Height: | Size: 374 KiB |
After Width: | Height: | Size: 610 B |
After Width: | Height: | Size: 738 B |
@ -0,0 +1,319 @@
|
||||
/**
|
||||
* Template Name: NiceAdmin - v2.2.2
|
||||
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
*/
|
||||
(function() {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Easy selector helper function
|
||||
*/
|
||||
const select = (el, all = false) => {
|
||||
el = el.trim()
|
||||
if (all) {
|
||||
return [...document.querySelectorAll(el)]
|
||||
} else {
|
||||
return document.querySelector(el)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Easy event listener function
|
||||
*/
|
||||
const on = (type, el, listener, all = false) => {
|
||||
if (all) {
|
||||
select(el, all).forEach(e => e.addEventListener(type, listener))
|
||||
} else {
|
||||
select(el, all).addEventListener(type, listener)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Easy on scroll event listener
|
||||
*/
|
||||
const onscroll = (el, listener) => {
|
||||
el.addEventListener('scroll', listener)
|
||||
}
|
||||
|
||||
/**
|
||||
* Sidebar toggle
|
||||
*/
|
||||
if (select('.toggle-sidebar-btn')) {
|
||||
on('click', '.toggle-sidebar-btn', function(e) {
|
||||
select('body').classList.toggle('toggle-sidebar')
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Search bar toggle
|
||||
*/
|
||||
if (select('.search-bar-toggle')) {
|
||||
on('click', '.search-bar-toggle', function(e) {
|
||||
select('.search-bar').classList.toggle('search-bar-show')
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Navbar links active state on scroll
|
||||
*/
|
||||
let navbarlinks = select('#navbar .scrollto', true)
|
||||
const navbarlinksActive = () => {
|
||||
let position = window.scrollY + 200
|
||||
navbarlinks.forEach(navbarlink => {
|
||||
if (!navbarlink.hash) return
|
||||
let section = select(navbarlink.hash)
|
||||
if (!section) return
|
||||
if (position >= section.offsetTop && position <= (section.offsetTop + section.offsetHeight)) {
|
||||
navbarlink.classList.add('active')
|
||||
} else {
|
||||
navbarlink.classList.remove('active')
|
||||
}
|
||||
})
|
||||
}
|
||||
window.addEventListener('load', navbarlinksActive)
|
||||
onscroll(document, navbarlinksActive)
|
||||
|
||||
/**
|
||||
* Toggle .header-scrolled class to #header when page is scrolled
|
||||
*/
|
||||
let selectHeader = select('#header')
|
||||
if (selectHeader) {
|
||||
const headerScrolled = () => {
|
||||
if (window.scrollY > 100) {
|
||||
selectHeader.classList.add('header-scrolled')
|
||||
} else {
|
||||
selectHeader.classList.remove('header-scrolled')
|
||||
}
|
||||
}
|
||||
window.addEventListener('load', headerScrolled)
|
||||
onscroll(document, headerScrolled)
|
||||
}
|
||||
|
||||
/**
|
||||
* Back to top button
|
||||
*/
|
||||
let backtotop = select('.back-to-top')
|
||||
if (backtotop) {
|
||||
const toggleBacktotop = () => {
|
||||
if (window.scrollY > 100) {
|
||||
backtotop.classList.add('active')
|
||||
} else {
|
||||
backtotop.classList.remove('active')
|
||||
}
|
||||
}
|
||||
window.addEventListener('load', toggleBacktotop)
|
||||
onscroll(document, toggleBacktotop)
|
||||
}
|
||||
|
||||
/**
|
||||
* Initiate tooltips
|
||||
*/
|
||||
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
||||
var tooltipList = tooltipTriggerList.map(function(tooltipTriggerEl) {
|
||||
return new bootstrap.Tooltip(tooltipTriggerEl)
|
||||
})
|
||||
|
||||
/**
|
||||
* Initiate quill editors
|
||||
*/
|
||||
if (select('.quill-editor-default')) {
|
||||
new Quill('.quill-editor-default', {
|
||||
theme: 'snow'
|
||||
});
|
||||
}
|
||||
|
||||
if (select('.quill-editor-bubble')) {
|
||||
new Quill('.quill-editor-bubble', {
|
||||
theme: 'bubble'
|
||||
});
|
||||
}
|
||||
|
||||
if (select('.quill-editor-full')) {
|
||||
new Quill(".quill-editor-full", {
|
||||
modules: {
|
||||
toolbar: [
|
||||
[{
|
||||
font: []
|
||||
}, {
|
||||
size: []
|
||||
}],
|
||||
["bold", "italic", "underline", "strike"],
|
||||
[{
|
||||
color: []
|
||||
},
|
||||
{
|
||||
background: []
|
||||
}
|
||||
],
|
||||
[{
|
||||
script: "super"
|
||||
},
|
||||
{
|
||||
script: "sub"
|
||||
}
|
||||
],
|
||||
[{
|
||||
list: "ordered"
|
||||
},
|
||||
{
|
||||
list: "bullet"
|
||||
},
|
||||
{
|
||||
indent: "-1"
|
||||
},
|
||||
{
|
||||
indent: "+1"
|
||||
}
|
||||
],
|
||||
["direction", {
|
||||
align: []
|
||||
}],
|
||||
["link", "image", "video"],
|
||||
["clean"]
|
||||
]
|
||||
},
|
||||
theme: "snow"
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Initiate TinyMCE Editor
|
||||
*/
|
||||
|
||||
var useDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||
|
||||
tinymce.init({
|
||||
selector: 'textarea.tinymce-editor',
|
||||
plugins: 'print preview paste importcss searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists wordcount imagetools textpattern noneditable help charmap quickbars emoticons',
|
||||
imagetools_cors_hosts: ['picsum.photos'],
|
||||
menubar: 'file edit view insert format tools table help',
|
||||
toolbar: 'undo redo | bold italic underline strikethrough | fontselect fontsizeselect formatselect | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | forecolor backcolor removeformat | pagebreak | charmap emoticons | fullscreen preview save print | insertfile image media template link anchor codesample | ltr rtl',
|
||||
toolbar_sticky: true,
|
||||
autosave_ask_before_unload: true,
|
||||
autosave_interval: '30s',
|
||||
autosave_prefix: '{path}{query}-{id}-',
|
||||
autosave_restore_when_empty: false,
|
||||
autosave_retention: '2m',
|
||||
image_advtab: true,
|
||||
link_list: [{
|
||||
title: 'My page 1',
|
||||
value: 'https://www.tiny.cloud'
|
||||
},
|
||||
{
|
||||
title: 'My page 2',
|
||||
value: 'http://www.moxiecode.com'
|
||||
}
|
||||
],
|
||||
image_list: [{
|
||||
title: 'My page 1',
|
||||
value: 'https://www.tiny.cloud'
|
||||
},
|
||||
{
|
||||
title: 'My page 2',
|
||||
value: 'http://www.moxiecode.com'
|
||||
}
|
||||
],
|
||||
image_class_list: [{
|
||||
title: 'None',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
title: 'Some class',
|
||||
value: 'class-name'
|
||||
}
|
||||
],
|
||||
importcss_append: true,
|
||||
file_picker_callback: function(callback, value, meta) {
|
||||
/* Provide file and text for the link dialog */
|
||||
if (meta.filetype === 'file') {
|
||||
callback('https://www.google.com/logos/google.jpg', {
|
||||
text: 'My text'
|
||||
});
|
||||
}
|
||||
|
||||
/* Provide image and alt text for the image dialog */
|
||||
if (meta.filetype === 'image') {
|
||||
callback('https://www.google.com/logos/google.jpg', {
|
||||
alt: 'My alt text'
|
||||
});
|
||||
}
|
||||
|
||||
/* Provide alternative source and posted for the media dialog */
|
||||
if (meta.filetype === 'media') {
|
||||
callback('movie.mp4', {
|
||||
source2: 'alt.ogg',
|
||||
poster: 'https://www.google.com/logos/google.jpg'
|
||||
});
|
||||
}
|
||||
},
|
||||
templates: [{
|
||||
title: 'New Table',
|
||||
description: 'creates a new table',
|
||||
content: '<div class="mceTmpl"><table width="98%%" border="0" cellspacing="0" cellpadding="0"><tr><th scope="col"> </th><th scope="col"> </th></tr><tr><td> </td><td> </td></tr></table></div>'
|
||||
},
|
||||
{
|
||||
title: 'Starting my story',
|
||||
description: 'A cure for writers block',
|
||||
content: 'Once upon a time...'
|
||||
},
|
||||
{
|
||||
title: 'New list with dates',
|
||||
description: 'New List with dates',
|
||||
content: '<div class="mceTmpl"><span class="cdate">cdate</span><br /><span class="mdate">mdate</span><h2>My List</h2><ul><li></li><li></li></ul></div>'
|
||||
}
|
||||
],
|
||||
template_cdate_format: '[Date Created (CDATE): %m/%d/%Y : %H:%M:%S]',
|
||||
template_mdate_format: '[Date Modified (MDATE): %m/%d/%Y : %H:%M:%S]',
|
||||
height: 600,
|
||||
image_caption: true,
|
||||
quickbars_selection_toolbar: 'bold italic | quicklink h2 h3 blockquote quickimage quicktable',
|
||||
noneditable_noneditable_class: 'mceNonEditable',
|
||||
toolbar_mode: 'sliding',
|
||||
contextmenu: 'link image imagetools table',
|
||||
skin: useDarkMode ? 'oxide-dark' : 'oxide',
|
||||
content_css: useDarkMode ? 'dark' : 'default',
|
||||
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }'
|
||||
});
|
||||
|
||||
/**
|
||||
* Initiate Bootstrap validation check
|
||||
*/
|
||||
var needsValidation = document.querySelectorAll('.needs-validation')
|
||||
|
||||
Array.prototype.slice.call(needsValidation)
|
||||
.forEach(function(form) {
|
||||
form.addEventListener('submit', function(event) {
|
||||
if (!form.checkValidity()) {
|
||||
event.preventDefault()
|
||||
event.stopPropagation()
|
||||
}
|
||||
|
||||
form.classList.add('was-validated')
|
||||
}, false)
|
||||
})
|
||||
|
||||
/**
|
||||
* Initiate Datatables
|
||||
*/
|
||||
const datatables = select('.datatable', true)
|
||||
datatables.forEach(datatable => {
|
||||
new simpleDatatables.DataTable(datatable);
|
||||
})
|
||||
|
||||
/**
|
||||
* Autoresize echart charts
|
||||
*/
|
||||
const mainContainer = select('#main');
|
||||
if (mainContainer) {
|
||||
setTimeout(() => {
|
||||
new ResizeObserver(function() {
|
||||
select('.echart', true).forEach(getEchart => {
|
||||
echarts.getInstanceByDom(getEchart).resize();
|
||||
})
|
||||
}).observe(mainContainer);
|
||||
}, 200);
|
||||
}
|
||||
|
||||
})();
|
@ -0,0 +1,63 @@
|
||||
{
|
||||
"name": "ar",
|
||||
"options": {
|
||||
"months": [
|
||||
"يناير",
|
||||
"فبراير",
|
||||
"مارس",
|
||||
"أبريل",
|
||||
"مايو",
|
||||
"يونيو",
|
||||
"يوليو",
|
||||
"أغسطس",
|
||||
"سبتمبر",
|
||||
"أكتوبر",
|
||||
"نوفمبر",
|
||||
"ديسمبر"
|
||||
],
|
||||
"shortMonths": [
|
||||
"يناير",
|
||||
"فبراير",
|
||||
"مارس",
|
||||
"أبريل",
|
||||
"مايو",
|
||||
"يونيو",
|
||||
"يوليو",
|
||||
"أغسطس",
|
||||
"سبتمبر",
|
||||
"أكتوبر",
|
||||
"نوفمبر",
|
||||
"ديسمبر"
|
||||
],
|
||||
"days": [
|
||||
"الأحد",
|
||||
"الإثنين",
|
||||
"الثلاثاء",
|
||||
"الأربعاء",
|
||||
"الخميس",
|
||||
"الجمعة",
|
||||
"السبت"
|
||||
],
|
||||
"shortDays": [
|
||||
"أحد",
|
||||
"إثنين",
|
||||
"ثلاثاء",
|
||||
"أربعاء",
|
||||
"خميس",
|
||||
"جمعة",
|
||||
"سبت"
|
||||
],
|
||||
"toolbar": {
|
||||
"exportToSVG": "تحميل بصيغة SVG",
|
||||
"exportToPNG": "تحميل بصيغة PNG",
|
||||
"exportToCSV": "تحميل بصيغة CSV",
|
||||
"menu": "القائمة",
|
||||
"selection": "تحديد",
|
||||
"selectionZoom": "تكبير التحديد",
|
||||
"zoomIn": "تكبير",
|
||||
"zoomOut": "تصغير",
|
||||
"pan": "تحريك",
|
||||
"reset": "إعادة التعيين"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "ca",
|
||||
"options": {
|
||||
"months": [
|
||||
"Gener",
|
||||
"Febrer",
|
||||
"Març",
|
||||
"Abril",
|
||||
"Maig",
|
||||
"Juny",
|
||||
"Juliol",
|
||||
"Agost",
|
||||
"Setembre",
|
||||
"Octubre",
|
||||
"Novembre",
|
||||
"Desembre"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Gen.",
|
||||
"Febr.",
|
||||
"Març",
|
||||
"Abr.",
|
||||
"Maig",
|
||||
"Juny",
|
||||
"Jul.",
|
||||
"Ag.",
|
||||
"Set.",
|
||||
"Oct.",
|
||||
"Nov.",
|
||||
"Des."
|
||||
],
|
||||
"days": [
|
||||
"Diumenge",
|
||||
"Dilluns",
|
||||
"Dimarts",
|
||||
"Dimecres",
|
||||
"Dijous",
|
||||
"Divendres",
|
||||
"Dissabte"
|
||||
],
|
||||
"shortDays": ["Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Descarregar SVG",
|
||||
"exportToPNG": "Descarregar PNG",
|
||||
"exportToCSV": "Descarregar CSV",
|
||||
"menu": "Menú",
|
||||
"selection": "Seleccionar",
|
||||
"selectionZoom": "Seleccionar Zoom",
|
||||
"zoomIn": "Augmentar",
|
||||
"zoomOut": "Disminuir",
|
||||
"pan": "Navegació",
|
||||
"reset": "Reiniciar Zoom"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "cs",
|
||||
"options": {
|
||||
"months": [
|
||||
"Leden",
|
||||
"Únor",
|
||||
"Březen",
|
||||
"Duben",
|
||||
"Květen",
|
||||
"Červen",
|
||||
"Červenec",
|
||||
"Srpen",
|
||||
"Září",
|
||||
"Říjen",
|
||||
"Listopad",
|
||||
"Prosinec"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Led",
|
||||
"Úno",
|
||||
"Bře",
|
||||
"Dub",
|
||||
"Kvě",
|
||||
"Čvn",
|
||||
"Čvc",
|
||||
"Srp",
|
||||
"Zář",
|
||||
"Říj",
|
||||
"Lis",
|
||||
"Pro"
|
||||
],
|
||||
"days": [
|
||||
"Neděle",
|
||||
"Pondělí",
|
||||
"Úterý",
|
||||
"Středa",
|
||||
"Čtvrtek",
|
||||
"Pátek",
|
||||
"Sobota"
|
||||
],
|
||||
"shortDays": ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Stáhnout SVG",
|
||||
"exportToPNG": "Stáhnout PNG",
|
||||
"exportToCSV": "Stáhnout CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Vybrat",
|
||||
"selectionZoom": "Zoom: Vybrat",
|
||||
"zoomIn": "Zoom: Přiblížit",
|
||||
"zoomOut": "Zoom: Oddálit",
|
||||
"pan": "Přesouvat",
|
||||
"reset": "Resetovat"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "de",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januar",
|
||||
"Februar",
|
||||
"März",
|
||||
"April",
|
||||
"Mai",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"August",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"Dezember"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mär",
|
||||
"Apr",
|
||||
"Mai",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dez"
|
||||
],
|
||||
"days": [
|
||||
"Sonntag",
|
||||
"Montag",
|
||||
"Dienstag",
|
||||
"Mittwoch",
|
||||
"Donnerstag",
|
||||
"Freitag",
|
||||
"Samstag"
|
||||
],
|
||||
"shortDays": ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "SVG speichern",
|
||||
"exportToPNG": "PNG speichern",
|
||||
"exportToCSV": "CSV speichern",
|
||||
"menu": "Menü",
|
||||
"selection": "Auswahl",
|
||||
"selectionZoom": "Auswahl vergrößern",
|
||||
"zoomIn": "Vergrößern",
|
||||
"zoomOut": "Verkleinern",
|
||||
"pan": "Verschieben",
|
||||
"reset": "Zoom zurücksetzen"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "en",
|
||||
"options": {
|
||||
"months": [
|
||||
"January",
|
||||
"February",
|
||||
"March",
|
||||
"April",
|
||||
"May",
|
||||
"June",
|
||||
"July",
|
||||
"August",
|
||||
"September",
|
||||
"October",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"May",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Oct",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Sunday",
|
||||
"Monday",
|
||||
"Tuesday",
|
||||
"Wednesday",
|
||||
"Thursday",
|
||||
"Friday",
|
||||
"Saturday"
|
||||
],
|
||||
"shortDays": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Download SVG",
|
||||
"exportToPNG": "Download PNG",
|
||||
"exportToCSV": "Download CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Selection",
|
||||
"selectionZoom": "Selection Zoom",
|
||||
"zoomIn": "Zoom In",
|
||||
"zoomOut": "Zoom Out",
|
||||
"pan": "Panning",
|
||||
"reset": "Reset Zoom"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "es",
|
||||
"options": {
|
||||
"months": [
|
||||
"Enero",
|
||||
"Febrero",
|
||||
"Marzo",
|
||||
"Abril",
|
||||
"Mayo",
|
||||
"Junio",
|
||||
"Julio",
|
||||
"Agosto",
|
||||
"Septiembre",
|
||||
"Octubre",
|
||||
"Noviembre",
|
||||
"Diciembre"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Ene",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Abr",
|
||||
"May",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Ago",
|
||||
"Sep",
|
||||
"Oct",
|
||||
"Nov",
|
||||
"Dic"
|
||||
],
|
||||
"days": [
|
||||
"Domingo",
|
||||
"Lunes",
|
||||
"Martes",
|
||||
"Miércoles",
|
||||
"Jueves",
|
||||
"Viernes",
|
||||
"Sábado"
|
||||
],
|
||||
"shortDays": ["Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Descargar SVG",
|
||||
"exportToPNG": "Descargar PNG",
|
||||
"exportToCSV": "Descargar CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Seleccionar",
|
||||
"selectionZoom": "Seleccionar Zoom",
|
||||
"zoomIn": "Aumentar",
|
||||
"zoomOut": "Disminuir",
|
||||
"pan": "Navegación",
|
||||
"reset": "Reiniciar Zoom"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "fa",
|
||||
"options": {
|
||||
"months": [
|
||||
"فروردین",
|
||||
"اردیبهشت",
|
||||
"خرداد",
|
||||
"تیر",
|
||||
"مرداد",
|
||||
"شهریور",
|
||||
"مهر",
|
||||
"آبان",
|
||||
"آذر",
|
||||
"دی",
|
||||
"بهمن",
|
||||
"اسفند"
|
||||
],
|
||||
"shortMonths": [
|
||||
"فرو",
|
||||
"ارد",
|
||||
"خرد",
|
||||
"تیر",
|
||||
"مرد",
|
||||
"شهر",
|
||||
"مهر",
|
||||
"آبا",
|
||||
"آذر",
|
||||
"دی",
|
||||
"بهمـ",
|
||||
"اسفـ"
|
||||
],
|
||||
"days": [
|
||||
"یکشنبه",
|
||||
"دوشنبه",
|
||||
"سه شنبه",
|
||||
"چهارشنبه",
|
||||
"پنجشنبه",
|
||||
"جمعه",
|
||||
"شنبه"
|
||||
],
|
||||
"shortDays": ["ی", "د", "س", "چ", "پ", "ج", "ش"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "دانلود SVG",
|
||||
"exportToPNG": "دانلود PNG",
|
||||
"exportToCSV": "دانلود CSV",
|
||||
"menu": "منو",
|
||||
"selection": "انتخاب",
|
||||
"selectionZoom": "بزرگنمایی انتخابی",
|
||||
"zoomIn": "بزرگنمایی",
|
||||
"zoomOut": "کوچکنمایی",
|
||||
"pan": "پیمایش",
|
||||
"reset": "بازنشانی بزرگنمایی"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "fi",
|
||||
"options": {
|
||||
"months": [
|
||||
"Tammikuu",
|
||||
"Helmikuu",
|
||||
"Maaliskuu",
|
||||
"Huhtikuu",
|
||||
"Toukokuu",
|
||||
"Kesäkuu",
|
||||
"Heinäkuu",
|
||||
"Elokuu",
|
||||
"Syyskuu",
|
||||
"Lokakuu",
|
||||
"Marraskuu",
|
||||
"Joulukuu"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Tammi",
|
||||
"Helmi",
|
||||
"Maalis",
|
||||
"Huhti",
|
||||
"Touko",
|
||||
"Kesä",
|
||||
"Heinä",
|
||||
"Elo",
|
||||
"Syys",
|
||||
"Loka",
|
||||
"Marras",
|
||||
"Joulu"
|
||||
],
|
||||
"days": [
|
||||
"Sunnuntai",
|
||||
"Maanantai",
|
||||
"Tiistai",
|
||||
"Keskiviikko",
|
||||
"Torstai",
|
||||
"Perjantai",
|
||||
"Lauantai"
|
||||
],
|
||||
"shortDays": ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Lataa SVG",
|
||||
"exportToPNG": "Lataa PNG",
|
||||
"exportToCSV": "Lataa CSV",
|
||||
"menu": "Valikko",
|
||||
"selection": "Valinta",
|
||||
"selectionZoom": "Valinnan zoomaus",
|
||||
"zoomIn": "Lähennä",
|
||||
"zoomOut": "Loitonna",
|
||||
"pan": "Panoroi",
|
||||
"reset": "Nollaa zoomaus"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "fr",
|
||||
"options": {
|
||||
"months": [
|
||||
"janvier",
|
||||
"février",
|
||||
"mars",
|
||||
"avril",
|
||||
"mai",
|
||||
"juin",
|
||||
"juillet",
|
||||
"août",
|
||||
"septembre",
|
||||
"octobre",
|
||||
"novembre",
|
||||
"décembre"
|
||||
],
|
||||
"shortMonths": [
|
||||
"janv.",
|
||||
"févr.",
|
||||
"mars",
|
||||
"avr.",
|
||||
"mai",
|
||||
"juin",
|
||||
"juill.",
|
||||
"août",
|
||||
"sept.",
|
||||
"oct.",
|
||||
"nov.",
|
||||
"déc."
|
||||
],
|
||||
"days": [
|
||||
"dimanche",
|
||||
"lundi",
|
||||
"mardi",
|
||||
"mercredi",
|
||||
"jeudi",
|
||||
"vendredi",
|
||||
"samedi"
|
||||
],
|
||||
"shortDays": ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Télécharger au format SVG",
|
||||
"exportToPNG": "Télécharger au format PNG",
|
||||
"exportToCSV": "Télécharger au format CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Sélection",
|
||||
"selectionZoom": "Sélection et zoom",
|
||||
"zoomIn": "Zoomer",
|
||||
"zoomOut": "Dézoomer",
|
||||
"pan": "Navigation",
|
||||
"reset": "Réinitialiser le zoom"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "hi",
|
||||
"options": {
|
||||
"months": [
|
||||
"जनवरी",
|
||||
"फ़रवरी",
|
||||
"मार्च",
|
||||
"अप्रैल",
|
||||
"मई",
|
||||
"जून",
|
||||
"जुलाई",
|
||||
"अगस्त",
|
||||
"सितंबर",
|
||||
"अक्टूबर",
|
||||
"नवंबर",
|
||||
"दिसंबर"
|
||||
],
|
||||
"shortMonths": [
|
||||
"जनवरी",
|
||||
"फ़रवरी",
|
||||
"मार्च",
|
||||
"अप्रैल",
|
||||
"मई",
|
||||
"जून",
|
||||
"जुलाई",
|
||||
"अगस्त",
|
||||
"सितंबर",
|
||||
"अक्टूबर",
|
||||
"नवंबर",
|
||||
"दिसंबर"
|
||||
],
|
||||
"days": [
|
||||
"रविवार",
|
||||
"सोमवार",
|
||||
"मंगलवार",
|
||||
"बुधवार",
|
||||
"गुरुवार",
|
||||
"शुक्रवार",
|
||||
"शनिवार"
|
||||
],
|
||||
"shortDays": ["रवि", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "निर्यात SVG",
|
||||
"exportToPNG": "निर्यात PNG",
|
||||
"exportToCSV": "निर्यात CSV",
|
||||
"menu": "सूची",
|
||||
"selection": "चयन",
|
||||
"selectionZoom": "ज़ूम करना",
|
||||
"zoomIn": "ज़ूम इन",
|
||||
"zoomOut": "ज़ूम आउट",
|
||||
"pan": "पैनिंग",
|
||||
"reset": "फिर से कायम करना"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "hr",
|
||||
"options": {
|
||||
"months": [
|
||||
"Siječanj",
|
||||
"Veljača",
|
||||
"Ožujak",
|
||||
"Travanj",
|
||||
"Svibanj",
|
||||
"Lipanj",
|
||||
"Srpanj",
|
||||
"Kolovoz",
|
||||
"Rujan",
|
||||
"Listopad",
|
||||
"Studeni",
|
||||
"Prosinac"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Sij",
|
||||
"Velj",
|
||||
"Ožu",
|
||||
"Tra",
|
||||
"Svi",
|
||||
"Lip",
|
||||
"Srp",
|
||||
"Kol",
|
||||
"Ruj",
|
||||
"Lis",
|
||||
"Stu",
|
||||
"Pro"
|
||||
],
|
||||
"days": [
|
||||
"Nedjelja",
|
||||
"Ponedjeljak",
|
||||
"Utorak",
|
||||
"Srijeda",
|
||||
"Četvrtak",
|
||||
"Petak",
|
||||
"Subota"
|
||||
],
|
||||
"shortDays": ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Preuzmi SVG",
|
||||
"exportToPNG": "Preuzmi PNG",
|
||||
"exportToCSV": "Preuzmi CSV",
|
||||
"menu": "Izbornik",
|
||||
"selection": "Odabir",
|
||||
"selectionZoom": "Odabirno povećanje",
|
||||
"zoomIn": "Uvećajte prikaz",
|
||||
"zoomOut": "Umanjite prikaz",
|
||||
"pan": "Pomicanje",
|
||||
"reset": "Povratak na zadani prikaz"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
{
|
||||
"name": "hu",
|
||||
"options": {
|
||||
"months": [
|
||||
"január",
|
||||
"február",
|
||||
"március",
|
||||
"április",
|
||||
"május",
|
||||
"június",
|
||||
"július",
|
||||
"augusztus",
|
||||
"szeptember",
|
||||
"október",
|
||||
"november",
|
||||
"december"
|
||||
],
|
||||
"shortMonths": [
|
||||
"jan",
|
||||
"feb",
|
||||
"mar",
|
||||
"ápr",
|
||||
"máj",
|
||||
"jún",
|
||||
"júl",
|
||||
"aug",
|
||||
"szept",
|
||||
"okt",
|
||||
"nov",
|
||||
"dec"
|
||||
],
|
||||
"days": [
|
||||
"hétfő",
|
||||
"kedd",
|
||||
"szerda",
|
||||
"csütörtök",
|
||||
"péntek",
|
||||
"szombat",
|
||||
"vasárnap"
|
||||
],
|
||||
"shortDays": [
|
||||
"H",
|
||||
"K",
|
||||
"Sze",
|
||||
"Cs",
|
||||
"P",
|
||||
"Szo",
|
||||
"V"
|
||||
],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Exportálás SVG-be",
|
||||
"exportToPNG": "Exportálás PNG-be",
|
||||
"exportToCSV": "Exportálás CSV-be",
|
||||
"menu": "Fő ajánlat",
|
||||
"download": "SVG letöltése",
|
||||
"selection": "Kiválasztás",
|
||||
"selectionZoom": "Nagyító kiválasztása",
|
||||
"zoomIn": "Nagyítás",
|
||||
"zoomOut": "Kicsinyítés",
|
||||
"pan": "Képcsúsztatás",
|
||||
"reset": "Nagyító visszaállítása"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
{
|
||||
"name": "id",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januari",
|
||||
"Februari",
|
||||
"Maret",
|
||||
"April",
|
||||
"Mei",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"Agustus",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"Desember"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Mei",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Agu",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Des"
|
||||
],
|
||||
"days": ["Minggu", "Senin", "Selasa", "Rabu", "kamis", "Jumat", "Sabtu"],
|
||||
"shortDays": ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Unduh SVG",
|
||||
"exportToPNG": "Unduh PNG",
|
||||
"exportToCSV": "Unduh CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Pilihan",
|
||||
"selectionZoom": "Perbesar Pilihan",
|
||||
"zoomIn": "Perbesar",
|
||||
"zoomOut": "Perkecil",
|
||||
"pan": "Geser",
|
||||
"reset": "Atur Ulang Zoom"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "it",
|
||||
"options": {
|
||||
"months": [
|
||||
"Gennaio",
|
||||
"Febbraio",
|
||||
"Marzo",
|
||||
"Aprile",
|
||||
"Maggio",
|
||||
"Giugno",
|
||||
"Luglio",
|
||||
"Agosto",
|
||||
"Settembre",
|
||||
"Ottobre",
|
||||
"Novembre",
|
||||
"Dicembre"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Gen",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Mag",
|
||||
"Giu",
|
||||
"Lug",
|
||||
"Ago",
|
||||
"Set",
|
||||
"Ott",
|
||||
"Nov",
|
||||
"Dic"
|
||||
],
|
||||
"days": [
|
||||
"Domenica",
|
||||
"Lunedì",
|
||||
"Martedì",
|
||||
"Mercoledì",
|
||||
"Giovedì",
|
||||
"Venerdì",
|
||||
"Sabato"
|
||||
],
|
||||
"shortDays": ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Scarica SVG",
|
||||
"exportToPNG": "Scarica PNG",
|
||||
"exportToCSV": "Scarica CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Selezione",
|
||||
"selectionZoom": "Seleziona Zoom",
|
||||
"zoomIn": "Zoom In",
|
||||
"zoomOut": "Zoom Out",
|
||||
"pan": "Sposta",
|
||||
"reset": "Reimposta Zoom"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "ja",
|
||||
"options": {
|
||||
"months": [
|
||||
"1月",
|
||||
"2月",
|
||||
"3月",
|
||||
"4月",
|
||||
"5月",
|
||||
"6月",
|
||||
"7月",
|
||||
"8月",
|
||||
"9月",
|
||||
"10月",
|
||||
"11月",
|
||||
"12月"
|
||||
],
|
||||
"shortMonths": [
|
||||
"1月",
|
||||
"2月",
|
||||
"3月",
|
||||
"4月",
|
||||
"5月",
|
||||
"6月",
|
||||
"7月",
|
||||
"8月",
|
||||
"9月",
|
||||
"10月",
|
||||
"11月",
|
||||
"12月"
|
||||
],
|
||||
"days": [
|
||||
"日曜日",
|
||||
"月曜日",
|
||||
"火曜日",
|
||||
"水曜日",
|
||||
"木曜日",
|
||||
"金曜日",
|
||||
"土曜日"
|
||||
],
|
||||
"shortDays": ["日", "月", "火", "水", "木", "金", "土"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "SVGダウンロード",
|
||||
"exportToPNG": "PNGダウンロード",
|
||||
"exportToCSV": "CSVダウンロード",
|
||||
"menu": "メニュー",
|
||||
"selection": "選択",
|
||||
"selectionZoom": "選択ズーム",
|
||||
"zoomIn": "拡大",
|
||||
"zoomOut": "縮小",
|
||||
"pan": "パン",
|
||||
"reset": "ズームリセット"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "ka",
|
||||
"options": {
|
||||
"months": [
|
||||
"იანვარი",
|
||||
"თებერვალი",
|
||||
"მარტი",
|
||||
"აპრილი",
|
||||
"მაისი",
|
||||
"ივნისი",
|
||||
"ივლისი",
|
||||
"აგვისტო",
|
||||
"სექტემბერი",
|
||||
"ოქტომბერი",
|
||||
"ნოემბერი",
|
||||
"დეკემბერი"
|
||||
],
|
||||
"shortMonths": [
|
||||
"იან",
|
||||
"თებ",
|
||||
"მარ",
|
||||
"აპრ",
|
||||
"მაი",
|
||||
"ივნ",
|
||||
"ივლ",
|
||||
"აგვ",
|
||||
"სექ",
|
||||
"ოქტ",
|
||||
"ნოე",
|
||||
"დეკ"
|
||||
],
|
||||
"days": [
|
||||
"კვირა",
|
||||
"ორშაბათი",
|
||||
"სამშაბათი",
|
||||
"ოთხშაბათი",
|
||||
"ხუთშაბათი",
|
||||
"პარასკევი",
|
||||
"შაბათი"
|
||||
],
|
||||
"shortDays": ["კვი", "ორშ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "გადმოქაჩე SVG",
|
||||
"exportToPNG": "გადმოქაჩე PNG",
|
||||
"exportToCSV": "გადმოქაჩე CSV",
|
||||
"menu": "მენიუ",
|
||||
"selection": "არჩევა",
|
||||
"selectionZoom": "არჩეულის გადიდება",
|
||||
"zoomIn": "გადიდება",
|
||||
"zoomOut": "დაპატარაება",
|
||||
"pan": "გადაჩოჩება",
|
||||
"reset": "გადიდების გაუქმება"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "ko",
|
||||
"options": {
|
||||
"months": [
|
||||
"1월",
|
||||
"2월",
|
||||
"3월",
|
||||
"4월",
|
||||
"5월",
|
||||
"6월",
|
||||
"7월",
|
||||
"8월",
|
||||
"9월",
|
||||
"10월",
|
||||
"11월",
|
||||
"12월"
|
||||
],
|
||||
"shortMonths": [
|
||||
"1월",
|
||||
"2월",
|
||||
"3월",
|
||||
"4월",
|
||||
"5월",
|
||||
"6월",
|
||||
"7월",
|
||||
"8월",
|
||||
"9월",
|
||||
"10월",
|
||||
"11월",
|
||||
"12월"
|
||||
],
|
||||
"days": [
|
||||
"일요일",
|
||||
"월요일",
|
||||
"화요일",
|
||||
"수요일",
|
||||
"목요일",
|
||||
"금요일",
|
||||
"토요일"
|
||||
],
|
||||
"shortDays": ["일", "월", "화", "수", "목", "금", "토"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "SVG 다운로드",
|
||||
"exportToPNG": "PNG 다운로드",
|
||||
"exportToCSV": "CSV 다운로드",
|
||||
"menu": "메뉴",
|
||||
"selection": "선택",
|
||||
"selectionZoom": "선택영역 확대",
|
||||
"zoomIn": "확대",
|
||||
"zoomOut": "축소",
|
||||
"pan": "패닝",
|
||||
"reset": "원래대로"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "lt",
|
||||
"options": {
|
||||
"months": [
|
||||
"Sausis",
|
||||
"Vasaris",
|
||||
"Kovas",
|
||||
"Balandis",
|
||||
"Gegužė",
|
||||
"Birželis",
|
||||
"Liepa",
|
||||
"Rugpjūtis",
|
||||
"Rugsėjis",
|
||||
"Spalis",
|
||||
"Lapkritis",
|
||||
"Gruodis"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Sau",
|
||||
"Vas",
|
||||
"Kov",
|
||||
"Bal",
|
||||
"Geg",
|
||||
"Bir",
|
||||
"Lie",
|
||||
"Rgp",
|
||||
"Rgs",
|
||||
"Spl",
|
||||
"Lap",
|
||||
"Grd"
|
||||
],
|
||||
"days": [
|
||||
"Sekmadienis",
|
||||
"Pirmadienis",
|
||||
"Antradienis",
|
||||
"Trečiadienis",
|
||||
"Ketvirtadienis",
|
||||
"Penktadienis",
|
||||
"Šeštadienis"
|
||||
],
|
||||
"shortDays": ["Sk", "Per", "An", "Tr", "Kt", "Pn", "Št"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Atsisiųsti SVG",
|
||||
"exportToPNG": "Atsisiųsti PNG",
|
||||
"exportToCSV": "Atsisiųsti CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Pasirinkimas",
|
||||
"selectionZoom": "Zoom: Pasirinkimas",
|
||||
"zoomIn": "Zoom: Priartinti",
|
||||
"zoomOut": "Zoom: Atitolinti",
|
||||
"pan": "Perkėlimas",
|
||||
"reset": "Atstatyti"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "nb",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januar",
|
||||
"Februar",
|
||||
"Mars",
|
||||
"April",
|
||||
"Mai",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"August",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"Desember"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Mai",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Des"
|
||||
],
|
||||
"days": [
|
||||
"Søndag",
|
||||
"Mandag",
|
||||
"Tirsdag",
|
||||
"Onsdag",
|
||||
"Torsdag",
|
||||
"Fredag",
|
||||
"Lørdag"
|
||||
],
|
||||
"shortDays": ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Last ned SVG",
|
||||
"exportToPNG": "Last ned PNG",
|
||||
"exportToCSV": "Last ned CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Velg",
|
||||
"selectionZoom": "Zoom: Velg",
|
||||
"zoomIn": "Zoome inn",
|
||||
"zoomOut": "Zoome ut",
|
||||
"pan": "Skyving",
|
||||
"reset": "Start på nytt"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "nl",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januari",
|
||||
"Februari",
|
||||
"Maart",
|
||||
"April",
|
||||
"Mei",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"Augustus",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mrt",
|
||||
"Apr",
|
||||
"Mei",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Zondag",
|
||||
"Maandag",
|
||||
"Dinsdag",
|
||||
"Woensdag",
|
||||
"Donderdag",
|
||||
"Vrijdag",
|
||||
"Zaterdag"
|
||||
],
|
||||
"shortDays": ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Download SVG",
|
||||
"exportToPNG": "Download PNG",
|
||||
"exportToCSV": "Download CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Selectie",
|
||||
"selectionZoom": "Zoom selectie",
|
||||
"zoomIn": "Zoom in",
|
||||
"zoomOut": "Zoom out",
|
||||
"pan": "Verplaatsen",
|
||||
"reset": "Standaardwaarden"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "pl",
|
||||
"options": {
|
||||
"months": [
|
||||
"Styczeń",
|
||||
"Luty",
|
||||
"Marzec",
|
||||
"Kwiecień",
|
||||
"Maj",
|
||||
"Czerwiec",
|
||||
"Lipiec",
|
||||
"Sierpień",
|
||||
"Wrzesień",
|
||||
"Październik",
|
||||
"Listopad",
|
||||
"Grudzień"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Sty",
|
||||
"Lut",
|
||||
"Mar",
|
||||
"Kwi",
|
||||
"Maj",
|
||||
"Cze",
|
||||
"Lip",
|
||||
"Sie",
|
||||
"Wrz",
|
||||
"Paź",
|
||||
"Lis",
|
||||
"Gru"
|
||||
],
|
||||
"days": [
|
||||
"Niedziela",
|
||||
"Poniedziałek",
|
||||
"Wtorek",
|
||||
"Środa",
|
||||
"Czwartek",
|
||||
"Piątek",
|
||||
"Sobota"
|
||||
],
|
||||
"shortDays": ["Nd", "Pn", "Wt", "Śr", "Cz", "Pt", "Sb"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Pobierz SVG",
|
||||
"exportToPNG": "Pobierz PNG",
|
||||
"exportToCSV": "Pobierz CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Wybieranie",
|
||||
"selectionZoom": "Zoom: Wybieranie",
|
||||
"zoomIn": "Zoom: Przybliż",
|
||||
"zoomOut": "Zoom: Oddal",
|
||||
"pan": "Przesuwanie",
|
||||
"reset": "Resetuj"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "pt-br",
|
||||
"options": {
|
||||
"months": [
|
||||
"Janeiro",
|
||||
"Fevereiro",
|
||||
"Março",
|
||||
"Abril",
|
||||
"Maio",
|
||||
"Junho",
|
||||
"Julho",
|
||||
"Agosto",
|
||||
"Setembro",
|
||||
"Outubro",
|
||||
"Novembro",
|
||||
"Dezembro"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Fev",
|
||||
"Mar",
|
||||
"Abr",
|
||||
"Mai",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Ago",
|
||||
"Set",
|
||||
"Out",
|
||||
"Nov",
|
||||
"Dez"
|
||||
],
|
||||
"days": [
|
||||
"Domingo",
|
||||
"Segunda",
|
||||
"Terça",
|
||||
"Quarta",
|
||||
"Quinta",
|
||||
"Sexta",
|
||||
"Sábado"
|
||||
],
|
||||
"shortDays": ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Baixar SVG",
|
||||
"exportToPNG": "Baixar PNG",
|
||||
"exportToCSV": "Baixar CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Selecionar",
|
||||
"selectionZoom": "Selecionar Zoom",
|
||||
"zoomIn": "Aumentar",
|
||||
"zoomOut": "Diminuir",
|
||||
"pan": "Navegação",
|
||||
"reset": "Reiniciar Zoom"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "pt",
|
||||
"options": {
|
||||
"months": [
|
||||
"Janeiro",
|
||||
"Fevereiro",
|
||||
"Março",
|
||||
"Abril",
|
||||
"Maio",
|
||||
"Junho",
|
||||
"Julho",
|
||||
"Agosto",
|
||||
"Setembro",
|
||||
"Outubro",
|
||||
"Novembro",
|
||||
"Dezembro"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Fev",
|
||||
"Mar",
|
||||
"Abr",
|
||||
"Mai",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Ag",
|
||||
"Set",
|
||||
"Out",
|
||||
"Nov",
|
||||
"Dez"
|
||||
],
|
||||
"days": [
|
||||
"Domingo",
|
||||
"Segunda-feira",
|
||||
"Terça-feira",
|
||||
"Quarta-feira",
|
||||
"Quinta-feira",
|
||||
"Sexta-feira",
|
||||
"Sábado"
|
||||
],
|
||||
"shortDays": ["Do", "Se", "Te", "Qa", "Qi", "Sx", "Sa"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Baixar SVG",
|
||||
"exportToPNG": "Baixar PNG",
|
||||
"exportToCSV": "Baixar CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Selecionar",
|
||||
"selectionZoom": "Zoom: Selecionar",
|
||||
"zoomIn": "Zoom: Aumentar",
|
||||
"zoomOut": "Zoom: Diminuir",
|
||||
"pan": "Deslocamento",
|
||||
"reset": "Redefinir"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "rs",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januar",
|
||||
"Februar",
|
||||
"Mart",
|
||||
"April",
|
||||
"Maj",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Avgust",
|
||||
"Septembar",
|
||||
"Oktobar",
|
||||
"Novembar",
|
||||
"Decembar"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Maj",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Avg",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Nedelja",
|
||||
"Ponedeljak",
|
||||
"Utorak",
|
||||
"Sreda",
|
||||
"Četvrtak",
|
||||
"Petak",
|
||||
"Subota"
|
||||
],
|
||||
"shortDays": ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Preuzmi SVG",
|
||||
"exportToPNG": "Preuzmi PNG",
|
||||
"exportToCSV": "Preuzmi CSV",
|
||||
"menu": "Meni",
|
||||
"selection": "Odabir",
|
||||
"selectionZoom": "Odabirno povećanje",
|
||||
"zoomIn": "Uvećajte prikaz",
|
||||
"zoomOut": "Umanjite prikaz",
|
||||
"pan": "Pomeranje",
|
||||
"reset": "Resetuj prikaz"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "se",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januari",
|
||||
"Februari",
|
||||
"Mars",
|
||||
"April",
|
||||
"Maj",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"Augusti",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Maj",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Söndag",
|
||||
"Måndag",
|
||||
"Tisdag",
|
||||
"Onsdag",
|
||||
"Torsdag",
|
||||
"Fredag",
|
||||
"Lördag"
|
||||
],
|
||||
"shortDays": ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Ladda SVG",
|
||||
"exportToPNG": "Ladda PNG",
|
||||
"exportToCSV": "Ladda CSV",
|
||||
"menu": "Meny",
|
||||
"selection": "Selektion",
|
||||
"selectionZoom": "Val av zoom",
|
||||
"zoomIn": "Zooma in",
|
||||
"zoomOut": "Zooma ut",
|
||||
"pan": "Panorering",
|
||||
"reset": "Återställ zoomning"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "sk",
|
||||
"options": {
|
||||
"months": [
|
||||
"Január",
|
||||
"Február",
|
||||
"Marec",
|
||||
"Apríl",
|
||||
"Máj",
|
||||
"Jún",
|
||||
"Júl",
|
||||
"August",
|
||||
"September",
|
||||
"Október",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Máj",
|
||||
"Jún",
|
||||
"Júl",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Nedeľa",
|
||||
"Pondelok",
|
||||
"Utorok",
|
||||
"Streda",
|
||||
"Štvrtok",
|
||||
"Piatok",
|
||||
"Sobota"
|
||||
],
|
||||
"shortDays": ["Ne", "Po", "Ut", "St", "Št", "Pi", "So"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Stiahnuť SVG",
|
||||
"exportToPNG": "Stiahnuť PNG",
|
||||
"exportToCSV": "Stiahnuť CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Vyberanie",
|
||||
"selectionZoom": "Zoom: Vyberanie",
|
||||
"zoomIn": "Zoom: Priblížiť",
|
||||
"zoomOut": "Zoom: Vzdialiť",
|
||||
"pan": "Presúvanie",
|
||||
"reset": "Resetovať"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "sl",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januar",
|
||||
"Februar",
|
||||
"Marec",
|
||||
"April",
|
||||
"Maj",
|
||||
"Junij",
|
||||
"Julij",
|
||||
"Avgust",
|
||||
"Septemer",
|
||||
"Oktober",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Maj",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Avg",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Nedelja",
|
||||
"Ponedeljek",
|
||||
"Torek",
|
||||
"Sreda",
|
||||
"Četrtek",
|
||||
"Petek",
|
||||
"Sobota"
|
||||
],
|
||||
"shortDays": ["Ne", "Po", "To", "Sr", "Če", "Pe", "So"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Prenesi SVG",
|
||||
"exportToPNG": "Prenesi PNG",
|
||||
"exportToCSV": "Prenesi CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Izbiranje",
|
||||
"selectionZoom": "Zoom: Izbira",
|
||||
"zoomIn": "Zoom: Približaj",
|
||||
"zoomOut": "Zoom: Oddalji",
|
||||
"pan": "Pomikanje",
|
||||
"reset": "Resetiraj"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "sq",
|
||||
"options": {
|
||||
"months": [
|
||||
"Janar",
|
||||
"Shkurt",
|
||||
"Mars",
|
||||
"Prill",
|
||||
"Maj",
|
||||
"Qershor",
|
||||
"Korrik",
|
||||
"Gusht",
|
||||
"Shtator",
|
||||
"Tetor",
|
||||
"Nëntor",
|
||||
"Dhjetor"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Shk",
|
||||
"Mar",
|
||||
"Pr",
|
||||
"Maj",
|
||||
"Qer",
|
||||
"Korr",
|
||||
"Gush",
|
||||
"Sht",
|
||||
"Tet",
|
||||
"Nën",
|
||||
"Dhj"
|
||||
],
|
||||
"days": [
|
||||
"e Dielë",
|
||||
"e Hënë",
|
||||
"e Martë",
|
||||
"e Mërkurë",
|
||||
"e Enjte",
|
||||
"e Premte",
|
||||
"e Shtunë"
|
||||
],
|
||||
"shortDays": ["Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Sht"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Shkarko SVG",
|
||||
"exportToPNG": "Shkarko PNG",
|
||||
"exportToCSV": "Shkarko CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Seleksiono",
|
||||
"selectionZoom": "Seleksiono Zmadhim",
|
||||
"zoomIn": "Zmadho",
|
||||
"zoomOut": "Zvogëlo",
|
||||
"pan": "Spostoje",
|
||||
"reset": "Rikthe dimensionin"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "th",
|
||||
"options": {
|
||||
"months": [
|
||||
"มกราคม",
|
||||
"กุมภาพันธ์",
|
||||
"มีนาคม",
|
||||
"เมษายน",
|
||||
"พฤษภาคม",
|
||||
"มิถุนายน",
|
||||
"กรกฎาคม",
|
||||
"สิงหาคม",
|
||||
"กันยายน",
|
||||
"ตุลาคม",
|
||||
"พฤศจิกายน",
|
||||
"ธันวาคม"
|
||||
],
|
||||
"shortMonths": [
|
||||
"ม.ค.",
|
||||
"ก.พ.",
|
||||
"มี.ค.",
|
||||
"เม.ย.",
|
||||
"พ.ค.",
|
||||
"มิ.ย.",
|
||||
"ก.ค.",
|
||||
"ส.ค.",
|
||||
"ก.ย.",
|
||||
"ต.ค.",
|
||||
"พ.ย.",
|
||||
"ธ.ค."
|
||||
],
|
||||
"days": [
|
||||
"อาทิตย์",
|
||||
"จันทร์",
|
||||
"อังคาร",
|
||||
"พุธ",
|
||||
"พฤหัสบดี",
|
||||
"ศุกร์",
|
||||
"เสาร์"
|
||||
],
|
||||
"shortDays": ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "ดาวน์โหลด SVG",
|
||||
"exportToPNG": "ดาวน์โหลด PNG",
|
||||
"exportToCSV": "ดาวน์โหลด CSV",
|
||||
"menu": "เมนู",
|
||||
"selection": "เลือก",
|
||||
"selectionZoom": "เลือกจุดที่จะซูม",
|
||||
"zoomIn": "ซูมเข้า",
|
||||
"zoomOut": "ซูมออก",
|
||||
"pan": "ปรากฎว่า",
|
||||
"reset": "รีเซ็ตการซูม"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "zh-cn",
|
||||
"options": {
|
||||
"months": [
|
||||
"一月",
|
||||
"二月",
|
||||
"三月",
|
||||
"四月",
|
||||
"五月",
|
||||
"六月",
|
||||
"七月",
|
||||
"八月",
|
||||
"九月",
|
||||
"十月",
|
||||
"十一月",
|
||||
"十二月"
|
||||
],
|
||||
"shortMonths": [
|
||||
"一月",
|
||||
"二月",
|
||||
"三月",
|
||||
"四月",
|
||||
"五月",
|
||||
"六月",
|
||||
"七月",
|
||||
"八月",
|
||||
"九月",
|
||||
"十月",
|
||||
"十一月",
|
||||
"十二月"
|
||||
],
|
||||
"days": [
|
||||
"星期天",
|
||||
"星期一",
|
||||
"星期二",
|
||||
"星期三",
|
||||
"星期四",
|
||||
"星期五",
|
||||
"星期六"
|
||||
],
|
||||
"shortDays": ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "下载 SVG",
|
||||
"exportToPNG": "下载 PNG",
|
||||
"exportToCSV": "下载 CSV",
|
||||
"menu": "菜单",
|
||||
"selection": "选择",
|
||||
"selectionZoom": "选择缩放",
|
||||
"zoomIn": "放大",
|
||||
"zoomOut": "缩小",
|
||||
"pan": "平移",
|
||||
"reset": "重置缩放"
|
||||
}
|
||||
}
|
||||
}
|