first commit
This commit is contained in:
commit
0c861770a8
113
cmd/command.go
Normal file
113
cmd/command.go
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"arno/skeletor/config"
|
||||||
|
"arno/skeletor/service"
|
||||||
|
"arno/skeletor/tool"
|
||||||
|
"arno/skeletor/crontab"
|
||||||
|
"arno/skeletor/repository"
|
||||||
|
"arno/skeletor/entity"
|
||||||
|
|
||||||
|
"gorm.io/gorm"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// Chargement de la configuration
|
||||||
|
myconfig, mydb, _ := config.NewConfig("config/config.ini", false)
|
||||||
|
|
||||||
|
// On s'assure qu'il y a une commande à executer
|
||||||
|
args := os.Args[1:]
|
||||||
|
if len(args) == 0 {
|
||||||
|
Help(mydb)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// On récupére la commande et ses paramètres
|
||||||
|
cmd := args[0]
|
||||||
|
params := args[1:]
|
||||||
|
|
||||||
|
// On s'assure que la commande existe bien
|
||||||
|
var command entity.Command
|
||||||
|
result := mydb.First(&command, "name = ?", cmd)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
Help(mydb)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Creation des services
|
||||||
|
ctn := service.NewContainer()
|
||||||
|
ctn.Provide(config.ServiceName, config.ServiceProvider(myconfig))
|
||||||
|
ctn.Provide(repository.ServiceName, repository.ServiceProvider(mydb))
|
||||||
|
|
||||||
|
if len(params) == 0 {
|
||||||
|
_, err := crontab.Call(cmd, ctn)
|
||||||
|
if err != nil {
|
||||||
|
tool.LogFatal(err.Error())
|
||||||
|
|
||||||
|
tool.LogInfo(command.Name)
|
||||||
|
tool.Log(command.Description)
|
||||||
|
tool.Log("")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(params) == 1 {
|
||||||
|
_, err := crontab.Call(cmd, ctn, params[0])
|
||||||
|
if err != nil {
|
||||||
|
tool.LogFatal(err.Error())
|
||||||
|
|
||||||
|
tool.LogInfo(command.Name)
|
||||||
|
tool.Log(command.Description)
|
||||||
|
tool.Log("")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(params) == 2 {
|
||||||
|
_, err := crontab.Call(cmd, ctn, params[0], params[1])
|
||||||
|
if err != nil {
|
||||||
|
tool.LogFatal(err.Error())
|
||||||
|
|
||||||
|
tool.LogInfo(command.Name)
|
||||||
|
tool.Log(command.Description)
|
||||||
|
tool.Log("")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(params) == 3 {
|
||||||
|
_, err := crontab.Call(cmd, ctn, params[0], params[1], params[3])
|
||||||
|
if err != nil {
|
||||||
|
tool.LogFatal(err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(params) == 4 {
|
||||||
|
_, err := crontab.Call(cmd, ctn, params[0], params[1], params[3], params[4])
|
||||||
|
if err != nil {
|
||||||
|
tool.LogFatal(err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(params) == 5 {
|
||||||
|
_, err := crontab.Call(cmd, ctn, params[0], params[1], params[3], params[4], params[5])
|
||||||
|
if err != nil {
|
||||||
|
tool.LogFatal(err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tool.Log("")
|
||||||
|
}
|
||||||
|
|
||||||
|
func Help(mydb *gorm.DB) {
|
||||||
|
tool.LogTitle("COMMANDES")
|
||||||
|
tool.Log("Liste des commandes possibles")
|
||||||
|
tool.Log("")
|
||||||
|
|
||||||
|
var commands []entity.Command
|
||||||
|
mydb.Find(&commands)
|
||||||
|
|
||||||
|
for _, command := range commands {
|
||||||
|
tool.LogInfo(command.Name)
|
||||||
|
tool.Log(command.Description)
|
||||||
|
tool.Log("")
|
||||||
|
}
|
||||||
|
}
|
31
cmd/main.go
Normal file
31
cmd/main.go
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"arno/skeletor/config"
|
||||||
|
"arno/skeletor/middleware"
|
||||||
|
"arno/skeletor/repository"
|
||||||
|
"arno/skeletor/service"
|
||||||
|
"arno/skeletor/tool"
|
||||||
|
"arno/skeletor/crontab"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
|
||||||
|
|
||||||
|
// Chargement de la configuration
|
||||||
|
tool.LogTitle("INITIALISATION")
|
||||||
|
myconfig, mydb, _ := config.NewConfig("config/config.ini", true)
|
||||||
|
|
||||||
|
// Creation des services
|
||||||
|
ctn := service.NewContainer()
|
||||||
|
ctn.Provide(config.ServiceName, config.ServiceProvider(myconfig))
|
||||||
|
ctn.Provide(repository.ServiceName, repository.ServiceProvider(mydb))
|
||||||
|
|
||||||
|
// Execution du Cron
|
||||||
|
crontab.Lauch(ctn)
|
||||||
|
|
||||||
|
// Creation du middleware
|
||||||
|
tool.LogTitle("MIDDLEWARE")
|
||||||
|
middleware := middleware.NewMiddleware(ctn)
|
||||||
|
middleware.StartMiddleware()
|
||||||
|
}
|
258
config/config.go
Normal file
258
config/config.go
Normal file
@ -0,0 +1,258 @@
|
|||||||
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
"arno/skeletor/entity"
|
||||||
|
"arno/skeletor/tool"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/teacat/noire"
|
||||||
|
ini "gopkg.in/ini.v1"
|
||||||
|
"gorm.io/driver/mysql"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
"gorm.io/gorm/logger"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Config struct {
|
||||||
|
AppDebug bool
|
||||||
|
AppVersion int
|
||||||
|
AppPrivate bool
|
||||||
|
AppServer string
|
||||||
|
AppWeburl string
|
||||||
|
AppAlias string
|
||||||
|
AppSecret string
|
||||||
|
AppName string
|
||||||
|
AppSubname string
|
||||||
|
AppDescription string
|
||||||
|
AppTheme string
|
||||||
|
AppLogodark string
|
||||||
|
AppLogolight string
|
||||||
|
AppColorbgbodydark string
|
||||||
|
AppColorbgbodylight string
|
||||||
|
AppColorftbodydark string
|
||||||
|
AppColorftbodylight string
|
||||||
|
AppColorfttitledark string
|
||||||
|
AppColorfttitlelight string
|
||||||
|
AppFontbody string
|
||||||
|
AppFonttitle string
|
||||||
|
AppFontsizeh1 string
|
||||||
|
AppFontsizeh2 string
|
||||||
|
AppFontsizeh3 string
|
||||||
|
AppFontsizeh4 string
|
||||||
|
AppFontsize string
|
||||||
|
|
||||||
|
AppColorbgbodylightdarker string
|
||||||
|
AppColorbgbodydarkdarker string
|
||||||
|
AppColorfttitlelightdarker string
|
||||||
|
AppColorfttitledarkdarker string
|
||||||
|
|
||||||
|
AppRoutes map[string]string
|
||||||
|
AppDbpath string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewConfig(filepath string, withlog bool) (*Config, *gorm.DB, error) {
|
||||||
|
// CHARGEMENT
|
||||||
|
if withlog {
|
||||||
|
tool.LogInfo("Chargement du fichier de configuration")
|
||||||
|
}
|
||||||
|
|
||||||
|
myconfig := NewConfigdefault()
|
||||||
|
cfg, err := ini.Load(filepath)
|
||||||
|
if err != nil {
|
||||||
|
tool.LogFatal(err.Error())
|
||||||
|
panic("exit")
|
||||||
|
}
|
||||||
|
cfg.ValueMapper = os.ExpandEnv
|
||||||
|
if err := cfg.MapTo(myconfig); err != nil {
|
||||||
|
tool.LogFatal(err.Error())
|
||||||
|
panic("exit")
|
||||||
|
}
|
||||||
|
|
||||||
|
// DECLARATION ROUTES
|
||||||
|
if withlog {
|
||||||
|
tool.LogInfo("Déclaration des routes")
|
||||||
|
}
|
||||||
|
myconfig.AppRoutes["home"] = "/"
|
||||||
|
myconfig.AppRoutes["homeconfig"] = "/admin"
|
||||||
|
|
||||||
|
myconfig.AppRoutes["securitylogin"] = "/login"
|
||||||
|
myconfig.AppRoutes["securitylogout"] = "/logout"
|
||||||
|
|
||||||
|
myconfig.AppRoutes["upload"] = "/user/upload/"
|
||||||
|
myconfig.AppRoutes["uploaded"] = "/user/uploaded/"
|
||||||
|
myconfig.AppRoutes["uploadcrop"] = "/user/uploadcrop/"
|
||||||
|
myconfig.AppRoutes["uploadcropped"] = "/user/uploadcropped/"
|
||||||
|
|
||||||
|
myconfig.AppRoutes["configlist"] = "/admin/config"
|
||||||
|
myconfig.AppRoutes["configrefresh"] = "/admin/config/refresh"
|
||||||
|
myconfig.AppRoutes["configupdate"] = "/admin/config/update/"
|
||||||
|
myconfig.AppRoutes["configdelete"] = "/admin/config/delete/"
|
||||||
|
|
||||||
|
myconfig.AppRoutes["userlist"] = "/admin/user"
|
||||||
|
myconfig.AppRoutes["usersubmit"] = "/admin/user/submit"
|
||||||
|
myconfig.AppRoutes["userupdate"] = "/admin/user/update/"
|
||||||
|
myconfig.AppRoutes["userdelete"] = "/admin/user/delete/"
|
||||||
|
myconfig.AppRoutes["userprofil"] = "/user/profil"
|
||||||
|
|
||||||
|
// CONNEXION A LA BASE DONNEES
|
||||||
|
if withlog {
|
||||||
|
tool.LogInfo("Connexion à la base de données")
|
||||||
|
}
|
||||||
|
mydb, err := gorm.Open(mysql.Open(myconfig.AppDbpath), &gorm.Config{Logger: logger.Default.LogMode(logger.Silent)})
|
||||||
|
if err != nil {
|
||||||
|
tool.LogFatal(err.Error())
|
||||||
|
panic("exit")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Migrate the schema
|
||||||
|
if withlog {
|
||||||
|
tool.LogInfo("Migration des schémas")
|
||||||
|
}
|
||||||
|
mydb.AutoMigrate(&entity.Config{})
|
||||||
|
mydb.AutoMigrate(&entity.User{})
|
||||||
|
mydb.AutoMigrate(&entity.Command{})
|
||||||
|
mydb.AutoMigrate(&entity.Cron{})
|
||||||
|
|
||||||
|
if withlog {
|
||||||
|
tool.LogInfo("Initialisation de la table de configuration")
|
||||||
|
}
|
||||||
|
newConfig(mydb, "AppName", "Titre de votre site", "", myconfig.AppName, 1, true, true, false, "string", "", "site", "Titre de votre site")
|
||||||
|
newConfig(mydb, "AppSubname", "Sous-titre de votre site", "", "", 2, true, true, false, "string", "", "site", "Sous-titre de votre site")
|
||||||
|
newConfig(mydb, "AppDescription", "Description de votre site", "", "", 3, true, true, false, "editor", "", "site", "Description de votre site")
|
||||||
|
newConfig(mydb, "AppTheme", "Thème de votre site", "", "", 100, true, true, false, "themes", "", "site", "Thème de votre site")
|
||||||
|
newConfig(mydb, "AppLogodark", "Logo sur fond fonçé", "", "logo.png", 200, true, true, false, "logo", "", "logo", "Logo sur fond fonçé")
|
||||||
|
newConfig(mydb, "AppLogolight", "Logo sur fond clair", "", "logo.png", 201, true, true, false, "logo", "", "logo", "Logo sur fond clair")
|
||||||
|
newConfig(mydb, "AppColorbgbodydark", "Couleur de fond fonçée", "", "#27848e", 300, true, true, false, "color", "", "colorbgbody", "La couleur de fond quand le site a besoin d'avoir une couleur de fond foncée")
|
||||||
|
newConfig(mydb, "AppColorbgbodylight", "Couleur de fond claire", "", "#ffffff", 301, true, true, false, "color", "", "colorbgbody", "La couleur de fond quand le site a besoin d'avoir une couleur de fond claire")
|
||||||
|
newConfig(mydb, "AppColorftbodydark", "Couleur de la police sur fond fonçé", "", "#ffffff", 302, true, true, false, "color", "", "colorftbody", "La couleur de la police sur fond fonçé")
|
||||||
|
newConfig(mydb, "AppColorftbodylight", "Couleur de la police sur fond claire", "", "#343a40", 303, true, true, false, "color", "", "colorftbody", "La couleur de la police sur fond claire")
|
||||||
|
newConfig(mydb, "AppColorfttitledark", "Couleur des titres sur fond fonçé", "", "#ffffff", 304, true, true, false, "color", "", "colorfttitle", "La couleur des titres sur fond fonçé")
|
||||||
|
newConfig(mydb, "AppColorfttitlelight", "Couleur des titres sur fond claire", "", "#27848e", 305, true, true, false, "color", "", "colorfttitle", "La couleur des titres sur fond claire")
|
||||||
|
newConfig(mydb, "AppFontbody", "Police principale", "", "Roboto-Regular", 400, true, true, false, "font", "", "font", "Nom de la police principale")
|
||||||
|
newConfig(mydb, "AppFonttitle", "Police pour les titres", "", "FredokaOne-Regular", 401, true, true, false, "font", "", "font", "La couleur de la police de votre site")
|
||||||
|
newConfig(mydb, "AppFontsizeh1", "Taille des titres h1", "", "40", 402, true, true, false, "integer", "", "font", "Taille des titres h1 en px")
|
||||||
|
newConfig(mydb, "AppFontsizeh2", "Taille des titres h2", "", "32", 403, true, true, false, "integer", "", "font", "Taille des titres h2 en px")
|
||||||
|
newConfig(mydb, "AppFontsizeh3", "Taille des titres h3", "", "28", 404, true, true, false, "integer", "", "font", "Taille des titres h3 en px")
|
||||||
|
newConfig(mydb, "AppFontsizeh4", "Taille des titres h4", "", "24", 405, true, true, false, "integer", "", "font", "Taille des titres h4 en px")
|
||||||
|
newConfig(mydb, "AppFontsize", "Taille du texte", "", "16", 406, true, true, false, "integer", "", "font", "Taille du texte px")
|
||||||
|
|
||||||
|
if withlog {
|
||||||
|
tool.LogInfo("Chargement de la table de configuration en mémoire")
|
||||||
|
}
|
||||||
|
myconfig.Refresh(mydb)
|
||||||
|
|
||||||
|
if withlog {
|
||||||
|
tool.LogInfo("Initialisation des Commandes")
|
||||||
|
}
|
||||||
|
newCommand(mydb, "AppSetPassword", "Définir un password pour un utilisateur\ngo run cmd/AppSetPassword loginuser newpaspassord")
|
||||||
|
newCommand(mydb, "AppClear", "Nettoyage des fichiers obsolètes\ngo run cmd/AppClear")
|
||||||
|
|
||||||
|
if withlog {
|
||||||
|
tool.LogInfo("Initialisation des Jobs Cron")
|
||||||
|
}
|
||||||
|
newCron(mydb, "AppClear", "@every 4h00m")
|
||||||
|
|
||||||
|
return myconfig, mydb, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewConfigdefault() *Config {
|
||||||
|
return &Config{
|
||||||
|
AppDebug: false,
|
||||||
|
AppPrivate: true,
|
||||||
|
AppServer: ":3000",
|
||||||
|
AppWeburl: "",
|
||||||
|
AppAlias: "/",
|
||||||
|
AppSecret: "changeme",
|
||||||
|
AppName: "Skeletor",
|
||||||
|
AppRoutes: make(map[string]string),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func newConfig(mydb *gorm.DB, id string, title string, value string, defaultvalue string, roworder int, visible bool, changeable bool, required bool, typefield string, grouped string, category string, help string) {
|
||||||
|
var config entity.Config
|
||||||
|
result := mydb.First(&config, "id = ?", id)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
config.Id = id
|
||||||
|
config.Value = value
|
||||||
|
mydb.Create(&config)
|
||||||
|
}
|
||||||
|
|
||||||
|
mydb.First(&config, "id = ?", id)
|
||||||
|
config.Title = title
|
||||||
|
config.Defaultvalue = defaultvalue
|
||||||
|
config.Roworder = roworder
|
||||||
|
config.Visible = visible
|
||||||
|
config.Changeable = changeable
|
||||||
|
config.Required = required
|
||||||
|
config.Typefield = typefield
|
||||||
|
config.Grouped = grouped
|
||||||
|
config.Category = category
|
||||||
|
config.Help = help
|
||||||
|
mydb.Save(&config)
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetConfig(mydb *gorm.DB, id string) string {
|
||||||
|
var myconfig entity.Config
|
||||||
|
mydb.First(&myconfig, "id = ?", id)
|
||||||
|
if myconfig.Value == "" {
|
||||||
|
return myconfig.Defaultvalue
|
||||||
|
} else {
|
||||||
|
return myconfig.Value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (myconfig *Config) Refresh(mydb *gorm.DB) {
|
||||||
|
myconfig.AppName = GetConfig(mydb, "AppName")
|
||||||
|
myconfig.AppSubname = GetConfig(mydb, "AppSubname")
|
||||||
|
myconfig.AppDescription = GetConfig(mydb, "AppDescription")
|
||||||
|
myconfig.AppTheme = GetConfig(mydb, "AppTheme")
|
||||||
|
myconfig.AppLogodark = GetConfig(mydb, "AppLogodark")
|
||||||
|
myconfig.AppLogolight = GetConfig(mydb, "AppLogolight")
|
||||||
|
myconfig.AppColorbgbodydark = GetConfig(mydb, "AppColorbgbodydark")
|
||||||
|
myconfig.AppColorbgbodylight = GetConfig(mydb, "AppColorbgbodylight")
|
||||||
|
myconfig.AppColorftbodydark = GetConfig(mydb, "AppColorftbodydark")
|
||||||
|
myconfig.AppColorftbodylight = GetConfig(mydb, "AppColorftbodylight")
|
||||||
|
myconfig.AppColorfttitledark = GetConfig(mydb, "AppColorfttitledark")
|
||||||
|
myconfig.AppColorfttitlelight = GetConfig(mydb, "AppColorfttitlelight")
|
||||||
|
myconfig.AppFontbody = GetConfig(mydb, "AppFontbody")
|
||||||
|
myconfig.AppFonttitle = GetConfig(mydb, "AppFonttitle")
|
||||||
|
myconfig.AppFontsizeh1 = GetConfig(mydb, "AppFontsizeh1")
|
||||||
|
myconfig.AppFontsizeh2 = GetConfig(mydb, "AppFontsizeh2")
|
||||||
|
myconfig.AppFontsizeh3 = GetConfig(mydb, "AppFontsizeh3")
|
||||||
|
myconfig.AppFontsizeh4 = GetConfig(mydb, "AppFontsizeh4")
|
||||||
|
myconfig.AppFontsize = GetConfig(mydb, "AppFontsize")
|
||||||
|
|
||||||
|
myconfig.AppColorbgbodydarkdarker = "#" + noire.NewHex(strings.Replace(myconfig.AppColorbgbodydark, "#", "", -1)).Darken(0.10).Hex()
|
||||||
|
myconfig.AppColorfttitledarkdarker = "#" + noire.NewHex(strings.Replace(myconfig.AppColorfttitledark, "#", "", -1)).Darken(0.30).Hex()
|
||||||
|
|
||||||
|
myconfig.AppColorbgbodylightdarker = "#" + noire.NewHex(strings.Replace(myconfig.AppColorbgbodylight, "#", "", -1)).Darken(0.10).Hex()
|
||||||
|
myconfig.AppColorfttitlelightdarker = "#" + noire.NewHex(strings.Replace(myconfig.AppColorfttitlelight, "#", "", -1)).Darken(0.10).Hex()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func newCommand(mydb *gorm.DB, name string, description string) {
|
||||||
|
var command entity.Command
|
||||||
|
result := mydb.First(&command, "name = ?", name)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
command.Name = name
|
||||||
|
mydb.Create(&command)
|
||||||
|
}
|
||||||
|
|
||||||
|
mydb.First(&command, "name = ?", name)
|
||||||
|
command.Description = description
|
||||||
|
mydb.Save(&command)
|
||||||
|
}
|
||||||
|
|
||||||
|
func newCron(mydb *gorm.DB, name string, every string) {
|
||||||
|
var cron entity.Cron
|
||||||
|
var command entity.Command
|
||||||
|
|
||||||
|
mydb.First(&command, "name = ?", name)
|
||||||
|
|
||||||
|
result := mydb.First(&cron, "command_id = ?", command.Id)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
cron.CommandId = command.Id
|
||||||
|
cron.Every = every
|
||||||
|
mydb.Create(&cron)
|
||||||
|
}
|
||||||
|
}
|
8
config/config.ini
Normal file
8
config/config.ini
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
AppDebug = false
|
||||||
|
AppPrivate = true
|
||||||
|
AppServer = ninegate.ac-arno.fr:3000
|
||||||
|
AppWeburl = http://ninegate.ac-arno.fr:3000
|
||||||
|
AppAlias = "/"
|
||||||
|
AppSecret = changeme
|
||||||
|
AppName = Janus
|
||||||
|
AppDbpath = admin:eole@tcp(localhost:3306)/mygobdd
|
38
config/provider.go
Normal file
38
config/provider.go
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
"arno/skeletor/service"
|
||||||
|
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
const ServiceName service.Name = "config"
|
||||||
|
|
||||||
|
func ServiceProvider(config *Config) service.Provider {
|
||||||
|
return func(ctn *service.Container) (interface{}, error) {
|
||||||
|
return config, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func From(container *service.Container) (*Config, error) {
|
||||||
|
service, err := container.Service(ServiceName)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrapf(err, "error while retrieving '%s' service", ServiceName)
|
||||||
|
}
|
||||||
|
|
||||||
|
srv, ok := service.(*Config)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.Errorf("retrieved service is not a valid '%s' service", ServiceName)
|
||||||
|
}
|
||||||
|
|
||||||
|
return srv, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func Must(container *service.Container) *Config {
|
||||||
|
srv, err := From(container)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return srv
|
||||||
|
}
|
107
controller/config.go
Normal file
107
controller/config.go
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"arno/skeletor/config"
|
||||||
|
"arno/skeletor/entity"
|
||||||
|
"arno/skeletor/repository"
|
||||||
|
"arno/skeletor/service"
|
||||||
|
"arno/skeletor/tool"
|
||||||
|
"net/http"
|
||||||
|
"github.com/martini-contrib/sessions"
|
||||||
|
"github.com/martini-contrib/render"
|
||||||
|
)
|
||||||
|
|
||||||
|
func ConfigList(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
var configs []entity.Config
|
||||||
|
mapconfigs := make(map[string]entity.Config)
|
||||||
|
mydb.Find(&configs)
|
||||||
|
for _, config := range configs {
|
||||||
|
mapconfigs[config.Id] = config
|
||||||
|
}
|
||||||
|
|
||||||
|
rendermap := map[string]interface{}{
|
||||||
|
"conf": myconfig,
|
||||||
|
"session": tool.Rendersession(session),
|
||||||
|
"useheader": true,
|
||||||
|
"usesidebar": true,
|
||||||
|
"usecontainer": true,
|
||||||
|
"configs": mapconfigs,
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTML(200, "config/list", rendermap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConfigRefresh(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
myconfig.Refresh(mydb)
|
||||||
|
|
||||||
|
r.Redirect(myconfig.AppRoutes["configlist"])
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConfigUpdate(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render, id string) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
var config entity.Config
|
||||||
|
result := mydb.First(&config, "id = ?", id)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
r.Redirect(myconfig.AppRoutes["configlist"])
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.Method == http.MethodPost {
|
||||||
|
req.ParseForm()
|
||||||
|
value := req.Form.Get("value")
|
||||||
|
if value != config.Defaultvalue {
|
||||||
|
config.Value = value
|
||||||
|
} else {
|
||||||
|
config.Value = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
mydb.Save(&config)
|
||||||
|
|
||||||
|
r.Redirect(myconfig.AppRoutes["configrefresh"])
|
||||||
|
}
|
||||||
|
|
||||||
|
rendermap := map[string]interface{}{
|
||||||
|
"conf": myconfig,
|
||||||
|
"session": tool.Rendersession(session),
|
||||||
|
"useheader": true,
|
||||||
|
"usesidebar": true,
|
||||||
|
"usecontainer": true,
|
||||||
|
"config": config,
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTML(200, "config/edit", rendermap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConfigDelete(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render, id string) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
var config entity.Config
|
||||||
|
result := mydb.First(&config, "id = ?", id)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
r.Redirect(myconfig.AppRoutes["configlist"])
|
||||||
|
}
|
||||||
|
|
||||||
|
config.Value = config.Defaultvalue
|
||||||
|
mydb.Save(&config)
|
||||||
|
r.Redirect(myconfig.AppRoutes["configrefresh"])
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetConfig(ctn *service.Container, id string) string {
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
var myconfig entity.Config
|
||||||
|
mydb.First(&myconfig, "id = ?", id)
|
||||||
|
if myconfig.Value == "" {
|
||||||
|
return myconfig.Defaultvalue
|
||||||
|
} else {
|
||||||
|
return myconfig.Value
|
||||||
|
}
|
||||||
|
}
|
39
controller/home.go
Normal file
39
controller/home.go
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"arno/skeletor/config"
|
||||||
|
"arno/skeletor/service"
|
||||||
|
"arno/skeletor/tool"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/martini-contrib/render"
|
||||||
|
"github.com/martini-contrib/sessions"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Home(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
|
||||||
|
rendermap := map[string]interface{}{
|
||||||
|
"conf": myconfig,
|
||||||
|
"session": tool.Rendersession(session),
|
||||||
|
"useheader": true,
|
||||||
|
"usesidebar": false,
|
||||||
|
"usecontainer": true,
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTML(200, "home/home", rendermap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func HomeConfig(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
|
||||||
|
rendermap := map[string]interface{}{
|
||||||
|
"conf": myconfig,
|
||||||
|
"session": tool.Rendersession(session),
|
||||||
|
"useheader": true,
|
||||||
|
"usesidebar": true,
|
||||||
|
"usecontainer": true,
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTML(200, "home/home", rendermap)
|
||||||
|
}
|
130
controller/security.go
Normal file
130
controller/security.go
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"arno/skeletor/config"
|
||||||
|
"arno/skeletor/entity"
|
||||||
|
"arno/skeletor/repository"
|
||||||
|
"arno/skeletor/service"
|
||||||
|
"arno/skeletor/tool"
|
||||||
|
"net/http"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/martini-contrib/render"
|
||||||
|
"github.com/martini-contrib/sessions"
|
||||||
|
)
|
||||||
|
|
||||||
|
func SecurityFirewall(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render, level int) int {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
|
||||||
|
tmp := session.Get("Login")
|
||||||
|
login := ""
|
||||||
|
if tmp != nil {
|
||||||
|
login = tmp.(string)
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp = session.Get("Role")
|
||||||
|
role := 100
|
||||||
|
if tmp != nil {
|
||||||
|
rolestr := tmp.(string)
|
||||||
|
role, _ = strconv.Atoi(rolestr)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Si l'application est privé et que l'utilisateur n'est pas connecté on indique une redirection vers la mire de login
|
||||||
|
if myconfig.AppPrivate && login == "" {
|
||||||
|
return 2
|
||||||
|
}
|
||||||
|
|
||||||
|
// Si l'utilisateur n'a pas le niveau requis pour visualiser la page
|
||||||
|
if role > level {
|
||||||
|
// Si l'application est public et que le niveau requis est au minimum un niveau user on indique une redirection vers la mire de login
|
||||||
|
// Sinon on redirige vers la page d'accueil
|
||||||
|
if login == "" && level <= 50 {
|
||||||
|
return 2
|
||||||
|
} else {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func SecurityRedirect(ctn *service.Container, req *http.Request, r render.Render, isperm int) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
|
||||||
|
// Si redirection vers page d'accueil
|
||||||
|
if isperm == 1 {
|
||||||
|
r.Redirect(myconfig.AppRoutes["home"])
|
||||||
|
}
|
||||||
|
|
||||||
|
// Si redirection vers mire de login
|
||||||
|
if isperm == 2 {
|
||||||
|
r.Redirect(myconfig.AppRoutes["securitylogin"] + "?redirect=" + req.URL.Path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SecurityLogin(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
redirect, isredirect := req.URL.Query()["redirect"]
|
||||||
|
|
||||||
|
var user entity.User
|
||||||
|
var myerr string
|
||||||
|
|
||||||
|
session.Clear()
|
||||||
|
|
||||||
|
if req.Method == http.MethodPost {
|
||||||
|
req.ParseForm()
|
||||||
|
login := req.Form.Get("login")
|
||||||
|
password := req.Form.Get("password")
|
||||||
|
|
||||||
|
// On recherche l'utilisateur
|
||||||
|
result := mydb.First(&user, "login = ?", login)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
myerr = "No User"
|
||||||
|
} else {
|
||||||
|
salt := user.Salt
|
||||||
|
if password != tool.Decrypt(salt, user.Password) {
|
||||||
|
myerr = "Erreur de connexion"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if myerr == "" {
|
||||||
|
RefreshSession(session, user)
|
||||||
|
|
||||||
|
if isredirect {
|
||||||
|
r.Redirect(redirect[0])
|
||||||
|
} else {
|
||||||
|
r.Redirect(myconfig.AppRoutes["home"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rendermap := map[string]interface{}{
|
||||||
|
"conf": myconfig,
|
||||||
|
"session": tool.Rendersession(session),
|
||||||
|
"useheader": false,
|
||||||
|
"usesidebar": false,
|
||||||
|
"usecontainer": true,
|
||||||
|
"error": myerr,
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTML(200, "security/login", rendermap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func SecurityLogout(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
session.Clear()
|
||||||
|
r.Redirect(myconfig.AppRoutes["home"])
|
||||||
|
}
|
||||||
|
|
||||||
|
func RefreshSession(session sessions.Session, user entity.User) {
|
||||||
|
session.Set("Userid", strconv.FormatUint(uint64(user.Id), 10))
|
||||||
|
session.Set("Login", user.Login)
|
||||||
|
session.Set("Firstname", user.Firstname)
|
||||||
|
session.Set("Lastname", user.Lastname)
|
||||||
|
session.Set("Email", user.Email)
|
||||||
|
session.Set("Avatar", user.Avatar)
|
||||||
|
session.Set("Role", strconv.Itoa(user.Role))
|
||||||
|
session.Set("Apikey", user.Apikey)
|
||||||
|
}
|
217
controller/upload.go
Normal file
217
controller/upload.go
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"arno/skeletor/config"
|
||||||
|
"arno/skeletor/service"
|
||||||
|
"arno/skeletor/tool"
|
||||||
|
|
||||||
|
"image/gif"
|
||||||
|
"image/jpeg"
|
||||||
|
"image/png"
|
||||||
|
"io/ioutil"
|
||||||
|
"mime/multipart"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/nfnt/resize"
|
||||||
|
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/martini-contrib/sessions"
|
||||||
|
"github.com/martini-contrib/render"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Upload(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render, typeupload string, id string) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
|
||||||
|
isonefile := true
|
||||||
|
iscallback := true
|
||||||
|
iscropped := false
|
||||||
|
path := setPath(ctn, "http", typeupload, id)
|
||||||
|
redirect := ""
|
||||||
|
acceptedFiles := ""
|
||||||
|
|
||||||
|
if typeupload == "logo" {
|
||||||
|
acceptedFiles = ".jpg,.jpeg,.gif,.png,.svg"
|
||||||
|
}
|
||||||
|
|
||||||
|
if typeupload == "avatar" {
|
||||||
|
iscropped = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if iscropped {
|
||||||
|
iscallback = false
|
||||||
|
redirect = myconfig.AppRoutes["uploadcrop"] + typeupload + "/" + id
|
||||||
|
}
|
||||||
|
|
||||||
|
rendermap := map[string]interface{}{
|
||||||
|
"conf": myconfig,
|
||||||
|
"session": tool.Rendersession(session),
|
||||||
|
"useheader": false,
|
||||||
|
"usesidebar": false,
|
||||||
|
"usecontainer": true,
|
||||||
|
"typeupload": typeupload,
|
||||||
|
"id": id,
|
||||||
|
"path": path,
|
||||||
|
"acceptedFiles": acceptedFiles,
|
||||||
|
"isonefile": isonefile,
|
||||||
|
"iscallback": iscallback,
|
||||||
|
"iscropped": iscropped,
|
||||||
|
"redirect": redirect,
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTML(200, "upload/upload", rendermap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Uploaded(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render, typeupload string, id string) {
|
||||||
|
file, header, _ := req.FormFile("file")
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
isrename := true
|
||||||
|
isresize := false
|
||||||
|
resizeheight := uint(1200)
|
||||||
|
|
||||||
|
if typeupload == "logo" {
|
||||||
|
isresize = true
|
||||||
|
resizeheight = uint(120)
|
||||||
|
}
|
||||||
|
|
||||||
|
filename := saveFile(ctn, file, header, typeupload, id, isrename, isresize, resizeheight)
|
||||||
|
|
||||||
|
newmap := map[string]interface{}{"file": filename}
|
||||||
|
r.JSON(200, newmap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func UploadCrop(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render, typeupload string, id string) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
pathfile, _ := req.URL.Query()["pathfile"]
|
||||||
|
filename, _ := req.URL.Query()["filename"]
|
||||||
|
|
||||||
|
path := setPath(ctn, "http", typeupload, id)
|
||||||
|
iscallback := false
|
||||||
|
redirect := ""
|
||||||
|
|
||||||
|
if typeupload == "avatar" {
|
||||||
|
iscallback = true
|
||||||
|
}
|
||||||
|
|
||||||
|
rendermap := map[string]interface{}{
|
||||||
|
"conf": myconfig,
|
||||||
|
"session": tool.Rendersession(session),
|
||||||
|
"useheader": false,
|
||||||
|
"usesidebar": false,
|
||||||
|
"usecontainer": true,
|
||||||
|
"typeupload": typeupload,
|
||||||
|
"id": id,
|
||||||
|
"path": path,
|
||||||
|
"submitroute": myconfig.AppRoutes["uploadcropped"] + typeupload + "/" + id,
|
||||||
|
"filename": filename[0],
|
||||||
|
"pathfile": pathfile[0],
|
||||||
|
"iscallback": iscallback,
|
||||||
|
"redirect": redirect,
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTML(200, "upload/crop", rendermap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func UploadCropped(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render, typeupload string, id string) {
|
||||||
|
file, header, _ := req.FormFile("file")
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
isrename := false
|
||||||
|
isresize := false
|
||||||
|
resizeheight := uint(1200)
|
||||||
|
|
||||||
|
if typeupload == "avatar" {
|
||||||
|
isresize = true
|
||||||
|
resizeheight = uint(120)
|
||||||
|
}
|
||||||
|
|
||||||
|
filename := saveFile(ctn, file, header, typeupload, id, isrename, isresize, resizeheight)
|
||||||
|
|
||||||
|
newmap := map[string]interface{}{"file": filename}
|
||||||
|
r.JSON(200, newmap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func saveFile(ctn *service.Container, file multipart.File, handle *multipart.FileHeader, typeupload string, id string, isrename bool, isresize bool, resizeheight uint) string {
|
||||||
|
data, _ := ioutil.ReadAll(file)
|
||||||
|
filename := handle.Filename
|
||||||
|
if isrename {
|
||||||
|
filename = uuid.New().String()
|
||||||
|
}
|
||||||
|
|
||||||
|
mineType := handle.Header.Get("Content-Type")
|
||||||
|
if isrename {
|
||||||
|
if mineType == "image/jpeg" {
|
||||||
|
filename = filename + ".jpg"
|
||||||
|
}
|
||||||
|
if mineType == "image/png" {
|
||||||
|
filename = filename + ".png"
|
||||||
|
}
|
||||||
|
if mineType == "image/gif" {
|
||||||
|
filename = filename + ".gif"
|
||||||
|
}
|
||||||
|
if mineType == "image/svg+xml" {
|
||||||
|
filename = filename + ".svg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
path := setPath(ctn, "os", typeupload, id) + filename
|
||||||
|
ioutil.WriteFile(path, data, 0666)
|
||||||
|
|
||||||
|
if isresize {
|
||||||
|
resizeFile(mineType, path, resizeheight)
|
||||||
|
}
|
||||||
|
|
||||||
|
return filename
|
||||||
|
}
|
||||||
|
|
||||||
|
func setPath(ctn *service.Container, mode string, typeupload string, id string) string {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
|
||||||
|
racine := ""
|
||||||
|
if mode == "http" {
|
||||||
|
racine = myconfig.AppWeburl
|
||||||
|
} else {
|
||||||
|
racine = "./public"
|
||||||
|
}
|
||||||
|
|
||||||
|
path := racine + "/uploads/" + typeupload + "/"
|
||||||
|
|
||||||
|
return path
|
||||||
|
}
|
||||||
|
|
||||||
|
func resizeFile(mineType string, path string, resizeheight uint) {
|
||||||
|
file, _ := os.Open(path)
|
||||||
|
|
||||||
|
if mineType == "image/jpeg" {
|
||||||
|
img, _ := jpeg.Decode(file)
|
||||||
|
file.Close()
|
||||||
|
m := resize.Resize(0, resizeheight, img, resize.Lanczos3)
|
||||||
|
out, _ := os.Create(path)
|
||||||
|
defer out.Close()
|
||||||
|
jpeg.Encode(out, m, nil)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if mineType == "image/png" {
|
||||||
|
img, _ := png.Decode(file)
|
||||||
|
file.Close()
|
||||||
|
m := resize.Resize(0, resizeheight, img, resize.Lanczos3)
|
||||||
|
out, _ := os.Create(path)
|
||||||
|
defer out.Close()
|
||||||
|
png.Encode(out, m)
|
||||||
|
}
|
||||||
|
|
||||||
|
if mineType == "image/gif" {
|
||||||
|
img, _ := gif.Decode(file)
|
||||||
|
file.Close()
|
||||||
|
m := resize.Resize(0, resizeheight, img, resize.Lanczos3)
|
||||||
|
out, _ := os.Create(path)
|
||||||
|
defer out.Close()
|
||||||
|
gif.Encode(out, m, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
if mineType == "image/svg+xml" {
|
||||||
|
// No resize for svg image
|
||||||
|
}
|
||||||
|
}
|
216
controller/user.go
Normal file
216
controller/user.go
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"arno/skeletor/config"
|
||||||
|
"arno/skeletor/entity"
|
||||||
|
"arno/skeletor/repository"
|
||||||
|
"arno/skeletor/service"
|
||||||
|
"arno/skeletor/tool"
|
||||||
|
"net/http"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/martini-contrib/render"
|
||||||
|
"github.com/martini-contrib/sessions"
|
||||||
|
)
|
||||||
|
|
||||||
|
func UserList(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
var users []entity.User
|
||||||
|
mydb.Find(&users)
|
||||||
|
|
||||||
|
rendermap := map[string]interface{}{
|
||||||
|
"conf": myconfig,
|
||||||
|
"session": tool.Rendersession(session),
|
||||||
|
"useheader": true,
|
||||||
|
"usesidebar": true,
|
||||||
|
"usecontainer": true,
|
||||||
|
"users": users,
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTML(200, "user/list", rendermap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func UserSubmit(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
var user entity.User
|
||||||
|
var myerr string
|
||||||
|
var isvalid bool
|
||||||
|
|
||||||
|
user.Avatar = "noavatar.png"
|
||||||
|
user.Apikey = uuid.New().String()
|
||||||
|
user.Role = 50
|
||||||
|
|
||||||
|
if req.Method == http.MethodPost {
|
||||||
|
myerr, isvalid = UserValidate(req)
|
||||||
|
if isvalid {
|
||||||
|
req.ParseForm()
|
||||||
|
|
||||||
|
// Encrypter le password
|
||||||
|
salt := []byte("example key 1234")
|
||||||
|
password := tool.Encrypt(salt, req.Form.Get("password"))
|
||||||
|
|
||||||
|
user.Login = req.Form.Get("login")
|
||||||
|
user.Password = password
|
||||||
|
user.Salt = salt
|
||||||
|
user.Role, _ = strconv.Atoi(req.Form.Get("role"))
|
||||||
|
user.Avatar = req.Form.Get("avatar")
|
||||||
|
user.Firstname = req.Form.Get("firstname")
|
||||||
|
user.Lastname = req.Form.Get("lastname")
|
||||||
|
user.Email = req.Form.Get("email")
|
||||||
|
user.Apikey = req.Form.Get("apikey")
|
||||||
|
|
||||||
|
err := mydb.Create(&user).Error
|
||||||
|
|
||||||
|
if err == nil {
|
||||||
|
r.Redirect(myconfig.AppRoutes["userlist"])
|
||||||
|
} else {
|
||||||
|
myerr = "Cet utilisateur existe déjà avec soit ce login / cet email / cette apikey<br>" + err.Error()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Si erreur on reinit le password à vide
|
||||||
|
user.Password = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
rendermap := map[string]interface{}{
|
||||||
|
"conf": myconfig,
|
||||||
|
"session": tool.Rendersession(session),
|
||||||
|
"useheader": true,
|
||||||
|
"usesidebar": true,
|
||||||
|
"usecontainer": true,
|
||||||
|
"mode": "submit",
|
||||||
|
"user": user,
|
||||||
|
"error": myerr,
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTML(200, "user/edit", rendermap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func UserUpdate(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render, id string, from string) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
var user entity.User
|
||||||
|
var myerr string
|
||||||
|
var isvalid bool
|
||||||
|
|
||||||
|
result := mydb.First(&user, "id = ?", id)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
r.Redirect(myconfig.AppRoutes["userlist"])
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.Method == http.MethodPost {
|
||||||
|
myerr, isvalid = UserValidate(req)
|
||||||
|
if isvalid {
|
||||||
|
req.ParseForm()
|
||||||
|
|
||||||
|
// Encrypter le password
|
||||||
|
if req.Form.Get("password") != "" {
|
||||||
|
salt := []byte("example key 1234")
|
||||||
|
password := tool.Encrypt(salt, req.Form.Get("password"))
|
||||||
|
user.Password = password
|
||||||
|
user.Salt = salt
|
||||||
|
}
|
||||||
|
|
||||||
|
user.Firstname = req.Form.Get("firstname")
|
||||||
|
user.Lastname = req.Form.Get("lastname")
|
||||||
|
user.Email = req.Form.Get("email")
|
||||||
|
user.Apikey = req.Form.Get("apikey")
|
||||||
|
user.Avatar = req.Form.Get("avatar")
|
||||||
|
|
||||||
|
if from == "update" {
|
||||||
|
user.Role, _ = strconv.Atoi(req.Form.Get("role"))
|
||||||
|
}
|
||||||
|
|
||||||
|
err := mydb.Save(&user).Error
|
||||||
|
|
||||||
|
if err == nil {
|
||||||
|
userid := session.Get("Userid").(string)
|
||||||
|
if strconv.FormatUint(uint64(user.Id), 10) == userid {
|
||||||
|
RefreshSession(session, user)
|
||||||
|
}
|
||||||
|
|
||||||
|
if from == "update" {
|
||||||
|
r.Redirect(myconfig.AppRoutes["userlist"])
|
||||||
|
} else {
|
||||||
|
r.Redirect(myconfig.AppRoutes["home"])
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
myerr = "Cet utilisateur existe déjà avec soit cet email / cette apikey" + err.Error()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
usesidebar := true
|
||||||
|
if from == "profil" {
|
||||||
|
usesidebar = false
|
||||||
|
}
|
||||||
|
rendermap := map[string]interface{}{
|
||||||
|
"conf": myconfig,
|
||||||
|
"session": tool.Rendersession(session),
|
||||||
|
"useheader": true,
|
||||||
|
"usesidebar": usesidebar,
|
||||||
|
"usecontainer": true,
|
||||||
|
"mode": from,
|
||||||
|
"user": user,
|
||||||
|
"error": myerr,
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTML(200, "user/edit", rendermap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func UserDelete(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render, id string) {
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
var user entity.User
|
||||||
|
result := mydb.First(&user, "id = ?", id)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
r.Redirect(myconfig.AppRoutes["userlist"])
|
||||||
|
}
|
||||||
|
|
||||||
|
var myerr string
|
||||||
|
err := mydb.Delete(&user).Error
|
||||||
|
if err == nil {
|
||||||
|
r.Redirect(myconfig.AppRoutes["userlist"])
|
||||||
|
} else {
|
||||||
|
myerr = "Problème à la suppression de l'enregistrement<br>" + err.Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
rendermap := map[string]interface{}{
|
||||||
|
"conf": myconfig,
|
||||||
|
"session": tool.Rendersession(session),
|
||||||
|
"useheader": true,
|
||||||
|
"usesidebar": true,
|
||||||
|
"usecontainer": true,
|
||||||
|
"mode": "update",
|
||||||
|
"user": user,
|
||||||
|
"error": myerr,
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTML(200, "user/edit", rendermap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func UserValidate(req *http.Request) (string, bool) {
|
||||||
|
req.ParseForm()
|
||||||
|
|
||||||
|
if len(req.Form.Get("login")) < 5 {
|
||||||
|
myerr := "Votre Login doit comporter au minimum 5 caractères"
|
||||||
|
return myerr, false
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.Form.Get("password") != "" {
|
||||||
|
if !tool.IsPasswordValid(req.Form.Get("password")) {
|
||||||
|
myerr := "Mot de passe invalide<br><li>Minium 7 caractères</li><li>Minimum une majuscule</li><li>Minimum une minuscule</li><li>Minimum un chiffre</li><li>Minimum un caractère spécial</li>"
|
||||||
|
return myerr, false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return "", true
|
||||||
|
}
|
99
crontab/call.go
Normal file
99
crontab/call.go
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
package crontab
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"arno/skeletor/service"
|
||||||
|
"arno/skeletor/repository"
|
||||||
|
"arno/skeletor/entity"
|
||||||
|
"arno/skeletor/tool"
|
||||||
|
|
||||||
|
"github.com/robfig/cron/v3"
|
||||||
|
)
|
||||||
|
|
||||||
|
type stubMapping map[string]interface{}
|
||||||
|
var StubStorage = stubMapping{}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
StubStorage = map[string]interface{}{
|
||||||
|
"AppClear": AppClear,
|
||||||
|
"AppSetPassword": AppSetPassword,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Lauch(ctn *service.Container) {
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
tool.LogTitle("CRON")
|
||||||
|
tool.LogInfo("Création des Jobs Cron")
|
||||||
|
c := cron.New()
|
||||||
|
|
||||||
|
var crons []entity.Cron
|
||||||
|
var command entity.Command
|
||||||
|
mydb.Find(&crons)
|
||||||
|
|
||||||
|
for _, cron := range crons {
|
||||||
|
mydb.First(&command, "id = ?", cron.CommandId)
|
||||||
|
tool.Log("["+command.Name+"] "+cron.Every)
|
||||||
|
c.AddFunc(cron.Every, func() {
|
||||||
|
var prntA string
|
||||||
|
|
||||||
|
if(cron.Arg05!="") {
|
||||||
|
resA,_ := Call(command.Name,ctn,cron.Arg01,cron.Arg02,cron.Arg03,cron.Arg04,cron.Arg05)
|
||||||
|
prntA = resA.(string)
|
||||||
|
tool.Log(prntA)
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cron.Arg04!="") {
|
||||||
|
resA,_ := Call(command.Name,ctn,cron.Arg01,cron.Arg02,cron.Arg03,cron.Arg04)
|
||||||
|
prntA = resA.(string)
|
||||||
|
tool.Log(prntA)
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cron.Arg03!="") {
|
||||||
|
resA,_ := Call(command.Name,ctn,cron.Arg01,cron.Arg02,cron.Arg03)
|
||||||
|
prntA = resA.(string)
|
||||||
|
tool.Log(prntA)
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cron.Arg02!="") {
|
||||||
|
resA,_ := Call(command.Name,ctn,cron.Arg01,cron.Arg02)
|
||||||
|
prntA = resA.(string)
|
||||||
|
tool.Log(prntA)
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cron.Arg01!="") {
|
||||||
|
resA,_ := Call(command.Name,ctn,cron.Arg01)
|
||||||
|
prntA = resA.(string)
|
||||||
|
tool.Log(prntA)
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cron.Arg01=="") {
|
||||||
|
resA,_ := Call(command.Name,ctn)
|
||||||
|
prntA = resA.(string)
|
||||||
|
tool.Log(prntA)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start cron with one scheduled job
|
||||||
|
c.Start()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func Call(funcName string, params ... interface{}) (result interface{}, err error) {
|
||||||
|
f := reflect.ValueOf(StubStorage[funcName])
|
||||||
|
if len(params) != f.Type().NumIn() {
|
||||||
|
err = errors.New("The number of params is out of index.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
in := make([]reflect.Value, len(params))
|
||||||
|
for k, param := range params {
|
||||||
|
in[k] = reflect.ValueOf(param)
|
||||||
|
}
|
||||||
|
var res []reflect.Value
|
||||||
|
res = f.Call(in)
|
||||||
|
result = res[0].Interface()
|
||||||
|
return
|
||||||
|
}
|
25
crontab/clear.go
Normal file
25
crontab/clear.go
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package crontab
|
||||||
|
|
||||||
|
import (
|
||||||
|
"arno/skeletor/config"
|
||||||
|
"arno/skeletor/entity"
|
||||||
|
"arno/skeletor/repository"
|
||||||
|
"arno/skeletor/service"
|
||||||
|
"arno/skeletor/tool"
|
||||||
|
)
|
||||||
|
|
||||||
|
func AppClear(ctn *service.Container) string {
|
||||||
|
tool.LogJobTitle("APPCLEAR")
|
||||||
|
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
tool.Log(myconfig.AppWeburl)
|
||||||
|
var users []entity.User
|
||||||
|
mydb.Find(&users)
|
||||||
|
for _, user := range users {
|
||||||
|
tool.Log(user.Login)
|
||||||
|
}
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
36
crontab/setpassword.go
Normal file
36
crontab/setpassword.go
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package crontab
|
||||||
|
|
||||||
|
import (
|
||||||
|
"arno/skeletor/repository"
|
||||||
|
"arno/skeletor/entity"
|
||||||
|
"arno/skeletor/service"
|
||||||
|
"arno/skeletor/tool"
|
||||||
|
)
|
||||||
|
|
||||||
|
func AppSetPassword(ctn *service.Container,login string, password string) string {
|
||||||
|
tool.LogJobTitle("APPSETPASSWORD")
|
||||||
|
|
||||||
|
mydb := repository.Must(ctn)
|
||||||
|
|
||||||
|
var user entity.User
|
||||||
|
result := mydb.First(&user, "login = ?", login)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
tool.LogFatal("Utilisateur inexistant")
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
salt := []byte("example key 1234")
|
||||||
|
encpassword := tool.Encrypt(salt, password)
|
||||||
|
user.Password = encpassword
|
||||||
|
user.Salt = salt
|
||||||
|
err := mydb.Save(&user).Error
|
||||||
|
if(err!=nil) {
|
||||||
|
tool.LogFatal(err.Error())
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
tool.Log("Login = "+login)
|
||||||
|
tool.Log("Nouveau Password = "+password)
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
8
entity/command.go
Normal file
8
entity/command.go
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package entity
|
||||||
|
|
||||||
|
type Command struct {
|
||||||
|
Id uint `gorm:"primaryKey"`
|
||||||
|
Name string
|
||||||
|
Description string
|
||||||
|
Cron []Cron `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
|
||||||
|
}
|
16
entity/config.go
Normal file
16
entity/config.go
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package entity
|
||||||
|
|
||||||
|
type Config struct {
|
||||||
|
Id string `gorm:"primaryKey`
|
||||||
|
Title string
|
||||||
|
Value string
|
||||||
|
Defaultvalue string
|
||||||
|
Roworder int
|
||||||
|
Visible bool
|
||||||
|
Changeable bool
|
||||||
|
Required bool
|
||||||
|
Typefield string
|
||||||
|
Grouped string
|
||||||
|
Category string
|
||||||
|
Help string
|
||||||
|
}
|
12
entity/cron.go
Normal file
12
entity/cron.go
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package entity
|
||||||
|
|
||||||
|
type Cron struct {
|
||||||
|
Id uint `gorm:"primaryKey`
|
||||||
|
Every string
|
||||||
|
Arg01 string
|
||||||
|
Arg02 string
|
||||||
|
Arg03 string
|
||||||
|
Arg04 string
|
||||||
|
Arg05 string
|
||||||
|
CommandId uint
|
||||||
|
}
|
14
entity/user.go
Normal file
14
entity/user.go
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package entity
|
||||||
|
|
||||||
|
type User struct {
|
||||||
|
Id uint `gorm:"primaryKey`
|
||||||
|
Login string `gorm:"unique"`
|
||||||
|
Firstname string
|
||||||
|
Lastname string
|
||||||
|
Email string `gorm:"unique"`
|
||||||
|
Avatar string
|
||||||
|
Role int
|
||||||
|
Password string
|
||||||
|
Salt []byte
|
||||||
|
Apikey string `gorm:"unique"`
|
||||||
|
}
|
31
go.mod
Normal file
31
go.mod
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
module arno/skeletor
|
||||||
|
|
||||||
|
go 1.17
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab
|
||||||
|
github.com/google/uuid v1.3.0
|
||||||
|
github.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11
|
||||||
|
github.com/martini-contrib/sessions v0.0.0-20140630231722-fa13114fbcf0
|
||||||
|
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
|
||||||
|
github.com/pkg/errors v0.9.1
|
||||||
|
github.com/robfig/cron/v3 v3.0.1
|
||||||
|
github.com/teacat/noire v1.1.0
|
||||||
|
gopkg.in/ini.v1 v1.63.2
|
||||||
|
gorm.io/driver/mysql v1.1.2
|
||||||
|
gorm.io/gorm v1.21.15
|
||||||
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff // indirect
|
||||||
|
github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0 // indirect
|
||||||
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
|
github.com/go-sql-driver/mysql v1.6.0 // indirect
|
||||||
|
github.com/gomodule/redigo v2.0.0+incompatible // indirect
|
||||||
|
github.com/gorilla/context v1.1.1 // indirect
|
||||||
|
github.com/gorilla/securecookie v1.1.1 // indirect
|
||||||
|
github.com/gorilla/sessions v1.2.1 // indirect
|
||||||
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||||
|
github.com/jinzhu/now v1.1.2 // indirect
|
||||||
|
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect
|
||||||
|
)
|
56
go.sum
Normal file
56
go.sum
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff h1:RmdPFa+slIr4SCBg4st/l/vZWVe9QJKMXGO60Bxbe04=
|
||||||
|
github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff/go.mod h1:+RTT1BOk5P97fT2CiHkbFQwkK3mjsFAP6zCYV2aXtjw=
|
||||||
|
github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0 h1:sDMmm+q/3+BukdIpxwO365v/Rbspp2Nt5XntgQRXq8Q=
|
||||||
|
github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM=
|
||||||
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab h1:xveKWz2iaueeTaUgdetzel+U7exyigDYBryyVfV/rZk=
|
||||||
|
github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8=
|
||||||
|
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
|
||||||
|
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||||
|
github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
|
||||||
|
github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
||||||
|
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
||||||
|
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
|
github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8=
|
||||||
|
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
|
||||||
|
github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=
|
||||||
|
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
|
||||||
|
github.com/gorilla/sessions v1.1.1/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=
|
||||||
|
github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=
|
||||||
|
github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
|
||||||
|
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
|
||||||
|
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
|
||||||
|
github.com/jinzhu/now v1.1.2 h1:eVKgfIdy9b6zbWBMgFpfDPoAMifwSZagU9HmEU6zgiI=
|
||||||
|
github.com/jinzhu/now v1.1.2/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
||||||
|
github.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11 h1:YFh+sjyJTMQSYjKwM4dFKhJPJC/wfo98tPUc17HdoYw=
|
||||||
|
github.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11/go.mod h1:Ah2dBMoxZEqk118as2T4u4fjfXarE0pPnMJaArZQZsI=
|
||||||
|
github.com/martini-contrib/sessions v0.0.0-20140630231722-fa13114fbcf0 h1:kRwknBBQVnRz0BF2wzTZARcaSsYtNdOGL5iQsqPtWUc=
|
||||||
|
github.com/martini-contrib/sessions v0.0.0-20140630231722-fa13114fbcf0/go.mod h1:adYdHCQ10x7n+4GhRwUv+x6uRLIKkDfBuVORfFduvwQ=
|
||||||
|
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
|
||||||
|
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
|
||||||
|
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw=
|
||||||
|
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0=
|
||||||
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
|
||||||
|
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
|
||||||
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
|
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
||||||
|
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
|
github.com/teacat/noire v1.1.0 h1:5IgJ1H8jodiSSYnrVadV2JjbAnEgCCjYUQxSUuaQ7Sg=
|
||||||
|
github.com/teacat/noire v1.1.0/go.mod h1:cetGlnqr+9yKJcFgRgYXOWJY66XIrrjUsGBwNlNNtAk=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c=
|
||||||
|
gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gorm.io/driver/mysql v1.1.2 h1:OofcyE2lga734MxwcCW9uB4mWNXMr50uaGRVwQL2B0M=
|
||||||
|
gorm.io/driver/mysql v1.1.2/go.mod h1:4P/X9vSc3WTrhTLZ259cpFd6xKNYiSSdSZngkSBGIMM=
|
||||||
|
gorm.io/gorm v1.21.12/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0=
|
||||||
|
gorm.io/gorm v1.21.15 h1:gAyaDoPw0lCyrSFWhBlahbUA1U4P5RViC1uIqoB+1Rk=
|
||||||
|
gorm.io/gorm v1.21.15/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0=
|
234
middleware/middleware.go
Normal file
234
middleware/middleware.go
Normal file
@ -0,0 +1,234 @@
|
|||||||
|
package middleware
|
||||||
|
|
||||||
|
import (
|
||||||
|
"html/template"
|
||||||
|
|
||||||
|
"github.com/go-martini/martini"
|
||||||
|
"github.com/martini-contrib/render"
|
||||||
|
"github.com/martini-contrib/sessions"
|
||||||
|
|
||||||
|
"arno/skeletor/config"
|
||||||
|
"arno/skeletor/controller"
|
||||||
|
"arno/skeletor/service"
|
||||||
|
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Middleware struct {
|
||||||
|
martini *martini.ClassicMartini
|
||||||
|
templates map[string]*template.Template
|
||||||
|
ctn *service.Container
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewMiddleware(ctn *service.Container) *Middleware {
|
||||||
|
var middleware *Middleware = new(Middleware)
|
||||||
|
middleware.ctn = ctn
|
||||||
|
myconfig := config.Must(ctn)
|
||||||
|
|
||||||
|
// Initialisation du serveur middleware
|
||||||
|
middleware.martini = martini.Classic()
|
||||||
|
|
||||||
|
// Initialisation de la session
|
||||||
|
store := sessions.NewCookieStore([]byte(myconfig.AppSecret))
|
||||||
|
store.Options(sessions.Options{Path: myconfig.AppAlias, MaxAge: int(3600)})
|
||||||
|
|
||||||
|
middleware.martini.Use(sessions.Sessions(myconfig.AppName, store))
|
||||||
|
|
||||||
|
// Definition du répertoire public
|
||||||
|
StaticOptions := martini.StaticOptions{Prefix: "public"}
|
||||||
|
middleware.martini.Use(martini.Static("public", StaticOptions))
|
||||||
|
|
||||||
|
// Définition du template de base
|
||||||
|
middleware.martini.Use(render.Renderer(render.Options{
|
||||||
|
Layout: "base",
|
||||||
|
Funcs: []template.FuncMap{
|
||||||
|
{
|
||||||
|
"unescaped": func(args ...interface{}) template.HTML {
|
||||||
|
return template.HTML(args[0].(string))
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
|
||||||
|
// x) Define and set all handlers
|
||||||
|
middleware.initHandlers()
|
||||||
|
|
||||||
|
return middleware
|
||||||
|
}
|
||||||
|
|
||||||
|
func (middleware *Middleware) StartMiddleware() {
|
||||||
|
myconfig := config.Must(middleware.ctn)
|
||||||
|
middleware.martini.RunOnAddr(myconfig.AppServer)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (middleware *Middleware) initHandlers() {
|
||||||
|
myconfig := config.Must(middleware.ctn)
|
||||||
|
|
||||||
|
// Route Home
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["home"], middleware.Home)
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["homeconfig"], middleware.HomeConfig)
|
||||||
|
|
||||||
|
// Route Security
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["securitylogin"], middleware.SecurityLogin)
|
||||||
|
middleware.martini.Post(myconfig.AppRoutes["securitylogin"], middleware.SecurityLogin)
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["securitylogout"], middleware.SecurityLogout)
|
||||||
|
|
||||||
|
// Route Upload
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["upload"]+":typeupload"+"/:id", middleware.Upload)
|
||||||
|
middleware.martini.Post(myconfig.AppRoutes["uploaded"]+":typeupload"+"/:id", middleware.Uploaded)
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["uploadcrop"]+":typeupload"+"/:id", middleware.UploadCrop)
|
||||||
|
middleware.martini.Post(myconfig.AppRoutes["uploadcropped"]+":typeupload"+"/:id", middleware.UploadCropped)
|
||||||
|
|
||||||
|
// Route Config
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["configlist"], middleware.ConfigList)
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["configrefresh"], middleware.ConfigRefresh)
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["configupdate"]+":id", middleware.ConfigUpdate)
|
||||||
|
middleware.martini.Post(myconfig.AppRoutes["configupdate"]+":id", middleware.ConfigUpdate)
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["configdelete"]+":id", middleware.ConfigDelete)
|
||||||
|
|
||||||
|
// Route User
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["userlist"], middleware.UserList)
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["usersubmit"], middleware.UserSubmit)
|
||||||
|
middleware.martini.Post(myconfig.AppRoutes["usersubmit"], middleware.UserSubmit)
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["userupdate"]+":id", middleware.UserUpdate)
|
||||||
|
middleware.martini.Post(myconfig.AppRoutes["userupdate"]+":id", middleware.UserUpdate)
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["userdelete"]+":id", middleware.UserDelete)
|
||||||
|
middleware.martini.Get(myconfig.AppRoutes["userprofil"], middleware.UserProfil)
|
||||||
|
middleware.martini.Post(myconfig.AppRoutes["userprofil"], middleware.UserProfil)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// REDIRECT
|
||||||
|
func (middleware *Middleware) redirect(ctn *service.Container, session sessions.Session, req *http.Request, r render.Render, isperm int) {
|
||||||
|
if isperm != 0 {
|
||||||
|
controller.SecurityRedirect(middleware.ctn, req, r, isperm)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ROUTE HOME
|
||||||
|
func (middleware *Middleware) Home(session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 100)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.Home(middleware.ctn, session, req, r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func (middleware *Middleware) HomeConfig(session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 10)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.HomeConfig(middleware.ctn, session, req, r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ROUTE SECURITY
|
||||||
|
func (middleware *Middleware) SecurityLogin(session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
controller.SecurityLogin(middleware.ctn, session, req, r)
|
||||||
|
}
|
||||||
|
func (middleware *Middleware) SecurityLogout(session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
controller.SecurityLogout(middleware.ctn, session, req, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ROUTE UPLOAD
|
||||||
|
func (middleware *Middleware) Upload(session sessions.Session, req *http.Request, r render.Render, params martini.Params) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 50)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.Upload(middleware.ctn, session, req, r, params["typeupload"], params["id"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func (middleware *Middleware) Uploaded(session sessions.Session, req *http.Request, r render.Render, params martini.Params) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 50)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.Uploaded(middleware.ctn, session, req, r, params["typeupload"], params["id"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func (middleware *Middleware) UploadCrop(session sessions.Session, req *http.Request, r render.Render, params martini.Params) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 50)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.UploadCrop(middleware.ctn, session, req, r, params["typeupload"], params["id"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func (middleware *Middleware) UploadCropped(session sessions.Session, req *http.Request, r render.Render, params martini.Params) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 50)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.UploadCropped(middleware.ctn, session, req, r, params["typeupload"], params["id"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ROUTE CONFIG
|
||||||
|
func (middleware *Middleware) ConfigList(session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 10)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.ConfigList(middleware.ctn, session, req, r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (middleware *Middleware) ConfigRefresh(session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 10)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.ConfigRefresh(middleware.ctn, session, req, r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (middleware *Middleware) ConfigUpdate(session sessions.Session, req *http.Request, r render.Render, params martini.Params) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 10)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.ConfigUpdate(middleware.ctn, session, req, r, params["id"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (middleware *Middleware) ConfigDelete(session sessions.Session, req *http.Request, r render.Render, params martini.Params) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 10)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.ConfigDelete(middleware.ctn, session, req, r, params["id"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ROUTE USER
|
||||||
|
func (middleware *Middleware) UserList(session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 10)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.UserList(middleware.ctn, session, req, r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (middleware *Middleware) UserSubmit(session sessions.Session, req *http.Request, r render.Render) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 10)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.UserSubmit(middleware.ctn, session, req, r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (middleware *Middleware) UserUpdate(session sessions.Session, req *http.Request, r render.Render, params martini.Params) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 10)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.UserUpdate(middleware.ctn, session, req, r, params["id"], "update")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (middleware *Middleware) UserDelete(session sessions.Session, req *http.Request, r render.Render, params martini.Params) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 10)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.UserDelete(middleware.ctn, session, req, r, params["id"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (middleware *Middleware) UserProfil(session sessions.Session, req *http.Request, r render.Render, params martini.Params) {
|
||||||
|
isperm := controller.SecurityFirewall(middleware.ctn, session, req, r, 50)
|
||||||
|
middleware.redirect(middleware.ctn, session, req, r, isperm)
|
||||||
|
if isperm == 0 {
|
||||||
|
controller.UserUpdate(middleware.ctn, session, req, r, session.Get("Userid").(string), "profil")
|
||||||
|
}
|
||||||
|
}
|
BIN
public/fonts/ABeeZee-Regular.ttf
Normal file
BIN
public/fonts/ABeeZee-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Acme-Regular-webfont.ttf
Normal file
BIN
public/fonts/Acme-Regular-webfont.ttf
Normal file
Binary file not shown.
BIN
public/fonts/AlfaSlabOne-Regular.ttf
Normal file
BIN
public/fonts/AlfaSlabOne-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Anton-Regular.ttf
Normal file
BIN
public/fonts/Anton-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Baloo-Regular.ttf
Normal file
BIN
public/fonts/Baloo-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Bebas-webfont.ttf
Normal file
BIN
public/fonts/Bebas-webfont.ttf
Normal file
Binary file not shown.
BIN
public/fonts/CarterOne-Regular.ttf
Normal file
BIN
public/fonts/CarterOne-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Chewy-Regular.ttf
Normal file
BIN
public/fonts/Chewy-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Courgette-Regular.ttf
Normal file
BIN
public/fonts/Courgette-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/FredokaOne-Regular.ttf
Normal file
BIN
public/fonts/FredokaOne-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Grandstander-Black.ttf
Normal file
BIN
public/fonts/Grandstander-Black.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Justanotherhand-Regular-webfont.ttf
Normal file
BIN
public/fonts/Justanotherhand-Regular-webfont.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Lato-Regular.ttf
Normal file
BIN
public/fonts/Lato-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/LexendDeca-Regular.ttf
Normal file
BIN
public/fonts/LexendDeca-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/LuckiestGuy-Regular.ttf
Normal file
BIN
public/fonts/LuckiestGuy-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Overpass-Black.ttf
Normal file
BIN
public/fonts/Overpass-Black.ttf
Normal file
Binary file not shown.
BIN
public/fonts/PassionOne-Regular.ttf
Normal file
BIN
public/fonts/PassionOne-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Peacesans-webfont.ttf
Normal file
BIN
public/fonts/Peacesans-webfont.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Redressed-webfont.ttf
Normal file
BIN
public/fonts/Redressed-webfont.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Righteous-Regular.ttf
Normal file
BIN
public/fonts/Righteous-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Roboto-Regular-webfont.ttf
Normal file
BIN
public/fonts/Roboto-Regular-webfont.ttf
Normal file
Binary file not shown.
BIN
public/fonts/RubikMonoOne-Regular.ttf
Normal file
BIN
public/fonts/RubikMonoOne-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/SigmarOne-Regular.ttf
Normal file
BIN
public/fonts/SigmarOne-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Signika-Regular.ttf
Normal file
BIN
public/fonts/Signika-Regular.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Snickles-webfont.ttf
Normal file
BIN
public/fonts/Snickles-webfont.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Teko-Bold.ttf
Normal file
BIN
public/fonts/Teko-Bold.ttf
Normal file
Binary file not shown.
BIN
public/fonts/Viga-Regular.ttf
Normal file
BIN
public/fonts/Viga-Regular.ttf
Normal file
Binary file not shown.
7
public/lib/bootstrap/css/bootstrap.min.css
vendored
Normal file
7
public/lib/bootstrap/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/bootstrap/css/bootstrap.min.css.map
Normal file
1
public/lib/bootstrap/css/bootstrap.min.css.map
Normal file
File diff suppressed because one or more lines are too long
7
public/lib/bootstrap/js/bootstrap.min.js
vendored
Normal file
7
public/lib/bootstrap/js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/bootstrap/js/bootstrap.min.js.map
Normal file
1
public/lib/bootstrap/js/bootstrap.min.js.map
Normal file
File diff suppressed because one or more lines are too long
6
public/lib/ckeditor/ckeditor.js
vendored
Normal file
6
public/lib/ckeditor/ckeditor.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/ckeditor.js.map
Normal file
1
public/lib/ckeditor/ckeditor.js.map
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/af.js
Normal file
1
public/lib/ckeditor/translations/af.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const n=e["af"]=e["af"]||{};n.dictionary=Object.assign(n.dictionary||{},{"%0 of %1":"","Align center":"Belyn in die middel","Align left":"Belyn links","Align right":"Belyn regs","Block quote":"Blok-aanhaling",Bold:"Vetgedruk",Cancel:"Kanselleer",Code:"Kode",Italic:"Skuinsgedruk",Justify:"Belyn beide kante","Remove color":"",Save:"Berg","Show more items":"","Text alignment":"Teksbelyning","Text alignment toolbar":""});n.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/ar.js
Normal file
1
public/lib/ckeditor/translations/ar.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["ar"]=e["ar"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"","Align center":"محاذاة في المنتصف","Align left":"محاذاة لليسار","Align right":"محاذاة لليمين",Aquamarine:"",Big:"كبير",Black:"","Block quote":"اقتباس",Blue:"","Blue marker":"تحديد ازرق",Bold:"عريض","Break text":"","Bulleted List":"قائمة نقطية",Cancel:"إلغاء","Centered image":"صورة بالوسط","Change image text alternative":"غير النص البديل للصورة","Choose heading":"اختر عنوان",Code:"شفرة برمجية",Column:"عمود",Default:"افتراضي","Delete column":"حذف العمود","Delete row":"حذف الصف","Dim grey":"","Document colors":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"تحرير الرابط","Editor toolbar":"","Enter image caption":"ادخل عنوان الصورة","Font Background Color":"","Font Color":"","Font Family":"نوع الخط","Font Size":"حجم الخط","Full size image":"صورة بحجم كامل",Green:"","Green marker":"تحديد اخضر","Green pen":"قلم اخضر",Grey:"","Header column":"عمود عنوان","Header row":"صف عنوان",Heading:"عنوان","Heading 1":"عنوان 1","Heading 2":"عنوان 2","Heading 3":"عنوان 3","Heading 4":"","Heading 5":"","Heading 6":"",Highlight:"تحديد",Huge:"ضخم","Image resize list":"","Image toolbar":"","image widget":"عنصر الصورة","In line":"",Insert:"","Insert column left":"أدخل العمود إلى اليسار","Insert column right":"أدخل العمود إلى اليمين","Insert image":"ادراج صورة","Insert image via URL":"","Insert media":"أدخل الوسائط","Insert row above":"ادراج صف قبل","Insert row below":"ادراج صف بعد","Insert table":"إدراج جدول",Italic:"مائل",Justify:"ضبط","Left aligned image":"صورة بمحاذاة لليسار","Light blue":"","Light green":"","Light grey":"",Link:"رابط","Link image":"","Link URL":"رابط عنوان","Media URL":"","media widget":"","Merge cell down":"دمج الخلايا للأسفل","Merge cell left":"دمج الخلايا لليسار","Merge cell right":"دمج الخلايا لليمين","Merge cell up":"دمج الخلايا للأعلى","Merge cells":"دمج الخلايا",Next:"","Numbered List":"قائمة رقمية","Open in a new tab":"","Open link in new tab":"فتح الرابط في تبويب جديد",Orange:"",Original:"",Paragraph:"فقرة","Paste the media URL in the input.":"","Pink marker":"تحديد وردي",Previous:"",Purple:"",Red:"","Red pen":"تحديد احمر",Redo:"إعادة","Remove color":"","Remove highlight":"إزالة التحديد","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"معالج نصوص","Rich Text Editor, %0":"معالج نصوص، 0%","Right aligned image":"صورة بمحاذاة لليمين",Row:"صف",Save:"حفظ","Select column":"حدد العمود","Select row":"حدد صفًا","Show more items":"","Side image":"صورة جانبية",Small:"صغير","Split cell horizontally":"فصل الخلايا بشكل افقي","Split cell vertically":"فصل الخلايا بشكل عمودي","Table toolbar":"شريط أدوات الجدول","Text alignment":"محاذاة النص","Text alignment toolbar":"","Text alternative":"النص البديل","Text highlight toolbar":"","The URL must not be empty.":"","This link has no URL":"لا يحتوي هذا الرابط على عنوان","This media URL is not supported.":"",Tiny:"ضئيل","Tip: Paste the URL into the content to embed faster.":"","Toggle caption off":"","Toggle caption on":"",Turquoise:"",Undo:"تراجع",Unlink:"إلغاء الرابط",Update:"","Update image URL":"","Upload failed":"فشل الرفع","Upload in progress":"جاري الرفع",White:"","Wrap text":"",Yellow:"","Yellow marker":"تحديد اصفر"});i.getPluralForm=function(e){return e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11&&e%100<=99?4:5}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/ast.js
Normal file
1
public/lib/ckeditor/translations/ast.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["ast"]=e["ast"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"",Aquamarine:"",Black:"",Blue:"",Bold:"Negrina","Break text":"","Bulleted List":"Llista con viñetes",Cancel:"Encaboxar","Centered image":"","Change image text alternative":"",Code:"","Dim grey":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"","Full size image":"Imaxen a tamañu completu",Green:"",Grey:"","Image resize list":"","Image toolbar":"","image widget":"complementu d'imaxen","In line":"",Insert:"","Insert image":"","Insert image via URL":"",Italic:"Cursiva","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Enllazar","Link image":"","Link URL":"URL del enllaz",Next:"","Numbered List":"Llista numberada","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Previous:"",Purple:"",Red:"",Redo:"Refacer","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Editor de testu arriquecíu","Rich Text Editor, %0":"Editor de testu arriquecíu, %0","Right aligned image":"",Save:"Guardar","Show more items":"","Side image":"Imaxen llateral","Text alternative":"","This link has no URL":"",Turquoise:"",Undo:"Desfacer",Unlink:"Desenllazar",Update:"","Update image URL":"","Upload failed":"",White:"","Wrap text":"",Yellow:""});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/az.js
Normal file
1
public/lib/ckeditor/translations/az.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["az"]=e["az"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"%1-dən %0","Align center":"Mərkəzə düzləndir","Align left":"Soldan düzləndir","Align right":"Sağdan düzləndir",Aquamarine:"Akvamarin",Big:"Böyük",Black:"Qara","Block quote":"Sitat bloku",Blue:"Mavi","Blue marker":"Mavi marker",Bold:"Yarıqalın","Break text":"","Bulleted List":"Markerlənmiş siyahı",Cancel:"İmtina et","Centered image":"Mərkəzə düzləndir","Change image text alternative":"Alternativ mətni redaktə et","Choose heading":"Başlıqı seç",Code:"Kod",Column:"Sütun","Decrease indent":"Boş yeri kiçilt",Default:"Default","Delete column":"Sütunları sil","Delete row":"Sətirləri sil","Dim grey":"Tünd boz","Document colors":"Rənglər",Downloadable:"Yüklənə bilər","Dropdown toolbar":"Açılan paneli","Edit block":"Redaktə etmək bloku","Edit link":"Linki redaktə et","Editor toolbar":"Redaktorun paneli","Enter image caption":"Şəkil başlığı daxil edin","Font Background Color":"Şrift Fonunun Rəngi","Font Color":"Şrift Rəngi","Font Family":"Şrift ailəsi","Font Size":"Şrift ölçüsü","Full size image":"Tam ölçülü şəkili",Green:"Yaşıl","Green marker":"Yaşıl marker","Green pen":"Yaşıl qələm",Grey:"Boz","Header column":"Başlıqlı sütun","Header row":"Başlıqlı sətir",Heading:"Başlıq","Heading 1":"Başlıq 1","Heading 2":"Başlıq 2","Heading 3":"Başlıq 3","Heading 4":"Başlıq 4","Heading 5":"Başlıq 5","Heading 6":"Başlıq 6",Highlight:"Vurğulamaq","Horizontal line":"Üfüqi xətt",Huge:"Nəhəng","Image resize list":"","Image toolbar":"Şəkil paneli","image widget":"Şəkil vidgetı","In line":"","Increase indent":"Boş yeri böyüt",Insert:"","Insert code block":"Kod blokunu əlavə et","Insert column left":"Sola sütun əlavə et","Insert column right":"Sağa sütun əlavə et","Insert image":"Şəkili əlavə et","Insert image via URL":"","Insert media":"Media əlavə ed","Insert paragraph after block":"","Insert paragraph before block":"","Insert row above":"Aşağıya sətir əlavə et","Insert row below":"Yuxarıya sətir əlavə et","Insert table":"Cədvəli əlavə et",Italic:"Maili",Justify:"Eninə görə","Left aligned image":"Soldan düzləndir","Light blue":"Açıq mavi","Light green":"Açıq yaşıl","Light grey":"Açıq boz",Link:"Əlaqələndir","Link image":"","Link URL":"Linkin URL","Media URL":"Media URL","media widget":"media vidgeti","Merge cell down":"Xanaları aşağı birləşdir","Merge cell left":"Xanaları sola birləşdir","Merge cell right":"Xanaları sağa birləşdir","Merge cell up":"Xanaları yuxarı birləşdir","Merge cells":"Xanaları birləşdir",Next:"Növbəti","Numbered List":"Nömrələnmiş siyahı","Open in a new tab":"Yeni pəncərədə aç","Open link in new tab":"Linki yeni pəncərədə aç",Orange:"Narıncı",Original:"",Paragraph:"Abzas","Paste the media URL in the input.":"Media URL-ni xanaya əlavə edin","Pink marker":"Çəhrayı marker","Plain text":"Sadə mətn",Previous:"Əvvəlki",Purple:"Bənövşəyi",Red:"Qırmızı","Red pen":"Qırmızı qələm",Redo:"Təkrar et","Remove color":"Rəngi ləğv et","Remove highlight":"Vurgulanı sil","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Rich Text Redaktoru","Rich Text Editor, %0":"Rich Text Redaktoru, %0","Right aligned image":"Sağdan düzləndir",Row:"Sətir",Save:"Yadda saxla","Select column":"","Select row":"","Show more items":"Daha çox əşyanı göstərin","Side image":"Yan şəkil",Small:"Kiçik","Split cell horizontally":"Xanaları üfüqi böl","Split cell vertically":"Xanaları şaquli böl","Table toolbar":"Cədvəl paneli","Text alignment":"Mətn düzləndirməsi","Text alignment toolbar":"Mətnin düzləndirmə paneli","Text alternative":"Alternativ mətn","Text highlight toolbar":"Vurğulamaq paneli","The URL must not be empty.":"URL boş olmamalıdır.","This link has no URL":"Bu linkdə URL yoxdur","This media URL is not supported.":"Bu media URL dəstəklənmir.",Tiny:"Miniatür","Tip: Paste the URL into the content to embed faster.":"Məsləhət: Sürətli qoşma üçün URL-i kontentə əlavə edin","Toggle caption off":"","Toggle caption on":"",Turquoise:"Firuzəyi",Undo:"İmtina et",Unlink:"Linki sil",Update:"","Update image URL":"","Upload failed":"Şəkili serverə yüklə","Upload in progress":"Yüklənir",White:"Ağ","Widget toolbar":"Vidgetin paneli","Wrap text":"",Yellow:"Sarı","Yellow marker":"Sarı marker"});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/bg.js
Normal file
1
public/lib/ckeditor/translations/bg.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["bg"]=e["bg"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"","Block quote":"Цитат",Bold:"Удебелен","Break text":"","Bulleted List":"Водещи символи",Cancel:"Отказ","Centered image":"","Change image text alternative":"","Choose heading":"Избери заглавие",Code:"",Column:"Колона","Decrease indent":"Намали отстъпа","Delete column":"Изтриване на колона","Delete row":"Изтриване на ред",Downloadable:"Изтегляне","Edit link":"Редакция на линк","Enter image caption":"","Full size image":"","Header column":"Заглавна колона","Header row":"Заглавен ред",Heading:"Заглавие","Heading 1":"Заглавие 1","Heading 2":"Заглавие 2","Heading 3":"Заглавие 3","Heading 4":"Заглавие 4","Heading 5":"Заглавие 5","Heading 6":"Заглавие 6","Image resize list":"","Image toolbar":"","image widget":"Компонент за изображение","In line":"","Increase indent":"Увеличи отстъпа",Insert:"","Insert column left":"Вмъкни колона отляво","Insert column right":"Вмъкни колона отдясно","Insert image":"Вмъкни изображение","Insert image via URL":"","Insert media":"Вмъкни медия","Insert row above":"Вмъкни ред отгоре","Insert row below":"Вмъкни ред отдолу","Insert table":"Вмъкни таблица",Italic:"Курсив","Left aligned image":"",Link:"Линк","Link image":"","Link URL":"Уеб адрес на линка","Media URL":"Медиен уеб адрес","media widget":"Медиен компонент","Merge cell down":"Обединяване на клетка надолу","Merge cell left":"Обединяване на клетка отляво","Merge cell right":"Обединяване на клетка отдясно","Merge cell up":"Обединяване на клетка отгоре","Merge cells":"Обединяване на клетки","Numbered List":"Номериране","Open in a new tab":"Отваряне в нов раздел","Open link in new tab":"Отваряне на линк в нов раздел",Original:"",Paragraph:"Параграф","Paste the media URL in the input.":"Постави медииния уеб адрес във входа.",Redo:"Повтори","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Right aligned image":"",Row:"Ред",Save:"Запазване","Select column":"","Select row":"","Show more items":"","Side image":"","Split cell horizontally":"Разделяне на клетки хоризонтално","Split cell vertically":"Разделяне на клетки вертикално","Table toolbar":"","Text alternative":"","The URL must not be empty.":"Уеб адресът не трябва да бъде празен.","This link has no URL":"Този линк няма уеб адрес","This media URL is not supported.":"Този медиен уеб адрес не се поддържа.","Tip: Paste the URL into the content to embed faster.":"Полезен съвет: Постави уеб адреса в съдържанието, за да вградите по-бързо.","Toggle caption off":"","Toggle caption on":"",Undo:"Отмени",Unlink:"Премахване на линка",Update:"","Update image URL":"","Upload failed":"","Upload in progress":"Качването е в процес","Wrap text":""});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/ca.js
Normal file
1
public/lib/ckeditor/translations/ca.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(a){const e=a["ca"]=a["ca"]||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"","Align center":"Alineació centre","Align left":"Alineació esquerra","Align right":"Alineació dreta",Big:"Gran","Block quote":"Cita de bloc","Blue marker":"Marcador blau",Bold:"Negreta",Cancel:"Cancel·lar","Choose heading":"Escull capçalera",Code:"Codi",Default:"Predeterminada","Document colors":"","Font Background Color":"","Font Color":"","Font Family":"Font","Font Size":"Mida de la font","Green marker":"Marcador verd","Green pen":"Bolígraf verd",Heading:"Capçalera","Heading 1":"Capçalera 1","Heading 2":"Capçalera 2","Heading 3":"Capçalera 3","Heading 4":"","Heading 5":"","Heading 6":"",Highlight:"Destacat",Huge:"Molt gran",Italic:"Cursiva",Justify:"Justificar",Paragraph:"Pàrraf","Pink marker":"Marcador rosa","Red pen":"Marcador vermell","Remove color":"","Remove highlight":"Esborrar destacat",Save:"Desar","Show more items":"",Small:"Peita","Text alignment":"Alineació text","Text alignment toolbar":"","Text highlight toolbar":"",Tiny:"Molt petita","Yellow marker":"Marcador groc"});e.getPluralForm=function(a){return a!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/cs.js
Normal file
1
public/lib/ckeditor/translations/cs.js
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/da.js
Normal file
1
public/lib/ckeditor/translations/da.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const t=e["da"]=e["da"]||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"%0 af %1","Align center":"Justér center","Align left":"Justér venstre","Align right":"Justér højre",Aquamarine:"Marineblå",Big:"Stor",Black:"Sort","Block quote":"Blot citat",Blue:"Blå","Blue marker":"Blå markør",Bold:"Fed","Break text":"","Bulleted List":"Punktopstilling",Cancel:"Annullér","Centered image":"Centreret billede","Change image text alternative":"Skift alternativ billedtekst","Choose heading":"Vælg overskrift",Code:"Kode",Column:"Kolonne","Decrease indent":"Formindsk indrykning",Default:"Standard","Delete column":"Slet kolonne","Delete row":"Slet række","Dim grey":"Dunkel grå","Document colors":"Dokumentfarve",Downloadable:"Kan downloades","Dropdown toolbar":"Dropdown værktøjslinje","Edit block":"Redigér blok","Edit link":"Redigér link","Editor toolbar":"Editor værktøjslinje","Enter image caption":"Indtast billedoverskrift","Font Background Color":"Skrift baggrundsfarve","Font Color":"Skriftfarve","Font Family":"Skriftfamilie","Font Size":"Skriftstørrelse","Full size image":"Fuld billedstørrelse",Green:"Grøn","Green marker":"Grøn markør","Green pen":"Grøn pen",Grey:"Grå","Header column":"Headerkolonne","Header row":"Headerrække",Heading:"Overskrift","Heading 1":"Overskrift 1","Heading 2":"Overskrift 2","Heading 3":"Overskrift 3","Heading 4":"Overskrift 4","Heading 5":"Overskrift 5","Heading 6":"Overskrift 6",Highlight:"Fremhæv","Horizontal line":"Horisontal linje",Huge:"Kæmpe","Image resize list":"","Image toolbar":"Billedværktøjslinje","image widget":"billed widget","In line":"","Increase indent":"Forøg indrykning",Insert:"","Insert code block":"Indsæt kodeblok","Insert column left":"Indsæt kolonne venstre","Insert column right":"Indsæt kolonne højre","Insert image":"Indsæt billede","Insert image via URL":"","Insert media":"Indsæt medie","Insert paragraph after block":"","Insert paragraph before block":"","Insert row above":"Indsæt header over","Insert row below":"Indsæt header under","Insert table":"Indsæt tabel",Italic:"Kursiv",Justify:"Justér","Left aligned image":"Venstrestillet billede","Light blue":"Lys blå","Light green":"Lys grøn","Light grey":"Lys grå",Link:"Link","Link image":"","Link URL":"Link URL","Media URL":"Medie URL","media widget":"mediewidget","Merge cell down":"Flet celler ned","Merge cell left":"Flet celler venstre","Merge cell right":"Flet celler højre","Merge cell up":"Flet celler op","Merge cells":"Flet celler",Next:"Næste","Numbered List":"Opstilling med tal","Open in a new tab":"Åben i ny fane","Open link in new tab":"Åben link i ny fane",Orange:"Orange",Original:"",Paragraph:"Afsnit","Paste the media URL in the input.":"Indsæt medie URLen i feltet.","Pink marker":"Lyserød markør","Plain text":"Plain tekst",Previous:"Forrige",Purple:"Lilla",Red:"Rød","Red pen":"Rød pen",Redo:"Gentag","Remove color":"Fjern farve","Remove highlight":"Fjern fremhævning","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Wysiwyg editor","Rich Text Editor, %0":"Wysiwyg editor, %0","Right aligned image":"Højrestillet billede",Row:"Række",Save:"Gem","Select column":"","Select row":"","Show more items":"Vis flere emner","Side image":"Sidebillede",Small:"Lille","Split cell horizontally":"Del celle horisontalt","Split cell vertically":"Del celle vertikalt","Table toolbar":"Tabel værktøjslinje","Text alignment":"Tekstjustering","Text alignment toolbar":"Tekstjustering værktøjslinje","Text alternative":"Alternativ tekst","Text highlight toolbar":"Tekstfremhævning værktøjslinje","The URL must not be empty.":"URLen kan ikke være tom.","This link has no URL":"Dette link har ingen URL","This media URL is not supported.":"Denne medie URL understøttes ikke.",Tiny:"Lillebitte","Tip: Paste the URL into the content to embed faster.":"Tip: Indsæt URLen i indholdet for at indlejre hurtigere.","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turkis",Undo:"Fortryd",Unlink:"Fjern link",Update:"","Update image URL":"","Upload failed":"Upload fejlede","Upload in progress":"Upload i gang",White:"Hvid","Widget toolbar":"Widget værktøjslinje","Wrap text":"",Yellow:"Gyl","Yellow marker":"Gul markør"});t.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/de-ch.js
Normal file
1
public/lib/ckeditor/translations/de-ch.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["de-ch"]=e["de-ch"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"","Align center":"Zentriert","Align left":"Linksbündig","Align right":"Rechtsbündig",Aquamarine:"",Big:"Gross",Black:"","Block quote":"Blockzitat",Blue:"","Blue marker":"Blauer Marker",Bold:"Fett","Break text":"","Bulleted List":"Aufzählungsliste",Cancel:"Abbrechen","Centered image":"zentriertes Bild","Change image text alternative":"Alternativtext ändern","Choose heading":"Überschrift auswählen",Code:"Code",Column:"Spalte","Decrease indent":"Einzug verkleinern",Default:"Standard","Delete column":"Spalte löschen","Delete row":"Zeile löschen","Dim grey":"","Document colors":"Farben des Dokuments",Downloadable:"Herunterladbar","Dropdown toolbar":"","Edit block":"","Edit link":"Link bearbeiten","Editor toolbar":"","Enter image caption":"Bildunterschrift eingeben","Font Background Color":"Hintergrundfarbe der Schrift","Font Color":"Schriftfarbe","Font Family":"Schriftfamilie","Font Size":"Schriftgrösse","Full size image":"Bild in voller Grösse",Green:"","Green marker":"Grüner Marker","Green pen":"Grüne Schriftfarbe",Grey:"","Header column":"Kopfspalte","Header row":"Kopfspalte",Heading:"Überschrift","Heading 1":"Überschrift 1","Heading 2":"Überschrift 2","Heading 3":"Überschrift 3","Heading 4":"Überschrift 4","Heading 5":"Überschrift 5","Heading 6":"Überschrift 6",Highlight:"Texthervorhebung","Horizontal line":"Horizontale Linie",Huge:"Riesig","Image resize list":"Bildgrössen-Liste","Image toolbar":"Bild Werkzeugleiste","image widget":"Bild-Steuerelement","In line":"","Increase indent":"Einzug vergrössern",Insert:"Einfügen","Insert code block":"Code-Block einfügen","Insert column left":"","Insert column right":"","Insert image":"Bild einfügen","Insert image via URL":"Bild von URL einfügen","Insert media":"Medium einfügen","Insert paragraph after block":"Absatz nach Block einfügen","Insert paragraph before block":"Absatz vor Block einfügen","Insert row above":"Zeile oben einfügen","Insert row below":"Zeile unten einfügen","Insert table":"Tabelle einfügen",Italic:"Kursiv",Justify:"Blocksatz","Left aligned image":"linksbündiges Bild","Light blue":"","Light green":"","Light grey":"",Link:"Link","Link image":"Bild verlinken","Link URL":"Link Adresse","Media URL":"Medien-URL","media widget":"Medien-Widget","Merge cell down":"Zelle unten verbinden","Merge cell left":"Zelle links verbinden","Merge cell right":"Zele rechts verbinden","Merge cell up":"Zelle oben verbinden","Merge cells":"Zellen verbinden",Next:"","Numbered List":"Nummerierte Liste","Open in a new tab":"In neuem Tab öffnen","Open link in new tab":"Link in neuem Tab öffnen",Orange:"",Original:"Original",Paragraph:"Absatz","Paste the media URL in the input.":"Medien-URL in das Eingabefeld einfügen.","Pink marker":"Pinker Marker","Plain text":"Nur Text",Previous:"",Purple:"",Red:"","Red pen":"Rote Schriftfarbe",Redo:"Wiederherstellen","Remove color":"Farbe entfernen","Remove highlight":"Texthervorhebung entfernen","Resize image":"Bildgrösse ändern","Resize image to %0":"Bildgrösse ändern in %0","Resize image to the original size":"Originalgrösse wiederherstellen","Rich Text Editor":"Rich-Text-Edito","Rich Text Editor, %0":"Rich-Text-Editor, %0","Right aligned image":"rechtsbündiges Bild",Row:"Zeile",Save:"Speichern","Select all":"Alles auswählen","Select column":"","Select row":"","Show more items":"","Side image":"Ausgerichtetes Bild",Small:"Klein","Split cell horizontally":"Zelle horizontal teilen","Split cell vertically":"Zelle vertikal teilen","Table toolbar":"","Text alignment":"Textausrichtung","Text alignment toolbar":"Textausrichtung Werkzeugleiste","Text alternative":"Alternativtext","Text highlight toolbar":"Texthervorhebung Werkzeugleiste","The URL must not be empty.":"Die URL darf nicht leer sein.","This link has no URL":"Dieser Link hat keine Adresse","This media URL is not supported.":"Diese Medien-URL wird nicht unterstützt.",Tiny:"Winzig","Tip: Paste the URL into the content to embed faster.":"Tipp: Zum schnelleren Einbetten können Sie die Medien-URL in den Inhalt einfügen.","Toggle caption off":"","Toggle caption on":"",Turquoise:"",Undo:"Rückgängig",Unlink:"Link entfernen",Update:"Aktualisieren","Update image URL":"Bild-URL aktualisieren","Upload failed":"Hochladen fehlgeschlagen","Upload in progress":"Upload läuft",White:"","Widget toolbar":"Widget Werkzeugleiste","Wrap text":"",Yellow:"","Yellow marker":"Gelber Marker"});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/de.js
Normal file
1
public/lib/ckeditor/translations/de.js
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/el.js
Normal file
1
public/lib/ckeditor/translations/el.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["el"]=e["el"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"",Aquamarine:"",Black:"","Block quote":"Περιοχή παράθεσης",Blue:"",Bold:"Έντονη","Break text":"","Bulleted List":"Λίστα κουκκίδων",Cancel:"Ακύρωση","Centered image":"","Change image text alternative":"Αλλαγή εναλλακτικού κείμενου","Choose heading":"Επιλέξτε κεφαλίδα",Code:"","Dim grey":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Λεζάντα","Full size image":"Εικόνα πλήρης μεγέθους",Green:"",Grey:"",Heading:"Κεφαλίδα","Heading 1":"Κεφαλίδα 1","Heading 2":"Κεφαλίδα 2","Heading 3":"Κεφαλίδα 3","Heading 4":"","Heading 5":"","Heading 6":"","Image resize list":"","Image toolbar":"","image widget":"","In line":"",Insert:"","Insert image":"Εισαγωγή εικόνας","Insert image via URL":"",Italic:"Πλάγια","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Σύνδεσμος","Link image":"","Link URL":"Διεύθυνση συνδέσμου",Next:"","Numbered List":"Αριθμημένη λίστα","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Paragraph:"Παράγραφος",Previous:"",Purple:"",Red:"",Redo:"Επανάληψη","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Επεξεργαστής Πλούσιου Κειμένου","Rich Text Editor, %0":"Επεξεργαστής Πλούσιου Κειμένου, 0%","Right aligned image":"",Save:"Αποθήκευση","Show more items":"","Side image":"","Text alternative":"Εναλλακτικό κείμενο","This link has no URL":"",Turquoise:"",Undo:"Αναίρεση",Unlink:"Αφαίρεση συνδέσμου",Update:"","Update image URL":"","Upload failed":"",White:"","Wrap text":"",Yellow:""});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/en-au.js
Normal file
1
public/lib/ckeditor/translations/en-au.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["en-au"]=e["en-au"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"%0 of %1","Align center":"Align centre","Align left":"Align left","Align right":"Align right",Aquamarine:"Aquamarine",Big:"Big",Black:"Black","Block quote":"Block quote",Blue:"Blue","Blue marker":"Blue marker",Bold:"Bold","Break text":"","Bulleted List":"Bulleted List",Cancel:"Cancel","Centered image":"Centred image","Change image text alternative":"Change image text alternative","Choose heading":"Choose heading",Code:"Code",Column:"Column","Decrease indent":"Decrease indent",Default:"Default","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey","Document colors":"Document colours",Downloadable:"Downloadable","Dropdown toolbar":"Dropdown toolbar","Edit block":"Edit block","Edit link":"Edit link","Editor toolbar":"Editor toolbar","Enter image caption":"Enter image caption","Font Background Color":"Font Background Colour","Font Color":"Font Colour","Font Family":"Font Family","Font Size":"Font Size","Full size image":"Full size image",Green:"Green","Green marker":"Green marker","Green pen":"Green pen",Grey:"Grey","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6",Highlight:"Highlight","Horizontal line":"Horizontal line",Huge:"Huge","Image resize list":"Image resize list","Image toolbar":"Image toolbar","image widget":"image widget","In line":"","Increase indent":"Increase indent",Insert:"Insert","Insert code block":"Insert code block","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image via URL":"Insert image via URL","Insert media":"Insert media","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table",Italic:"Italic",Justify:"Justify","Left aligned image":"Left aligned image","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey",Link:"Link","Link image":"Link image","Link URL":"Link URL","Media URL":"Media URL","media widget":"media widget","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells",Next:"Next","Numbered List":"Numbered List","Open in a new tab":"Open in a new tab","Open link in new tab":"Open link in new tab",Orange:"Orange",Original:"Original",Paragraph:"Paragraph","Paste the media URL in the input.":"Paste the media URL in the input.","Pink marker":"Pink marker","Plain text":"Plain text",Previous:"Previous",Purple:"Purple",Red:"Red","Red pen":"Red pen",Redo:"Redo","Remove color":"Remove colour","Remove highlight":"Remove highlight","Resize image":"Resize image","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Rich Text Editor":"Rich Text Editor","Rich Text Editor, %0":"Rich Text Editor, %0","Right aligned image":"Right aligned image",Row:"Row",Save:"Save","Select all":"Select all","Select column":"Select column","Select row":"Select row","Show more items":"Show more items","Side image":"Side image",Small:"Small","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically","Table toolbar":"Table toolbar","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar","Text alternative":"Text alternative","Text highlight toolbar":"Text highlight toolbar","The URL must not be empty.":"The URL must not be empty.","This link has no URL":"This link has no URL","This media URL is not supported.":"This media URL is not supported.",Tiny:"Tiny","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turquoise",Undo:"Undo",Unlink:"Unlink",Update:"Update","Update image URL":"Update image URL","Upload failed":"Upload failed","Upload in progress":"Upload in progress",White:"White","Widget toolbar":"Widget toolbar","Wrap text":"",Yellow:"Yellow","Yellow marker":"Yellow marker"});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/en-gb.js
Normal file
1
public/lib/ckeditor/translations/en-gb.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["en-gb"]=e["en-gb"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"%0 of %1","Align center":"Align center","Align left":"Align left","Align right":"Align right",Aquamarine:"Aquamarine",Big:"Big",Black:"Black","Block quote":"Block quote",Blue:"Blue","Blue marker":"Blue marker",Bold:"Bold","Break text":"","Bulleted List":"Bulleted List",Cancel:"Cancel","Centered image":"Centred image","Change image text alternative":"Change image text alternative","Choose heading":"Choose heading",Code:"Code",Column:"Column","Decrease indent":"Decrease indent",Default:"Default","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey","Document colors":"Document colours",Downloadable:"Downloadable","Dropdown toolbar":"","Edit block":"Edit block","Edit link":"Edit link","Editor toolbar":"","Enter image caption":"Enter image caption","Font Background Color":"Font Background Colour","Font Color":"Font Colour","Font Family":"Font Family","Font Size":"Font Size","Full size image":"Full size image",Green:"Green","Green marker":"Green marker","Green pen":"Green pen",Grey:"Grey","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6",Highlight:"Highlight",Huge:"Huge","Image resize list":"","Image toolbar":"","image widget":"Image widget","In line":"","Increase indent":"Increase indent",Insert:"","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image via URL":"","Insert media":"Insert media","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table",Italic:"Italic",Justify:"Justify","Left aligned image":"Left aligned image","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey",Link:"Link","Link image":"","Link URL":"Link URL","Media URL":"Media URL","media widget":"Media widget","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells",Next:"Next","Numbered List":"Numbered List","Open in a new tab":"Open in a new tab","Open link in new tab":"Open link in new tab",Orange:"Orange",Original:"",Paragraph:"Paragraph","Paste the media URL in the input.":"Paste the media URL in the input.","Pink marker":"Pink marker",Previous:"Previous",Purple:"Purple",Red:"Red","Red pen":"Red pen",Redo:"Redo","Remove color":"Remove colour","Remove highlight":"Remove highlight","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Rich Text Editor","Rich Text Editor, %0":"Rich Text Editor, %0","Right aligned image":"Right aligned image",Row:"Row",Save:"Save","Select column":"","Select row":"","Show more items":"","Side image":"Side image",Small:"Small","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically","Table toolbar":"","Text alignment":"Text alignment","Text alignment toolbar":"","Text alternative":"Text alternative","Text highlight toolbar":"","The URL must not be empty.":"The URL must not be empty.","This link has no URL":"This link has no URL","This media URL is not supported.":"This media URL is not supported.",Tiny:"Tiny","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turquoise",Undo:"Undo",Unlink:"Unlink",Update:"","Update image URL":"","Upload failed":"Upload failed","Upload in progress":"Upload in progress",White:"White","Wrap text":"",Yellow:"Yellow","Yellow marker":"Yellow marker"});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/en.js
Normal file
1
public/lib/ckeditor/translations/en.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const t=e["en"]=e["en"]||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"%0 of %1","Align center":"Align center","Align left":"Align left","Align right":"Align right",Aquamarine:"Aquamarine",Big:"Big",Black:"Black","Block quote":"Block quote",Blue:"Blue","Blue marker":"Blue marker",Bold:"Bold","Break text":"Break text","Bulleted List":"Bulleted List",Cancel:"Cancel","Centered image":"Centered image","Change image text alternative":"Change image text alternative","Choose heading":"Choose heading",Code:"Code",Column:"Column","Decrease indent":"Decrease indent",Default:"Default","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey","Document colors":"Document colors",Downloadable:"Downloadable","Dropdown toolbar":"Dropdown toolbar","Edit block":"Edit block","Edit link":"Edit link","Editor toolbar":"Editor toolbar","Enter image caption":"Enter image caption","Font Background Color":"Font Background Color","Font Color":"Font Color","Font Family":"Font Family","Font Size":"Font Size","Full size image":"Full size image",Green:"Green","Green marker":"Green marker","Green pen":"Green pen",Grey:"Grey","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6",Highlight:"Highlight","Horizontal line":"Horizontal line",Huge:"Huge","Image resize list":"Image resize list","Image toolbar":"Image toolbar","image widget":"image widget","In line":"In line","Increase indent":"Increase indent",Insert:"Insert","Insert code block":"Insert code block","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image via URL":"Insert image via URL","Insert media":"Insert media","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table",Italic:"Italic",Justify:"Justify","Left aligned image":"Left aligned image","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey",Link:"Link","Link image":"Link image","Link URL":"Link URL","Media URL":"Media URL","media widget":"media widget","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells",Next:"Next","Numbered List":"Numbered List","Open in a new tab":"Open in a new tab","Open link in new tab":"Open link in new tab",Orange:"Orange",Original:"Original",Paragraph:"Paragraph","Paste the media URL in the input.":"Paste the media URL in the input.","Pink marker":"Pink marker","Plain text":"Plain text",Previous:"Previous",Purple:"Purple",Red:"Red","Red pen":"Red pen",Redo:"Redo","Remove color":"Remove color","Remove highlight":"Remove highlight","Resize image":"Resize image","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Rich Text Editor":"Rich Text Editor","Rich Text Editor, %0":"Rich Text Editor, %0","Right aligned image":"Right aligned image",Row:"Row",Save:"Save","Select all":"Select all","Select column":"Select column","Select row":"Select row","Show more items":"Show more items","Side image":"Side image",Small:"Small",Source:"Source","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically","Table toolbar":"Table toolbar","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar","Text alternative":"Text alternative","Text highlight toolbar":"Text highlight toolbar","The URL must not be empty.":"The URL must not be empty.","This link has no URL":"This link has no URL","This media URL is not supported.":"This media URL is not supported.",Tiny:"Tiny","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","Toggle caption off":"Toggle caption off","Toggle caption on":"Toggle caption on",Turquoise:"Turquoise",Undo:"Undo",Unlink:"Unlink",Update:"Update","Update image URL":"Update image URL","Upload failed":"Upload failed","Upload in progress":"Upload in progress",White:"White","Widget toolbar":"Widget toolbar","Wrap text":"Wrap text",Yellow:"Yellow","Yellow marker":"Yellow marker"})})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/eo.js
Normal file
1
public/lib/ckeditor/translations/eo.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["eo"]=e["eo"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"",Aquamarine:"",Black:"",Blue:"",Bold:"grasa","Break text":"","Bulleted List":"Bula Listo",Cancel:"Nuligi","Centered image":"","Change image text alternative":"Ŝanĝu la alternativan tekston de la bildo","Choose heading":"Elektu ĉapon",Code:"","Dim grey":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Skribu klarigon pri la bildo","Full size image":"Bildo kun reala dimensio",Green:"",Grey:"",Heading:"Ĉapo","Heading 1":"Ĉapo 1","Heading 2":"Ĉapo 2","Heading 3":"Ĉapo 3","Heading 4":"","Heading 5":"","Heading 6":"","Image resize list":"","Image toolbar":"","image widget":"bilda fenestraĵo","In line":"",Insert:"","Insert image":"Enmetu bildon","Insert image via URL":"",Italic:"kursiva","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Ligilo","Link image":"","Link URL":"URL de la ligilo",Next:"","Numbered List":"Numerita Listo","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Paragraph:"Paragrafo",Previous:"",Purple:"",Red:"",Redo:"Refari","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Redaktilo de Riĉa Teksto","Rich Text Editor, %0":"Redaktilo de Riĉa Teksto, %0","Right aligned image":"",Save:"Konservi","Show more items":"","Side image":"Flanka biildo","Text alternative":"Alternativa teksto","This link has no URL":"",Turquoise:"",Undo:"Malfari",Unlink:"Malligi",Update:"","Update image URL":"","Upload failed":"",White:"","Wrap text":"",Yellow:""});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/es.js
Normal file
1
public/lib/ckeditor/translations/es.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const a=e["es"]=e["es"]||{};a.dictionary=Object.assign(a.dictionary||{},{"%0 of %1":"%0 de %1","Align center":"Centrar","Align left":"Alinear a la izquierda","Align right":"Alinear a la derecha",Aquamarine:"Aguamarina",Big:"Grande",Black:"Negro","Block quote":"Cita de bloque",Blue:"Azul","Blue marker":"Marcador azul",Bold:"Negrita","Break text":"","Bulleted List":"Lista de puntos",Cancel:"Cancelar","Centered image":"Imagen centrada","Change image text alternative":"Cambiar el texto alternativo de la imagen","Choose heading":"Elegir Encabezado",Code:"Código",Column:"Columna","Decrease indent":"Disminuir sangría",Default:"Por defecto","Delete column":"Eliminar columna","Delete row":"Eliminar fila","Dim grey":"Gris Oscuro","Document colors":"Colores del documento",Downloadable:"Descargable","Dropdown toolbar":"Barra de herramientas desplegable","Edit block":"Cuadro de edición","Edit link":"Editar enlace","Editor toolbar":"Barra de herramientas de edición","Enter image caption":"Introducir título de la imagen","Font Background Color":"Color de Fondo","Font Color":"Color de Fuente","Font Family":"Fuente","Font Size":"Tamaño de fuente","Full size image":"Imagen a tamaño completo",Green:"Verde","Green marker":"Marcador verde","Green pen":"Texto verde",Grey:"Gris","Header column":"Columna de encabezado","Header row":"Fila de encabezado",Heading:"Encabezado","Heading 1":"Encabezado 1","Heading 2":"Encabezado 2","Heading 3":"Encabezado 3","Heading 4":"Encabezado 4","Heading 5":"Encabezado 5","Heading 6":"Encabezado 6",Highlight:"Resaltar","Horizontal line":"Línea horizontal",Huge:"Enorme","Image resize list":"","Image toolbar":"Barra de herramientas de imagen","image widget":"Widget de imagen","In line":"","Increase indent":"Aumentar sangría",Insert:"","Insert code block":"Insertar bloque de código","Insert column left":"Insertar columna izquierda","Insert column right":"Insertar columna derecha","Insert image":"Insertar imagen","Insert image via URL":"","Insert media":"Insertar contenido multimedia","Insert paragraph after block":"","Insert paragraph before block":"","Insert row above":"Insertar fila encima","Insert row below":"Insertar fila debajo","Insert table":"Insertar tabla",Italic:"Cursiva",Justify:"Justificar","Left aligned image":"Imagen alineada a la izquierda","Light blue":"Azul Claro","Light green":"Verde Claro","Light grey":"Gris Claro",Link:"Enlace","Link image":"","Link URL":"URL del enlace","Media URL":"URL del contenido multimedia","media widget":"Widget de contenido multimedia","Merge cell down":"Combinar celda inferior","Merge cell left":"Combinar celda izquierda","Merge cell right":"Combinar celda derecha","Merge cell up":"Combinar celda superior","Merge cells":"Combinar celdas",Next:"Siguiente","Numbered List":"Lista numerada","Open in a new tab":"Abrir en una pestaña nueva ","Open link in new tab":"Abrir enlace en una pestaña nueva",Orange:"Anaranjado",Original:"",Paragraph:"Párrafo","Paste the media URL in the input.":"Pega la URL del contenido multimedia","Pink marker":"Marcador rosa","Plain text":"Texto plano",Previous:"Anterior",Purple:"Morado",Red:"Rojo","Red pen":"Texto rojo",Redo:"Rehacer","Remove color":"Quitar color","Remove highlight":"Quitar resaltado","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Editor de Texto Enriquecido","Rich Text Editor, %0":"Editor de Texto Enriquecido, %0","Right aligned image":"Imagen alineada a la derecha",Row:"Fila",Save:"Guardar","Select all":"Seleccionar todo","Select column":"","Select row":"","Show more items":"Mostrar más elementos","Side image":"Imagen lateral",Small:"Pequeño","Split cell horizontally":"Dividir celdas horizontalmente","Split cell vertically":"Dividir celdas verticalmente","Table toolbar":"Barra de herramientas de tabla","Text alignment":"Alineación del texto","Text alignment toolbar":"Barra de herramientas de alineación del texto","Text alternative":"Texto alternativo","Text highlight toolbar":"Barra de herramientas de resaltado de texto","The URL must not be empty.":"La URL no debe estar vacía","This link has no URL":"Este enlace no tiene URL","This media URL is not supported.":"La URL de este contenido multimedia no está soportada",Tiny:"Minúsculo","Tip: Paste the URL into the content to embed faster.":"Tip: pega la URL dentro del contenido para embeber más rápido","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turquesa",Undo:"Deshacer",Unlink:"Quitar enlace",Update:"","Update image URL":"","Upload failed":"Fallo en la subida","Upload in progress":"Subida en progreso",White:"Blanco","Widget toolbar":"Barra de herramientas del widget","Wrap text":"",Yellow:"Amarillo","Yellow marker":"Marcador amarillo"});a.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/et.js
Normal file
1
public/lib/ckeditor/translations/et.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["et"]=e["et"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"%0 / %1","Align center":"Keskjoondus","Align left":"Vasakjoondus","Align right":"Paremjoondus",Aquamarine:"Akvamariin",Big:"Suur",Black:"Must","Block quote":"Tsitaat",Blue:"Sinine","Blue marker":"Sinine marker",Bold:"Rasvane","Break text":"","Bulleted List":"Punktidega loetelu",Cancel:"Loobu","Centered image":"Keskele joondatud pilt","Change image text alternative":"Muuda pildi asenduskirjeldust","Choose heading":"Vali pealkiri",Code:"Kood",Column:"Veerg","Decrease indent":"Vähenda taanet",Default:"Vaikimisi","Delete column":"Kustuta veerg","Delete row":"Kustuta rida","Dim grey":"Tumehall","Document colors":"Dokumendi värvid",Downloadable:"Allalaaditav","Dropdown toolbar":"Avatav tööriistariba","Edit block":"Muuda plokki","Edit link":"Muuda linki","Editor toolbar":"Redaktori tööriistariba","Enter image caption":"Sisesta pildi pealkiri","Font Background Color":"Kirja tausta värvus","Font Color":"Fondi värvus","Font Family":"Kirjastiil","Font Size":"Teksti suurus","Full size image":"Täissuuruses pilt",Green:"Roheline","Green marker":"Roheline marker","Green pen":"Roheline pliiats",Grey:"Hall","Header column":"Päise veerg","Header row":"Päise rida",Heading:"Pealkiri","Heading 1":"Pealkiri 1","Heading 2":"Pealkiri 2","Heading 3":"Pealkiri 3","Heading 4":"Pealkiri 4","Heading 5":"Pealkiri 5","Heading 6":"Pealkiri 6",Highlight:"Tõsta esile","Horizontal line":"Horisontaalne joon",Huge:"Ülisuur","Image resize list":"","Image toolbar":"Piltide tööriistariba","image widget":"pildi vidin","In line":"","Increase indent":"Suurenda taanet",Insert:"","Insert code block":"Sisesta koodiplokk","Insert column left":"Sisesta veerg vasakule","Insert column right":"Sisesta veerg paremale","Insert image":"Siseta pilt","Insert image via URL":"","Insert media":"Sisesta meedia","Insert paragraph after block":"","Insert paragraph before block":"","Insert row above":"Sisesta rida ülespoole","Insert row below":"Sisesta rida allapoole","Insert table":"Sisesta tabel",Italic:"Kaldkiri",Justify:"Rööpjoondus","Left aligned image":"Vasakule joondatud pilt","Light blue":"Helesinine","Light green":"Heleroheline","Light grey":"Helehall",Link:"Link","Link image":"","Link URL":"Lingi URL","Media URL":"Meedia URL","media widget":"meedia vidin","Merge cell down":"Liida alumise lahtriga","Merge cell left":"Liida vasakul oleva lahtriga","Merge cell right":"Liida paremal oleva lahtriga","Merge cell up":"Liida ülemise lahtriga","Merge cells":"Liida lahtrid",Next:"Järgmine","Numbered List":"Nummerdatud loetelu","Open in a new tab":"Ava uuel kaardil","Open link in new tab":"Ava link uuel vahekaardil",Orange:"Oranž",Original:"",Paragraph:"Lõik","Paste the media URL in the input.":"Aseta meedia URL sisendi lahtrisse.","Pink marker":"Roosa marker","Plain text":"Lihtsalt tekst",Previous:"Eelmine",Purple:"Lilla",Red:"Punane","Red pen":"Punane pliiats",Redo:"Tee uuesti","Remove color":"Eemalda värv","Remove highlight":"Eemalda esiletõstmine","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Tekstiredaktor","Rich Text Editor, %0":"Tekstiredaktor, %0","Right aligned image":"Paremale joondatud pilt",Row:"Rida",Save:"Salvesta","Select all":"Vali kõik","Select column":"Vali veerg","Select row":"Vali rida","Show more items":"Näita veel","Side image":"Pilt küljel",Small:"Väike","Split cell horizontally":"Jaga lahter horisontaalselt","Split cell vertically":"Jaga lahter vertikaalselt","Table toolbar":"Tabelite tööriistariba","Text alignment":"Teksti joondamine","Text alignment toolbar":"Teksti joonduse tööriistariba","Text alternative":"Asenduskirjeldus","Text highlight toolbar":"Teksti markeerimise tööriistariba","The URL must not be empty.":"URL-i lahter ei tohi olla tühi.","This link has no URL":"Sellel lingil puudub URL","This media URL is not supported.":"See meedia URL pole toetatud.",Tiny:"Imepisike","Tip: Paste the URL into the content to embed faster.":"Vihje: asetades meedia URLi otse sisusse saab selle lisada kiiremini.","Toggle caption off":"","Toggle caption on":"",Turquoise:"Türkiis",Undo:"Võta tagasi",Unlink:"Eemalda link",Update:"","Update image URL":"","Upload failed":"Üleslaadimine ebaõnnestus","Upload in progress":"Üleslaadimine pooleli",White:"Valge","Widget toolbar":"Vidinate tööriistariba","Wrap text":"",Yellow:"Kollane","Yellow marker":"Kollane marker"});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/eu.js
Normal file
1
public/lib/ckeditor/translations/eu.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const a=e["eu"]=e["eu"]||{};a.dictionary=Object.assign(a.dictionary||{},{"%0 of %1":"",Aquamarine:"",Black:"","Block quote":"Aipua",Blue:"",Bold:"Lodia","Break text":"","Bulleted List":"Buletdun zerrenda",Cancel:"Utzi","Centered image":"Zentratutako irudia","Change image text alternative":"Aldatu irudiaren ordezko testua","Choose heading":"Aukeratu izenburua",Code:"Kodea","Dim grey":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Sartu irudiaren epigrafea","Full size image":"Tamaina osoko irudia",Green:"",Grey:"",Heading:"Izenburua","Heading 1":"Izenburua 1","Heading 2":"Izenburua 2","Heading 3":"Izenburua 3","Heading 4":"","Heading 5":"","Heading 6":"","Image resize list":"","Image toolbar":"","image widget":"irudi widgeta","In line":"",Insert:"","Insert image":"Txertatu irudia","Insert image via URL":"",Italic:"Etzana","Left aligned image":"Ezkerrean lerrokatutako irudia","Light blue":"","Light green":"","Light grey":"",Link:"Esteka","Link image":"","Link URL":"Estekaren URLa",Next:"","Numbered List":"Zenbakidun zerrenda","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Paragraph:"Paragrafoa",Previous:"",Purple:"",Red:"",Redo:"Berregin","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Testu aberastuaren editorea","Rich Text Editor, %0":"Testu aberastuaren editorea, %0","Right aligned image":"Eskuinean lerrokatutako irudia",Save:"Gorde","Show more items":"","Side image":"Alboko irudia","Text alternative":"Ordezko testua","This link has no URL":"",Turquoise:"",Undo:"Desegin",Unlink:"Desestekatu",Update:"","Update image URL":"","Upload failed":"Kargatzeak huts egin du",White:"","Wrap text":"",Yellow:""});a.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/fa.js
Normal file
1
public/lib/ckeditor/translations/fa.js
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/fi.js
Normal file
1
public/lib/ckeditor/translations/fi.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["fi"]=e["fi"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"","Align center":"Tasaa keskelle","Align left":"Tasaa vasemmalle","Align right":"Tasaa oikealle",Aquamarine:"Akvamariini",Big:"Suuri",Black:"Musta","Block quote":"Lainaus",Blue:"Sininen","Blue marker":"",Bold:"Lihavointi","Break text":"","Bulleted List":"Lista",Cancel:"Peruuta","Centered image":"Keskitetty kuva","Change image text alternative":"Vaihda kuvan vaihtoehtoinen teksti","Choose heading":"Valitse otsikko",Code:"Koodi",Column:"Sarake","Decrease indent":"Vähennä sisennystä",Default:"Oletus","Delete column":"Poista sarake","Delete row":"Poista rivi","Dim grey":"","Document colors":"",Downloadable:"","Dropdown toolbar":"","Edit block":"Muokkaa lohkoa","Edit link":"Muokkaa linkkiä","Editor toolbar":"","Enter image caption":"Syötä kuvateksti","Font Background Color":"Fontin taustaväri","Font Color":"Fontin väri","Font Family":"Fonttiperhe","Font Size":"Fontin koko","Full size image":"Täysikokoinen kuva",Green:"Vihreä","Green marker":"","Green pen":"",Grey:"Harmaa","Header column":"Otsikkosarake","Header row":"Otsikkorivi",Heading:"Otsikkotyyli","Heading 1":"Otsikko 1","Heading 2":"Otsikko 2","Heading 3":"Otsikko 3","Heading 4":"Otsikko 4","Heading 5":"Otsikko 5","Heading 6":"Otsikko 6",Highlight:"Korosta",Huge:"Hyvin suuri","Image resize list":"","Image toolbar":"","image widget":"Kuvavimpain","In line":"","Increase indent":"Lisää sisennystä",Insert:"","Insert column left":"Lisää sarake vasemmalle","Insert column right":"Lisää sarake oikealle","Insert image":"Lisää kuva","Insert image via URL":"","Insert media":"","Insert row above":"Lisää rivi ylle","Insert row below":"Lisää rivi alle","Insert table":"Lisää taulukko",Italic:"Kursivointi",Justify:"Tasaa molemmat reunat","Left aligned image":"Vasemmalle tasattu kuva","Light blue":"Vaaleansininen","Light green":"Vaaleanvihreä","Light grey":"Vaaleanharmaa",Link:"Linkki","Link image":"","Link URL":"Linkin osoite","Media URL":"","media widget":"","Merge cell down":"Yhdistä solu alas","Merge cell left":"Yhdistä solu vasemmalle","Merge cell right":"Yhdistä solu oikealle","Merge cell up":"Yhdistä solu ylös","Merge cells":"Yhdistä tai jaa soluja",Next:"","Numbered List":"Numeroitu lista","Open in a new tab":"","Open link in new tab":"Avaa linkki uudessa välilehdessä",Orange:"Oranssi",Original:"",Paragraph:"Kappale","Paste the media URL in the input.":"","Pink marker":"",Previous:"",Purple:"Purppura",Red:"Punainen","Red pen":"",Redo:"Tee uudelleen","Remove color":"Poista väri","Remove highlight":"Poista korostus","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Rikas tekstieditori","Rich Text Editor, %0":"Rikas tekstieditori, %0","Right aligned image":"Oikealle tasattu kuva",Row:"Rivi",Save:"Tallenna","Select column":"Valitse sarake","Select row":"Valitse rivi","Show more items":"","Side image":"Pieni kuva",Small:"Pieni","Split cell horizontally":"Jaa solu vaakasuunnassa","Split cell vertically":"Jaa solu pystysuunnassa","Table toolbar":"","Text alignment":"Tekstin tasaus","Text alignment toolbar":"","Text alternative":"Vaihtoehtoinen teksti","Text highlight toolbar":"","The URL must not be empty.":"URL-osoite ei voi olla tyhjä.","This link has no URL":"Linkillä ei ole URL-osoitetta","This media URL is not supported.":"",Tiny:"Hyvin pieni","Tip: Paste the URL into the content to embed faster.":"","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turkoosi",Undo:"Peru",Unlink:"Poista linkki",Update:"","Update image URL":"","Upload failed":"Lataus epäonnistui","Upload in progress":"Lähetys käynnissä",White:"Valkoinen","Wrap text":"",Yellow:"Keltainen","Yellow marker":""});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/gl.js
Normal file
1
public/lib/ckeditor/translations/gl.js
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/gu.js
Normal file
1
public/lib/ckeditor/translations/gu.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(o){const n=o["gu"]=o["gu"]||{};n.dictionary=Object.assign(n.dictionary||{},{"Block quote":" વિચાર ટાંકો",Bold:"ઘાટુ - બોલ્ડ્",Code:"",Italic:"ત્રાંસુ - ઇટલિક્"});n.getPluralForm=function(o){return o!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/he.js
Normal file
1
public/lib/ckeditor/translations/he.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["he"]=e["he"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"0% מתוך %1","Align center":"יישור באמצע","Align left":"יישור לשמאל","Align right":"יישור לימין",Aquamarine:"",Big:"",Black:"","Block quote":"בלוק ציטוט",Blue:"","Blue marker":"סימון כחול",Bold:"מודגש","Break text":"","Bulleted List":"רשימה מנוקדת",Cancel:"ביטול","Centered image":"תמונה ממרוכזת","Change image text alternative":"שינוי טקסט אלטרנטיבי לתמונה","Choose heading":"בחר סוג כותרת",Code:"קוד",Default:"ברירת מחדל","Dim grey":"","Document colors":"",Downloadable:"","Dropdown toolbar":"סרגל כלים נפתח","Edit block":"הגדרות בלוק","Edit link":"עריכת קישור","Editor toolbar":"סרגל הכלים","Enter image caption":"הזן כותרת תמונה","Font Background Color":"","Font Color":"","Font Family":"","Font Size":"גודל טקסט","Full size image":"תמונה בפריסה מלאה",Green:"","Green marker":"סימון ירוק","Green pen":"עט ירוק",Grey:"",Heading:"כותרת","Heading 1":"כותרת 1","Heading 2":"כותרת 2","Heading 3":"כותרת 3","Heading 4":"כותרת 4","Heading 5":"כותרת 5","Heading 6":"כותרת 6",Highlight:"הדגשה","Horizontal line":"קו אופקי",Huge:"","Image resize list":"","Image toolbar":"סרגל תמונה","image widget":"תמונה","In line":"",Insert:"","Insert image":"הוספת תמונה","Insert image via URL":"","Insert paragraph after block":"","Insert paragraph before block":"",Italic:"נטוי",Justify:"מרכוז גבולות","Left aligned image":"תמונה מיושרת לשמאל","Light blue":"","Light green":"","Light grey":"",Link:"קישור","Link image":"","Link URL":"קישור כתובת אתר",Next:"הבא","Numbered List":"רשימה ממוספרת","Open in a new tab":"","Open link in new tab":"פתח קישור בכרטיסייה חדשה",Orange:"",Original:"",Paragraph:"פיסקה","Pink marker":"סימון וורוד",Previous:"הקודם",Purple:"",Red:"","Red pen":"עט אדום",Redo:"ביצוע מחדש","Remove color":"","Remove highlight":"הסר הדגשה","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"עורך טקסט עשיר","Rich Text Editor, %0":"עורך טקסט עשיר, %0","Right aligned image":"תמונה מיושרת לימין",Save:"שמירה","Show more items":"הצד פריטים נוספים","Side image":"תמונת צד",Small:"","Text alignment":"יישור טקסט","Text alignment toolbar":"סרגל כלים יישור טקסט","Text alternative":"טקסט אלטרנטיבי","Text highlight toolbar":"סרגל הדגשת טקסט","This link has no URL":"לקישור זה אין כתובת אתר",Tiny:"",Turquoise:"",Undo:"ביטול",Unlink:"ביטול קישור",Update:"","Update image URL":"","Upload failed":"העלאה נכשלה","Upload in progress":"העלאה מתבצעת",White:"","Widget toolbar":"סרגל יישומון","Wrap text":"",Yellow:"","Yellow marker":"סימון צהוב"});i.getPluralForm=function(e){return e==1&&e%1==0?0:e==2&&e%1==0?1:e%10==0&&e%1==0&&e>10?2:3}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/hi.js
Normal file
1
public/lib/ckeditor/translations/hi.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["hi"]=e["hi"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"%0 of %1","Align center":"Align center","Align left":"Align left","Align right":"Align right",Aquamarine:"Aquamarine",Big:"Big",Black:"Black","Block quote":"Block quote",Blue:"Blue","Blue marker":"Blue marker",Bold:"Bold","Break text":"","Bulleted List":"Bulleted List",Cancel:"Cancel","Centered image":"Centered image","Change image text alternative":"Change image text alternative","Choose heading":"Choose heading",Code:"Code",Column:"Column","Decrease indent":"Decrease indent",Default:"Default","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey","Document colors":"Document colors",Downloadable:"Downloadable","Dropdown toolbar":"Dropdown toolbar","Edit block":"Edit block","Edit link":"Edit link","Editor toolbar":"Editor toolbar","Enter image caption":"Enter image caption","Font Background Color":"Font Background Color","Font Color":"Font Color","Font Family":"Font Family","Font Size":"Font Size","Full size image":"Full size image",Green:"Green","Green marker":"Green marker","Green pen":"Green pen",Grey:"Grey","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6",Highlight:"Highlight","Horizontal line":"Horizontal line",Huge:"Huge","Image resize list":"Image resize list","Image toolbar":"Image toolbar","image widget":"image widget","In line":"","Increase indent":"Increase indent",Insert:"Insert","Insert code block":"Insert code block","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image via URL":"Insert image via URL","Insert media":"Insert media","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table",Italic:"Italic",Justify:"Justify","Left aligned image":"Left aligned image","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey",Link:"Link","Link image":"Link image","Link URL":"Link URL","Media URL":"Media URL","media widget":"media widget","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells",Next:"Next","Numbered List":"Numbered List","Open in a new tab":"Open in a new tab","Open link in new tab":"Open link in new tab",Orange:"Orange",Original:"Original",Paragraph:"Paragraph","Paste the media URL in the input.":"Paste the media URL in the input.","Pink marker":"Pink marker","Plain text":"Plain text",Previous:"Previous",Purple:"Purple",Red:"Red","Red pen":"Red pen",Redo:"Redo","Remove color":"Remove color","Remove highlight":"Remove highlight","Resize image":"Resize image","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Rich Text Editor":"Rich Text Editor","Rich Text Editor, %0":"Rich Text Editor, %0","Right aligned image":"Right aligned image",Row:"Row",Save:"Save","Select all":"Select all","Select column":"Select column","Select row":"Select row","Show more items":"Show more items","Side image":"Side image",Small:"Small","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically","Table toolbar":"Table toolbar","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar","Text alternative":"Text alternative","Text highlight toolbar":"Text highlight toolbar","The URL must not be empty.":"The URL must not be empty.","This link has no URL":"This link has no URL","This media URL is not supported.":"This media URL is not supported.",Tiny:"Tiny","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turquoise",Undo:"Undo",Unlink:"Unlink",Update:"Update","Update image URL":"Update image URL","Upload failed":"Upload failed","Upload in progress":"Upload in progress",White:"White","Widget toolbar":"Widget toolbar","Wrap text":"",Yellow:"Yellow","Yellow marker":"Yellow marker"});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/hr.js
Normal file
1
public/lib/ckeditor/translations/hr.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const a=e["hr"]=e["hr"]||{};a.dictionary=Object.assign(a.dictionary||{},{"%0 of %1":"%0 od %1","Align center":"Poravnaj po sredini","Align left":"Poravnaj ulijevo","Align right":"Poravnaj udesno",Aquamarine:"Akvamarin",Big:"Veliki",Black:"Crna","Block quote":"Blok citat",Blue:"Plava","Blue marker":"Plavi marker",Bold:"Podebljano","Break text":"","Bulleted List":"Obična lista",Cancel:"Poništi","Centered image":"Centrirana slika","Change image text alternative":"Promijeni alternativni tekst slike","Choose heading":"Odaberite naslov",Code:"Kod",Column:"Kolona","Decrease indent":"Umanji uvlačenje",Default:"Podrazumijevano","Delete column":"Obriši kolonu","Delete row":"Obriši red","Dim grey":"Tamnosiva","Document colors":"Boje dokumenta",Downloadable:"Moguće preuzeti","Dropdown toolbar":"Traka padajućeg izbornika","Edit block":"Uredi blok","Edit link":"Uredi vezu","Editor toolbar":"Traka uređivača","Enter image caption":"Unesite naslov slike","Font Background Color":"Pozadinska Boja Fonta","Font Color":"Boja Fonta","Font Family":"Obitelj fonta","Font Size":"Veličina fonta","Full size image":"Slika pune veličine",Green:"Zelena","Green marker":"Zeleni marker","Green pen":"Zeleno pero",Grey:"Siva","Header column":"Kolona zaglavlja","Header row":"Red zaglavlja",Heading:"Naslov","Heading 1":"Naslov 1","Heading 2":"Naslov 2","Heading 3":"Naslov 3","Heading 4":"Naslov 4","Heading 5":"Naslov 5","Heading 6":"Naslov 6",Highlight:"Istakni","Horizontal line":"Vodoravna linija",Huge:"Ogroman","Image resize list":"","Image toolbar":"Traka za slike","image widget":"Slika widget","In line":"","Increase indent":"Povećaj uvlačenje",Insert:"","Insert code block":"Umetni blok koda","Insert column left":"Umetni stupac lijevo","Insert column right":"Umetni stupac desno","Insert image":"Umetni sliku","Insert image via URL":"","Insert media":"Ubaci medij","Insert paragraph after block":"","Insert paragraph before block":"","Insert row above":"Ubaci red iznad","Insert row below":"Ubaci red ispod","Insert table":"Ubaci tablicu",Italic:"Ukošeno",Justify:"Razvuci","Left aligned image":"Lijevo poravnata slika","Light blue":"Svijetloplava","Light green":"Svijetlozelena","Light grey":"Svijetlosiva",Link:"Veza","Link image":"","Link URL":"URL veze","Media URL":"URL medija","media widget":"dodatak za medije","Merge cell down":"Spoji ćelije prema dolje","Merge cell left":"Spoji ćelije prema lijevo","Merge cell right":"Spoji ćelije prema desno","Merge cell up":"Spoji ćelije prema gore","Merge cells":"Spoji ćelije",Next:"Sljedeći","Numbered List":"Brojčana lista","Open in a new tab":"Otvori u novoj kartici","Open link in new tab":"Otvori vezu u novoj kartici",Orange:"Narančasta",Original:"",Paragraph:"Paragraf","Paste the media URL in the input.":"Zalijepi URL medija u ulaz.","Pink marker":"Rozi marker","Plain text":"Običan tekst",Previous:"Prethodni",Purple:"Ljubičasta",Red:"Crvena","Red pen":"Crveno pero",Redo:"Ponovi","Remove color":"Ukloni boju","Remove highlight":"Ukloni isticanje","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Rich Text Editor","Rich Text Editor, %0":"Rich Text Editor, %0","Right aligned image":"Slika poravnata desno",Row:"Red",Save:"Snimi","Select all":"Odaberi sve","Select column":"Odaberi stupac","Select row":"Odaberi redak","Show more items":"Prikaži više stavaka","Side image":"Slika sa strane",Small:"Mali","Split cell horizontally":"Razdvoji ćeliju vodoravno","Split cell vertically":"Razdvoji ćeliju okomito","Table toolbar":"Traka za tablice","Text alignment":"Poravnanje teksta","Text alignment toolbar":"Traka za poravnanje","Text alternative":"Alternativni tekst","Text highlight toolbar":"Traka za isticanje teksta","The URL must not be empty.":"URL ne smije biti prazan.","This link has no URL":"Ova veza nema URL","This media URL is not supported.":"URL nije podržan.",Tiny:"Sićušan","Tip: Paste the URL into the content to embed faster.":"Natuknica: Za brže ugrađivanje zalijepite URL u sadržaj.","Toggle caption off":"","Toggle caption on":"",Turquoise:"Tirkizna",Undo:"Poništi",Unlink:"Ukloni vezu",Update:"","Update image URL":"","Upload failed":"Slanje nije uspjelo","Upload in progress":"Slanje u tijeku",White:"Bijela","Widget toolbar":"Traka sa spravicama","Wrap text":"",Yellow:"Žuta","Yellow marker":"Žuti marker"});a.getPluralForm=function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/hu.js
Normal file
1
public/lib/ckeditor/translations/hu.js
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/id.js
Normal file
1
public/lib/ckeditor/translations/id.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(a){const e=a["id"]=a["id"]||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"%0 dari %1","Align center":"Rata tengah","Align left":"Rata kiri","Align right":"Rata kanan",Aquamarine:"Biru laut",Big:"Besar",Black:"Hitam","Block quote":"Kutipan",Blue:"Biru","Blue marker":"Marka biru",Bold:"Tebal","Break text":"","Bulleted List":"Daftar Tak Berangka",Cancel:"Batal","Centered image":"Gambar rata tengah","Change image text alternative":"Ganti alternatif teks gambar","Choose heading":"Pilih tajuk",Code:"Kode",Column:"Kolom","Decrease indent":"Kurangi indentasi",Default:"Bawaan","Delete column":"Hapus kolom","Delete row":"Hapus baris","Dim grey":"Kelabu gelap","Document colors":"Warna dokumen",Downloadable:"Dapat diunduh","Dropdown toolbar":"Alat dropdown","Edit block":"Sunting blok","Edit link":"Sunting tautan","Editor toolbar":"Alat editor","Enter image caption":"Tambahkan deskripsi gambar","Font Background Color":"Warna Latar Huruf","Font Color":"Warna Huruf","Font Family":"Jenis Huruf","Font Size":"Ukuran Huruf","Full size image":"Gambar ukuran penuh",Green:"Hijau","Green marker":"Marka hijau","Green pen":"Pena hijau",Grey:"Kelabu","Header column":"Kolom tajuk","Header row":"Baris tajuk",Heading:"Tajuk","Heading 1":"Tajuk 1","Heading 2":"Tajuk 2","Heading 3":"Tajuk 3","Heading 4":"Tajuk 4","Heading 5":"Tajuk 5","Heading 6":"Tajuk 6",Highlight:"Tanda","Horizontal line":"Garis horizontal",Huge:"Sangat Besar","Image resize list":"Daftar ukuran gambar","Image toolbar":"Alat gambar","image widget":"widget gambar","In line":"","Increase indent":"Tambah indentasi",Insert:"Sisipkan","Insert code block":"Sisipkan blok kode","Insert column left":"Sisipkan kolom ke kiri","Insert column right":"Sisipkan kolom ke kanan","Insert image":"Sisipkan gambar","Insert image via URL":"Sisipkan gambar melalui URL","Insert media":"Sisipkan media","Insert paragraph after block":"","Insert paragraph before block":"","Insert row above":"Sisipkan baris ke atas","Insert row below":"Sisipkan baris ke bawah","Insert table":"Sisipkan tabel",Italic:"Miring",Justify:"Rata kanan-kiri","Left aligned image":"Gambar rata kiri","Light blue":"Biru terang","Light green":"Hijau terang","Light grey":"Kelabu terang",Link:"Tautan","Link image":"","Link URL":"URL tautan","Media URL":"URL Media","media widget":"widget media","Merge cell down":"Gabungkan sel ke bawah","Merge cell left":"Gabungkan sel ke kiri","Merge cell right":"Gabungkan sel ke kanan","Merge cell up":"Gabungkan sel ke atas","Merge cells":"Gabungkan sel",Next:"Berikutnya","Numbered List":"Daftar Berangka","Open in a new tab":"Buka di tab baru","Open link in new tab":"Buka tautan di tab baru",Orange:"Jingga",Original:"Asli",Paragraph:"Paragraf","Paste the media URL in the input.":"Tempelkan URL ke dalam bidang masukan.","Pink marker":"Marka merah jambu","Plain text":"Teks mentah",Previous:"Sebelumnya",Purple:"Ungu",Red:"Merah","Red pen":"Pena merah",Redo:"Lakukan lagi","Remove color":"Hapus warna","Remove highlight":"Hapus tanda","Resize image":"Ubah ukuran gambar","Resize image to %0":"Ubah ukuran gambar ke %0","Resize image to the original size":"Ubah ukuran gambar ke ukuran asli","Rich Text Editor":"Editor Teks Kaya","Rich Text Editor, %0":"Editor Teks Kaya, %0","Right aligned image":"Gambar rata kanan",Row:"Baris",Save:"Simpan","Select column":"Seleksi kolom","Select row":"Seleksi baris","Show more items":"","Side image":"Gambar sisi",Small:"Kecil","Split cell horizontally":"Bagikan sel secara horizontal","Split cell vertically":"Bagikan sel secara vertikal","Table toolbar":"Alat tabel","Text alignment":"Perataan teks","Text alignment toolbar":"Alat perataan teks","Text alternative":"Alternatif teks","Text highlight toolbar":"Alat penanda teks","The URL must not be empty.":"URL tidak boleh kosong.","This link has no URL":"Tautan ini tidak memiliki URL","This media URL is not supported.":"URL media ini tidak didukung.",Tiny:"Sangat Kecil","Tip: Paste the URL into the content to embed faster.":"Tip: Tempelkan URL ke bagian konten untuk sisip cepat.","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turkish",Undo:"Batal",Unlink:"Hapus tautan",Update:"Perbarui","Update image URL":"Perbarui URL gambar","Upload failed":"Gagal mengunggah","Upload in progress":"Sedang mengunggah",White:"Putih","Widget toolbar":"Alat widget","Wrap text":"",Yellow:"Kuning","Yellow marker":"Marka kuning"});e.getPluralForm=function(a){return 0}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/it.js
Normal file
1
public/lib/ckeditor/translations/it.js
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/ja.js
Normal file
1
public/lib/ckeditor/translations/ja.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const t=e["ja"]=e["ja"]||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"","Align center":"中央揃え","Align left":"左揃え","Align right":"右揃え",Aquamarine:"薄い青緑",Big:"大",Black:"黒","Block quote":"ブロッククオート(引用)",Blue:"青","Blue marker":"青のマーカー",Bold:"ボールド","Break text":"","Bulleted List":"箇条書きリスト",Cancel:"キャンセル","Centered image":"中央寄せ画像","Change image text alternative":"画像の代替テキストを変更","Choose heading":"見出しを選択",Code:"コード",Column:"列","Decrease indent":"インデントの削除",Default:"デフォルト","Delete column":"列を削除","Delete row":"行を削除","Dim grey":"暗い灰色","Document colors":"ドキュメント背景色",Downloadable:"ダウンロード可能","Dropdown toolbar":"","Edit block":"","Edit link":"リンクを編集","Editor toolbar":"","Enter image caption":"画像の注釈を入力","Font Background Color":"背景色","Font Color":"文字色","Font Family":"フォントファミリー","Font Size":"フォントサイズ","Full size image":"フルサイズ画像",Green:"緑","Green marker":"緑のマーカー","Green pen":"緑のペン",Grey:"灰色","Header column":"見出し列","Header row":"見出し行",Heading:"見出し","Heading 1":"見出し1","Heading 2":"見出し2","Heading 3":"見出し3 ","Heading 4":"見出し4","Heading 5":"見出し5","Heading 6":"見出し6",Highlight:"ハイライト","Horizontal line":"区切り",Huge:"極大","Image resize list":"画像サイズリスト","Image toolbar":"画像","image widget":"画像ウィジェット","In line":"","Increase indent":"インデントの追加",Insert:"挿入","Insert code block":"コードブロックの挿入","Insert column left":"","Insert column right":"","Insert image":"画像挿入","Insert image via URL":"画像URLを挿入","Insert media":"メディアの挿入","Insert paragraph after block":"ブロックの後にパラグラフを挿入","Insert paragraph before block":"ブロックの前にパラグラフを挿入","Insert row above":"上に行を挿入","Insert row below":"下に行を挿入","Insert table":"表の挿入",Italic:"イタリック",Justify:"両端揃え","Left aligned image":"左寄せ画像","Light blue":"明るい青","Light green":"明るい緑","Light grey":"明るい灰色",Link:"リンク","Link image":"リンク画像","Link URL":"リンクURL","Media URL":"メディアURL","media widget":"メディアウィジェット","Merge cell down":"下のセルと結合","Merge cell left":"左のセルと結合","Merge cell right":"右のセルと結合","Merge cell up":"上のセルと結合","Merge cells":"セルを結合",Next:"","Numbered List":"番号付きリスト","Open in a new tab":"新しいタブで開く","Open link in new tab":"新しいタブでリンクを開く",Orange:"オレンジ",Original:"オリジナル",Paragraph:"段落","Paste the media URL in the input.":"URLを入力欄にコピー","Pink marker":"ピンクのマーカー","Plain text":"プレインテキスト",Previous:"",Purple:"紫",Red:"赤","Red pen":"赤のマーカー",Redo:"やり直し","Remove color":"カラーを削除","Remove highlight":"ハイライトの削除","Resize image":"画像サイズ","Resize image to %0":"画像サイズを%0に変更","Resize image to the original size":"画像サイズを元のサイズに変更","Rich Text Editor":"リッチテキストエディター","Rich Text Editor, %0":"リッチテキストエディター, %0","Right aligned image":"右寄せ画像",Row:"行",Save:"保存","Select all":"すべて選択","Select column":"","Select row":"","Show more items":"","Side image":"サイドイメージ",Small:"小","Split cell horizontally":"縦にセルを分離","Split cell vertically":"横にセルを分離","Table toolbar":"","Text alignment":"文字揃え","Text alignment toolbar":"テキストの整列","Text alternative":"代替テキスト","Text highlight toolbar":"テキストのハイライト","The URL must not be empty.":"空のURLは許可されていません。","This link has no URL":"リンクにURLが設定されていません","This media URL is not supported.":"このメディアのURLはサポートされていません。",Tiny:"極小","Tip: Paste the URL into the content to embed faster.":"","Toggle caption off":"","Toggle caption on":"",Turquoise:"水色",Undo:"元に戻す",Unlink:"リンク解除",Update:"更新","Update image URL":"画像URLを更新","Upload failed":"アップロード失敗","Upload in progress":"アップロード中",White:"白","Widget toolbar":"ウィジェットツールバー","Wrap text":"",Yellow:"黄","Yellow marker":"黄色のマーカー"});t.getPluralForm=function(e){return 0}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/kk.js
Normal file
1
public/lib/ckeditor/translations/kk.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(n){const t=n["kk"]=n["kk"]||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"Ортадан туралау","Align left":"Солға туралау","Align right":"Оңға туралау",Justify:"","Text alignment":"Мәтінді туралау","Text alignment toolbar":"Мәтінді туралау құралдар тақтасы"});t.getPluralForm=function(n){return n!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/km.js
Normal file
1
public/lib/ckeditor/translations/km.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["km"]=e["km"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"","Align center":"តម្រឹមកណ្ដាល","Align left":"តម្រឹមឆ្វេង","Align right":"តម្រឹមស្ដាំ",Aquamarine:"",Black:"","Block quote":"ប្លុកពាក្យសម្រង់",Blue:"",Bold:"ដិត","Break text":"","Bulleted List":"បញ្ជីជាចំណុច",Cancel:"បោះបង់","Centered image":"","Change image text alternative":"","Choose heading":"ជ្រើសរើសក្បាលអត្ថបទ",Code:"កូដ","Dim grey":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"បញ្ចូលពាក្យពណ៌នារូបភាព","Full size image":"រូបភាពពេញទំហំ",Green:"",Grey:"",Heading:"ក្បាលអត្ថបទ","Heading 1":"ក្បាលអត្ថបទ 1","Heading 2":"ក្បាលអត្ថបទ 2","Heading 3":"ក្បាលអត្ថបទ 3","Heading 4":"","Heading 5":"","Heading 6":"","Image resize list":"","Image toolbar":"","image widget":"វិដជិតរូបភាព","In line":"",Insert:"","Insert image":"បញ្ចូលរូបភាព","Insert image via URL":"",Italic:"ទ្រេត",Justify:"តម្រឹមសងខាង","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"តំណ","Link image":"","Link URL":"URL តំណ",Next:"","Numbered List":"បញ្ជីជាលេខ","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Paragraph:"កថាខណ្ឌ",Previous:"",Purple:"",Red:"",Redo:"ធ្វើវិញ","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"កម្មវិធីកែសម្រួលអត្ថបទសម្បូរបែប","Rich Text Editor, %0":"កម្មវិធីកែសម្រួលអត្ថបទសម្បូរបែប, %0","Right aligned image":"",Save:"រក្សាទុ","Show more items":"","Side image":"រូបភាពនៅខាង","Text alignment":"ការតម្រឹមអក្សរ","Text alignment toolbar":"របារឧបករណ៍តម្រឹមអក្សរ","Text alternative":"","This link has no URL":"",Turquoise:"",Undo:"លែងធ្វើវិញ",Unlink:"ផ្ដាច់តំណ",Update:"","Update image URL":"","Upload failed":"អាប់ឡូតមិនបាន",White:"","Wrap text":"",Yellow:""});i.getPluralForm=function(e){return 0}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/kn.js
Normal file
1
public/lib/ckeditor/translations/kn.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["kn"]=e["kn"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"",Aquamarine:"",Black:"","Block quote":"ಗುರುತಿಸಲಾದ ಉಲ್ಲೇಖ",Blue:"",Bold:"ದಪ್ಪ","Break text":"","Bulleted List":"ಬುಲೆಟ್ ಪಟ್ಟಿ",Cancel:"ರದ್ದುಮಾಡು","Centered image":"","Change image text alternative":"ಚಿತ್ರದ ಬದಲಿ ಪಠ್ಯ ಬದಲಾಯಿಸು","Choose heading":"ಶೀರ್ಷಿಕೆ ಆಯ್ಕೆಮಾಡು",Code:"","Dim grey":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"ಚಿತ್ರದ ಶೀರ್ಷಿಕೆ ಸೇರಿಸು","Full size image":"ಪೂರ್ಣ ಅಳತೆಯ ಚಿತ್ರ",Green:"",Grey:"",Heading:"ಶೀರ್ಷಿಕೆ","Heading 1":"ಶೀರ್ಷಿಕೆ 1","Heading 2":"ಶೀರ್ಷಿಕೆ 2","Heading 3":"ಶೀರ್ಷಿಕೆ 3","Heading 4":"","Heading 5":"","Heading 6":"","Image resize list":"","Image toolbar":"","image widget":"ಚಿತ್ರ ವಿಜೆಟ್","In line":"",Insert:"","Insert image":"","Insert image via URL":"",Italic:"ಇಟಾಲಿಕ್","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"ಕೊಂಡಿ","Link image":"","Link URL":"ಕೊಂಡಿ ಸಂಪರ್ಕಿಸು",Next:"","Numbered List":"ಸಂಖ್ಯೆಯ ಪಟ್ಟಿ","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Paragraph:"ಪ್ಯಾರಾಗ್ರಾಫ್",Previous:"",Purple:"",Red:"",Redo:"ಮತ್ತೆ ಮಾಡು","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"ಸಮೃದ್ಧ ಪಠ್ಯ ಸಂಪಾದಕ","Rich Text Editor, %0":"ಸಮೃದ್ಧ ಪಠ್ಯ ಸಂಪಾದಕ, %0","Right aligned image":"",Save:"ಉಳಿಸು","Show more items":"","Side image":"ಪಕ್ಕದ ಚಿತ್ರ","Text alternative":"ಪಠ್ಯದ ಬದಲಿ","This link has no URL":"",Turquoise:"",Undo:"ರದ್ದು",Unlink:"ಕೊಂಡಿ ತೆಗೆ",Update:"","Update image URL":"","Upload failed":"",White:"","Wrap text":"",Yellow:""});i.getPluralForm=function(e){return e>1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/ko.js
Normal file
1
public/lib/ckeditor/translations/ko.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const t=e["ko"]=e["ko"]||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"0% / %1","Align center":"가운데 정렬","Align left":"왼쪽 정렬","Align right":"오른쪽 정렬",Aquamarine:"연한 청록색",Big:"큰",Black:"검은색","Block quote":"인용 단락",Blue:"파랑색","Blue marker":"파란색 마커",Bold:"굵게","Break text":"","Bulleted List":"불릿 목록",Cancel:"취소","Centered image":"가운데 정렬","Change image text alternative":"대체 문구 변경","Choose heading":"제목 선택",Code:"코드",Column:"","Decrease indent":"들여쓰기 줄이기",Default:"기본","Delete column":"","Delete row":"","Dim grey":"진한 회색","Document colors":"문서 색깔들",Downloadable:"다운로드 가능","Dropdown toolbar":"드롭다운 툴바","Edit block":"편집 영역","Edit link":"링크 편집","Editor toolbar":"에디터 툴바","Enter image caption":"사진 설명을 입력하세요","Font Background Color":"글자 배경 색깔","Font Color":"글자 색깔","Font Family":"글꼴 집합","Font Size":"글자 크기","Full size image":"꽉 찬 크기",Green:"초록색","Green marker":"초록색 마커","Green pen":"초록색 펜",Grey:"회색","Header column":"","Header row":"",Heading:"제목","Heading 1":"제목 1","Heading 2":"제목 2","Heading 3":"제목 3","Heading 4":"제목 4","Heading 5":"제목 5","Heading 6":"제목 6",Highlight:"강조","Horizontal line":"수평선",Huge:"매우 큰","Image resize list":"사진 크기 목록","Image toolbar":"사진 툴바","image widget":"사진 위젯","In line":"","Increase indent":"들여쓰기 늘리기",Insert:"","Insert code block":"코드 블럭 삽입","Insert column left":"","Insert column right":"","Insert image":"사진 삽입","Insert image via URL":"","Insert media":"미디어 삽입","Insert paragraph after block":"","Insert paragraph before block":"","Insert row above":"","Insert row below":"","Insert table":"테이블 삽입",Italic:"기울임꼴",Justify:"양쪽 정렬","Left aligned image":"왼쪽 정렬","Light blue":"연한 파랑색","Light green":"밝은 초록색","Light grey":"밝은 회색",Link:"링크","Link image":"사진 링크","Link URL":"링크 주소","Media URL":"미디어 URL","media widget":"미디어 위젯","Merge cell down":"","Merge cell left":"","Merge cell right":"","Merge cell up":"","Merge cells":"",Next:"다음","Numbered List":"번호 목록","Open in a new tab":"새 탭에서 열기","Open link in new tab":"새 탭에서 링크 열기",Orange:"주황색",Original:"원본",Paragraph:"문단","Paste the media URL in the input.":"미디어의 URL을 입력해주세요.","Pink marker":"분홍색 마커","Plain text":"평문",Previous:"이전",Purple:"보라색",Red:"빨간색","Red pen":"빨간색 펜",Redo:"다시 실행","Remove color":"색깔 제거","Remove highlight":"강조 제거","Resize image":"사진 크기 조절","Resize image to %0":"사진의 크기를 %0으로 조절","Resize image to the original size":"사진을 원래 크기로 돌려놓기","Rich Text Editor":"리치 텍스트 편집기","Rich Text Editor, %0":"리치 텍스트 편집기, %0","Right aligned image":"오른쪽 정렬",Row:"",Save:"저장","Select all":"전체 선택","Select column":"","Select row":"","Show more items":"더보기","Side image":"본문 옆에 배치",Small:"작은","Split cell horizontally":"","Split cell vertically":"","Table toolbar":"","Text alignment":"텍스트 정렬","Text alignment toolbar":"텍스트 정렬 툴바","Text alternative":"대체 문구","Text highlight toolbar":"글자 강조 툴바","The URL must not be empty.":"URL이 비어있을 수 없습니다.","This link has no URL":"이 링크에는 URL이 없습니다.","This media URL is not supported.":"이 미디어 URL은 지원되지 않습니다.",Tiny:"매우 작은","Tip: Paste the URL into the content to embed faster.":"팁: URL을 붙여넣기하면 더 빨리 삽입할 수 있습니다.","Toggle caption off":"","Toggle caption on":"",Turquoise:"청록색",Undo:"실행 취소",Unlink:"링크 삭제",Update:"","Update image URL":"","Upload failed":"업로드 실패","Upload in progress":"업로드 진행 중",White:"흰색","Widget toolbar":"위젯 툴바","Wrap text":"",Yellow:"노랑색","Yellow marker":"노란색 마커"});t.getPluralForm=function(e){return 0}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/ku.js
Normal file
1
public/lib/ckeditor/translations/ku.js
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/lt.js
Normal file
1
public/lib/ckeditor/translations/lt.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(i){const e=i["lt"]=i["lt"]||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"","Align center":"Centruoti","Align left":"Lygiuoti į kairę","Align right":"Lygiuoti į dešinę",Aquamarine:"Aquamarine",Big:"Didelis",Black:"Juoda","Block quote":"Citata",Blue:"Mėlyna","Blue marker":"Mėlynas žymeklis",Bold:"Paryškintas","Break text":"","Bulleted List":"Sąrašas",Cancel:"Atšaukti","Centered image":"Vaizdas centre","Change image text alternative":"Pakeisti vaizdo alternatyvųjį tekstą","Choose heading":"Pasirinkite antraštę",Code:"Kodas",Column:"Stulpelis","Decrease indent":"Sumažinti atitraukimą",Default:"Numatyta","Delete column":"Ištrinti stulpelį","Delete row":"Ištrinti eilutę","Dim grey":"Pilkšva","Document colors":"",Downloadable:"","Dropdown toolbar":"","Edit block":"Redaguoti bloką","Edit link":"Keisti nuorodą","Editor toolbar":"","Enter image caption":"Įveskite vaizdo antraštę","Font Background Color":"Šrifto fono spalva","Font Color":"Šrifto spalva","Font Family":"Šrifto šeima","Font Size":"Šrifto dydis","Full size image":"Pilno dydžio vaizdas",Green:"Žalia","Green marker":"Žalias žymeklis","Green pen":"Žalias žymeklis",Grey:"Pilka","Header column":"Antraštės stulpelis","Header row":"Antraštės eilutė",Heading:"Antraštė","Heading 1":"Antraštė 1","Heading 2":"Antraštė 2","Heading 3":"Antraštė 3","Heading 4":"Antraštė 4","Heading 5":"Antraštė 5","Heading 6":"Antraštė 6",Highlight:"Pažymėti žymekliu",Huge:"Milžiniškas","Image resize list":"","Image toolbar":"","image widget":"vaizdų valdiklis","In line":"","Increase indent":"Padidinti atitraukimą",Insert:"","Insert column left":"Įterpti stulpelį kairėje","Insert column right":"Įterpti stulpelį dešinėje","Insert image":"Įterpti vaizdą","Insert image via URL":"","Insert media":"Įterpkite media","Insert row above":"Įterpti eilutę aukščiau","Insert row below":"Įterpti eilutę žemiau","Insert table":"Įterpti lentelę",Italic:"Kursyvas",Justify:"Lygiuoti per visą plotį","Left aligned image":"Vaizdas kairėje","Light blue":"Šviesiai mėlyna","Light green":"Šviesiai žalia","Light grey":"Šviesiai pilka",Link:"Pridėti nuorodą","Link image":"","Link URL":"Nuorodos URL","Media URL":"Media URL","media widget":"media valdiklis","Merge cell down":"Prijungti langelį apačioje","Merge cell left":"Prijungti langelį kairėje","Merge cell right":"Prijungti langelį dešinėje","Merge cell up":"Prijungti langelį viršuje","Merge cells":"Sujungti langelius",Next:"","Numbered List":"Numeruotas rąrašas","Open in a new tab":"","Open link in new tab":"Atidaryti nuorodą naujame skirtuke",Orange:"Oranžinė",Original:"",Paragraph:"Paragrafas","Paste the media URL in the input.":"Įklijuokite media URL adresą į įvedimo lauką.","Pink marker":"Rožinis žymeklis",Previous:"",Purple:"Violetinė",Red:"Raudona","Red pen":"Raudonas žymeklis",Redo:"Pirmyn","Remove color":"Pašalinti spalvą","Remove highlight":"Panaikinti pažymėjimą","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Raiškiojo teksto redaktorius","Rich Text Editor, %0":"Raiškiojo teksto redaktorius, %0","Right aligned image":"Vaizdas dešinėje",Row:"Eilutė",Save:"Išsaugoti","Select column":"","Select row":"","Show more items":"","Side image":"Vaizdas šone",Small:"Mažas","Split cell horizontally":"Padalinti langelį horizontaliai","Split cell vertically":"Padalinti langelį vertikaliai","Table toolbar":"","Text alignment":"Teksto lygiavimas","Text alignment toolbar":"","Text alternative":"Alternatyvusis tekstas","Text highlight toolbar":"","The URL must not be empty.":"URL negali būti tuščias.","This link has no URL":"Ši nuorda neturi URL","This media URL is not supported.":"Šis media URL yra nepalaikomas.",Tiny:"Mažytis","Tip: Paste the URL into the content to embed faster.":"Patarimas: norėdami greičiau įterpti media tiesiog įklijuokite URL į turinį.","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turkio",Undo:"Atgal",Unlink:"Pašalinti nuorodą",Update:"","Update image URL":"","Upload failed":"Įkelti nepavyko","Upload in progress":"Įkelima",White:"Balta","Wrap text":"",Yellow:"Geltona","Yellow marker":"Geltonas žymeklis"});e.getPluralForm=function(i){return i%10==1&&(i%100>19||i%100<11)?0:i%10>=2&&i%10<=9&&(i%100>19||i%100<11)?1:i%1!=0?2:3}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/lv.js
Normal file
1
public/lib/ckeditor/translations/lv.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const a=e["lv"]=e["lv"]||{};a.dictionary=Object.assign(a.dictionary||{},{"%0 of %1":"%0 no %1","Align center":"Centrēt","Align left":"Pa kreisi","Align right":"Pa labi",Aquamarine:"Akvamarīns",Big:"Liels",Black:"Melns","Block quote":"Citāts",Blue:"Zils","Blue marker":"Zils marķieris",Bold:"Trekns","Break text":"","Bulleted List":"Nenumurēts Saraksts",Cancel:"Atcelt","Centered image":"Centrēts attēls","Change image text alternative":"Mainīt attēla alternatīvo tekstu","Choose heading":"Izvēlēties virsrakstu",Code:"Kods",Column:"Kolonna","Decrease indent":"Samazināt atkāpi",Default:"Noklusējuma","Delete column":"Dzēst kolonnu","Delete row":"Dzēst rindu","Dim grey":"Blāvi pelēks","Document colors":"Krāsas dokumentā",Downloadable:"Lejupielādējams","Dropdown toolbar":"Papildus izvēlnes rīkjosla","Edit block":"Labot bloku","Edit link":"Labot Saiti","Editor toolbar":"Redaktora rīkjosla","Enter image caption":"Ievadiet attēla parakstu","Font Background Color":"Fonta fona krāsa","Font Color":"Fonta krāsa","Font Family":"Fonts","Font Size":"Fonta Lielums","Full size image":"Pilna izmēra attēls",Green:"Zaļš","Green marker":"Zaļš marķieris","Green pen":"Zaļa pildspalva",Grey:"Pelēks","Header column":"Šī kolonna ir galvene","Header row":"Šī rinda ir galvene",Heading:"Virsraksts","Heading 1":"Virsraksts 1","Heading 2":"Virsraksts 2","Heading 3":"Virsraksts 3","Heading 4":"Virsraksts 4","Heading 5":"Virsraksts 5","Heading 6":"Virsraksts 6",Highlight:"Izcelt","Horizontal line":"Horizontāli atdalošā līnija",Huge:"Milzīgs","Image resize list":"","Image toolbar":"Attēlu rīkjosla","image widget":"attēla sīkrīks","In line":"","Increase indent":"Palielināt atkāpi",Insert:"","Insert code block":"Ievietot koda bloku","Insert column left":"Ievietot kolonnu pa kreisi","Insert column right":"Ievietot kolonnu pa labi","Insert image":"Ievietot attēlu","Insert image via URL":"","Insert media":"Ievietot mediju","Insert paragraph after block":"","Insert paragraph before block":"","Insert row above":"Ievietot rindu virs","Insert row below":"Ievietot rindu zem","Insert table":"Ievietot tabulu",Italic:"Kursīvs",Justify:"Izlīdzināt abas malas","Left aligned image":"Pa kreisi līdzināts attēls","Light blue":"Gaiši zils","Light green":"Gaiši zaļš","Light grey":"Gaiši pelēks",Link:"Saite","Link image":"","Link URL":"Saites URL","Media URL":"Medija URL","media widget":"medija sīkrīks","Merge cell down":"Apvienot šūnas uz leju","Merge cell left":"Apvienot šūnas pa kreisi","Merge cell right":"Apvienot šūnas pa labi","Merge cell up":"Apvienot šūnas uz augšu","Merge cells":"Apvienot šūnas",Next:"Nākamā","Numbered List":"Numurēts Saraksts","Open in a new tab":"Atvērt jaunā cilnē","Open link in new tab":"Atvērt saiti jaunā cilnē",Orange:"Oranžs",Original:"",Paragraph:"Pagrāfs","Paste the media URL in the input.":"Ielīmējiet medija URL teksta laukā.","Pink marker":"Rozā marķieris","Plain text":"Vienkāršs teksts",Previous:"Iepriekšējā",Purple:"Violets",Red:"Sarkans","Red pen":"Sarkana pildspalva",Redo:"Uz priekšu","Remove color":"Noņemt krāsu","Remove highlight":"Noņemt izcēlumu","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Bagātinātais Teksta Redaktors","Rich Text Editor, %0":"Bagātinātais Teksta Redaktors, %0","Right aligned image":"Pa labi līdzināts attēls",Row:"Rinda",Save:"Saglabāt","Select column":"","Select row":"","Show more items":"Parādīt vairāk vienumus","Side image":"Sānā novietots attēls",Small:"Mazs","Split cell horizontally":"Atdalīt šūnu horizontāli","Split cell vertically":"Atdalīt šūnu vertikāli","Table toolbar":"Tabulas rīkjosla","Text alignment":"Teksta izlīdzināšana","Text alignment toolbar":"Teksta līdzināšanas rīkjosla","Text alternative":"Alternatīvais teksts","Text highlight toolbar":"Teksta izcēluma rīkjosla","The URL must not be empty.":"URL ir jābūt ievadītam.","This link has no URL":"Saitei nav norādīts URL","This media URL is not supported.":"Šis medija URL netiek atbalstīts.",Tiny:"Ļoti mazs","Tip: Paste the URL into the content to embed faster.":"Padoms: Ielīmējiet adresi saturā, lai iegultu","Toggle caption off":"","Toggle caption on":"",Turquoise:"Tirkīza",Undo:"Atsaukt",Unlink:"Noņemt Saiti",Update:"","Update image URL":"","Upload failed":"Augšupielāde neizdevusies","Upload in progress":"Notiek augšupielāde",White:"Balts","Widget toolbar":"Sīkrīku rīkjosla","Wrap text":"",Yellow:"Dzeltens","Yellow marker":"Dzeltens marķieris"});a.getPluralForm=function(e){return e%10==1&&e%100!=11?0:e!=0?1:2}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/nb.js
Normal file
1
public/lib/ckeditor/translations/nb.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const t=e["nb"]=e["nb"]||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"","Align center":"Midstill","Align left":"Venstrejuster","Align right":"Høyrejuster",Aquamarine:"",Big:"Stor",Black:"","Block quote":"Blokksitat",Blue:"","Blue marker":"Blå uthevingsfarge",Bold:"Fet","Break text":"","Bulleted List":"Punktmerket liste",Cancel:"Avbryt","Centered image":"Midtstilt bilde","Change image text alternative":"Endre tekstalternativ for bilde","Choose heading":"Velg overskrift",Code:"Kode",Column:"Kolonne",Default:"Standard","Delete column":"Slett kolonne","Delete row":"Slett rad","Dim grey":"","Document colors":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"Rediger lenke","Editor toolbar":"","Enter image caption":"Skriv inn bildetekst","Font Background Color":"","Font Color":"","Font Family":"Skrifttype","Font Size":"Skriftstørrelse","Full size image":"Bilde i full størrelse",Green:"","Green marker":"Grønn uthevingsfarge","Green pen":"Grønn penn",Grey:"","Header column":"Overskriftkolonne","Header row":"Overskriftrad",Heading:"Overskrift","Heading 1":"Overskrift 1","Heading 2":"Overskrift 2","Heading 3":"Overskrift 3","Heading 4":"","Heading 5":"","Heading 6":"",Highlight:"Utheving",Huge:"Veldig stor","Image resize list":"","Image toolbar":"","image widget":"Bilde-widget","In line":"",Insert:"","Insert column left":"","Insert column right":"","Insert image":"Sett inn bilde","Insert image via URL":"","Insert row above":"Sett inn rad over","Insert row below":"Sett inn rad under","Insert table":"Sett inn tabell",Italic:"Kursiv",Justify:"Blokkjuster","Left aligned image":"Venstrejustert bilde","Light blue":"","Light green":"","Light grey":"",Link:"Lenke","Link image":"","Link URL":"URL for lenke","Merge cell down":"Slå sammen celle ned","Merge cell left":"Slå sammen celle til venstre","Merge cell right":"Slå sammen celle til høyre","Merge cell up":"Slå sammen celle opp","Merge cells":"Slå sammen celler",Next:"","Numbered List":"Nummerert liste","Open in a new tab":"","Open link in new tab":"Åpne lenke i ny fane",Orange:"",Original:"",Paragraph:"Avsnitt","Pink marker":"Rosa uthevingsfarge",Previous:"",Purple:"",Red:"","Red pen":"Rød penn",Redo:"Gjør om","Remove color":"","Remove highlight":"Fjern uthevingsfarge","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Rikteksteditor","Rich Text Editor, %0":"Rikteksteditor, %0","Right aligned image":"Høyrejustert bilde",Row:"Rad",Save:"Lagre","Select column":"","Select row":"","Show more items":"","Side image":"Sidebilde",Small:"Liten","Split cell horizontally":"Del celle horisontalt","Split cell vertically":"Del celle vertikalt","Table toolbar":"","Text alignment":"Tekstjustering","Text alignment toolbar":"","Text alternative":"Tekstalternativ for bilde","Text highlight toolbar":"","This link has no URL":"Denne lenken har ingen URL",Tiny:"Veldig liten","Toggle caption off":"","Toggle caption on":"",Turquoise:"",Undo:"Angre",Unlink:"Fjern lenke",Update:"","Update image URL":"","Upload failed":"Opplasting feilet","Upload in progress":"Opplasting pågår",White:"","Wrap text":"",Yellow:"","Yellow marker":"Gul uthevingsfarge"});t.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/ne.js
Normal file
1
public/lib/ckeditor/translations/ne.js
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/nl.js
Normal file
1
public/lib/ckeditor/translations/nl.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const n=e["nl"]=e["nl"]||{};n.dictionary=Object.assign(n.dictionary||{},{"%0 of %1":"0% van 1%","Align center":"Midden uitlijnen","Align left":"Links uitlijnen","Align right":"Rechts uitlijnen",Aquamarine:"Aquamarijn",Big:"Groot",Black:"Zwart","Block quote":"Blok citaat",Blue:"Blauw","Blue marker":"Blauwe marker",Bold:"Vet","Break text":"","Bulleted List":"Ongenummerde lijst",Cancel:"Annuleren","Centered image":"Gecentreerde afbeelding","Change image text alternative":"Verander alt-tekst van de afbeelding","Choose heading":"Kies kop",Code:"Code",Column:"Kolom","Decrease indent":"Minder inspringen",Default:"Standaard","Delete column":"Verwijder kolom","Delete row":"Verwijder rij","Dim grey":"Gedimd grijs","Document colors":"Document kleur",Downloadable:"Downloadbaar","Dropdown toolbar":"Drop-down werkbalk","Edit block":"Blok aanpassen","Edit link":"Bewerk link","Editor toolbar":"Editor welkbalk","Enter image caption":"Typ een afbeeldingsbijschrift","Font Background Color":"Tekst achtergrondkleur","Font Color":"Tekstkleur","Font Family":"Lettertype","Font Size":"Lettergrootte","Full size image":"Afbeelding op volledige grootte",Green:"Groen","Green marker":"Groene marker","Green pen":"Groene pen",Grey:"Grijs","Header column":"Titel kolom","Header row":"Titel rij",Heading:"Koppen","Heading 1":"Kop 1","Heading 2":"Kop 2","Heading 3":"Kop 3","Heading 4":"Kop 4","Heading 5":"Kop 5","Heading 6":"Kop 6",Highlight:"Markeren","Horizontal line":"Horizontale lijn",Huge:"Zeer groot","Image resize list":"","Image toolbar":"Afbeeldingswerkbalk","image widget":"afbeeldingswidget","In line":"","Increase indent":"Inspringen",Insert:"","Insert code block":"Codeblok invoegen","Insert column left":"Kolom links invoegen","Insert column right":"Kolom rechts invoegen","Insert image":"Afbeelding toevoegen","Insert image via URL":"","Insert media":"Voer media in","Insert paragraph after block":"Voeg paragraaf toe na blok","Insert paragraph before block":"Voeg paragraaf toe voor blok","Insert row above":"Rij hierboven invoegen","Insert row below":"Rij hieronder invoegen","Insert table":"Tabel invoegen",Italic:"Cursief",Justify:"Volledig uitlijnen","Left aligned image":"Links uitgelijnde afbeelding","Light blue":"Lichtblauw","Light green":"Lichtgroen","Light grey":"Lichtgrijs",Link:"Link","Link image":"Link afbeelding","Link URL":"Link URL","Media URL":"Media URL","media widget":"media widget","Merge cell down":"Cel hieronder samenvoegen","Merge cell left":"Cel hiervoor samenvoegen","Merge cell right":"Cel hierna samenvoegen","Merge cell up":"Cel hierboven samenvoegen","Merge cells":"Cellen samenvoegen",Next:"Volgende","Numbered List":"Genummerde lijst","Open in a new tab":"Open een nieuw tabblad","Open link in new tab":"Open link in nieuw tabblad",Orange:"Oranje",Original:"",Paragraph:"Paragraaf","Paste the media URL in the input.":"Plak de media URL in het invoerveld.","Pink marker":"Roze marker","Plain text":"Platte tekst",Previous:"Vorige",Purple:"Paars",Red:"Rood","Red pen":"Rode pen",Redo:"Opnieuw","Remove color":"Verwijder kleur","Remove highlight":"Verwijder markering","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Tekstbewerker","Rich Text Editor, %0":"Tekstbewerker, 0%","Right aligned image":"Rechts uitgelijnde afbeelding",Row:"Rij",Save:"Opslaan","Select all":"Selecteer alles","Select column":"","Select row":"","Show more items":"Meer items weergeven","Side image":"Afbeelding naast tekst",Small:"Klein","Split cell horizontally":"Splits cel horizontaal","Split cell vertically":"Splits cel verticaal","Table toolbar":"Tabel werkbalk","Text alignment":"Tekst uitlijning","Text alignment toolbar":"Tekst uitlijning werkbalk","Text alternative":"Alt-tekst","Text highlight toolbar":"Tekst markering werkbalk","The URL must not be empty.":"De URL mag niet leeg zijn.","This link has no URL":"Deze link heeft geen URL","This media URL is not supported.":"Deze media URL wordt niet ondersteund.",Tiny:"Zeer klein","Tip: Paste the URL into the content to embed faster.":"Tip: plak de URL in de inhoud om deze sneller in te laten sluiten.","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turquoise",Undo:"Ongedaan maken",Unlink:"Verwijder link",Update:"","Update image URL":"","Upload failed":"Uploaden afbeelding mislukt","Upload in progress":"Bezig met uploaden",White:"Wit","Widget toolbar":"Widget werkbalk","Wrap text":"",Yellow:"Geel","Yellow marker":"Gele marker"});n.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/no.js
Normal file
1
public/lib/ckeditor/translations/no.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const t=e["no"]=e["no"]||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"%0 av %1","Align center":"Midtstill","Align left":"Venstrejuster","Align right":"Høyrejuster",Aquamarine:"Akvamarin",Big:"Stor",Black:"Svart","Block quote":"Blokksitat",Blue:"Blå","Blue marker":"Blå utheving",Bold:"Fet","Break text":"","Bulleted List":"Punktliste",Cancel:"Avbryt","Centered image":"Midtstilt bilde","Change image text alternative":"Endre tekstalternativ til bildet","Choose heading":"Velg overskrift",Code:"Kode",Column:"Kolonne","Decrease indent":"Reduser innrykk",Default:"Standard","Delete column":"Slett kolonne","Delete row":"Slett rad","Dim grey":"Svak grå","Document colors":"Dokumentfarger",Downloadable:"Nedlastbar","Dropdown toolbar":"Verktøylinje for nedtrekksliste","Edit block":"Rediger blokk","Edit link":"Rediger lenke","Editor toolbar":"Verktøylinje for redigeringsverktøy","Enter image caption":"Skriv inn bildetekst","Font Background Color":"Uthevingsfarge for tekst","Font Color":"Skriftfarge","Font Family":"Skrifttypefamilie","Font Size":"Skriftstørrelse","Full size image":"Bilde i full størrelse",Green:"Grønn","Green marker":"Grønn utheving","Green pen":"Grønn penn",Grey:"Grå","Header column":"Overskriftkolonne","Header row":"Overskriftrad",Heading:"Overskrift","Heading 1":"Overskrift 1","Heading 2":"Overskrift 2","Heading 3":"Overskrift 3","Heading 4":"Overskrift 4","Heading 5":"Overskrift 5","Heading 6":"Overskrift 6",Highlight:"Utheving","Horizontal line":"Horisontal linje",Huge:"Veldig stor","Image resize list":"","Image toolbar":"Verktøylinje for bilde","image widget":"Bilde-widget","In line":"","Increase indent":"Øk innrykk",Insert:"","Insert code block":"Sett inn kodeblokk","Insert column left":"Sett inn kolonne til venstre","Insert column right":"Sett inn kolonne til høyre","Insert image":"Sett inn bilde","Insert image via URL":"","Insert media":"Sett inn media","Insert paragraph after block":"","Insert paragraph before block":"","Insert row above":"Sett inn rad over","Insert row below":"Sett inn rad under","Insert table":"Sett inn tabell",Italic:"Kursiv",Justify:"Blokkjuster","Left aligned image":"Venstrejustert bilde","Light blue":"Lyseblå","Light green":"Lysegrønn","Light grey":"Lysegrå",Link:"Lenke","Link image":"","Link URL":"Lenke-URL","Media URL":"Media-URL","media widget":"media-widget","Merge cell down":"Slå sammen celle under","Merge cell left":"Slå sammen celle til venstre","Merge cell right":"Slå sammen celle til høyre","Merge cell up":"Slå sammen celle over","Merge cells":"Slå sammen celler",Next:"Neste","Numbered List":"Nummerert liste","Open in a new tab":"Åpne i ny fane","Open link in new tab":"Åpne lenke i ny fane",Orange:"Oransje",Original:"",Paragraph:"Avsnitt","Paste the media URL in the input.":"Lim inn media URL ","Pink marker":"Rosa utheving","Plain text":"Ren tekst",Previous:"Forrige",Purple:"Lilla",Red:"Rød","Red pen":"Rød penn",Redo:"Gjør om","Remove color":"Fjern farge","Remove highlight":"Fjern utheving","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Tekstredigeringsverktøy for rik tekst","Rich Text Editor, %0":"Tekstredigeringsverktøy for rik tekst, %0","Right aligned image":"Høyrejustert bilde",Row:"Rad",Save:"Lagre","Select all":"Velg alt ","Select column":"Velg kolonne ","Select row":"Velg rad","Show more items":"Vis flere elementer","Side image":"Sidestilt bilde",Small:"Liten","Split cell horizontally":"Del opp celle horisontalt","Split cell vertically":"Del opp celle vertikalt","Table toolbar":"Tabell verktøylinje ","Text alignment":"Tekstjustering","Text alignment toolbar":"Verktøylinje for tekstjustering","Text alternative":"Tekstalternativ","Text highlight toolbar":"Verktøylinje for tekstutheving","The URL must not be empty.":"URL-en kan ikke være tom.","This link has no URL":"Denne lenken mangler en URL","This media URL is not supported.":"Denne media-URL-en er ikke støttet.",Tiny:"Veldig liten","Tip: Paste the URL into the content to embed faster.":"Tips: lim inn URL i innhold for bedre hastighet ","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turkis",Undo:"Angre",Unlink:"Fjern lenke",Update:"","Update image URL":"","Upload failed":"Kunne ikke laste opp","Upload in progress":"Laster opp fil",White:"Hvit","Widget toolbar":"Widget verktøylinje ","Wrap text":"",Yellow:"Gul","Yellow marker":"Gul utheving"});t.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/oc.js
Normal file
1
public/lib/ckeditor/translations/oc.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(o){const n=o["oc"]=o["oc"]||{};n.dictionary=Object.assign(n.dictionary||{},{"%0 of %1":"",Bold:"Gras",Cancel:"Anullar",Code:"",Italic:"Italica","Remove color":"",Save:"Enregistrar","Show more items":""});n.getPluralForm=function(o){return o>1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/pl.js
Normal file
1
public/lib/ckeditor/translations/pl.js
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/pt-br.js
Normal file
1
public/lib/ckeditor/translations/pt-br.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const a=e["pt-br"]=e["pt-br"]||{};a.dictionary=Object.assign(a.dictionary||{},{"%0 of %1":"%0 de %1","Align center":"Centralizar","Align left":"Alinhar à esquerda","Align right":"Alinhar à direita",Aquamarine:"Água-marinha",Big:"Grande",Black:"Preto","Block quote":"Bloco de citação",Blue:"Azul","Blue marker":"Marcador azul",Bold:"Negrito","Break text":"","Bulleted List":"Lista com marcadores",Cancel:"Cancelar","Centered image":"Imagem centralizada","Change image text alternative":"Alterar texto alternativo da imagem","Choose heading":"Escolha o título",Code:"Código",Column:"Coluna","Decrease indent":"Diminuir indentação",Default:"Padrão","Delete column":"Excluir coluna","Delete row":"Excluir linha","Dim grey":"Cinza escuro","Document colors":"Cores do documento",Downloadable:"Pode ser baixado","Dropdown toolbar":"Barra de Ferramentas da Lista Suspensa","Edit block":"Editor de bloco","Edit link":"Editar link","Editor toolbar":"Ferramentas do Editor","Enter image caption":"Inserir legenda da imagem","Font Background Color":"Cor de Fundo","Font Color":"Cor da Fonte","Font Family":"Fonte","Font Size":"Tamanho da fonte","Full size image":"Imagem completa",Green:"Verde","Green marker":"Marcador verde","Green pen":"Caneta verde",Grey:"Cinza","Header column":"Coluna de cabeçalho","Header row":"Linha de cabeçalho",Heading:"Titulo","Heading 1":"Título 1","Heading 2":"Título 2","Heading 3":"Título 3","Heading 4":"Título 4","Heading 5":"Título 5","Heading 6":"Título 6",Highlight:"Realce","Horizontal line":"Linha horizontal",Huge:"Gigante","Image resize list":"Lista de redimensionamento de imagem","Image toolbar":"Ferramentas de Imagem","image widget":"Ferramenta de imagem","In line":"","Increase indent":"Aumentar indentação",Insert:"Inserir","Insert code block":"Inserir bloco de código","Insert column left":"Inserir coluna à esquerda","Insert column right":"Inserir coluna à direita","Insert image":"Inserir imagem","Insert image via URL":"Inserir imagem via URL","Insert media":"Inserir mídia","Insert paragraph after block":"Inserir parágrafo após o bloco","Insert paragraph before block":"Inserir parágrafo antes do bloco","Insert row above":"Inserir linha acima","Insert row below":"Inserir linha abaixo","Insert table":"Inserir tabela",Italic:"Itálico",Justify:"Justificar","Left aligned image":"Imagem alinhada à esquerda","Light blue":"Azul claro","Light green":"Verde claro","Light grey":"Cinza claro",Link:"Link","Link image":"Link da imagem","Link URL":"URL","Media URL":"URL da mídia","media widget":"Ferramenta de mídia","Merge cell down":"Mesclar abaixo","Merge cell left":"Mesclar à esquerda","Merge cell right":"Mesclar à direita","Merge cell up":"Mesclar acima","Merge cells":"Mesclar células",Next:"Próximo","Numbered List":"Lista numerada","Open in a new tab":"Abrir em nova aba","Open link in new tab":"Abrir link em nova aba",Orange:"Laranja",Original:"Original",Paragraph:"Parágrafo","Paste the media URL in the input.":"Cole o endereço da mídia no campo.","Pink marker":"Marcador rosa","Plain text":"Texto plano",Previous:"Anterior",Purple:"Púrpura",Red:"Vermelho","Red pen":"Caneta vermelha",Redo:"Refazer","Remove color":"Remover cor","Remove highlight":"Remover realce","Resize image":"Redimensionar imagem","Resize image to %0":"Redimensionar a imagem para 0%","Resize image to the original size":"Redimensionar a imagem para o tamanho original","Rich Text Editor":"Editor de Formatação","Rich Text Editor, %0":"Editor de Formatação, %0","Right aligned image":"Imagem alinhada à direita",Row:"Linha",Save:"Salvar","Select all":"Selecionar tudo","Select column":"Selecionar coluna","Select row":"Selecionar linha","Show more items":"Exibir mais itens","Side image":"Imagem lateral",Small:"Pequeno","Split cell horizontally":"Dividir horizontalmente","Split cell vertically":"Dividir verticalmente","Table toolbar":"Ferramentas de Tabela","Text alignment":"Alinhamento do texto","Text alignment toolbar":"Ferramentas de alinhamento de texto","Text alternative":"Texto alternativo","Text highlight toolbar":"Ferramentas de realce","The URL must not be empty.":"A URL não pode ficar em branco.","This link has no URL":"Este link não possui uma URL","This media URL is not supported.":"A URL desta mídia não é suportada.",Tiny:"Minúsculo","Tip: Paste the URL into the content to embed faster.":"Cole o endereço dentro do conteúdo para embutir mais rapidamente.","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turquesa",Undo:"Desfazer",Unlink:"Remover link",Update:"Atualizar","Update image URL":"","Upload failed":"Falha ao subir arquivo","Upload in progress":"Enviando dados",White:"Branco","Widget toolbar":"Ferramentas de Widgets","Wrap text":"",Yellow:"Amarelo","Yellow marker":"Marcador amarelo"});a.getPluralForm=function(e){return e>1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/pt.js
Normal file
1
public/lib/ckeditor/translations/pt.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const a=e["pt"]=e["pt"]||{};a.dictionary=Object.assign(a.dictionary||{},{"%0 of %1":"","Align center":"Alinhar ao centro","Align left":"Alinhar à esquerda","Align right":"Alinhar à direita",Aquamarine:"",Big:"",Black:"",Blue:"",Bold:"Negrito","Break text":"","Bulleted List":"Lista não ordenada",Cancel:"Cancelar","Centered image":"Imagem centrada","Change image text alternative":"","Choose heading":"",Code:"Código",Default:"Padrão","Dim grey":"","Document colors":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Indicar legenda da imagem","Font Background Color":"","Font Color":"","Font Family":"","Font Size":"","Full size image":"Imagem em tamanho completo",Green:"",Grey:"",Heading:"Cabeçalho","Heading 1":"Cabeçalho 1","Heading 2":"Cabeçalho 2","Heading 3":"Cabeçalho 3","Heading 4":"","Heading 5":"","Heading 6":"",Huge:"","Image resize list":"","Image toolbar":"","image widget":"módulo de imagem","In line":"",Insert:"","Insert image":"Inserir imagem","Insert image via URL":"",Italic:"Itálico",Justify:"Justificar","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Hiperligação","Link image":"","Link URL":"URL da ligação",Next:"","Numbered List":"Lista ordenada","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Paragraph:"Parágrafo",Previous:"",Purple:"",Red:"",Redo:"Refazer","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Editor de texto avançado","Rich Text Editor, %0":"Editor de texto avançado, %0","Right aligned image":"",Save:"Guardar","Show more items":"","Side image":"Imagem lateral",Small:"","Text alignment":"Alinhamento de texto","Text alignment toolbar":"Ferramentas de alinhamento de texto","Text alternative":"Texto alternativo","This link has no URL":"",Tiny:"",Turquoise:"",Undo:"Desfazer",Unlink:"Desligar",Update:"","Update image URL":"","Upload failed":"Falha ao carregar",White:"","Wrap text":"",Yellow:""});a.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
1
public/lib/ckeditor/translations/ro.js
Normal file
1
public/lib/ckeditor/translations/ro.js
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/ru.js
Normal file
1
public/lib/ckeditor/translations/ru.js
Normal file
File diff suppressed because one or more lines are too long
1
public/lib/ckeditor/translations/si.js
Normal file
1
public/lib/ckeditor/translations/si.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(e){const i=e["si"]=e["si"]||{};i.dictionary=Object.assign(i.dictionary||{},{Bold:"තදකුරු","Break text":"","Bulleted List":"බුලටිත ලැයිස්තුව","Centered image":"","Change image text alternative":"",Code:"","Enter image caption":"","Full size image":"","Image resize list":"","Image toolbar":"","image widget":"","In line":"",Insert:"","Insert image":"පින්තූරය ඇතුල් කරන්න","Insert image via URL":"",Italic:"ඇලකුරු","Left aligned image":"","Numbered List":"අංකිත ලැයිස්තුව",Original:"",Redo:"නැවත කරන්න","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Right aligned image":"","Side image":"","Text alternative":"",Undo:"අහෝසි කරන්න",Update:"","Update image URL":"","Upload failed":"උඩුගත කිරීම අසාර්ථක විය","Wrap text":""});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user