mirror of
https://github.com/semaphoreui/semaphore.git
synced 2024-11-23 12:30:41 +01:00
commit
1ca883f20c
3
.gitignore
vendored
3
.gitignore
vendored
@ -7,6 +7,8 @@ web/public/fonts/*.*
|
||||
web/.nyc_output
|
||||
api/public/**/*
|
||||
/config.json
|
||||
/config-runner.json
|
||||
/config-runner-token.txt
|
||||
/.dredd/config.json
|
||||
/database.boltdb
|
||||
/database.boltdb.lock
|
||||
@ -29,3 +31,4 @@ node_modules/
|
||||
.vscode
|
||||
__debug_bin*
|
||||
.task/
|
||||
/web/.env
|
@ -215,6 +215,7 @@ func setAppActive(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
if !helpers.Bind(w, r, &body) {
|
||||
helpers.WriteErrorStatus(w, "Invalid request body", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -80,18 +80,20 @@ func Route() *mux.Router {
|
||||
publicAPIRouter := r.PathPrefix(webPath + "api").Subrouter()
|
||||
publicAPIRouter.Use(StoreMiddleware, JSONMiddleware)
|
||||
|
||||
publicAPIRouter.HandleFunc("/runners", runners.RegisterRunner).Methods("POST")
|
||||
publicAPIRouter.HandleFunc("/auth/login", login).Methods("GET", "POST")
|
||||
publicAPIRouter.HandleFunc("/auth/logout", logout).Methods("POST")
|
||||
publicAPIRouter.HandleFunc("/auth/oidc/{provider}/login", oidcLogin).Methods("GET")
|
||||
publicAPIRouter.HandleFunc("/auth/oidc/{provider}/redirect", oidcRedirect).Methods("GET")
|
||||
publicAPIRouter.HandleFunc("/auth/oidc/{provider}/redirect/{redirect_path:.*}", oidcRedirect).Methods("GET")
|
||||
|
||||
routersAPI := r.PathPrefix(webPath + "api").Subrouter()
|
||||
routersAPI.Use(StoreMiddleware, JSONMiddleware, runners.RunnerMiddleware)
|
||||
routersAPI.Path("/runners/{runner_id}").HandlerFunc(runners.GetRunner).Methods("GET", "HEAD")
|
||||
routersAPI.Path("/runners/{runner_id}").HandlerFunc(runners.UpdateRunner).Methods("PUT")
|
||||
routersAPI.Path("/runners/{runner_id}").HandlerFunc(runners.UnregisterRunner).Methods("DELETE")
|
||||
internalAPI := publicAPIRouter.PathPrefix("/internal").Subrouter()
|
||||
internalAPI.HandleFunc("/runners", runners.RegisterRunner).Methods("POST")
|
||||
|
||||
runnersAPI := internalAPI.PathPrefix("/runners").Subrouter()
|
||||
runnersAPI.Use(runners.RunnerMiddleware)
|
||||
runnersAPI.Path("").HandlerFunc(runners.GetRunner).Methods("GET", "HEAD")
|
||||
runnersAPI.Path("").HandlerFunc(runners.UpdateRunner).Methods("PUT")
|
||||
runnersAPI.Path("").HandlerFunc(runners.UnregisterRunner).Methods("DELETE")
|
||||
|
||||
publicWebHookRouter := r.PathPrefix(webPath + "api").Subrouter()
|
||||
publicWebHookRouter.Use(StoreMiddleware, JSONMiddleware)
|
||||
@ -128,6 +130,16 @@ func Route() *mux.Router {
|
||||
adminAPI.Path("/options").HandlerFunc(getOptions).Methods("GET", "HEAD")
|
||||
adminAPI.Path("/options").HandlerFunc(setOption).Methods("POST")
|
||||
|
||||
adminAPI.Path("/runners").HandlerFunc(getGlobalRunners).Methods("GET", "HEAD")
|
||||
adminAPI.Path("/runners").HandlerFunc(addGlobalRunner).Methods("POST", "HEAD")
|
||||
|
||||
globalRunnersAPI := adminAPI.PathPrefix("/runners").Subrouter()
|
||||
globalRunnersAPI.Use(globalRunnerMiddleware)
|
||||
globalRunnersAPI.Path("/{runner_id}").HandlerFunc(getGlobalRunner).Methods("GET", "HEAD")
|
||||
globalRunnersAPI.Path("/{runner_id}").HandlerFunc(updateGlobalRunner).Methods("PUT", "POST")
|
||||
globalRunnersAPI.Path("/{runner_id}/active").HandlerFunc(setGlobalRunnerActive).Methods("POST")
|
||||
globalRunnersAPI.Path("/{runner_id}").HandlerFunc(deleteGlobalRunner).Methods("DELETE")
|
||||
|
||||
appsAPI := adminAPI.PathPrefix("/apps").Subrouter()
|
||||
appsAPI.Use(appMiddleware)
|
||||
appsAPI.Path("/{app_id}").HandlerFunc(getApp).Methods("GET", "HEAD")
|
||||
@ -446,8 +458,10 @@ func serveFile(w http.ResponseWriter, r *http.Request, name string) {
|
||||
|
||||
func getSystemInfo(w http.ResponseWriter, r *http.Request) {
|
||||
body := map[string]interface{}{
|
||||
"version": util.Version(),
|
||||
"ansible": util.AnsibleVersion(),
|
||||
"version": util.Version(),
|
||||
"ansible": util.AnsibleVersion(),
|
||||
"web_host": util.WebHostURL.String(),
|
||||
"use_remote_runner": util.Config.UseRemoteRunner,
|
||||
}
|
||||
|
||||
helpers.WriteJSON(w, http.StatusOK, body)
|
||||
|
157
api/runners.go
Normal file
157
api/runners.go
Normal file
@ -0,0 +1,157 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"github.com/ansible-semaphore/semaphore/api/helpers"
|
||||
"github.com/ansible-semaphore/semaphore/db"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"net/http"
|
||||
|
||||
"github.com/gorilla/context"
|
||||
)
|
||||
|
||||
//type minimalGlobalRunner struct {
|
||||
// ID int `json:"id"`
|
||||
// Name string `json:"name"`
|
||||
// Active bool `json:"active"`
|
||||
// Webhook string `db:"webhook" json:"webhook"`
|
||||
// MaxParallelTasks int `db:"max_parallel_tasks" json:"max_parallel_tasks"`
|
||||
//}
|
||||
|
||||
func getGlobalRunners(w http.ResponseWriter, r *http.Request) {
|
||||
runners, err := helpers.Store(r).GetGlobalRunners(false)
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
var result = make([]db.Runner, 0)
|
||||
|
||||
for _, runner := range runners {
|
||||
result = append(result, runner)
|
||||
}
|
||||
|
||||
helpers.WriteJSON(w, http.StatusOK, result)
|
||||
}
|
||||
|
||||
type runnerWithToken struct {
|
||||
db.Runner
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
||||
func addGlobalRunner(w http.ResponseWriter, r *http.Request) {
|
||||
var runner db.Runner
|
||||
if !helpers.Bind(w, r, &runner) {
|
||||
return
|
||||
}
|
||||
|
||||
runner.ProjectID = nil
|
||||
newRunner, err := helpers.Store(r).CreateRunner(runner)
|
||||
|
||||
if err != nil {
|
||||
log.Warn("Runner is not created: " + err.Error())
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
helpers.WriteJSON(w, http.StatusCreated, runnerWithToken{
|
||||
Runner: newRunner,
|
||||
Token: newRunner.Token,
|
||||
})
|
||||
}
|
||||
|
||||
func globalRunnerMiddleware(next http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
runnerID, err := helpers.GetIntParam("runner_id", w, r)
|
||||
|
||||
if err != nil {
|
||||
helpers.WriteJSON(w, http.StatusBadRequest, map[string]string{
|
||||
"error": "runner_id required",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
store := helpers.Store(r)
|
||||
|
||||
runner, err := store.GetGlobalRunner(runnerID)
|
||||
|
||||
if err != nil {
|
||||
helpers.WriteJSON(w, http.StatusNotFound, map[string]string{
|
||||
"error": "Runner not found",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
context.Set(r, "runner", &runner)
|
||||
next.ServeHTTP(w, r)
|
||||
})
|
||||
}
|
||||
|
||||
func getGlobalRunner(w http.ResponseWriter, r *http.Request) {
|
||||
runner := context.Get(r, "runner").(*db.Runner)
|
||||
|
||||
helpers.WriteJSON(w, http.StatusOK, runner)
|
||||
}
|
||||
|
||||
func updateGlobalRunner(w http.ResponseWriter, r *http.Request) {
|
||||
oldRunner := context.Get(r, "runner").(*db.Runner)
|
||||
|
||||
var runner db.Runner
|
||||
if !helpers.Bind(w, r, &runner) {
|
||||
return
|
||||
}
|
||||
|
||||
store := helpers.Store(r)
|
||||
|
||||
runner.ID = oldRunner.ID
|
||||
runner.ProjectID = nil
|
||||
|
||||
err := store.UpdateRunner(runner)
|
||||
|
||||
if err != nil {
|
||||
helpers.WriteErrorStatus(w, err.Error(), http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
}
|
||||
|
||||
func deleteGlobalRunner(w http.ResponseWriter, r *http.Request) {
|
||||
runner := context.Get(r, "runner").(*db.Runner)
|
||||
|
||||
store := helpers.Store(r)
|
||||
|
||||
err := store.DeleteGlobalRunner(runner.ID)
|
||||
|
||||
if err != nil {
|
||||
helpers.WriteErrorStatus(w, err.Error(), http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
}
|
||||
|
||||
func setGlobalRunnerActive(w http.ResponseWriter, r *http.Request) {
|
||||
runner := context.Get(r, "runner").(*db.Runner)
|
||||
|
||||
store := helpers.Store(r)
|
||||
|
||||
var body struct {
|
||||
Active bool `json:"active"`
|
||||
}
|
||||
|
||||
if !helpers.Bind(w, r, &body) {
|
||||
helpers.WriteErrorStatus(w, "Invalid request body", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
runner.Active = body.Active
|
||||
|
||||
err := store.UpdateRunner(*runner)
|
||||
|
||||
if err != nil {
|
||||
helpers.WriteErrorStatus(w, err.Error(), http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
}
|
@ -14,7 +14,7 @@ import (
|
||||
func RunnerMiddleware(next http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
token := r.Header.Get("X-API-Token")
|
||||
token := r.Header.Get("X-Runner-Token")
|
||||
|
||||
if token == "" {
|
||||
helpers.WriteJSON(w, http.StatusUnauthorized, map[string]string{
|
||||
@ -23,18 +23,9 @@ func RunnerMiddleware(next http.Handler) http.Handler {
|
||||
return
|
||||
}
|
||||
|
||||
runnerID, err := helpers.GetIntParam("runner_id", w, r)
|
||||
|
||||
if err != nil {
|
||||
helpers.WriteJSON(w, http.StatusBadRequest, map[string]string{
|
||||
"error": "runner_id required",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
store := helpers.Store(r)
|
||||
|
||||
runner, err := store.GetGlobalRunner(runnerID)
|
||||
runner, err := store.GetGlobalRunnerByToken(token)
|
||||
|
||||
if err != nil {
|
||||
helpers.WriteJSON(w, http.StatusNotFound, map[string]string{
|
||||
@ -199,11 +190,12 @@ func RegisterRunner(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
res := util.RunnerConfig{
|
||||
RunnerID: runner.ID,
|
||||
Token: runner.Token,
|
||||
var res struct {
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
||||
res.Token = runner.Token
|
||||
|
||||
helpers.WriteJSON(w, http.StatusOK, res)
|
||||
}
|
||||
|
||||
|
@ -19,6 +19,7 @@ import (
|
||||
)
|
||||
|
||||
var configPath string
|
||||
var noConfig bool
|
||||
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "semaphore",
|
||||
@ -34,8 +35,9 @@ Complete documentation is available at https://ansible-semaphore.com.`,
|
||||
|
||||
func Execute() {
|
||||
rootCmd.PersistentFlags().StringVar(&configPath, "config", "", "Configuration file path")
|
||||
rootCmd.PersistentFlags().BoolVar(&noConfig, "no-config", false, "Don't use configuration file")
|
||||
if err := rootCmd.Execute(); err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
_, _ = fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
@ -96,7 +98,7 @@ func runService() {
|
||||
}
|
||||
|
||||
func createStore(token string) db.Store {
|
||||
util.ConfigInit(configPath)
|
||||
util.ConfigInit(configPath, noConfig)
|
||||
|
||||
store := factory.CreateStore()
|
||||
|
||||
|
@ -11,7 +11,7 @@ func init() {
|
||||
}
|
||||
|
||||
func runRunner() {
|
||||
util.ConfigInit(configPath)
|
||||
util.ConfigInit(configPath, noConfig)
|
||||
|
||||
taskPool := runners.JobPool{}
|
||||
|
||||
|
@ -11,7 +11,7 @@ func init() {
|
||||
}
|
||||
|
||||
func unregisterRunner() {
|
||||
util.ConfigInit(configPath)
|
||||
util.ConfigInit(configPath, noConfig)
|
||||
|
||||
taskPool := runners.JobPool{}
|
||||
err := taskPool.Unregister()
|
||||
|
@ -33,7 +33,7 @@ func doSetup() int {
|
||||
|
||||
configPath := setup.SaveConfig(config)
|
||||
|
||||
util.ConfigInit(configPath)
|
||||
util.ConfigInit(configPath, false)
|
||||
|
||||
fmt.Println(" Pinging db..")
|
||||
|
||||
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"bolt": {
|
||||
"host": "/Users/fiftin/go/src/github.com/ansible-semaphore/semaphore/database.boltdb"
|
||||
},
|
||||
|
||||
"dialect": "bolt",
|
||||
"tmp_path": "/var/folders/x1/d7p_yr4j7g57_r2r8s0ll_1r0000gn/T/semaphore",
|
||||
|
||||
"runner": {
|
||||
"config_file": "/tmp/semaphore-runner.json",
|
||||
"api_url": "http://localhost:3000/api"
|
||||
}
|
||||
}
|
@ -71,6 +71,7 @@ func GetMigrations() []Migration {
|
||||
{Version: "2.10.12"},
|
||||
{Version: "2.10.15"},
|
||||
{Version: "2.10.16"},
|
||||
{Version: "2.10.26"},
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -8,10 +8,12 @@ type RunnerState string
|
||||
//)
|
||||
|
||||
type Runner struct {
|
||||
ID int `db:"id" json:"-"`
|
||||
ID int `db:"id" json:"id"`
|
||||
Token string `db:"token" json:"-"`
|
||||
ProjectID *int `db:"project_id" json:"project_id"`
|
||||
//State RunnerState `db:"state" json:"state"`
|
||||
Webhook string `db:"webhook" json:"webhook"`
|
||||
MaxParallelTasks int `db:"max_parallel_tasks" json:"max_parallel_tasks"`
|
||||
Active bool `db:"active" json:"active"`
|
||||
Name string `db:"name" json:"name"`
|
||||
}
|
||||
|
@ -256,8 +256,9 @@ type Store interface {
|
||||
GetRunner(projectID int, runnerID int) (Runner, error)
|
||||
GetRunners(projectID int) ([]Runner, error)
|
||||
DeleteRunner(projectID int, runnerID int) error
|
||||
GetGlobalRunnerByToken(token string) (Runner, error)
|
||||
GetGlobalRunner(runnerID int) (Runner, error)
|
||||
GetGlobalRunners() ([]Runner, error)
|
||||
GetGlobalRunners(activeOnly bool) ([]Runner, error)
|
||||
DeleteGlobalRunner(runnerID int) error
|
||||
UpdateRunner(runner Runner) error
|
||||
CreateRunner(runner Runner) (Runner, error)
|
||||
|
@ -17,14 +17,42 @@ func (d *BoltDb) DeleteRunner(projectID int, runnerID int) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (d *BoltDb) GetGlobalRunnerByToken(token string) (runner db.Runner, err error) {
|
||||
|
||||
runners := make([]db.Runner, 0)
|
||||
|
||||
err = d.getObjects(0, db.GlobalRunnerProps, db.RetrieveQueryParams{}, func(i interface{}) bool {
|
||||
r := i.(db.Runner)
|
||||
return r.Token == token
|
||||
}, &runners)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if len(runners) == 0 {
|
||||
err = db.ErrNotFound
|
||||
return
|
||||
}
|
||||
|
||||
runner = runners[0]
|
||||
return
|
||||
}
|
||||
|
||||
func (d *BoltDb) GetGlobalRunner(runnerID int) (runner db.Runner, err error) {
|
||||
err = d.getObject(0, db.GlobalRunnerProps, intObjectID(runnerID), &runner)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (d *BoltDb) GetGlobalRunners() (runners []db.Runner, err error) {
|
||||
err = d.getObjects(0, db.GlobalRunnerProps, db.RetrieveQueryParams{}, nil, &runners)
|
||||
func (d *BoltDb) GetGlobalRunners(activeOnly bool) (runners []db.Runner, err error) {
|
||||
err = d.getObjects(0, db.GlobalRunnerProps, db.RetrieveQueryParams{}, func(i interface{}) bool {
|
||||
runner := i.(*db.Runner)
|
||||
if activeOnly {
|
||||
return runner.Active
|
||||
}
|
||||
return true
|
||||
}, &runners)
|
||||
return
|
||||
}
|
||||
|
||||
|
2
db/sql/migrations/v2.10.26.sql
Normal file
2
db/sql/migrations/v2.10.26.sql
Normal file
@ -0,0 +1,2 @@
|
||||
alter table `runner` add `name` varchar(100) not null default '';
|
||||
alter table `runner` add `active` boolean not null default true;
|
@ -2,6 +2,7 @@ package sql
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/ansible-semaphore/semaphore/db"
|
||||
"github.com/gorilla/securecookie"
|
||||
)
|
||||
@ -18,13 +19,40 @@ func (d *SqlDb) DeleteRunner(projectID int, runnerID int) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (d *SqlDb) GetGlobalRunnerByToken(token string) (runner db.Runner, err error) {
|
||||
|
||||
runners := make([]db.Runner, 0)
|
||||
|
||||
err = d.getObjects(0, db.GlobalRunnerProps, db.RetrieveQueryParams{}, func(builder squirrel.SelectBuilder) squirrel.SelectBuilder {
|
||||
return builder.Where("token=?", token)
|
||||
}, &runners)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if len(runners) == 0 {
|
||||
err = db.ErrNotFound
|
||||
return
|
||||
}
|
||||
|
||||
runner = runners[0]
|
||||
return
|
||||
}
|
||||
|
||||
func (d *SqlDb) GetGlobalRunner(runnerID int) (runner db.Runner, err error) {
|
||||
err = d.getObject(0, db.GlobalRunnerProps, runnerID, &runner)
|
||||
return
|
||||
}
|
||||
|
||||
func (d *SqlDb) GetGlobalRunners() (runners []db.Runner, err error) {
|
||||
err = d.getObjects(0, db.GlobalRunnerProps, db.RetrieveQueryParams{}, nil, &runners)
|
||||
func (d *SqlDb) GetGlobalRunners(activeOnly bool) (runners []db.Runner, err error) {
|
||||
err = d.getObjects(0, db.GlobalRunnerProps, db.RetrieveQueryParams{}, func(builder squirrel.SelectBuilder) squirrel.SelectBuilder {
|
||||
if activeOnly {
|
||||
builder = builder.Where("active=?", activeOnly)
|
||||
}
|
||||
|
||||
return builder
|
||||
}, &runners)
|
||||
return
|
||||
}
|
||||
|
||||
@ -35,7 +63,9 @@ func (d *SqlDb) DeleteGlobalRunner(runnerID int) (err error) {
|
||||
|
||||
func (d *SqlDb) UpdateRunner(runner db.Runner) (err error) {
|
||||
_, err = d.exec(
|
||||
"update runner set webhook=?, max_parallel_tasks=? where id=?",
|
||||
"update runner set name=?, active=?, webhook=?, max_parallel_tasks=? where id=?",
|
||||
runner.Name,
|
||||
runner.Active,
|
||||
runner.Webhook,
|
||||
runner.MaxParallelTasks,
|
||||
runner.ID)
|
||||
@ -48,11 +78,13 @@ func (d *SqlDb) CreateRunner(runner db.Runner) (newRunner db.Runner, err error)
|
||||
|
||||
insertID, err := d.insert(
|
||||
"id",
|
||||
"insert into runner (project_id, token, webhook, max_parallel_tasks) values (?, ?, ?, ?)",
|
||||
"insert into runner (project_id, token, webhook, max_parallel_tasks, name, active) values (?, ?, ?, ?, ?, ?)",
|
||||
runner.ProjectID,
|
||||
token,
|
||||
runner.Webhook,
|
||||
runner.MaxParallelTasks)
|
||||
runner.MaxParallelTasks,
|
||||
runner.Name,
|
||||
runner.Active)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
|
@ -5,7 +5,7 @@ services:
|
||||
image: docker.io/semaphoreui/runner:${SEMAPHORE_VERSION:-latest}
|
||||
restart: always
|
||||
environment:
|
||||
SEMAPHORE_RUNNER_API_URL: ${SEMAPHORE_RUNNER_API_URL:-http://server:3000/api}
|
||||
SEMAPHORE_RUNNER_API_URL: ${SEMAPHORE_RUNNER_API_URL:-http://server:3000/internal}
|
||||
SEMAPHORE_RUNNER_REGISTRATION_TOKEN: ${SEMAPHORE_RUNNER_REGISTRATION_TOKEN:-H1wDyorbg6gTSwJlVwle2Fne}
|
||||
|
||||
server:
|
||||
|
@ -29,7 +29,7 @@ type JobPool struct {
|
||||
|
||||
queue []*job
|
||||
|
||||
config *util.RunnerConfig
|
||||
token *string
|
||||
|
||||
processing int32
|
||||
}
|
||||
@ -56,19 +56,13 @@ func (p *JobPool) hasRunningJobs() bool {
|
||||
|
||||
func (p *JobPool) Unregister() (err error) {
|
||||
|
||||
config, err := util.LoadRunnerSettings(util.Config.Runner.ConfigFile)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if config.Token == "" {
|
||||
if util.Config.Runner.Token == "" {
|
||||
return fmt.Errorf("runner is not registered")
|
||||
}
|
||||
|
||||
client := &http.Client{}
|
||||
|
||||
url := util.Config.Runner.ApiURL + "/runners"
|
||||
url := util.Config.Runner.ApiURL + "/internal/runners"
|
||||
|
||||
req, err := http.NewRequest("DELETE", url, nil)
|
||||
if err != nil {
|
||||
@ -85,9 +79,8 @@ func (p *JobPool) Unregister() (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
err = os.Remove(util.Config.Runner.ConfigFile)
|
||||
if err != nil {
|
||||
return
|
||||
if util.Config.Runner.TokenFile != "" {
|
||||
err = os.Remove(util.Config.Runner.TokenFile)
|
||||
}
|
||||
|
||||
return
|
||||
@ -190,7 +183,7 @@ func (p *JobPool) sendProgress() {
|
||||
|
||||
client := &http.Client{}
|
||||
|
||||
url := util.Config.Runner.ApiURL + "/runners/" + strconv.Itoa(p.config.RunnerID)
|
||||
url := util.Config.Runner.ApiURL + "/internal/runners"
|
||||
|
||||
body := RunnerProgress{
|
||||
Jobs: nil,
|
||||
@ -220,7 +213,7 @@ func (p *JobPool) sendProgress() {
|
||||
return
|
||||
}
|
||||
|
||||
req.Header.Set("X-API-Token", p.config.Token)
|
||||
req.Header.Set("X-Runner-Token", *p.token)
|
||||
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
@ -232,20 +225,20 @@ func (p *JobPool) sendProgress() {
|
||||
}
|
||||
|
||||
func (p *JobPool) tryRegisterRunner() bool {
|
||||
if p.config != nil {
|
||||
if p.token != nil {
|
||||
return true
|
||||
}
|
||||
|
||||
log.Info("Attempting to register on the server")
|
||||
|
||||
config, err := util.LoadRunnerSettings(util.Config.Runner.ConfigFile)
|
||||
//config, err := util.LoadRunnerSettings(util.Config.Runner.ConfigFile)
|
||||
//
|
||||
//if err != nil {
|
||||
// panic(err)
|
||||
//}
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if config.Token != "" {
|
||||
p.config = &config
|
||||
if util.Config.Runner.Token != "" {
|
||||
p.token = &util.Config.Runner.Token
|
||||
return true
|
||||
}
|
||||
|
||||
@ -259,7 +252,7 @@ func (p *JobPool) tryRegisterRunner() bool {
|
||||
|
||||
client := &http.Client{}
|
||||
|
||||
url := util.Config.Runner.ApiURL + "/runners"
|
||||
url := util.Config.Runner.ApiURL + "/internal/runners"
|
||||
|
||||
jsonBytes, err := json.Marshal(RunnerRegistration{
|
||||
RegistrationToken: util.Config.Runner.RegistrationToken,
|
||||
@ -269,37 +262,35 @@ func (p *JobPool) tryRegisterRunner() bool {
|
||||
|
||||
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonBytes))
|
||||
if err != nil {
|
||||
log.Error("Error creating request:", err)
|
||||
log.Error("Registration: Error creating request:", err)
|
||||
return false
|
||||
}
|
||||
|
||||
resp, err := client.Do(req)
|
||||
if err != nil || resp.StatusCode != 200 {
|
||||
log.Error("Error making request:", err)
|
||||
log.Error("Registration: Error making request:", err)
|
||||
return false
|
||||
}
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
fmt.Println("Error reading response body:", err)
|
||||
fmt.Println("Registration: Error reading response body:", err)
|
||||
return false
|
||||
}
|
||||
|
||||
err = json.Unmarshal(body, &config)
|
||||
var res struct {
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
||||
err = json.Unmarshal(body, &res)
|
||||
if err != nil {
|
||||
fmt.Println("Error parsing JSON:", err)
|
||||
fmt.Println("Registration: Error parsing JSON:", err)
|
||||
return false
|
||||
}
|
||||
|
||||
configBytes, err := json.Marshal(config)
|
||||
err = os.WriteFile(util.Config.Runner.TokenFile, []byte(res.Token), 0644)
|
||||
|
||||
if err != nil {
|
||||
panic("cannot save runner config")
|
||||
}
|
||||
|
||||
err = os.WriteFile(util.Config.Runner.ConfigFile, configBytes, 0644)
|
||||
|
||||
p.config = &config
|
||||
p.token = &res.Token
|
||||
|
||||
defer resp.Body.Close()
|
||||
|
||||
@ -309,13 +300,18 @@ func (p *JobPool) tryRegisterRunner() bool {
|
||||
// checkNewJobs tries to find runner to queued jobs
|
||||
func (p *JobPool) checkNewJobs() {
|
||||
|
||||
if p.token == nil {
|
||||
fmt.Println("Error creating request:", "no token provided")
|
||||
return
|
||||
}
|
||||
|
||||
client := &http.Client{}
|
||||
|
||||
url := util.Config.Runner.ApiURL + "/runners/" + strconv.Itoa(p.config.RunnerID)
|
||||
url := util.Config.Runner.ApiURL + "/internal/runners"
|
||||
|
||||
req, err := http.NewRequest("GET", url, nil)
|
||||
|
||||
req.Header.Set("X-API-Token", p.config.Token)
|
||||
req.Header.Set("X-Runner-Token", *p.token)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println("Error creating request:", err)
|
||||
|
@ -79,7 +79,7 @@ func (t *RemoteJob) Run(username string, incomingVersion *string) (err error) {
|
||||
|
||||
var runners []db.Runner
|
||||
db.StoreSession(t.taskPool.store, "run remote job", func() {
|
||||
runners, err = t.taskPool.store.GetGlobalRunners()
|
||||
runners, err = t.taskPool.store.GetGlobalRunners(true)
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
|
@ -91,16 +91,20 @@ const (
|
||||
//
|
||||
// */
|
||||
|
||||
type RunnerConfig struct {
|
||||
RunnerID int `json:"runner_id" env:"SEMAPHORE_RUNNER_ID"`
|
||||
Token string `json:"token" env:"SEMAPHORE_RUNNER_TOKEN"`
|
||||
}
|
||||
|
||||
type RunnerSettings struct {
|
||||
ApiURL string `json:"api_url" env:"SEMAPHORE_RUNNER_API_URL"`
|
||||
RegistrationToken string `json:"registration_token" env:"SEMAPHORE_RUNNER_REGISTRATION_TOKEN"`
|
||||
ConfigFile string `json:"config_file" env:"SEMAPHORE_RUNNER_CONFIG_FILE"`
|
||||
// OneOff indicates than runner runs only one job and exit
|
||||
|
||||
Token string `json:"token" env:"SEMAPHORE_RUNNER_TOKEN"`
|
||||
TokenFile string `json:"token_file" env:"SEMAPHORE_RUNNER_TOKEN_FILE"`
|
||||
|
||||
// OneOff indicates than runner runs only one job and exit. It is very useful for dynamic runners.
|
||||
// How it works?
|
||||
// Example:
|
||||
// 1) User starts the task.
|
||||
// 2) Semaphore found runner for task and calls runner's webhook if it provided.
|
||||
// 3) Your server or lambda handling the call and starts the one-off runner.
|
||||
// 4) The runner connects to the Semaphore server and handles the enqueued task(s).
|
||||
OneOff bool `json:"one_off" env:"SEMAPHORE_RUNNER_ONE_OFF"`
|
||||
|
||||
Webhook string `json:"webhook" env:"SEMAPHORE_RUNNER_WEBHOOK"`
|
||||
@ -206,57 +210,16 @@ func (conf *ConfigType) ToJSON() ([]byte, error) {
|
||||
return json.MarshalIndent(&conf, " ", "\t")
|
||||
}
|
||||
|
||||
func LoadRunnerSettings(path string) (config RunnerConfig, err error) {
|
||||
configFileExists := false
|
||||
|
||||
if path != "" {
|
||||
_, err = os.Stat(path)
|
||||
|
||||
if os.IsNotExist(err) {
|
||||
configFileExists = false
|
||||
} else if err != nil {
|
||||
return
|
||||
} else {
|
||||
configFileExists = true
|
||||
}
|
||||
}
|
||||
|
||||
if configFileExists {
|
||||
|
||||
var configBytes []byte
|
||||
configBytes, err = os.ReadFile(path)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
err = json.Unmarshal(configBytes, &config)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
err = loadEnvironmentToObject(&config)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
err = loadDefaultsToObject(&config)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// ConfigInit reads in cli flags, and switches actions appropriately on them
|
||||
func ConfigInit(configPath string) {
|
||||
func ConfigInit(configPath string, noConfigFile bool) {
|
||||
fmt.Println("Loading config")
|
||||
|
||||
Config = &ConfigType{}
|
||||
Config.Apps = map[string]App{}
|
||||
|
||||
loadConfigFile(configPath)
|
||||
if !noConfigFile {
|
||||
loadConfigFile(configPath)
|
||||
}
|
||||
loadConfigEnvironment()
|
||||
loadConfigDefaults()
|
||||
|
||||
@ -275,6 +238,13 @@ func ConfigInit(configPath string) {
|
||||
if len(WebHostURL.String()) == 0 {
|
||||
WebHostURL = nil
|
||||
}
|
||||
|
||||
if Config.Runner.TokenFile != "" {
|
||||
runnerTokenBytes, err := os.ReadFile(Config.Runner.TokenFile)
|
||||
if err == nil {
|
||||
Config.Runner.Token = string(runnerTokenBytes)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func loadConfigFile(configPath string) {
|
||||
@ -291,6 +261,7 @@ func loadConfigFile(configPath string) {
|
||||
paths := []string{
|
||||
path.Join(cwd, "config.json"),
|
||||
"/usr/local/etc/semaphore/config.json",
|
||||
"/etc/semaphore/config.json",
|
||||
}
|
||||
for _, p := range paths {
|
||||
_, err = os.Stat(p)
|
||||
|
59
web/gulp-gpt-translate.js
Normal file
59
web/gulp-gpt-translate.js
Normal file
@ -0,0 +1,59 @@
|
||||
const through = require('through2');
|
||||
const PluginError = require('plugin-error');
|
||||
const { OpenAI } = require('openai');
|
||||
|
||||
const PLUGIN_NAME = 'gulp-gpt-translate';
|
||||
|
||||
function gptTranslate(options) {
|
||||
if (!options || !options.apiKey) {
|
||||
throw new PluginError(PLUGIN_NAME, 'An OpenAI API key is required.');
|
||||
}
|
||||
|
||||
if (!options.targetLanguage) {
|
||||
throw new PluginError(PLUGIN_NAME, 'A target language must be specified.');
|
||||
}
|
||||
|
||||
const openai = new OpenAI();
|
||||
|
||||
return through.obj(function (file, enc, cb) {
|
||||
const self = this;
|
||||
|
||||
if (file.isNull()) {
|
||||
return cb(null, file); // Pass along if no contents
|
||||
}
|
||||
|
||||
if (file.isStream()) {
|
||||
self.emit('error', new PluginError(PLUGIN_NAME, 'Streaming not supported.'));
|
||||
return cb();
|
||||
}
|
||||
|
||||
(async () => {
|
||||
try {
|
||||
const content = file.contents.toString(enc);
|
||||
|
||||
const response = await openai.chat.completions.create({
|
||||
model: options.model || 'gpt-4o-mini',
|
||||
temperature: 0,
|
||||
messages: [
|
||||
{
|
||||
role: 'system',
|
||||
content: `You are a helpful assistant that translates text to ${options.targetLanguage}. `,
|
||||
},
|
||||
...(options.messages || []).map((m) => ({ role: 'user', content: m })),
|
||||
{ role: 'user', content },
|
||||
],
|
||||
});
|
||||
|
||||
file.contents = Buffer.from(`${response.choices[0].message.content}\n`, enc);
|
||||
|
||||
self.push(file);
|
||||
cb();
|
||||
} catch (err) {
|
||||
self.emit('error', new PluginError(PLUGIN_NAME, err.message));
|
||||
cb(err);
|
||||
}
|
||||
})();
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = gptTranslate;
|
39
web/gulpfile.js
Normal file
39
web/gulpfile.js
Normal file
@ -0,0 +1,39 @@
|
||||
const { src, dest } = require('gulp');
|
||||
const rename = require('gulp-rename');
|
||||
require('dotenv').config();
|
||||
const gptTranslate = require('./gulp-gpt-translate');
|
||||
|
||||
const LANG_NAMES = {
|
||||
en: 'English',
|
||||
ru: 'Russian',
|
||||
es: 'Spanish',
|
||||
fr: 'French',
|
||||
de: 'German',
|
||||
it: 'Italian',
|
||||
ja: 'Japanese',
|
||||
ko: 'Korean',
|
||||
pt: 'Portuguese',
|
||||
zh_cn: 'Simplified Chinese',
|
||||
zh_tw: 'Traditional Chinese',
|
||||
nl: 'Dutch (Netherlands)',
|
||||
pl: 'Polish',
|
||||
pt_br: 'Brazilian Portuguese',
|
||||
};
|
||||
|
||||
function tr() {
|
||||
return Object.keys(LANG_NAMES).filter((lang) => lang !== 'en').map((lang) => src('src/lang/en.js')
|
||||
.pipe(gptTranslate({
|
||||
apiKey: process.env.OPENAI_API_KEY,
|
||||
targetLanguage: LANG_NAMES[lang],
|
||||
messages: [
|
||||
'Translate values of the JS object fields.',
|
||||
'Preserve file format. Do not wrap result to markdown tag. Result must be valid js file.',
|
||||
],
|
||||
}))
|
||||
.pipe(rename({ basename: lang }))
|
||||
.pipe(dest('src/lang')));
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
tr,
|
||||
};
|
2454
web/package-lock.json
generated
2454
web/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -32,17 +32,24 @@
|
||||
"@vue/test-utils": "^1.3.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"chai": "^4.3.6",
|
||||
"dotenv": "^16.4.5",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-vue": "^9.1.1",
|
||||
"eslint-plugin-vuejs-accessibility": "^1.2.0",
|
||||
"glob-parent": ">=5.1.2",
|
||||
"gulp": "^5.0.0",
|
||||
"gulp-cli": "^3.0.0",
|
||||
"gulp-rename": "^2.0.0",
|
||||
"nanoid": ">=3.1.31",
|
||||
"nyc": "^15.1.0",
|
||||
"openai": "^4.65.0",
|
||||
"plugin-error": "^2.0.1",
|
||||
"sass": "~1.32.12",
|
||||
"sass-loader": "^13.0.0",
|
||||
"stylus": "^0.54.8",
|
||||
"stylus-loader": "^3.0.2",
|
||||
"through2": "^4.0.2",
|
||||
"vue-cli-plugin-vuetify": "~2.0.7",
|
||||
"vue-template-compiler": "^2.6.14",
|
||||
"vuetify-loader": "^1.8.0"
|
||||
|
@ -376,7 +376,7 @@
|
||||
</v-list-item-content>
|
||||
|
||||
<v-list-item-action>
|
||||
<v-chip color="red" v-if="user.admin" small>admin</v-chip>
|
||||
<v-chip color="red" v-if="user.admin" small>{{ $i18n.t('admin') }}</v-chip>
|
||||
</v-list-item-action>
|
||||
</v-list-item>
|
||||
</template>
|
||||
@ -404,6 +404,20 @@
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
|
||||
<v-list-item
|
||||
key="runners"
|
||||
to="/runners"
|
||||
v-if="user.admin && systemInfo.use_remote_runner"
|
||||
>
|
||||
<v-list-item-icon>
|
||||
<v-icon>mdi-cogs</v-icon>
|
||||
</v-list-item-icon>
|
||||
|
||||
<v-list-item-content>
|
||||
{{ $t('runners') }}
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
|
||||
<v-list-item key="edit" @click="userDialog = true">
|
||||
<v-list-item-icon>
|
||||
<v-icon>mdi-pencil</v-icon>
|
||||
@ -439,6 +453,7 @@
|
||||
:userRole="(userRole || {}).role"
|
||||
:userId="(user || {}).id"
|
||||
:isAdmin="(user || {}).admin"
|
||||
:webHost="(systemInfo || {}).web_host"
|
||||
:user="user"
|
||||
></router-view>
|
||||
</v-main>
|
||||
|
61
web/src/components/RunnerForm.vue
Normal file
61
web/src/components/RunnerForm.vue
Normal file
@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<v-form
|
||||
ref="form"
|
||||
lazy-validation
|
||||
v-model="formValid"
|
||||
v-if="item != null"
|
||||
>
|
||||
<v-alert
|
||||
:value="formError"
|
||||
color="error"
|
||||
class="pb-2"
|
||||
>{{ formError }}</v-alert>
|
||||
|
||||
<v-text-field
|
||||
v-model="item.name"
|
||||
:label="$t('name')"
|
||||
:rules="[v => !!v || $t('name_required')]"
|
||||
required
|
||||
:disabled="formSaving"
|
||||
></v-text-field>
|
||||
|
||||
<v-text-field
|
||||
v-model="item.webhook"
|
||||
:label="$t('webhook')"
|
||||
required
|
||||
:disabled="formSaving"
|
||||
></v-text-field>
|
||||
|
||||
<v-text-field
|
||||
type="number"
|
||||
v-model.number="item.max_parallel_tasks"
|
||||
:label="$t('maxNumberOfParallelTasksOptional')"
|
||||
required
|
||||
:disabled="formSaving"
|
||||
></v-text-field>
|
||||
|
||||
<v-checkbox
|
||||
v-model="item.active"
|
||||
:label="$t('enabled')"
|
||||
></v-checkbox>
|
||||
</v-form>
|
||||
</template>
|
||||
<script>
|
||||
import ItemFormBase from '@/components/ItemFormBase';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
isAdmin: Boolean,
|
||||
},
|
||||
mixins: [ItemFormBase],
|
||||
methods: {
|
||||
getItemsUrl() {
|
||||
return '/api/runners';
|
||||
},
|
||||
|
||||
getSingleItemUrl() {
|
||||
return `/api/runners/${this.itemId}`;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
@ -149,13 +149,13 @@
|
||||
v-model="item.active"
|
||||
>
|
||||
<template v-slot:label>
|
||||
Enabled
|
||||
{{ $t('enabled') }}
|
||||
<span
|
||||
v-if="item.active"
|
||||
class="ml-3"
|
||||
style="color: limegreen; font-weight: bold;"
|
||||
>
|
||||
Next run {{ nextRunTime() | formatDate }}.
|
||||
{{ $t('scheduleNextRun') }} {{ nextRunTime() | formatDate }}.
|
||||
</span>
|
||||
</template>
|
||||
</v-checkbox>
|
||||
|
@ -1,62 +1,64 @@
|
||||
export default {
|
||||
'Check interval': 'Überprüfungsintervall',
|
||||
Schedule: 'Zeitplan',
|
||||
backup: 'Sicherung',
|
||||
downloadTheProjectBackupFile: 'Laden Sie die Projektsicherungsdatei (in JSON) herunter.',
|
||||
restoreProject: 'Wiederherstellen...',
|
||||
incorrectUsrPwd: 'Falscher Benutzername oder falsches Passwort',
|
||||
askDeleteUser: 'Soll dieser Benutzer gelöscht werden?',
|
||||
askDeleteTemp: 'Soll diese Vorlage gelöscht werden?',
|
||||
askDeleteEnv: 'Soll diese Umgebung gelöscht werden?',
|
||||
askDeleteInv: 'Soll dieses Inventar gelöscht werden?',
|
||||
askDeleteKey: 'Soll dieser Schlüssel gelöscht werden?',
|
||||
askDeleteRepo: 'Soll dieses Repository gelöscht werden?',
|
||||
askDeleteProj: 'Soll dieses Projekt gelöscht werden?',
|
||||
askDeleteTMem: 'Soll dieses Teammitglied gelöscht werden?',
|
||||
downloadTheProjectBackupFile: 'Laden Sie die Projektbackup-Datei (im JSON-Format) herunter',
|
||||
restoreProject: 'Projekt wiederherstellen...',
|
||||
incorrectUsrPwd: 'Falscher Benutzername oder Passwort',
|
||||
askDeleteUser: 'Möchten Sie diesen Benutzer wirklich löschen?',
|
||||
askDeleteTemp: 'Möchten Sie diese Vorlage wirklich löschen?',
|
||||
askDeleteEnv: 'Möchten Sie diese Umgebung wirklich löschen?',
|
||||
askDeleteInv: 'Möchten Sie diesen Inventar wirklich löschen?',
|
||||
askDeleteKey: 'Möchten Sie diesen Schlüssel wirklich löschen?',
|
||||
askDeleteRepo: 'Möchten Sie dieses Repository wirklich löschen?',
|
||||
askDeleteProj: 'Möchten Sie dieses Projekt wirklich löschen?',
|
||||
askDeleteTMem: 'Möchten Sie dieses Teammitglied wirklich löschen?',
|
||||
edit: 'Bearbeiten',
|
||||
nnew: 'Neu',
|
||||
keyFormSshKey: 'SSH Schlüssel',
|
||||
keyFormLoginPassword: 'Benutzername mit Passwort',
|
||||
keyFormSshKey: 'SSH-Schlüssel',
|
||||
keyFormLoginPassword: 'Anmeldung mit Passwort',
|
||||
keyFormNone: 'Keine',
|
||||
incorrectUrl: 'Ungültige URL',
|
||||
incorrectUrl: 'Falsche URL',
|
||||
username: 'Benutzername',
|
||||
username_required: 'Benutzername ist erforderlich',
|
||||
dashboard: 'Oberfläche',
|
||||
history: 'Protokoll',
|
||||
dashboard: 'Dashboard',
|
||||
history: 'Verlauf',
|
||||
activity: 'Aktivität',
|
||||
settings: 'Einstellungen',
|
||||
signIn: 'Einloggen',
|
||||
signIn: 'Anmelden',
|
||||
password: 'Passwort',
|
||||
changePassword: 'Passwort ändern',
|
||||
editUser: 'Benutzer bearbeiten',
|
||||
newProject: 'Neues Projekt',
|
||||
close: 'Schließen',
|
||||
newProject2: 'Neues Projekt...',
|
||||
demoMode: 'Demo-Modus',
|
||||
demoMode: 'DEMO-MODUS',
|
||||
task: 'Aufgabe #{expr}',
|
||||
youCanRunAnyTasks: 'Sie können jede Anwendungsvorlage ausführen',
|
||||
youCanRunAnyTasks: 'Sie können beliebige Aufgaben ausführen',
|
||||
youHaveReadonlyAccess: 'Sie haben nur Lesezugriff',
|
||||
taskTemplates: 'Anwendungsvorlagen',
|
||||
taskTemplates: 'Aufgabenvorlagen',
|
||||
inventory: 'Inventar',
|
||||
environment: 'Umgebung',
|
||||
keyStore: 'Schlüsselspeicher',
|
||||
keyStore: 'Schlüsselverwaltung',
|
||||
repositories: 'Repositories',
|
||||
darkMode: 'Dunkler Modus',
|
||||
darkMode: 'Dunkelmodus',
|
||||
team: 'Team',
|
||||
users: 'Benutzer',
|
||||
editAccount: 'Account bearbeiten',
|
||||
signOut: 'Ausloggen',
|
||||
editAccount: 'Konto bearbeiten',
|
||||
signOut: 'Abmelden',
|
||||
error: 'Fehler',
|
||||
refreshPage: 'Seite aktualisieren',
|
||||
relogin: 'Neu einloggen',
|
||||
howToFixSigninIssues: 'Login-Probleme beheben',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Zuerst benötigen Sie Zugriff auf den Server, auf dem Semaphore ausgeführt wird.',
|
||||
relogin: 'Erneut anmelden',
|
||||
howToFixSigninIssues: 'So beheben Sie Anmeldeprobleme',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Zuerst benötigen Sie Zugriff auf den Server, auf dem Semaphore läuft.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Führen Sie den folgenden Befehl auf dem Server aus, um vorhandene Benutzer anzuzeigen:',
|
||||
semaphoreUserList: 'semaphore user list',
|
||||
youCanChangePasswordOfExistingUser: 'Sie können das Passwort eines vorhandenen Benutzers ändern:',
|
||||
youCanChangePasswordOfExistingUser: 'Sie können das Passwort des vorhandenen Benutzers ändern:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: 'Erstellen Sie einen neuen Administratorbenutzer:',
|
||||
orCreateNewAdminUser: 'Oder erstellen Sie einen neuen Administrationsbenutzer:',
|
||||
close2: 'Schließen',
|
||||
semaphore: 'SEMAPHORE',
|
||||
dontHaveAccountOrCantSignIn: 'Haben Sie keinen Account oder können Sie sich nicht einloggen?',
|
||||
dontHaveAccountOrCantSignIn: 'Haben Sie kein Konto oder können Sie sich nicht anmelden?',
|
||||
password2: 'Passwort',
|
||||
cancel: 'Abbrechen',
|
||||
noViews: 'Keine Ansichten',
|
||||
@ -65,116 +67,118 @@ export default {
|
||||
deleteEnvironment: 'Umgebung löschen',
|
||||
environment2: 'Umgebung',
|
||||
newEnvironment: 'Neue Umgebung',
|
||||
environmentName: 'Name der Umgebung',
|
||||
environmentName: 'Umgebungsname',
|
||||
extraVariables: 'Zusätzliche Variablen',
|
||||
enterExtraVariablesJson: 'Geben Sie zusätzliche Variablen im JSON-Format ein...',
|
||||
environmentVariables: 'Umgebungsvariablen',
|
||||
enterEnvJson: 'Geben Sie Umgebungsvariablen im JSON-Format ein...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'Zusätzliche Variablen und Umgebungsvariablen müssen gültiges JSON sein. Beispiel:',
|
||||
dashboard2: 'Oberfläche',
|
||||
enterEnvJson: 'Geben Sie die Umgebungs-JSON ein...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'Umgebungs- und zusätzliche Variablen müssen gültiges JSON sein. Beispiel:',
|
||||
dashboard2: 'Dashboard',
|
||||
ansibleSemaphore: 'Semaphore UI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Es tut uns leid, aber <%= htmlWebpackPlugin.options.title %> funktioniert nicht richtig ohne JavaScript. Bitte aktivieren Sie es, um fortzufahren.',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Es tut uns leid, aber <%= htmlWebpackPlugin.options.title %> funktioniert nicht richtig, ohne dass JavaScript aktiviert ist. Bitte aktivieren Sie es, um fortzufahren.',
|
||||
deleteInventory: 'Inventar löschen',
|
||||
newInventory: 'Neues Inventar',
|
||||
name: 'Name',
|
||||
userCredentials: 'Benutzeranmeldeinformationen',
|
||||
sudoCredentialsOptional: 'Sudo-Anmeldeinformationen (Optional)',
|
||||
userCredentials: 'Benutzerdaten',
|
||||
sudoCredentialsOptional: 'Sudo-Daten (Optional)',
|
||||
type: 'Typ',
|
||||
pathToInventoryFile: 'Pfad zur Inventar-Datei',
|
||||
enterInventory: 'Inventar eingeben...',
|
||||
staticInventoryExample: 'Beispiel für statisches Inventar:',
|
||||
staticYamlInventoryExample: 'Beispiel für statisches YAML-Inventar:',
|
||||
staticInventoryExample: 'Statisches Inventar-Beispiel:',
|
||||
staticYamlInventoryExample: 'Statisches YAML-Inventar-Beispiel:',
|
||||
keyName: 'Schlüsselname',
|
||||
loginOptional: 'Login (Optional)',
|
||||
loginOptional: 'Anmeldung (Optional)',
|
||||
usernameOptional: 'Benutzername (Optional)',
|
||||
privateKey: 'Privater Schlüssel',
|
||||
override: 'Überschreiben',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Verwenden Sie diesen Schlüsseltyp für HTTPS-Repositories und für Playbooks, die nicht-SSH-Verbindungen verwenden.',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Verwenden Sie diesen Schlüsseltyp für HTTPS-Repositories und für Playbooks, die keine SSH-Verbindungen verwenden.',
|
||||
deleteKey: 'Schlüssel löschen',
|
||||
newKey: 'Neuer Schlüssel',
|
||||
create: 'Erstellen',
|
||||
newTask: 'Neue Aufgabe',
|
||||
cantDeleteThe: 'Kann {objectTitle} nicht löschen',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: 'Kann {objectTitle} nicht löschen, da es von den unten aufgeführten Ressourcen verwendet wird.',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle} kann nicht gelöscht werden, da es von den folgenden Ressourcen verwendet wird',
|
||||
projectName: 'Projektname',
|
||||
allowAlertsForThisProject: 'Alarme für dieses Projekt zulassen',
|
||||
telegramChatIdOptional: 'Telegram Chat ID (Optional)',
|
||||
maxNumberOfParallelTasksOptional: 'Maximale Anzahl an gleichzeitig ausführbaren Aufgaben (Optional)',
|
||||
allowAlertsForThisProject: 'Benachrichtigungen für dieses Projekt zulassen',
|
||||
telegramChatIdOptional: 'Telegram-Chat-ID (Optional)',
|
||||
maxNumberOfParallelTasksOptional: 'Maximale Anzahl paralleler Aufgaben (Optional)',
|
||||
deleteRepository: 'Repository löschen',
|
||||
newRepository: 'Neues Repository',
|
||||
urlOrPath: 'URL oder Pfad',
|
||||
absPath: 'absoluter Pfad',
|
||||
branch: 'Branch',
|
||||
branch: 'Zweig',
|
||||
accessKey: 'Zugriffsschlüssel',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Anmeldeinformationen zum Zugriff auf das Git-Repository. Es sollte ein Zugriffsschlüssel sein, der Zugriff auf das Repository gewährt.',
|
||||
ifYouUseGitOrSshUrl: 'Wenn Sie Git oder SSH URL verwenden.',
|
||||
ifYouUseHttpsOrFileUrl: 'Wenn sie HTTPS oder statische Dateien verwenden.',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Anmeldeinformationen für den Zugriff auf das Git-Repository. Es sollte sein:',
|
||||
ifYouUseGitOrSshUrl: 'wenn Sie Git- oder SSH-URL verwenden.',
|
||||
ifYouUseHttpsOrFileUrl: 'wenn Sie HTTPS- oder Datei-URL verwenden.',
|
||||
none: 'Keine',
|
||||
ssh: 'SSH',
|
||||
deleteProject: 'Projekt löschen',
|
||||
save: 'Speichern',
|
||||
deleteProject2: 'Projekt löschen',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Gelöschte Projekte können nicht wiederhergestellt werden. Bitte seien Sie sicher.',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Sobald Sie ein Projekt löschen, gibt es kein Zurück. Bitte seien Sie sich dessen bewusst.',
|
||||
name2: 'Name *',
|
||||
title: 'Titel *',
|
||||
description: 'Beschreibung',
|
||||
required: 'Erforderlich',
|
||||
key: '{expr}',
|
||||
surveyVariables: 'Variablen',
|
||||
surveyVariables: 'Umfragevariablen',
|
||||
addVariable: 'Variable hinzufügen',
|
||||
columns: 'Spalten',
|
||||
buildVersion: 'Build Version',
|
||||
buildVersion: 'Build-Version',
|
||||
messageOptional: 'Nachricht (Optional)',
|
||||
debug: 'Debug',
|
||||
dryRun: 'Dry Run',
|
||||
diff: 'Unterschied',
|
||||
dryRun: 'Trockenlauf',
|
||||
diff: 'Differenz',
|
||||
advanced: 'Erweitert',
|
||||
hide: 'Verstecken',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Bitte erlauben Sie das Überschreiben von CLI-Argumenten in den Einstellungen der Anwendungsvorlage.',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI-Argumente (JSON array). Beispiel: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
hide: 'Ausblenden',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Um das Überschreiben von CLI-Argumenten in den Einstellungen der Aufgaben-Vorlage zuzulassen',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI-Argumente (JSON-Array). Beispiel: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: 'Gestartet',
|
||||
author: 'Autor',
|
||||
duration: 'Dauer',
|
||||
stop: 'Stoppen',
|
||||
stop: 'Stop',
|
||||
forceStop: 'Zwangsstop',
|
||||
confirmTask: 'Bestätigen',
|
||||
deleteTeamMember: 'Teammitglied löschen',
|
||||
team2: 'Team',
|
||||
newTeamMember: 'Neues Teammitglied',
|
||||
user: 'Benutzer',
|
||||
administrator: 'Administrator',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Definiert die Startversion Ihres Artefakts. Jeder Lauf erhöht die Version um 1. Beispiel: 0.0.0',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Definiert die Startversion Ihres Artefakts. Jeder Lauf erhöht die Artefaktversion.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Für weitere Informationen zum Erstellen siehe die',
|
||||
taskTemplateReference: 'Referenz für Anwendungsvorlagen',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Definiert, welches Artefakt bereitgestellt werden soll, wenn die Aufgabe ausgeführt wird. Beispiel: myapp-{{build_version}}.tar.gz',
|
||||
taskTemplateReference: 'Aufgabenvorlagenreferenz',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Definiert, welches Artefakt bereitgestellt werden soll, wenn die Aufgabe ausgeführt wird.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Für weitere Informationen zur Bereitstellung siehe die',
|
||||
taskTemplateReference2: 'Referenz für Anwendungsvorlagen',
|
||||
definesAutorunSchedule: 'Definiert den cron-Zeitplan. Beispiel: 0 0 * * *',
|
||||
taskTemplateReference2: 'Aufgabenvorlagenreferenz',
|
||||
definesAutorunSchedule: 'Definiert den Zeitplan für die automatische Ausführung.',
|
||||
forMoreInformationAboutCronSeeThe: 'Für weitere Informationen zu Cron siehe die',
|
||||
cronExpressionFormatReference: 'cron-Ausdrucksformat-Referenz',
|
||||
startVersion: 'Start Version',
|
||||
cronExpressionFormatReference: 'Referenz für das Cron-Ausdrucksformat',
|
||||
startVersion: 'Startversion',
|
||||
example000: 'Beispiel: 0.0.0',
|
||||
buildTemplate: 'Anwendungsvorlage erstellen',
|
||||
autorun: 'Autorun',
|
||||
playbookFilename: 'Name der Playbook-Datei *',
|
||||
buildTemplate: 'Build-Vorlage',
|
||||
autorun: 'Automatische Ausführung',
|
||||
playbookFilename: 'Playbook-Dateiname *',
|
||||
exampleSiteyml: 'Beispiel: site.yml',
|
||||
inventory2: 'Inventar *',
|
||||
repository: 'Repository',
|
||||
environment3: 'Umgebung *',
|
||||
vaultPassword: 'Vault Passwort',
|
||||
vaultPassword2: 'Vault Passwort',
|
||||
vaultPassword: 'Vault-Passwort',
|
||||
vaultPassword2: 'Vault-Passwort',
|
||||
view: 'Ansicht',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Ich möchte eine Aufgabe nur für neue Commits eines bestimmten Branches ausführen.',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Ich möchte eine Aufgabe nur für neue Commits eines bestimmten Repositories über Cron ausführen',
|
||||
repository2: 'Repository',
|
||||
cronChecksNewCommitBeforeRun: 'Cron überprüft vor dem Ausführen neue Commits',
|
||||
cronChecksNewCommitBeforeRun: 'Cron überprüft neuen Commit vor der Ausführung',
|
||||
readThe: 'Lesen Sie die',
|
||||
toLearnMoreAboutCron: 'um mehr über Cron zu erfahren.',
|
||||
suppressSuccessAlerts: 'Erfolgsalarme unterdrücken',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI-Argumente (JSON array). Beispiel: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
suppressSuccessAlerts: 'Erfolgsbenachrichtigungen unterdrücken',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI-Argumente (JSON-Array). Beispiel: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'CLI-Argumente in der Aufgabe zulassen',
|
||||
docs: 'Dokumentation',
|
||||
docs: 'Dokumente',
|
||||
editViews: 'Ansichten bearbeiten',
|
||||
newTemplate: 'Neue Vorlage',
|
||||
taskTemplates2: 'Anwendungsvorlagen',
|
||||
taskTemplates2: 'Aufgabenvorlagen',
|
||||
all: 'Alle',
|
||||
notLaunched: 'Nicht gestartet',
|
||||
by: 'von {user_name}',
|
||||
@ -183,56 +187,73 @@ export default {
|
||||
deleteTemplate: 'Vorlage löschen',
|
||||
playbook: 'Playbook',
|
||||
email: 'E-Mail',
|
||||
adminUser: 'Admin Benutzer',
|
||||
sendAlerts: 'Alarme senden',
|
||||
adminUser: 'Admin-Benutzer',
|
||||
sendAlerts: 'Benachrichtigungen senden',
|
||||
deleteUser: 'Benutzer löschen',
|
||||
newUser: 'Neuer Benutzer',
|
||||
re: 'Wiederhole: {getActionButtonTitle}',
|
||||
re: 'Re{getActionButtonTitle}',
|
||||
teamMember: '{expr} Teammitglied',
|
||||
taskId: 'Task ID',
|
||||
taskId: 'Aufgaben-ID',
|
||||
version: 'Version',
|
||||
status: 'Status',
|
||||
start: 'Start',
|
||||
actions: 'Aktionen',
|
||||
alert: 'Alarm',
|
||||
alert: 'Benachrichtigung',
|
||||
admin: 'Admin',
|
||||
role: 'Rolle',
|
||||
external: 'Extern',
|
||||
time: 'Zeit',
|
||||
path: 'pfad',
|
||||
gitUrl: 'Git URL',
|
||||
sshKey: 'SSH Key',
|
||||
path: 'Pfad',
|
||||
gitUrl: 'Git-URL',
|
||||
sshKey: 'SSH-Schlüssel',
|
||||
lastTask: 'Letzte Aufgabe',
|
||||
task2: 'Aufgabe',
|
||||
build: 'Build',
|
||||
deploy: 'Deploy',
|
||||
build: 'Bauen',
|
||||
deploy: 'Bereitstellen',
|
||||
run: 'Ausführen',
|
||||
add: 'Hinzufügen',
|
||||
password_required: 'Passwort ist erforderlich',
|
||||
name_required: 'Name ist erforderlich',
|
||||
user_credentials_required: 'Benutzeranmeldeinformationen sind erforderlich',
|
||||
user_credentials_required: 'Benutzerdaten sind erforderlich',
|
||||
type_required: 'Typ ist erforderlich',
|
||||
path_required: 'Pfad zur Inventar-Datei ist erforderlich',
|
||||
private_key_required: 'Privater Schlüssel ist erforderlich',
|
||||
project_name_required: 'Projektname ist erforderlich',
|
||||
repository_required: 'Repository ist erforderlich',
|
||||
branch_required: 'Branch ist erforderlich',
|
||||
branch_required: 'Zweig ist erforderlich',
|
||||
key_required: 'Schlüssel ist erforderlich',
|
||||
user_required: 'Benutzer ist erforderlich',
|
||||
build_version_required: 'Build version ist erforderlich',
|
||||
build_version_required: 'Build-Version ist erforderlich',
|
||||
title_required: 'Titel ist erforderlich',
|
||||
isRequired: 'ist erforderlich',
|
||||
mustBeInteger: 'Muss eine ganze Zahl (Integer) sein',
|
||||
mustBeInteger: 'Muss eine ganze Zahl sein',
|
||||
mustBe0OrGreater: 'Muss 0 oder größer sein',
|
||||
start_version_required: 'Start version ist erforderlich',
|
||||
playbook_filename_required: 'Name der Playbook-Datei ist erforderlich',
|
||||
start_version_required: 'Startversion ist erforderlich',
|
||||
playbook_filename_required: 'Playbook-Dateiname ist erforderlich',
|
||||
inventory_required: 'Inventar ist erforderlich',
|
||||
environment_required: 'Umgebung ist erforderlich',
|
||||
email_required: 'E-Mail ist erforderlich',
|
||||
build_template_required: 'Build-Vorlage ist erforderlich',
|
||||
Task: 'Aufgabe',
|
||||
Build: 'Build',
|
||||
Deploy: 'Deploy',
|
||||
Build: 'Bauen',
|
||||
Deploy: 'Bereitstellen',
|
||||
Run: 'Ausführen',
|
||||
|
||||
CreateDemoProject: 'Demo-Projekt erstellen',
|
||||
LeaveProject: 'Projekt verlassen',
|
||||
integration: 'Integration',
|
||||
integrations: 'Integrationen',
|
||||
NewIntegration: 'Neue Integration',
|
||||
EditIntegration: 'Integration bearbeiten',
|
||||
DeleteIntegration: 'Integration löschen',
|
||||
DeleteIntegrationMsg: 'Sind Sie sicher, dass Sie diese Integration löschen möchten?',
|
||||
AddAlias: 'Alias hinzufügen',
|
||||
LoadAlias: 'Lade Aliase...',
|
||||
runners: 'Runner',
|
||||
newRunner: 'Neuer Runner',
|
||||
enabled: 'Aktiviert',
|
||||
scheduleNextRun: 'Nächster Lauf',
|
||||
maxNumberOfParallelTasks: 'Maximale parallele Aufgaben',
|
||||
runnerUsage: 'Verwendung:',
|
||||
runnerToken: 'Token:',
|
||||
editRunner: 'Runner bearbeiten',
|
||||
};
|
||||
|
@ -38,7 +38,7 @@ export default {
|
||||
youHaveReadonlyAccess: 'You have read-only access',
|
||||
taskTemplates: 'Task Templates',
|
||||
inventory: 'Inventory',
|
||||
environment: 'Environment',
|
||||
environment: 'Environment Variables',
|
||||
keyStore: 'Key Store',
|
||||
repositories: 'Repositories',
|
||||
darkMode: 'Dark Mode',
|
||||
@ -65,7 +65,6 @@ export default {
|
||||
addView: 'Add view',
|
||||
editEnvironment: 'Edit Environment',
|
||||
deleteEnvironment: 'Delete environment',
|
||||
environment2: 'Environment',
|
||||
newEnvironment: 'New Environment',
|
||||
environmentName: 'Environment Name',
|
||||
extraVariables: 'Extra variables',
|
||||
@ -248,4 +247,12 @@ export default {
|
||||
DeleteIntegrationMsg: 'Are you sure you want to delete this Integration?',
|
||||
AddAlias: 'Add Alias',
|
||||
LoadAlias: 'Loading aliases...',
|
||||
runners: 'Runners',
|
||||
newRunner: 'New Runner',
|
||||
enabled: 'Enabled',
|
||||
scheduleNextRun: 'Next run',
|
||||
maxNumberOfParallelTasks: 'Maximum parallel tasks',
|
||||
runnerUsage: 'Usage:',
|
||||
runnerToken: 'Token:',
|
||||
editRunner: 'Edit Runner',
|
||||
};
|
||||
|
@ -1,192 +1,195 @@
|
||||
export default {
|
||||
backup: 'Respaldo',
|
||||
downloadTheProjectBackupFile: 'Descargue el archivo de copia de seguridad del proyecto (en json)',
|
||||
restoreProject: 'Restaurar...',
|
||||
incorrectUsrPwd: 'Usuario o contraseña incorrecta',
|
||||
askDeleteUser: '¿Realmente desea eliminar este usuario?',
|
||||
askDeleteTemp: '¿Realmente desea eliminar esta plantilla?',
|
||||
askDeleteEnv: '¿Realmente desea eliminar este ambiente?',
|
||||
askDeleteInv: '¿Realmente desea eliminar este inventario?',
|
||||
askDeleteKey: '¿Realmente desea eliminar esta llave?',
|
||||
askDeleteRepo: '¿Realmente desea eliminar este repositorio?',
|
||||
askDeleteProj: '¿Realmente desea eliminar este proyecto?',
|
||||
askDeleteTMem: '¿Realmente desea quitar a este miembro del equipo?',
|
||||
'Check interval': 'Intervalo de verificación',
|
||||
Schedule: 'Horario',
|
||||
backup: 'Copia de seguridad',
|
||||
downloadTheProjectBackupFile: 'Descargar el archivo de copia de seguridad del proyecto (en json)',
|
||||
restoreProject: 'Restaurar Proyecto...',
|
||||
incorrectUsrPwd: 'Usuario o contraseña incorrectos',
|
||||
askDeleteUser: '¿Realmente quieres eliminar a este usuario?',
|
||||
askDeleteTemp: '¿Realmente quieres eliminar esta plantilla?',
|
||||
askDeleteEnv: '¿Realmente quieres eliminar este entorno?',
|
||||
askDeleteInv: '¿Realmente quieres eliminar este inventario?',
|
||||
askDeleteKey: '¿Realmente quieres eliminar esta clave?',
|
||||
askDeleteRepo: '¿Realmente quieres eliminar este repositorio?',
|
||||
askDeleteProj: '¿Realmente quieres eliminar este proyecto?',
|
||||
askDeleteTMem: '¿Realmente quieres eliminar a este miembro del equipo?',
|
||||
edit: 'Editar',
|
||||
nnew: 'Nuevo',
|
||||
keyFormSshKey: 'Llave SSH',
|
||||
keyFormLoginPassword: 'Ingresa con tu contraseña',
|
||||
keyFormSshKey: 'Clave SSH',
|
||||
keyFormLoginPassword: 'Iniciar sesión con contraseña',
|
||||
keyFormNone: 'Ninguno',
|
||||
incorrectUrl: 'URL incorrecta',
|
||||
username: 'Nombre de Usuario',
|
||||
username_required: 'El nombre de usuario es un campo obligatorio',
|
||||
dashboard: 'Panel',
|
||||
history: 'Historia',
|
||||
username: 'Nombre de usuario',
|
||||
username_required: 'Se requiere nombre de usuario',
|
||||
dashboard: 'Tablero',
|
||||
history: 'Historial',
|
||||
activity: 'Actividad',
|
||||
settings: 'Configuración',
|
||||
settings: 'Configuraciones',
|
||||
signIn: 'Iniciar sesión',
|
||||
password: 'Contraseña',
|
||||
changePassword: 'Cambiar contraseña',
|
||||
editUser: 'Editar usuario',
|
||||
newProject: 'Nuevo proyecto',
|
||||
editUser: 'Editar Usuario',
|
||||
newProject: 'Nuevo Proyecto',
|
||||
close: 'Cerrar',
|
||||
newProject2: 'Nuevo proyecto...',
|
||||
demoMode: 'MODO DEMOSTRACION',
|
||||
demoMode: 'MODO DEMO',
|
||||
task: 'Tarea #{expr}',
|
||||
youCanRunAnyTasks: 'Puedes ejecutar cualquier tarea',
|
||||
youHaveReadonlyAccess: 'Tienes acceso de solo lectura',
|
||||
taskTemplates: 'Plantillas de tareas',
|
||||
taskTemplates: 'Plantillas de Tareas',
|
||||
inventory: 'Inventario',
|
||||
environment: 'Ambiente',
|
||||
keyStore: 'Tienda de llaves',
|
||||
environment: 'Entorno',
|
||||
keyStore: 'Almacén de Claves',
|
||||
repositories: 'Repositorios',
|
||||
darkMode: 'Modo oscuro',
|
||||
darkMode: 'Modo Oscuro',
|
||||
team: 'Equipo',
|
||||
users: 'Usuarios',
|
||||
editAccount: 'Editar cuenta',
|
||||
editAccount: 'Editar Cuenta',
|
||||
signOut: 'Cerrar sesión',
|
||||
error: 'Error',
|
||||
refreshPage: 'Actualizar página',
|
||||
relogin: 'Volver a iniciar sesión',
|
||||
howToFixSigninIssues: 'Cómo arreglar problemas de inicio de sesión',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Primero, deber tener acceso al servidor donde Semaphore está corriendo.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Ejecute el siguiente comando en el servidor para ver usuarios existentes:',
|
||||
refreshPage: 'Actualizar Página',
|
||||
relogin: 'Reiniciar sesión',
|
||||
howToFixSigninIssues: 'Cómo solucionar problemas de inicio de sesión',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Primero, necesitas acceso al servidor donde se ejecuta Semaphore.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Ejecuta el siguiente comando en el servidor para ver los usuarios existentes:',
|
||||
semaphoreUserList: 'lista de usuarios de semaphore',
|
||||
youCanChangePasswordOfExistingUser: 'Puedes cambiar la contraseña del usuario existente:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login usuario123 --password {unaContraseñaDeEjemplo}',
|
||||
youCanChangePasswordOfExistingUser: 'Puedes cambiar la contraseña de un usuario existente:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'cambiar usuario de semaphore --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: 'O crea un nuevo usuario administrador:',
|
||||
close2: 'Cerrar',
|
||||
semaphore: 'SEMAPHORE',
|
||||
dontHaveAccountOrCantSignIn: '¿No tienes una cuenta o no puedes ingresar?',
|
||||
semaphore: 'SEMAFORO',
|
||||
dontHaveAccountOrCantSignIn: '¿No tienes cuenta o no puedes iniciar sesión?',
|
||||
password2: 'Contraseña',
|
||||
cancel: 'Cancelar',
|
||||
noViews: 'Sin vistas',
|
||||
addView: 'Añadir vista',
|
||||
editEnvironment: 'Editar Ambiente',
|
||||
deleteEnvironment: 'Eliminar Ambiente',
|
||||
environment2: 'Ambiente',
|
||||
newEnvironment: 'Nuevo Ambiente',
|
||||
environmentName: 'Nombre del Ambiente',
|
||||
extraVariables: 'Variables extras',
|
||||
enterExtraVariablesJson: 'Ingresar variables extras JSON...',
|
||||
environmentVariables: 'Variables de Ambiente',
|
||||
enterEnvJson: 'Ingresar ambiente JSON...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'El Ambiente y las variables extras deben tene un formato JSON válido. Ejemplo:',
|
||||
dashboard2: 'Panel',
|
||||
ansibleSemaphore: 'Semaphore UI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Lo sentimos pero <%= htmlWebpackPlugin.options.title %> no funciona correctamente sin JavaScript habilitado. Por favor habilítelo para continuar.',
|
||||
addView: 'Agregar vista',
|
||||
editEnvironment: 'Editar Entorno',
|
||||
deleteEnvironment: 'Eliminar entorno',
|
||||
environment2: 'Entorno',
|
||||
newEnvironment: 'Nuevo Entorno',
|
||||
environmentName: 'Nombre del Entorno',
|
||||
extraVariables: 'Variables adicionales',
|
||||
enterExtraVariablesJson: 'Ingresa variables adicionales en JSON...',
|
||||
environmentVariables: 'Variables de entorno',
|
||||
enterEnvJson: 'Ingresa env JSON...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'El entorno y las variables adicionales deben ser JSON válidos. Ejemplo:',
|
||||
dashboard2: 'Tablero',
|
||||
ansibleSemaphore: 'Interfaz de Semaphore',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Lo sentimos, pero <%= htmlWebpackPlugin.options.title %> no funciona correctamente sin JavaScript habilitado. Por favor, habilítalo para continuar.',
|
||||
deleteInventory: 'Eliminar inventario',
|
||||
newInventory: 'Nuevo Inventario',
|
||||
name: 'Nombre',
|
||||
userCredentials: 'Credenciales de usuario',
|
||||
sudoCredentialsOptional: 'Credenciales Sudo (Opcional)',
|
||||
userCredentials: 'Credenciales de Usuario',
|
||||
sudoCredentialsOptional: 'Credenciales de Sudo (Opcional)',
|
||||
type: 'Tipo',
|
||||
pathToInventoryFile: 'Ruta al archivo Inventario',
|
||||
enterInventory: 'Ingresar inventario...',
|
||||
staticInventoryExample: 'Ejemplo de Inventario estático:',
|
||||
staticYamlInventoryExample: 'Ejemplo de Inventario YAML estático:',
|
||||
keyName: 'Nombre de la llave',
|
||||
pathToInventoryFile: 'Ruta al archivo de Inventario',
|
||||
enterInventory: 'Ingresa inventario...',
|
||||
staticInventoryExample: 'Ejemplo de inventario estático:',
|
||||
staticYamlInventoryExample: 'Ejemplo de inventario YAML estático:',
|
||||
keyName: 'Nombre de la Clave',
|
||||
loginOptional: 'Inicio de sesión (Opcional)',
|
||||
usernameOptional: 'Nombre de Usuario (Opcional)',
|
||||
privateKey: 'Llave Privada',
|
||||
override: 'Sobreescribir',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Use este tipo de llave para repositorios HTTPS y playbooks que no usen conexiones SSH.',
|
||||
deleteKey: 'Eliminar llave',
|
||||
newKey: 'Nueva Llave',
|
||||
usernameOptional: 'Nombre de usuario (Opcional)',
|
||||
privateKey: 'Clave Privada',
|
||||
override: 'Sobrescribir',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Usa este tipo de clave para repositorios HTTPS y para playbooks que utilizan conexiones no SSH.',
|
||||
deleteKey: 'Eliminar clave',
|
||||
newKey: 'Nueva Clave',
|
||||
create: 'Crear',
|
||||
newTask: 'Nueva Tarea',
|
||||
cantDeleteThe: 'No puede eliminar {objectTitle}',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle} no se puede eliminar porque está siendo usado por uno de los recursos',
|
||||
cantDeleteThe: 'No se puede eliminar el {objectTitle}',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: 'El {objectTitle} no se puede eliminar porque está siendo utilizado por los recursos a continuación',
|
||||
projectName: 'Nombre del Proyecto',
|
||||
allowAlertsForThisProject: 'Permitir alertas para este proyecto',
|
||||
telegramChatIdOptional: 'ID de Chat para Telegram (Opcional)',
|
||||
maxNumberOfParallelTasksOptional: 'Número máximo de tareas en paralelo (Opcional)',
|
||||
deleteRepository: 'Eliminar Repositorio',
|
||||
telegramChatIdOptional: 'ID de Chat de Telegram (Opcional)',
|
||||
maxNumberOfParallelTasksOptional: 'Número máximo de tareas paralelas (Opcional)',
|
||||
deleteRepository: 'Eliminar repositorio',
|
||||
newRepository: 'Nuevo Repositorio',
|
||||
urlOrPath: 'URL o ruta',
|
||||
absPath: 'ruta absoluta',
|
||||
branch: 'Rama',
|
||||
accessKey: 'Llave de acceso',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Credenciales para acceder al repositorio Git. Debería ser:',
|
||||
ifYouUseGitOrSshUrl: 'si usas Git o SSH URL.',
|
||||
ifYouUseHttpsOrFileUrl: 'si usas HTTPS o URL de archivo.',
|
||||
accessKey: 'Clave de Acceso',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Credenciales para acceder al repositorio de Git. Debe ser:',
|
||||
ifYouUseGitOrSshUrl: 'si usas URL de Git o SSH.',
|
||||
ifYouUseHttpsOrFileUrl: 'si usas URL de HTTPS o archivo.',
|
||||
none: 'Ninguno',
|
||||
ssh: 'SSH',
|
||||
deleteProject: 'Eliminar Proyecto',
|
||||
deleteProject: 'Eliminar proyecto',
|
||||
save: 'Guardar',
|
||||
deleteProject2: 'Eliminar Proyecto',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Una vez eliminado el proyecto, no hay vuelta atrás. Por favor esté seguro.',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Una vez que elimines un proyecto, no hay vuelta atrás. Por favor, asegúrate.',
|
||||
name2: 'Nombre *',
|
||||
title: 'Título *',
|
||||
description: 'Descripción',
|
||||
required: 'Requerido',
|
||||
key: '{expr}',
|
||||
surveyVariables: 'Variables solicitadas',
|
||||
addVariable: 'Añadir variable',
|
||||
surveyVariables: 'Variables de Encuesta',
|
||||
addVariable: 'Agregar variable',
|
||||
columns: 'Columnas',
|
||||
buildVersion: 'Version de Build',
|
||||
buildVersion: 'Versión de Construcción',
|
||||
messageOptional: 'Mensaje (Opcional)',
|
||||
debug: 'Debug',
|
||||
dryRun: 'Simulacro',
|
||||
debug: 'Depurar',
|
||||
dryRun: 'Ejecución en seco',
|
||||
diff: 'Diferencia',
|
||||
advanced: 'Advanzado',
|
||||
advanced: 'Avanzado',
|
||||
hide: 'Ocultar',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Por favor, permita sobreescribir el argumento de la línea de comando en las configuraciones de la plantilla de Tareas',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Argumentos CLI (Lista JSON). Ejemplo: [ "-i", "@mi_inventario.sh", "--private-key=/aqui/id_rsa", "-vvvv" ]',
|
||||
started: 'Comenzado',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Para permitir sobrescribir el argumento CLI en la configuración de la Plantilla de Tarea',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Argumentos CLI (array JSON). Ejemplo: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: 'Iniciado',
|
||||
author: 'Autor',
|
||||
duration: 'Duración',
|
||||
stop: 'Detener',
|
||||
forceStop: 'Detener forzadamente',
|
||||
deleteTeamMember: 'Quitar miembro del equipo',
|
||||
forceStop: 'Detener Forzosamente',
|
||||
confirmTask: 'Confirmar',
|
||||
deleteTeamMember: 'Eliminar miembro del equipo',
|
||||
team2: 'Equipo',
|
||||
newTeamMember: 'Nuevo miembro del equipo',
|
||||
newTeamMember: 'Nuevo Miembro del Equipo',
|
||||
user: 'Usuario',
|
||||
administrator: 'Administrador',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Las definiciones comienzan la versión de tus artefactos. Cada ejecución incrementa la versión del artefacto.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Para más información sobre la compilación vea la',
|
||||
taskTemplateReference: 'referencia de Plantila de Tareas',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Define que artefacto debería ser utilizado cuando se ejecuta la tarea.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Para más información sobre la utilización vea la',
|
||||
taskTemplateReference2: 'referencia de Plantila de Tareas',
|
||||
definesAutorunSchedule: 'Define la recurrencia de la ejecución automática.',
|
||||
forMoreInformationAboutCronSeeThe: 'Para más información sobre cron vea la',
|
||||
cronExpressionFormatReference: 'referencia del formato de expresiones Cron',
|
||||
startVersion: 'Versión de inicio',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Define la versión inicial de tu artefacto. Cada ejecución incrementa la versión del artefacto.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Para más información sobre la construcción, consulta el',
|
||||
taskTemplateReference: 'Referencia de Plantilla de Tarea',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Define qué artefacto debe ser desplegado cuando se ejecute la tarea.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Para más información sobre el despliegue, consulta el',
|
||||
taskTemplateReference2: 'Referencia de Plantilla de Tarea',
|
||||
definesAutorunSchedule: 'Define el horario de autorun.',
|
||||
forMoreInformationAboutCronSeeThe: 'Para más información sobre cron, consulta el',
|
||||
cronExpressionFormatReference: 'Referencia de formato de expresión cron',
|
||||
startVersion: 'Versión Inicial',
|
||||
example000: 'Ejemplo: 0.0.0',
|
||||
buildTemplate: 'Plantilla de compilación',
|
||||
autorun: 'Auto-Ejecución',
|
||||
playbookFilename: 'Nombre de archivo del Playbook *',
|
||||
exampleSiteyml: 'Ejemplo: sitio.yml',
|
||||
buildTemplate: 'Plantilla de Construcción',
|
||||
autorun: 'Autorun',
|
||||
playbookFilename: 'Nombre del Archivo de Playbook *',
|
||||
exampleSiteyml: 'Ejemplo: site.yml',
|
||||
inventory2: 'Inventario *',
|
||||
repository: 'Repositorio',
|
||||
environment3: 'Ambiente *',
|
||||
vaultPassword: 'Contraseña de bóveda',
|
||||
vaultPassword2: 'Contraseña de bóveda',
|
||||
view: 'Ver',
|
||||
environment3: 'Entorno *',
|
||||
vaultPassword: 'Contraseña del Bóveda',
|
||||
vaultPassword2: 'Contraseña del Bóveda',
|
||||
view: 'Vista',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Quiero ejecutar una tarea mediante Cron solo para nuevos commits del repositorio.',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Quiero ejecutar una tarea por cron solo para nuevos commits de algún repositorio',
|
||||
repository2: 'Repositorio',
|
||||
cronChecksNewCommitBeforeRun: 'Cron debe buscar nuevos commit antes de ejecutarse',
|
||||
readThe: 'Lea la',
|
||||
cronChecksNewCommitBeforeRun: 'Cron verifica nuevos commits antes de ejecutar',
|
||||
readThe: 'Lee el',
|
||||
toLearnMoreAboutCron: 'para aprender más sobre Cron.',
|
||||
suppressSuccessAlerts: 'Silenciar alertas de éxito',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Argumentos CLI (Lista JSON). Ejemplo: [ "-i", "@mi_inventario.sh", "--private-key=/aqui/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Permitir argumentos CLI en Tareas',
|
||||
docs: 'documentación',
|
||||
suppressSuccessAlerts: 'Suprimir alertas de éxito',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Argumentos CLI (array JSON). Ejemplo: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Permitir argumentos CLI en la Tarea',
|
||||
docs: 'documentos',
|
||||
editViews: 'Editar Vistas',
|
||||
newTemplate: 'Nueva plantilla',
|
||||
taskTemplates2: 'Plantillas de tareas',
|
||||
all: 'Todos',
|
||||
notLaunched: 'No ejecutado',
|
||||
by: 'por {user_name} el {formatDate}',
|
||||
taskTemplates2: 'Plantillas de Tareas',
|
||||
all: 'Todo',
|
||||
notLaunched: 'No lanzado',
|
||||
by: 'por {user_name}',
|
||||
editTemplate: 'Editar Plantilla',
|
||||
newTemplate2: 'Nueva Plantilla',
|
||||
deleteTemplate: 'Eliminar Plantilla',
|
||||
deleteTemplate: 'Eliminar plantilla',
|
||||
playbook: 'Playbook',
|
||||
email: 'Correo',
|
||||
adminUser: 'Usuario Administrador',
|
||||
email: 'Correo electrónico',
|
||||
adminUser: 'Usuario administrador',
|
||||
sendAlerts: 'Enviar alertas',
|
||||
deleteUser: 'Eliminar Usuario',
|
||||
deleteUser: 'Eliminar usuario',
|
||||
newUser: 'Nuevo Usuario',
|
||||
re: 'Re{getActionButtonTitle}',
|
||||
teamMember: '{expr} Miembro del Equipo',
|
||||
@ -196,44 +199,61 @@ export default {
|
||||
start: 'Iniciar',
|
||||
actions: 'Acciones',
|
||||
alert: 'Alerta',
|
||||
admin: 'Administrador',
|
||||
admin: 'Admin',
|
||||
role: 'Rol',
|
||||
external: 'Externo',
|
||||
time: 'Tiempo',
|
||||
path: 'Ruta',
|
||||
gitUrl: 'URL Git',
|
||||
sshKey: 'Llave SSH',
|
||||
lastTask: 'Ultima tarea',
|
||||
gitUrl: 'URL de Git',
|
||||
sshKey: 'Clave SSH',
|
||||
lastTask: 'Última Tarea',
|
||||
task2: 'Tarea',
|
||||
build: 'Compilación',
|
||||
deploy: 'Lanzar',
|
||||
build: 'Construir',
|
||||
deploy: 'Desplegar',
|
||||
run: 'Ejecutar',
|
||||
add: 'Añadir',
|
||||
password_required: 'Es requisito la Contraseña',
|
||||
name_required: 'Es requisito el Nombre',
|
||||
user_credentials_required: 'Las credenciales del usuario son requisito',
|
||||
type_required: 'Es requisito el Tipo',
|
||||
path_required: 'Es requisito la ruta al archivo del Inventario',
|
||||
private_key_required: 'Es requisito la llave Privada',
|
||||
project_name_required: 'Es requisito el Nombre del Proyecto',
|
||||
repository_required: 'Es requisito el Repositorio',
|
||||
branch_required: 'Es requisito la Rama',
|
||||
key_required: 'Es requisito la Llave',
|
||||
user_required: 'Es requisito el Usuario',
|
||||
build_version_required: 'Es requisito la Versión de Compilación',
|
||||
title_required: 'Es requisito el Título',
|
||||
isRequired: 'Es requisito',
|
||||
mustBeInteger: 'Debe ser un número',
|
||||
mustBe0OrGreater: 'Debe ser 0 o más alto',
|
||||
start_version_required: 'Es requisito el Inicio de Versión',
|
||||
playbook_filename_required: 'Es requisito el nombre de archivo del Playbook',
|
||||
inventory_required: 'Es requisito el Inventario',
|
||||
environment_required: 'Es requisito el Ambiente',
|
||||
email_required: 'Es requisito el Correo',
|
||||
build_template_required: 'Es requerida la Plantilla de Compilación',
|
||||
add: 'Agregar',
|
||||
password_required: 'Se requiere contraseña',
|
||||
name_required: 'Se requiere nombre',
|
||||
user_credentials_required: 'Se requieren credenciales de usuario',
|
||||
type_required: 'Se requiere tipo',
|
||||
path_required: 'Se requiere ruta al archivo de Inventario',
|
||||
private_key_required: 'Se requiere clave privada',
|
||||
project_name_required: 'Se requiere nombre del proyecto',
|
||||
repository_required: 'Se requiere repositorio',
|
||||
branch_required: 'Se requiere rama',
|
||||
key_required: 'Se requiere clave',
|
||||
user_required: 'Se requiere usuario',
|
||||
build_version_required: 'Se requiere versión de construcción',
|
||||
title_required: 'Se requiere título',
|
||||
isRequired: 'es requerido',
|
||||
mustBeInteger: 'Debe ser un número entero',
|
||||
mustBe0OrGreater: 'Debe ser 0 o mayor',
|
||||
start_version_required: 'Se requiere versión inicial',
|
||||
playbook_filename_required: 'Se requiere nombre de archivo de playbook',
|
||||
inventory_required: 'Se requiere inventario',
|
||||
environment_required: 'Se requiere entorno',
|
||||
email_required: 'Se requiere correo electrónico',
|
||||
build_template_required: 'Se requiere plantilla de construcción',
|
||||
Task: 'Tarea',
|
||||
Build: 'Compilación',
|
||||
Deploy: 'Lanzamiento',
|
||||
Build: 'Construir',
|
||||
Deploy: 'Desplegar',
|
||||
Run: 'Ejecutar',
|
||||
|
||||
CreateDemoProject: 'Crear Proyecto Demo',
|
||||
LeaveProject: 'Salir del Proyecto',
|
||||
integration: 'Integración',
|
||||
integrations: 'Integraciones',
|
||||
NewIntegration: 'Nueva Integración',
|
||||
EditIntegration: 'Editar Integración',
|
||||
DeleteIntegration: 'Eliminar Integración',
|
||||
DeleteIntegrationMsg: '¿Estás seguro de que deseas eliminar esta Integración?',
|
||||
AddAlias: 'Agregar Alias',
|
||||
LoadAlias: 'Cargando alias...',
|
||||
runners: 'Ejecutores',
|
||||
newRunner: 'Nuevo Ejecutor',
|
||||
enabled: 'Habilitado',
|
||||
scheduleNextRun: 'Próxima ejecución',
|
||||
maxNumberOfParallelTasks: 'Número máximo de tareas paralelas',
|
||||
runnerUsage: 'Uso:',
|
||||
runnerToken: 'Token:',
|
||||
editRunner: 'Editar Ejecutor',
|
||||
};
|
||||
|
@ -1,12 +1,14 @@
|
||||
export default {
|
||||
'Check interval': 'Intervalle de vérification',
|
||||
Schedule: 'Calendrier',
|
||||
backup: 'Sauvegarde',
|
||||
downloadTheProjectBackupFile: 'Téléchargez le fichier de sauvegarde du projet (en json)',
|
||||
restoreProject: 'Restaurer...',
|
||||
downloadTheProjectBackupFile: 'Télécharger le fichier de sauvegarde du projet (au format json)',
|
||||
restoreProject: 'Restaurer le projet...',
|
||||
incorrectUsrPwd: 'Identifiant ou mot de passe incorrect',
|
||||
askDeleteUser: 'Voulez-vous vraiment supprimer cet utilisateur ?',
|
||||
askDeleteTemp: 'Voulez-vous vraiment supprimer ce modèle ?',
|
||||
askDeleteEnv: 'Voulez-vous vraiment supprimer cet environnement ?',
|
||||
askDeleteInv: 'Voulez-vous vraiment supprimer cet inventeur ?',
|
||||
askDeleteInv: 'Voulez-vous vraiment supprimer cet inventaire ?',
|
||||
askDeleteKey: 'Voulez-vous vraiment supprimer cette clé ?',
|
||||
askDeleteRepo: 'Voulez-vous vraiment supprimer ce dépôt ?',
|
||||
askDeleteProj: 'Voulez-vous vraiment supprimer ce projet ?',
|
||||
@ -14,8 +16,8 @@ export default {
|
||||
edit: 'Modifier',
|
||||
nnew: 'Nouveau',
|
||||
keyFormSshKey: 'Clé SSH',
|
||||
keyFormLoginPassword: 'Connectez-vous avec mot de passe',
|
||||
keyFormNone: 'Aucune',
|
||||
keyFormLoginPassword: 'Connexion avec mot de passe',
|
||||
keyFormNone: 'Aucun',
|
||||
incorrectUrl: 'URL incorrecte',
|
||||
username: 'Nom d\'utilisateur',
|
||||
username_required: 'Le nom d\'utilisateur est requis',
|
||||
@ -30,9 +32,9 @@ export default {
|
||||
newProject: 'Nouveau projet',
|
||||
close: 'Fermer',
|
||||
newProject2: 'Nouveau projet...',
|
||||
demoMode: 'MODE DE DÉMONSTRATION',
|
||||
task: 'Tâche n°{expr}',
|
||||
youCanRunAnyTasks: 'Vous pouvez exécuter n\'importe quelle tâche',
|
||||
demoMode: 'MODE DÉMO',
|
||||
task: 'Tâche #{expr}',
|
||||
youCanRunAnyTasks: 'Vous pouvez exécuter toutes les tâches',
|
||||
youHaveReadonlyAccess: 'Vous avez un accès en lecture seule',
|
||||
taskTemplates: 'Modèles de tâches',
|
||||
inventory: 'Inventaire',
|
||||
@ -43,17 +45,17 @@ export default {
|
||||
team: 'Équipe',
|
||||
users: 'Utilisateurs',
|
||||
editAccount: 'Modifier le compte',
|
||||
signOut: 'Déconnexion',
|
||||
signOut: 'Se déconnecter',
|
||||
error: 'Erreur',
|
||||
refreshPage: 'Actualiser la page',
|
||||
relogin: 'Se reconnecter',
|
||||
refreshPage: 'Rafraîchir la page',
|
||||
relogin: 'Reconnecter',
|
||||
howToFixSigninIssues: 'Comment résoudre les problèmes de connexion',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Tout d\'abord, vous avez besoin d\'accéder au serveur où Semaphore est en cours d\'exécution.',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Tout d\'abord, vous devez avoir accès au serveur où Semaphore fonctionne.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Exécutez la commande suivante sur le serveur pour voir les utilisateurs existants :',
|
||||
semaphoreUserList: 'liste d\'utilisateurs Semaphore',
|
||||
semaphoreUserList: 'liste des utilisateurs semaphore',
|
||||
youCanChangePasswordOfExistingUser: 'Vous pouvez changer le mot de passe de l\'utilisateur existant :',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: 'Ou créer un nouvel utilisateur administrateur :',
|
||||
orCreateNewAdminUser: 'Ou créez un nouvel utilisateur admin :',
|
||||
close2: 'Fermer',
|
||||
semaphore: 'SEMAPHORE',
|
||||
dontHaveAccountOrCantSignIn: 'Vous n\'avez pas de compte ou vous ne pouvez pas vous connecter ?',
|
||||
@ -67,54 +69,54 @@ export default {
|
||||
newEnvironment: 'Nouvel environnement',
|
||||
environmentName: 'Nom de l\'environnement',
|
||||
extraVariables: 'Variables supplémentaires',
|
||||
enterExtraVariablesJson: 'Saisissez JSON pour les variables supplémentaires...',
|
||||
enterExtraVariablesJson: 'Entrez les variables supplémentaires au format JSON...',
|
||||
environmentVariables: 'Variables d\'environnement',
|
||||
enterEnvJson: 'Saisissez JSON pour l\'environnement...',
|
||||
enterEnvJson: 'Entrez l\'environnement au format JSON...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'L\'environnement et les variables supplémentaires doivent être un JSON valide. Exemple :',
|
||||
dashboard2: 'Tableau de bord',
|
||||
ansibleSemaphore: 'Semaphore Ansible',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Nous sommes désolés, mais <%= htmlWebpackPlugin.options.title %> ne fonctionne pas correctement sans JavaScript. Veuillez l\'activer pour continuer.',
|
||||
ansibleSemaphore: 'Interface Semaphore',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Nous sommes désolés, mais <%= htmlWebpackPlugin.options.title %> ne fonctionne pas correctement sans JavaScript activé. Veuillez l\'activer pour continuer.',
|
||||
deleteInventory: 'Supprimer l\'inventaire',
|
||||
newInventory: 'Nouvel inventaire',
|
||||
name: 'Nom',
|
||||
userCredentials: 'Identifiants utilisateur',
|
||||
sudoCredentialsOptional: 'Identifiants Sudo (facultatif)',
|
||||
userCredentials: 'Identifiants de l\'utilisateur',
|
||||
sudoCredentialsOptional: 'Identifiants sudo (optionnel)',
|
||||
type: 'Type',
|
||||
pathToInventoryFile: 'Chemin vers le fichier d\'inventaire',
|
||||
enterInventory: 'Entrer l\'inventaire...',
|
||||
staticInventoryExample: 'Exemple d\'inventaire statique:',
|
||||
staticYamlInventoryExample: 'Exemple d\'inventaire YAML statique:',
|
||||
enterInventory: 'Entrez l\'inventaire...',
|
||||
staticInventoryExample: 'Exemple d\'inventaire statique :',
|
||||
staticYamlInventoryExample: 'Exemple d\'inventaire YAML statique :',
|
||||
keyName: 'Nom de la clé',
|
||||
loginOptional: 'Connexion (facultatif)',
|
||||
usernameOptional: 'Nom d\'utilisateur (facultatif)',
|
||||
loginOptional: 'Connexion (optionnel)',
|
||||
usernameOptional: 'Nom d\'utilisateur (optionnel)',
|
||||
privateKey: 'Clé privée',
|
||||
override: 'Remplacer',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Utilisez ce type de clé pour les référentiels HTTPS et pour les playbooks qui utilisent des connexions non-SSH.',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Utilisez ce type de clé pour les dépôts HTTPS et pour les playbooks qui utilisent des connexions non-SSH.',
|
||||
deleteKey: 'Supprimer la clé',
|
||||
newKey: 'Nouvelle clé',
|
||||
create: 'Créer',
|
||||
newTask: 'Nouvelle tâche',
|
||||
cantDeleteThe: 'Impossible de supprimer {objectTitle}',
|
||||
cantDeleteThe: 'Impossible de supprimer le {objectTitle}',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: 'Le {objectTitle} ne peut pas être supprimé car il est utilisé par les ressources ci-dessous',
|
||||
projectName: 'Nom du projet',
|
||||
allowAlertsForThisProject: 'Autoriser les alertes pour ce projet',
|
||||
telegramChatIdOptional: 'Identifiant de chat Telegram (facultatif)',
|
||||
maxNumberOfParallelTasksOptional: 'Nombre maximal de tâches en parallèle (facultatif)',
|
||||
deleteRepository: 'Supprimer le référentiel',
|
||||
newRepository: 'Nouveau référentiel',
|
||||
telegramChatIdOptional: 'ID de chat Telegram (optionnel)',
|
||||
maxNumberOfParallelTasksOptional: 'Nombre maximum de tâches parallèles (optionnel)',
|
||||
deleteRepository: 'Supprimer le dépôt',
|
||||
newRepository: 'Nouveau dépôt',
|
||||
urlOrPath: 'URL ou chemin',
|
||||
absPath: 'chemin absolu',
|
||||
branch: 'Branche',
|
||||
accessKey: 'Clé d\'accès',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Identifiants pour accéder au référentiel Git. Il doit être :',
|
||||
ifYouUseGitOrSshUrl: 'si vous utilisez une URL Git ou SSH.',
|
||||
ifYouUseHttpsOrFileUrl: 'si vous utilisez une URL HTTPS ou fichier.',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Identifiants pour accéder au dépôt Git. Cela devrait être :',
|
||||
ifYouUseGitOrSshUrl: 'si vous utilisez l\'URL Git ou SSH.',
|
||||
ifYouUseHttpsOrFileUrl: 'si vous utilisez l\'URL HTTPS ou de fichier.',
|
||||
none: 'Aucun',
|
||||
ssh: 'SSH',
|
||||
deleteProject: 'Supprimer le projet',
|
||||
save: 'Enregistrer',
|
||||
deleteProject2: 'Supprimer le projet',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Une fois que vous avez supprimé un projet, il n\'y a pas de retour en arrière possible. Veuillez être certain.',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Une fois que vous avez supprimé un projet, il n\'y a pas de retour en arrière. Veuillez en être certain.',
|
||||
name2: 'Nom *',
|
||||
title: 'Titre *',
|
||||
description: 'Description',
|
||||
@ -124,52 +126,54 @@ export default {
|
||||
addVariable: 'Ajouter une variable',
|
||||
columns: 'Colonnes',
|
||||
buildVersion: 'Version de construction',
|
||||
messageOptional: 'Message (facultatif)',
|
||||
debug: 'Debug',
|
||||
dryRun: 'Simulation',
|
||||
diff: 'Différence',
|
||||
messageOptional: 'Message (optionnel)',
|
||||
debug: 'Déboguer',
|
||||
dryRun: 'Exécution à blanc',
|
||||
diff: 'Diff',
|
||||
advanced: 'Avancé',
|
||||
hide: 'Cacher',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Veuillez autoriser le remplacement de l\'argument CLI dans les paramètres du modèle de tâche',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Arguments CLI (tableau JSON). Exemple: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Pour autoriser le remplacement de l\'argument CLI dans les paramètres du modèle de tâche',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Arguments CLI (tableau JSON). Exemple : [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: 'Démarré',
|
||||
author: 'Auteur',
|
||||
duration: 'Durée',
|
||||
stop: 'Arrêter',
|
||||
deleteTeamMember: 'Supprimer un membre de l\'équipe',
|
||||
forceStop: 'Arrêt forcé',
|
||||
confirmTask: 'Confirmer',
|
||||
deleteTeamMember: 'Supprimer le membre de l\'équipe',
|
||||
team2: 'Équipe',
|
||||
newTeamMember: 'Nouveau membre de l\'équipe',
|
||||
user: 'Utilisateur',
|
||||
administrator: 'Administrateur',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Définit la version de départ de votre artefact. Chaque exécution incrémente la version de l\'artefact.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Pour plus d\'informations sur la construction, voir la',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Pour plus d\'informations sur la construction, voir le',
|
||||
taskTemplateReference: 'Référence du modèle de tâche',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Définit l\'artefact qui doit être déployé lorsque la tâche est exécutée.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Pour plus d\'informations sur le déploiement, voir la',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Définit quel artefact doit être déployé lorsque la tâche s\'exécute.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Pour plus d\'informations sur le déploiement, voir le',
|
||||
taskTemplateReference2: 'Référence du modèle de tâche',
|
||||
definesAutorunSchedule: 'Définit le calendrier d\'exécution automatique.',
|
||||
forMoreInformationAboutCronSeeThe: 'Pour plus d\'informations sur Cron, voir la',
|
||||
cronExpressionFormatReference: 'Référence du format d\'expression Cron',
|
||||
forMoreInformationAboutCronSeeThe: 'Pour plus d\'informations sur cron, voir le',
|
||||
cronExpressionFormatReference: 'Référence du format d\'expression cron',
|
||||
startVersion: 'Version de départ',
|
||||
example000: 'Exemple: 0.0.0',
|
||||
example000: 'Exemple : 0.0.0',
|
||||
buildTemplate: 'Modèle de construction',
|
||||
autorun: 'Exécution automatique',
|
||||
playbookFilename: 'Nom de fichier du playbook *',
|
||||
exampleSiteyml: 'Exemple: site.yml',
|
||||
exampleSiteyml: 'Exemple : site.yml',
|
||||
inventory2: 'Inventaire *',
|
||||
repository: 'Dépôt',
|
||||
environment3: 'Environnement *',
|
||||
vaultPassword: 'Mot de passe du coffre-fort',
|
||||
vaultPassword2: 'Mot de passe du coffre-fort',
|
||||
vaultPassword: 'Mot de passe du coffre',
|
||||
vaultPassword2: 'Mot de passe du coffre',
|
||||
view: 'Vue',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Je veux exécuter une tâche avec le cron uniquement pour les nouveaux commits d\'un dépôt spécifique',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Je veux exécuter une tâche par cron uniquement pour les nouveaux commits d\'un dépôt',
|
||||
repository2: 'Dépôt',
|
||||
cronChecksNewCommitBeforeRun: 'Cron vérifie les nouveaux commits avant l\'exécution',
|
||||
readThe: 'Lire la',
|
||||
cronChecksNewCommitBeforeRun: 'Cron vérifie les nouveaux commits avant d\'exécuter',
|
||||
readThe: 'Lire le',
|
||||
toLearnMoreAboutCron: 'pour en savoir plus sur Cron.',
|
||||
suppressSuccessAlerts: 'Supprimer les alertes de réussite',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Arguments CLI (tableau JSON). Exemple: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
suppressSuccessAlerts: 'Supprimer les alertes de succès',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Arguments CLI (tableau JSON). Exemple : [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Autoriser les arguments CLI dans la tâche',
|
||||
docs: 'docs',
|
||||
editViews: 'Modifier les vues',
|
||||
@ -192,10 +196,10 @@ export default {
|
||||
taskId: 'ID de tâche',
|
||||
version: 'Version',
|
||||
status: 'Statut',
|
||||
start: 'Début',
|
||||
start: 'Démarrer',
|
||||
actions: 'Actions',
|
||||
alert: 'Alerte',
|
||||
admin: 'Administrateur',
|
||||
admin: 'Admin',
|
||||
role: 'Rôle',
|
||||
external: 'Externe',
|
||||
time: 'Temps',
|
||||
@ -204,10 +208,13 @@ export default {
|
||||
sshKey: 'Clé SSH',
|
||||
lastTask: 'Dernière tâche',
|
||||
task2: 'Tâche',
|
||||
build: 'Construire',
|
||||
deploy: 'Déployer',
|
||||
run: 'Exécuter',
|
||||
add: 'Ajouter',
|
||||
password_required: 'Le mot de passe est requis',
|
||||
name_required: 'Le nom est requis',
|
||||
user_credentials_required: 'Les informations d\'identification de l\'utilisateur sont requises',
|
||||
user_credentials_required: 'Les identifiants de l\'utilisateur sont requis',
|
||||
type_required: 'Le type est requis',
|
||||
path_required: 'Le chemin vers le fichier d\'inventaire est requis',
|
||||
private_key_required: 'La clé privée est requise',
|
||||
@ -220,15 +227,33 @@ export default {
|
||||
title_required: 'Le titre est requis',
|
||||
isRequired: 'est requis',
|
||||
mustBeInteger: 'Doit être un entier',
|
||||
mustBe0OrGreater: 'Doit être égal à 0 ou supérieur',
|
||||
mustBe0OrGreater: 'Doit être 0 ou plus',
|
||||
start_version_required: 'La version de départ est requise',
|
||||
playbook_filename_required: 'Le nom de fichier du playbook est requis',
|
||||
inventory_required: 'L\'inventaire est requis',
|
||||
environment_required: 'L\'environnement est requis',
|
||||
email_required: 'L\'adresse e-mail est requise',
|
||||
email_required: 'L\'email est requis',
|
||||
build_template_required: 'Le modèle de construction est requis',
|
||||
Task: 'Tâche',
|
||||
Build: 'Construire',
|
||||
Deploy: 'Déployer',
|
||||
Run: 'Exécuter',
|
||||
CreateDemoProject: 'Créer un projet de démonstration',
|
||||
LeaveProject: 'Quitter le projet',
|
||||
integration: 'Intégration',
|
||||
integrations: 'Intégrations',
|
||||
NewIntegration: 'Nouvelle intégration',
|
||||
EditIntegration: 'Modifier l\'intégration',
|
||||
DeleteIntegration: 'Supprimer l\'intégration',
|
||||
DeleteIntegrationMsg: 'Êtes-vous sûr de vouloir supprimer cette intégration ?',
|
||||
AddAlias: 'Ajouter un alias',
|
||||
LoadAlias: 'Chargement des alias...',
|
||||
runners: 'Exécuteurs',
|
||||
newRunner: 'Nouvel exécuteur',
|
||||
enabled: 'Activé',
|
||||
scheduleNextRun: 'Prochaine exécution',
|
||||
maxNumberOfParallelTasks: 'Nombre maximum de tâches parallèles',
|
||||
runnerUsage: 'Utilisation :',
|
||||
runnerToken: 'Jeton :',
|
||||
editRunner: 'Modifier l\'exécuteur',
|
||||
};
|
||||
|
@ -1,239 +1,259 @@
|
||||
export default {
|
||||
'Check interval': 'Intervallo di controllo',
|
||||
Schedule: 'Programma',
|
||||
backup: 'Backup',
|
||||
downloadTheProjectBackupFile: 'Scarica il file di backup del progetto (in json)',
|
||||
restoreProject: 'Ristabilire...',
|
||||
incorrectUsrPwd: 'Nome utente o password errati',
|
||||
restoreProject: 'Ripristina progetto...',
|
||||
incorrectUsrPwd: 'Login o password errati',
|
||||
askDeleteUser: 'Vuoi davvero eliminare questo utente?',
|
||||
askDeleteTemp: 'Vuoi davvero eliminare questo modello?',
|
||||
askDeleteEnv: 'Vuoi davvero eliminare questo ambiente',
|
||||
askDeleteEnv: 'Vuoi davvero eliminare questo ambiente?',
|
||||
askDeleteInv: 'Vuoi davvero eliminare questo inventario?',
|
||||
askDeleteKey: 'Vuoi davvero eliminare questa chiave?',
|
||||
askDeleteRepo: 'Vuoi davvero eliminare questo repository?',
|
||||
askDeleteProj: 'Vuoi davvero eliminare questo progetto?',
|
||||
askDeleteTMem: 'Vuole davvero eliminare questo membro del team?',
|
||||
askDeleteTMem: 'Vuoi davvero eliminare questo membro del team?',
|
||||
edit: 'Modifica',
|
||||
nnew: 'Nuovo',
|
||||
keyFormSshKey: 'SSH Key',
|
||||
keyFormSshKey: 'Chiave SSH',
|
||||
keyFormLoginPassword: 'Accesso con password',
|
||||
keyFormNone: 'Nessuno',
|
||||
incorrectUrl: 'URL non corretto',
|
||||
username: 'Nome Utente',
|
||||
incorrectUrl: 'URL errato',
|
||||
username: 'Nome utente',
|
||||
username_required: 'Il nome utente è obbligatorio',
|
||||
dashboard: 'Pannello di controllo',
|
||||
history: 'Storico',
|
||||
dashboard: 'Cruscotto',
|
||||
history: 'Storia',
|
||||
activity: 'Attività',
|
||||
settings: 'Impostazioni',
|
||||
signIn: 'Accedi',
|
||||
password: 'Password',
|
||||
changePassword: 'Cambia password',
|
||||
editUser: 'Modifica Utente',
|
||||
newProject: 'Nuovo Progetto',
|
||||
editUser: 'Modifica utente',
|
||||
newProject: 'Nuovo progetto',
|
||||
close: 'Chiudi',
|
||||
newProject2: 'Nuovo progetto...',
|
||||
demoMode: 'MODALITÀ DIMOSTRAZIONE',
|
||||
task: 'Operazione #{expr}',
|
||||
youCanRunAnyTasks: 'È possibile eseguire qualsiasi operazione',
|
||||
demoMode: 'MODALITÀ DEMO',
|
||||
task: 'Compito #{expr}',
|
||||
youCanRunAnyTasks: 'Puoi eseguire qualsiasi compito',
|
||||
youHaveReadonlyAccess: 'Hai accesso in sola lettura',
|
||||
taskTemplates: 'Modelli di operazioni',
|
||||
taskTemplates: 'Modelli di compito',
|
||||
inventory: 'Inventario',
|
||||
environment: 'Ambiente',
|
||||
keyStore: 'Cassaforte Chiavi',
|
||||
keyStore: 'Negozio di chiavi',
|
||||
repositories: 'Repository',
|
||||
darkMode: 'Modalità Oscura',
|
||||
darkMode: 'Modalità scura',
|
||||
team: 'Team',
|
||||
users: 'Utenti',
|
||||
editAccount: 'Modifica Account',
|
||||
signOut: 'Esci',
|
||||
editAccount: 'Modifica account',
|
||||
signOut: 'Disconnetti',
|
||||
error: 'Errore',
|
||||
refreshPage: 'Aggiorna Pagina',
|
||||
relogin: 'Esegui di nuovo l\'accesso',
|
||||
refreshPage: 'Aggiorna pagina',
|
||||
relogin: 'Riconnetti',
|
||||
howToFixSigninIssues: 'Come risolvere i problemi di accesso',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'In primo luogo, è necessario accedere al server su cui è in esecuzione Semaphore.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Eseguire il seguente comando sul server per visualizzare gli utenti esistenti:',
|
||||
semaphoreUserList: 'elenco utenti semaphore',
|
||||
youCanChangePasswordOfExistingUser: 'È possibile modificare la password dell\'utente esistente:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login utente123 --password {unaPasswordDiEsempio}',
|
||||
orCreateNewAdminUser: 'Oppure crea un nuovo utente amministratore:',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Innanzitutto, è necessario avere accesso al server in cui è in esecuzione Semaphore.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Esegui il seguente comando sul server per vedere gli utenti esistenti:',
|
||||
semaphoreUserList: 'semaphore user list',
|
||||
youCanChangePasswordOfExistingUser: 'Puoi cambiare la password dell\'utente esistente:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: 'Oppure crea un nuovo utente admin:',
|
||||
close2: 'Chiudi',
|
||||
semaphore: 'SEMAPHORE',
|
||||
dontHaveAccountOrCantSignIn: 'Non hai un account o non puoi accedere?',
|
||||
semaphore: 'SEMAFORO',
|
||||
dontHaveAccountOrCantSignIn: 'Non hai un account o non riesci ad accedere?',
|
||||
password2: 'Password',
|
||||
cancel: 'Cancella',
|
||||
cancel: 'Annulla',
|
||||
noViews: 'Nessuna vista',
|
||||
addView: 'Aggiungi vista',
|
||||
editEnvironment: 'Modifica Ambiente',
|
||||
deleteEnvironment: 'Modifica Ambiente',
|
||||
editEnvironment: 'Modifica ambiente',
|
||||
deleteEnvironment: 'Elimina ambiente',
|
||||
environment2: 'Ambiente',
|
||||
newEnvironment: 'Nuovo Ambiente',
|
||||
environmentName: 'Nome Ambiente',
|
||||
newEnvironment: 'Nuovo ambiente',
|
||||
environmentName: 'Nome ambiente',
|
||||
extraVariables: 'Variabili extra',
|
||||
enterExtraVariablesJson: 'Inserisci variabili extra JSON...',
|
||||
environmentVariables: 'Variabili d\'ambiente',
|
||||
enterEnvJson: 'Inserisci ambiente JSON...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'Le variabili d\'ambiente ed extra devono essere in formato JSON valido. Esempio:',
|
||||
dashboard2: 'Pannello di controllo',
|
||||
ansibleSemaphore: 'Semaphore UI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Siamo spiacenti ma <%= htmlWebpackPlugin.options.title %> non funziona correttamente senza JavaScript abilitato. Si prega di abilitarlo per continuare.',
|
||||
deleteInventory: 'Elimina Inventario',
|
||||
newInventory: 'Nuovo Inventario',
|
||||
environmentVariables: 'Variabili ambiente',
|
||||
enterEnvJson: 'Inserisci JSON ambiente...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'L\'ambiente e le variabili extra devono essere JSON validi. Esempio:',
|
||||
dashboard2: 'Cruscotto',
|
||||
ansibleSemaphore: 'Interfaccia Semaphore',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Ci dispiace, ma <%= htmlWebpackPlugin.options.title %> non funziona correttamente senza JavaScript abilitato. Abilitalo per continuare.',
|
||||
deleteInventory: 'Elimina inventario',
|
||||
newInventory: 'Nuovo inventario',
|
||||
name: 'Nome',
|
||||
userCredentials: 'Credenziali Utente',
|
||||
sudoCredentialsOptional: 'Credenziali Sudo (Opzionale)',
|
||||
userCredentials: 'Credenziali utente',
|
||||
sudoCredentialsOptional: 'Credenziali sudo (opzionale)',
|
||||
type: 'Tipo',
|
||||
pathToInventoryFile: 'Percorso del file Inventario',
|
||||
pathToInventoryFile: 'Percorso del file di inventario',
|
||||
enterInventory: 'Inserisci inventario...',
|
||||
staticInventoryExample: 'Esempio di Inventario statico:',
|
||||
staticYamlInventoryExample: 'Esempio di Inventario YAML statico:',
|
||||
keyName: 'Nome Chiave',
|
||||
loginOptional: 'Login (Opzionale)',
|
||||
usernameOptional: 'Nome Utente (Opzionale)',
|
||||
privateKey: 'Chiave Privata',
|
||||
staticInventoryExample: 'Esempio di inventario statico:',
|
||||
staticYamlInventoryExample: 'Esempio di inventario YAML statico:',
|
||||
keyName: 'Nome chiave',
|
||||
loginOptional: 'Accesso (opzionale)',
|
||||
usernameOptional: 'Nome utente (opzionale)',
|
||||
privateKey: 'Chiave privata',
|
||||
override: 'Sovrascrivi',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Utilizzare questo tipo di chiave per i repository HTTPS e per playbook che non utilizzano connessioni SSH.',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Usa questo tipo di chiave per i repository HTTPS e per i playbook che utilizzano connessioni non SSH.',
|
||||
deleteKey: 'Elimina chiave',
|
||||
newKey: 'Nuova Chiave',
|
||||
newKey: 'Nuova chiave',
|
||||
create: 'Crea',
|
||||
newTask: 'Nuova Operazione',
|
||||
newTask: 'Nuovo compito',
|
||||
cantDeleteThe: 'Impossibile eliminare {objectTitle}',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle} non può essere eliminato perché utilizzato dalle seguenti risorse',
|
||||
projectName: 'Nome Progetto',
|
||||
allowAlertsForThisProject: 'Consenti gli avvisi per questo progetto',
|
||||
telegramChatIdOptional: 'ID chat di Telegram (Opzionale)',
|
||||
maxNumberOfParallelTasksOptional: 'Numero massimo di operazioni in parallelo (Opzionale)',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle} non può essere eliminato perché è utilizzato dalle risorse sottostanti',
|
||||
projectName: 'Nome progetto',
|
||||
allowAlertsForThisProject: 'Consenti avvisi per questo progetto',
|
||||
telegramChatIdOptional: 'ID chat Telegram (opzionale)',
|
||||
maxNumberOfParallelTasksOptional: 'Numero massimo di compiti paralleli (opzionale)',
|
||||
deleteRepository: 'Elimina repository',
|
||||
newRepository: 'Nuovo Repository',
|
||||
newRepository: 'Nuovo repository',
|
||||
urlOrPath: 'URL o percorso',
|
||||
absPath: 'percorso assoluto',
|
||||
branch: 'Branch',
|
||||
accessKey: 'Chiave di Accesso',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Credenziali di accesso al repository Git. Possono essere:',
|
||||
ifYouUseGitOrSshUrl: 'se si utilizza Git o l\'URL SSH.',
|
||||
ifYouUseHttpsOrFileUrl: 'se si utilizza HTTPS o l\'URL del file.',
|
||||
absPath: 'percorso ass.',
|
||||
branch: 'Ramo',
|
||||
accessKey: 'Chiave di accesso',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Credenziali per accedere al repository Git. Dovrebbe essere:',
|
||||
ifYouUseGitOrSshUrl: 'se utilizzi Git o URL SSH.',
|
||||
ifYouUseHttpsOrFileUrl: 'se utilizzi HTTPS o URL di file.',
|
||||
none: 'Nessuno',
|
||||
ssh: 'SSH',
|
||||
deleteProject: 'Elimina progetto',
|
||||
save: 'Salva',
|
||||
deleteProject2: 'Elimina Progetto',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Una volta eliminato un progetto, non è possibile tornare indietro. Devi essene sicuro.',
|
||||
deleteProject2: 'Elimina progetto',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Una volta eliminato un progetto, non c\'è modo di tornare indietro. Per favore, sii certo.',
|
||||
name2: 'Nome *',
|
||||
title: 'Titolo *',
|
||||
description: 'Descrizione',
|
||||
required: 'Richiesto',
|
||||
required: 'Obbligatorio',
|
||||
key: '{expr}',
|
||||
surveyVariables: 'Variabili richieste',
|
||||
surveyVariables: 'Variabili di sondaggio',
|
||||
addVariable: 'Aggiungi variabile',
|
||||
columns: 'Colonne',
|
||||
buildVersion: 'Versione Build',
|
||||
messageOptional: 'Messaggio (Opzionale)',
|
||||
buildVersion: 'Versione di build',
|
||||
messageOptional: 'Messaggio (opzionale)',
|
||||
debug: 'Debug',
|
||||
dryRun: 'Simulazione',
|
||||
dryRun: 'Esecuzione simulata',
|
||||
diff: 'Differenza',
|
||||
advanced: 'Avanzato',
|
||||
hide: 'Nascondi',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Ricorda di consentire di sovrascrivere gli argomenti della riga di comando nelle impostazioni del modello di operazione',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Argomenti CLI (Array JSON). Esempio: [ "-i", "@mio_inventario.sh", "--private-key=/percorso/id_rsa", "-vvvv" ]',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Per consentire la sovrascrittura dell\'argomento CLI nelle impostazioni del modello di compito',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Argomenti CLI (array JSON). Esempio: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: 'Iniziato',
|
||||
author: 'Autore',
|
||||
duration: 'Durata',
|
||||
stop: 'Termina',
|
||||
forceStop: 'Termina Forzatamente',
|
||||
stop: 'Ferma',
|
||||
forceStop: 'Fermata forzata',
|
||||
confirmTask: 'Conferma',
|
||||
deleteTeamMember: 'Elimina membro del team',
|
||||
team2: 'Team',
|
||||
newTeamMember: 'Nuono Membro del Team',
|
||||
newTeamMember: 'Nuovo membro del team',
|
||||
user: 'Utente',
|
||||
administrator: 'Amministratore',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Definisce la versione iniziale dell\'artefatto. Ogni esecuzione incrementa la versione dell\'artefatto.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Per ulteriori informazioni sulla compilazione, consultare la sezione',
|
||||
taskTemplateReference: 'riferimento al Modello di Operazione',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Definisce quale artefatto deve essere utilizzato quando viene eseguita l\'operazione.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Per ulteriori informazioni sull\'utilizzo, consultare la sezione',
|
||||
taskTemplateReference2: 'riferimento al Modello di Operazione',
|
||||
definesAutorunSchedule: 'Definisce la ricorrenza dell\'esecuzione automatica.',
|
||||
forMoreInformationAboutCronSeeThe: 'Per ulteriori informazioni su cron, consultare la sezione',
|
||||
cronExpressionFormatReference: 'Riferimento al formato della sintassi Cron',
|
||||
startVersion: 'Versione Iniziale',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Definisce la versione iniziale del tuo artefatto. Ogni esecuzione incrementa la versione dell\'artefatto.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Per ulteriori informazioni sulla costruzione, vedere il',
|
||||
taskTemplateReference: 'Riferimento modello di compito',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Definisce quale artefatto deve essere distribuito quando viene eseguito il compito.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Per ulteriori informazioni sulla distribuzione, vedere il',
|
||||
taskTemplateReference2: 'Riferimento modello di compito',
|
||||
definesAutorunSchedule: 'Definisce il programma di esecuzione automatica.',
|
||||
forMoreInformationAboutCronSeeThe: 'Per ulteriori informazioni su cron, vedere il',
|
||||
cronExpressionFormatReference: 'Riferimento formato espressione cron',
|
||||
startVersion: 'Versione iniziale',
|
||||
example000: 'Esempio: 0.0.0',
|
||||
buildTemplate: 'Modello della Build',
|
||||
autorun: 'Auto-esecuzione',
|
||||
playbookFilename: 'Nome del file del Playbook *',
|
||||
exampleSiteyml: 'Esempio: sito.yml',
|
||||
buildTemplate: 'Modello di build',
|
||||
autorun: 'Esecuzione automatica',
|
||||
playbookFilename: 'Nome file playbook *',
|
||||
exampleSiteyml: 'Esempio: site.yml',
|
||||
inventory2: 'Inventario *',
|
||||
repository: 'Repository',
|
||||
environment3: 'Ambiente *',
|
||||
vaultPassword: 'Password in Cassaforte',
|
||||
vaultPassword2: 'Password in Cassaforte',
|
||||
vaultPassword: 'Password del vault',
|
||||
vaultPassword2: 'Password del vault',
|
||||
view: 'Vista',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Voglio eseguire una operazione Cron solo per i nuovi commit del repository',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Voglio eseguire un compito tramite cron solo per nuovi commit di un repository',
|
||||
repository2: 'Repository',
|
||||
cronChecksNewCommitBeforeRun: 'Cron controlla i nuovi commit prima dell\'esecuzione',
|
||||
readThe: 'Leggi la',
|
||||
cronChecksNewCommitBeforeRun: 'Cron controlla nuovi commit prima di eseguire',
|
||||
readThe: 'Leggi il',
|
||||
toLearnMoreAboutCron: 'per saperne di più su Cron.',
|
||||
suppressSuccessAlerts: 'Sopprimi gli avvisi di successo',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Argomenti CLI (Array JSON). Example: [ "-i", "@mio_inventario.sh", "--private-key=/percorso/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Consenti gli argomenti CLI nell\'operazione',
|
||||
docs: 'documentazione',
|
||||
editViews: 'Modifica Viste',
|
||||
newTemplate: 'Nuovo Modello',
|
||||
taskTemplates2: 'Modelli di Operazione',
|
||||
suppressSuccessAlerts: 'Sopprimi avvisi di successo',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Argomenti CLI (array JSON). Esempio: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Consenti argomenti CLI nel compito',
|
||||
docs: 'documenti',
|
||||
editViews: 'Modifica viste',
|
||||
newTemplate: 'Nuovo modello',
|
||||
taskTemplates2: 'Modelli di compito',
|
||||
all: 'Tutti',
|
||||
notLaunched: 'Non eseguito',
|
||||
by: 'da {user_name} il {formatDate}',
|
||||
editTemplate: 'Modifica Modello',
|
||||
newTemplate2: 'Nuovo Modello',
|
||||
notLaunched: 'Non avviato',
|
||||
by: 'da {user_name}',
|
||||
editTemplate: 'Modifica modello',
|
||||
newTemplate2: 'Nuovo modello',
|
||||
deleteTemplate: 'Elimina modello',
|
||||
playbook: 'Playbook',
|
||||
email: 'Email',
|
||||
adminUser: 'Utente Amministratore',
|
||||
adminUser: 'Utente admin',
|
||||
sendAlerts: 'Invia avvisi',
|
||||
deleteUser: 'Elimina utente',
|
||||
newUser: 'Nuovo Utente',
|
||||
newUser: 'Nuovo utente',
|
||||
re: 'Re{getActionButtonTitle}',
|
||||
teamMember: '{expr} Membro del Team',
|
||||
taskId: 'ID Operazione',
|
||||
teamMember: '{expr} Membro del team',
|
||||
taskId: 'ID compito',
|
||||
version: 'Versione',
|
||||
status: 'Stato',
|
||||
start: 'Inizia',
|
||||
start: 'Inizio',
|
||||
actions: 'Azioni',
|
||||
alert: 'Avvisa',
|
||||
admin: 'Amministratore',
|
||||
alert: 'Avviso',
|
||||
admin: 'Admin',
|
||||
role: 'Ruolo',
|
||||
external: 'Esterno',
|
||||
time: 'Tempo',
|
||||
path: 'Percorso',
|
||||
gitUrl: 'URL Git',
|
||||
sshKey: 'Chiave SSH',
|
||||
lastTask: 'Ultima Operazione',
|
||||
task2: 'Operazione',
|
||||
build: 'Build',
|
||||
deploy: 'Compilazione',
|
||||
lastTask: 'Ultimo compito',
|
||||
task2: 'Compito',
|
||||
build: 'Costruisci',
|
||||
deploy: 'Distribuisci',
|
||||
run: 'Esegui',
|
||||
add: 'Aggiungi',
|
||||
password_required: 'È richiesta la Password',
|
||||
name_required: 'È richiesto il Nome',
|
||||
user_credentials_required: 'Sono richieste le credenziali dell\'utente',
|
||||
type_required: 'È richiesto il Tipo',
|
||||
path_required: 'È richiesto il percorso al file dell\'Inventario',
|
||||
private_key_required: 'È richiesta la Chiave Privata',
|
||||
project_name_required: 'È richiesto il Nome del Progetto',
|
||||
repository_required: 'È richiesto il Repository',
|
||||
branch_required: 'È richiesto il Branch',
|
||||
key_required: 'È richiesta la Chiave',
|
||||
user_required: 'È richiesto l\'Utente',
|
||||
build_version_required: 'È richiesta la versione della Build',
|
||||
title_required: 'È richiesto il Titolo',
|
||||
isRequired: 'è richiesto',
|
||||
mustBeInteger: 'Deve essere un numero intero',
|
||||
mustBe0OrGreater: 'Deve essere uguale o maggiore di 0',
|
||||
start_version_required: 'È richiesta la Versione Iniziale',
|
||||
playbook_filename_required: 'È richiesto il nome del file del Playbook',
|
||||
inventory_required: 'È richiesto l\'Inventario',
|
||||
environment_required: 'È richiesto l\'Ambiente',
|
||||
email_required: 'È richiesta l\'Email',
|
||||
build_template_required: 'È richiesto il modello della Build',
|
||||
Task: 'Operazione',
|
||||
Build: 'Build',
|
||||
Deploy: 'Compilazione',
|
||||
password_required: 'La password è obbligatoria',
|
||||
name_required: 'Il nome è obbligatorio',
|
||||
user_credentials_required: 'Le credenziali dell\'utente sono obbligatorie',
|
||||
type_required: 'Il tipo è obbligatorio',
|
||||
path_required: 'Il percorso del file di inventario è obbligatorio',
|
||||
private_key_required: 'La chiave privata è obbligatoria',
|
||||
project_name_required: 'Il nome del progetto è obbligatorio',
|
||||
repository_required: 'Il repository è obbligatorio',
|
||||
branch_required: 'Il ramo è obbligatorio',
|
||||
key_required: 'La chiave è obbligatoria',
|
||||
user_required: 'L\'utente è obbligatorio',
|
||||
build_version_required: 'La versione di build è obbligatoria',
|
||||
title_required: 'Il titolo è obbligatorio',
|
||||
isRequired: 'è obbligatorio',
|
||||
mustBeInteger: 'Deve essere un intero',
|
||||
mustBe0OrGreater: 'Deve essere 0 o maggiore',
|
||||
start_version_required: 'La versione iniziale è obbligatoria',
|
||||
playbook_filename_required: 'Il nome del file playbook è obbligatorio',
|
||||
inventory_required: 'L\'inventario è obbligatorio',
|
||||
environment_required: 'L\'ambiente è obbligatorio',
|
||||
email_required: 'L\'email è obbligatoria',
|
||||
build_template_required: 'Il modello di build è obbligatorio',
|
||||
Task: 'Compito',
|
||||
Build: 'Costruisci',
|
||||
Deploy: 'Distribuisci',
|
||||
Run: 'Esegui',
|
||||
|
||||
CreateDemoProject: 'Crea progetto demo',
|
||||
LeaveProject: 'Lascia progetto',
|
||||
integration: 'Integrazione',
|
||||
integrations: 'Integrazioni',
|
||||
NewIntegration: 'Nuova integrazione',
|
||||
EditIntegration: 'Modifica integrazione',
|
||||
DeleteIntegration: 'Elimina integrazione',
|
||||
DeleteIntegrationMsg: 'Sei sicuro di voler eliminare questa integrazione?',
|
||||
AddAlias: 'Aggiungi alias',
|
||||
LoadAlias: 'Caricamento alias...',
|
||||
runners: 'Esecutori',
|
||||
newRunner: 'Nuovo esecutore',
|
||||
enabled: 'Abilitato',
|
||||
scheduleNextRun: 'Prossima esecuzione',
|
||||
maxNumberOfParallelTasks: 'Numero massimo di compiti paralleli',
|
||||
runnerUsage: 'Utilizzo:',
|
||||
runnerToken: 'Token:',
|
||||
editRunner: 'Modifica esecutore',
|
||||
};
|
||||
|
259
web/src/lang/ja.js
Normal file
259
web/src/lang/ja.js
Normal file
@ -0,0 +1,259 @@
|
||||
export default {
|
||||
'Check interval': 'チェック間隔',
|
||||
Schedule: 'スケジュール',
|
||||
backup: 'バックアップ',
|
||||
downloadTheProjectBackupFile: 'プロジェクトバックアップファイルをダウンロード(json形式)',
|
||||
restoreProject: 'プロジェクトを復元...',
|
||||
incorrectUsrPwd: 'ログインまたはパスワードが正しくありません',
|
||||
askDeleteUser: '本当にこのユーザーを削除しますか?',
|
||||
askDeleteTemp: '本当にこのテンプレートを削除しますか?',
|
||||
askDeleteEnv: '本当にこの環境を削除しますか?',
|
||||
askDeleteInv: '本当にこのインベントリを削除しますか?',
|
||||
askDeleteKey: '本当にこのキーを削除しますか?',
|
||||
askDeleteRepo: '本当にこのリポジトリを削除しますか?',
|
||||
askDeleteProj: '本当にこのプロジェクトを削除しますか?',
|
||||
askDeleteTMem: '本当にこのチームメンバーを削除しますか?',
|
||||
edit: '編集',
|
||||
nnew: '新規',
|
||||
keyFormSshKey: 'SSHキー',
|
||||
keyFormLoginPassword: 'パスワードでログイン',
|
||||
keyFormNone: 'なし',
|
||||
incorrectUrl: '不正なURL',
|
||||
username: 'ユーザー名',
|
||||
username_required: 'ユーザー名は必須です',
|
||||
dashboard: 'ダッシュボード',
|
||||
history: '履歴',
|
||||
activity: 'アクティビティ',
|
||||
settings: '設定',
|
||||
signIn: 'サインイン',
|
||||
password: 'パスワード',
|
||||
changePassword: 'パスワードを変更',
|
||||
editUser: 'ユーザーを編集',
|
||||
newProject: '新しいプロジェクト',
|
||||
close: '閉じる',
|
||||
newProject2: '新しいプロジェクト...',
|
||||
demoMode: 'デモモード',
|
||||
task: 'タスク #{expr}',
|
||||
youCanRunAnyTasks: '任意のタスクを実行できます',
|
||||
youHaveReadonlyAccess: '読み取り専用アクセスがあります',
|
||||
taskTemplates: 'タスクテンプレート',
|
||||
inventory: 'インベントリ',
|
||||
environment: '環境',
|
||||
keyStore: 'キーのストア',
|
||||
repositories: 'リポジトリ',
|
||||
darkMode: 'ダークモード',
|
||||
team: 'チーム',
|
||||
users: 'ユーザー',
|
||||
editAccount: 'アカウントを編集',
|
||||
signOut: 'サインアウト',
|
||||
error: 'エラー',
|
||||
refreshPage: 'ページを更新',
|
||||
relogin: '再ログイン',
|
||||
howToFixSigninIssues: 'サインインの問題を修正する方法',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'まず、Semaphoreが実行されているサーバーへのアクセスが必要です。',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'サーバーで次のコマンドを実行して、既存のユーザーを確認します:',
|
||||
semaphoreUserList: 'semaphore user list',
|
||||
youCanChangePasswordOfExistingUser: '既存のユーザーのパスワードを変更できます:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: 'または新しい管理者ユーザーを作成します:',
|
||||
close2: '閉じる',
|
||||
semaphore: 'セマフォ',
|
||||
dontHaveAccountOrCantSignIn: 'アカウントがないか、サインインできませんか?',
|
||||
password2: 'パスワード',
|
||||
cancel: 'キャンセル',
|
||||
noViews: 'ビューがありません',
|
||||
addView: 'ビューを追加',
|
||||
editEnvironment: '環境を編集',
|
||||
deleteEnvironment: '環境を削除',
|
||||
environment2: '環境',
|
||||
newEnvironment: '新しい環境',
|
||||
environmentName: '環境名',
|
||||
extraVariables: '追加変数',
|
||||
enterExtraVariablesJson: '追加変数のJSONを入力...',
|
||||
environmentVariables: '環境変数',
|
||||
enterEnvJson: '環境のJSONを入力...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: '環境と追加変数は有効なJSONでなければなりません。例:',
|
||||
dashboard2: 'ダッシュボード',
|
||||
ansibleSemaphore: 'セマフォUI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: '申し訳ありませんが、<%= htmlWebpackPlugin.options.title %>はJavaScriptが有効でないと正しく動作しません。続行するには有効にしてください。',
|
||||
deleteInventory: 'インベントリを削除',
|
||||
newInventory: '新しいインベントリ',
|
||||
name: '名前',
|
||||
userCredentials: 'ユーザー資格情報',
|
||||
sudoCredentialsOptional: 'Sudo資格情報(オプション)',
|
||||
type: 'タイプ',
|
||||
pathToInventoryFile: 'インベントリファイルへのパス',
|
||||
enterInventory: 'インベントリを入力...',
|
||||
staticInventoryExample: '静的インベントリの例:',
|
||||
staticYamlInventoryExample: '静的YAMLインベントリの例:',
|
||||
keyName: 'キー名',
|
||||
loginOptional: 'ログイン(オプション)',
|
||||
usernameOptional: 'ユーザー名(オプション)',
|
||||
privateKey: '秘密鍵',
|
||||
override: '上書き',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'HTTPSリポジトリおよび非SSH接続を使用するプレイブックにこのタイプのキーを使用します。',
|
||||
deleteKey: 'キーを削除',
|
||||
newKey: '新しいキー',
|
||||
create: '作成',
|
||||
newTask: '新しいタスク',
|
||||
cantDeleteThe: '{objectTitle}を削除できません',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle}は以下のリソースで使用されているため削除できません',
|
||||
projectName: 'プロジェクト名',
|
||||
allowAlertsForThisProject: 'このプロジェクトのアラートを許可',
|
||||
telegramChatIdOptional: 'TelegramチャットID(オプション)',
|
||||
maxNumberOfParallelTasksOptional: '最大並列タスク数(オプション)',
|
||||
deleteRepository: 'リポジトリを削除',
|
||||
newRepository: '新しいリポジトリ',
|
||||
urlOrPath: 'URLまたはパス',
|
||||
absPath: '絶対パス',
|
||||
branch: 'ブランチ',
|
||||
accessKey: 'アクセスキー',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Gitリポジトリにアクセスするための資格情報。次のようにする必要があります:',
|
||||
ifYouUseGitOrSshUrl: 'GitまたはSSH URLを使用する場合。',
|
||||
ifYouUseHttpsOrFileUrl: 'HTTPSまたはファイルURLを使用する場合。',
|
||||
none: 'なし',
|
||||
ssh: 'SSH',
|
||||
deleteProject: 'プロジェクトを削除',
|
||||
save: '保存',
|
||||
deleteProject2: 'プロジェクトを削除',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'プロジェクトを削除すると、元に戻すことはできません。確信してください。',
|
||||
name2: '名前 *',
|
||||
title: 'タイトル *',
|
||||
description: '説明',
|
||||
required: '必須',
|
||||
key: '{expr}',
|
||||
surveyVariables: '調査変数',
|
||||
addVariable: '変数を追加',
|
||||
columns: '列',
|
||||
buildVersion: 'ビルドバージョン',
|
||||
messageOptional: 'メッセージ(オプション)',
|
||||
debug: 'デバッグ',
|
||||
dryRun: 'ドライラン',
|
||||
diff: '差分',
|
||||
advanced: '詳細',
|
||||
hide: '隠す',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'タスクテンプレート設定でCLI引数の上書きを許可するために',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI引数(JSON配列)。例: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: '開始',
|
||||
author: '著者',
|
||||
duration: '期間',
|
||||
stop: '停止',
|
||||
forceStop: '強制停止',
|
||||
confirmTask: '確認',
|
||||
deleteTeamMember: 'チームメンバーを削除',
|
||||
team2: 'チーム',
|
||||
newTeamMember: '新しいチームメンバー',
|
||||
user: 'ユーザー',
|
||||
administrator: '管理者',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'アーティファクトの開始バージョンを定義します。各実行でアーティファクトのバージョンが増加します。',
|
||||
forMoreInformationAboutBuildingSeeThe: 'ビルドに関する詳細情報は、次を参照してください',
|
||||
taskTemplateReference: 'タスクテンプレートの参照',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'タスクが実行されるときにデプロイされるアーティファクトを定義します。',
|
||||
forMoreInformationAboutDeployingSeeThe: 'デプロイに関する詳細情報は、次を参照してください',
|
||||
taskTemplateReference2: 'タスクテンプレートの参照',
|
||||
definesAutorunSchedule: '自動実行スケジュールを定義します。',
|
||||
forMoreInformationAboutCronSeeThe: 'Cronに関する詳細情報は、次を参照してください',
|
||||
cronExpressionFormatReference: 'Cron式フォーマットの参照',
|
||||
startVersion: '開始バージョン',
|
||||
example000: '例: 0.0.0',
|
||||
buildTemplate: 'ビルドテンプレート',
|
||||
autorun: '自動実行',
|
||||
playbookFilename: 'プレイブックファイル名 *',
|
||||
exampleSiteyml: '例: site.yml',
|
||||
inventory2: 'インベントリ *',
|
||||
repository: 'リポジトリ',
|
||||
environment3: '環境 *',
|
||||
vaultPassword: 'ボールトパスワード',
|
||||
vaultPassword2: 'ボールトパスワード',
|
||||
view: 'ビュー',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: '新しいコミットのためにCronでタスクを実行したい',
|
||||
repository2: 'リポジトリ',
|
||||
cronChecksNewCommitBeforeRun: 'Cronは実行前に新しいコミットを確認します',
|
||||
readThe: '読む',
|
||||
toLearnMoreAboutCron: 'Cronについて詳しく学ぶために。',
|
||||
suppressSuccessAlerts: '成功アラートを抑制',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI引数(JSON配列)。例: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'タスクでCLI引数を許可',
|
||||
docs: 'ドキュメント',
|
||||
editViews: 'ビューを編集',
|
||||
newTemplate: '新しいテンプレート',
|
||||
taskTemplates2: 'タスクテンプレート',
|
||||
all: 'すべて',
|
||||
notLaunched: '未起動',
|
||||
by: '{user_name}による',
|
||||
editTemplate: 'テンプレートを編集',
|
||||
newTemplate2: '新しいテンプレート',
|
||||
deleteTemplate: 'テンプレートを削除',
|
||||
playbook: 'プレイブック',
|
||||
email: 'メール',
|
||||
adminUser: '管理者ユーザー',
|
||||
sendAlerts: 'アラートを送信',
|
||||
deleteUser: 'ユーザーを削除',
|
||||
newUser: '新しいユーザー',
|
||||
re: '再{getActionButtonTitle}',
|
||||
teamMember: '{expr} チームメンバー',
|
||||
taskId: 'タスクID',
|
||||
version: 'バージョン',
|
||||
status: 'ステータス',
|
||||
start: '開始',
|
||||
actions: 'アクション',
|
||||
alert: 'アラート',
|
||||
admin: '管理者',
|
||||
role: '役割',
|
||||
external: '外部',
|
||||
time: '時間',
|
||||
path: 'パス',
|
||||
gitUrl: 'Git URL',
|
||||
sshKey: 'SSHキー',
|
||||
lastTask: '最後のタスク',
|
||||
task2: 'タスク',
|
||||
build: 'ビルド',
|
||||
deploy: 'デプロイ',
|
||||
run: '実行',
|
||||
add: '追加',
|
||||
password_required: 'パスワードは必須です',
|
||||
name_required: '名前は必須です',
|
||||
user_credentials_required: 'ユーザー資格情報は必須です',
|
||||
type_required: 'タイプは必須です',
|
||||
path_required: 'インベントリファイルへのパスは必須です',
|
||||
private_key_required: '秘密鍵は必須です',
|
||||
project_name_required: 'プロジェクト名は必須です',
|
||||
repository_required: 'リポジトリは必須です',
|
||||
branch_required: 'ブランチは必須です',
|
||||
key_required: 'キーは必須です',
|
||||
user_required: 'ユーザーは必須です',
|
||||
build_version_required: 'ビルドバージョンは必須です',
|
||||
title_required: 'タイトルは必須です',
|
||||
isRequired: 'は必須です',
|
||||
mustBeInteger: '整数でなければなりません',
|
||||
mustBe0OrGreater: '0以上でなければなりません',
|
||||
start_version_required: '開始バージョンは必須です',
|
||||
playbook_filename_required: 'プレイブックファイル名は必須です',
|
||||
inventory_required: 'インベントリは必須です',
|
||||
environment_required: '環境は必須です',
|
||||
email_required: 'メールは必須です',
|
||||
build_template_required: 'ビルドテンプレートは必須です',
|
||||
Task: 'タスク',
|
||||
Build: 'ビルド',
|
||||
Deploy: 'デプロイ',
|
||||
Run: '実行',
|
||||
CreateDemoProject: 'デモプロジェクトを作成',
|
||||
LeaveProject: 'プロジェクトを離れる',
|
||||
integration: '統合',
|
||||
integrations: '統合',
|
||||
NewIntegration: '新しい統合',
|
||||
EditIntegration: '統合を編集',
|
||||
DeleteIntegration: '統合を削除',
|
||||
DeleteIntegrationMsg: 'この統合を削除してもよろしいですか?',
|
||||
AddAlias: 'エイリアスを追加',
|
||||
LoadAlias: 'エイリアスを読み込み中...',
|
||||
runners: 'ランナー',
|
||||
newRunner: '新しいランナー',
|
||||
enabled: '有効',
|
||||
scheduleNextRun: '次の実行',
|
||||
maxNumberOfParallelTasks: '最大並列タスク数',
|
||||
runnerUsage: '使用法:',
|
||||
runnerToken: 'トークン:',
|
||||
editRunner: 'ランナーを編集',
|
||||
};
|
259
web/src/lang/ko.js
Normal file
259
web/src/lang/ko.js
Normal file
@ -0,0 +1,259 @@
|
||||
export default {
|
||||
'Check interval': '검사 간격',
|
||||
Schedule: '일정',
|
||||
backup: '백업',
|
||||
downloadTheProjectBackupFile: '프로젝트 백업 파일 다운로드 (json 형식)',
|
||||
restoreProject: '프로젝트 복원...',
|
||||
incorrectUsrPwd: '잘못된 로그인 또는 비밀번호',
|
||||
askDeleteUser: '정말로 이 사용자를 삭제하시겠습니까?',
|
||||
askDeleteTemp: '정말로 이 템플릿을 삭제하시겠습니까?',
|
||||
askDeleteEnv: '정말로 이 환경을 삭제하시겠습니까?',
|
||||
askDeleteInv: '정말로 이 인벤토리를 삭제하시겠습니까?',
|
||||
askDeleteKey: '정말로 이 키를 삭제하시겠습니까?',
|
||||
askDeleteRepo: '정말로 이 리포지토리를 삭제하시겠습니까?',
|
||||
askDeleteProj: '정말로 이 프로젝트를 삭제하시겠습니까?',
|
||||
askDeleteTMem: '정말로 이 팀 멤버를 삭제하시겠습니까?',
|
||||
edit: '편집',
|
||||
nnew: '새로 만들기',
|
||||
keyFormSshKey: 'SSH 키',
|
||||
keyFormLoginPassword: '비밀번호로 로그인',
|
||||
keyFormNone: '없음',
|
||||
incorrectUrl: '잘못된 URL',
|
||||
username: '사용자 이름',
|
||||
username_required: '사용자 이름은 필수입니다',
|
||||
dashboard: '대시보드',
|
||||
history: '기록',
|
||||
activity: '활동',
|
||||
settings: '설정',
|
||||
signIn: '로그인',
|
||||
password: '비밀번호',
|
||||
changePassword: '비밀번호 변경',
|
||||
editUser: '사용자 편집',
|
||||
newProject: '새 프로젝트',
|
||||
close: '닫기',
|
||||
newProject2: '새 프로젝트...',
|
||||
demoMode: '데모 모드',
|
||||
task: '작업 #{expr}',
|
||||
youCanRunAnyTasks: '모든 작업을 실행할 수 있습니다',
|
||||
youHaveReadonlyAccess: '읽기 전용 액세스 권한이 있습니다',
|
||||
taskTemplates: '작업 템플릿',
|
||||
inventory: '인벤토리',
|
||||
environment: '환경',
|
||||
keyStore: '키 저장소',
|
||||
repositories: '리포지토리',
|
||||
darkMode: '다크 모드',
|
||||
team: '팀',
|
||||
users: '사용자',
|
||||
editAccount: '계정 편집',
|
||||
signOut: '로그아웃',
|
||||
error: '오류',
|
||||
refreshPage: '페이지 새로 고침',
|
||||
relogin: '다시 로그인',
|
||||
howToFixSigninIssues: '로그인 문제를 해결하는 방법',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: '먼저 Semaphore가 실행되는 서버에 대한 액세스가 필요합니다.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: '서버에서 다음 명령을 실행하여 기존 사용자를 확인하십시오:',
|
||||
semaphoreUserList: 'semaphore user list',
|
||||
youCanChangePasswordOfExistingUser: '기존 사용자의 비밀번호를 변경할 수 있습니다:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: '또는 새 관리자 사용자를 생성하십시오:',
|
||||
close2: '닫기',
|
||||
semaphore: '세마포어',
|
||||
dontHaveAccountOrCantSignIn: '계정이 없거나 로그인할 수 없습니까?',
|
||||
password2: '비밀번호',
|
||||
cancel: '취소',
|
||||
noViews: '보기 없음',
|
||||
addView: '보기 추가',
|
||||
editEnvironment: '환경 편집',
|
||||
deleteEnvironment: '환경 삭제',
|
||||
environment2: '환경',
|
||||
newEnvironment: '새 환경',
|
||||
environmentName: '환경 이름',
|
||||
extraVariables: '추가 변수',
|
||||
enterExtraVariablesJson: '추가 변수 JSON 입력...',
|
||||
environmentVariables: '환경 변수',
|
||||
enterEnvJson: '환경 JSON 입력...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: '환경 및 추가 변수는 유효한 JSON이어야 합니다. 예:',
|
||||
dashboard2: '대시보드',
|
||||
ansibleSemaphore: '세마포어 UI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: '죄송하지만 <%= htmlWebpackPlugin.options.title %>는 JavaScript가 활성화되지 않으면 제대로 작동하지 않습니다. 계속하려면 활성화하십시오.',
|
||||
deleteInventory: '인벤토리 삭제',
|
||||
newInventory: '새 인벤토리',
|
||||
name: '이름',
|
||||
userCredentials: '사용자 자격 증명',
|
||||
sudoCredentialsOptional: 'Sudo 자격 증명 (선택 사항)',
|
||||
type: '유형',
|
||||
pathToInventoryFile: '인벤토리 파일 경로',
|
||||
enterInventory: '인벤토리 입력...',
|
||||
staticInventoryExample: '정적 인벤토리 예:',
|
||||
staticYamlInventoryExample: '정적 YAML 인벤토리 예:',
|
||||
keyName: '키 이름',
|
||||
loginOptional: '로그인 (선택 사항)',
|
||||
usernameOptional: '사용자 이름 (선택 사항)',
|
||||
privateKey: '개인 키',
|
||||
override: '재정의',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'HTTPS 리포지토리 및 비 SSH 연결을 사용하는 플레이북에 이 유형의 키를 사용하십시오.',
|
||||
deleteKey: '키 삭제',
|
||||
newKey: '새 키',
|
||||
create: '생성',
|
||||
newTask: '새 작업',
|
||||
cantDeleteThe: '{objectTitle}을(를) 삭제할 수 없습니다',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle}은(는) 아래 리소스에서 사용되므로 삭제할 수 없습니다',
|
||||
projectName: '프로젝트 이름',
|
||||
allowAlertsForThisProject: '이 프로젝트에 대한 알림 허용',
|
||||
telegramChatIdOptional: '텔레그램 채팅 ID (선택 사항)',
|
||||
maxNumberOfParallelTasksOptional: '최대 병렬 작업 수 (선택 사항)',
|
||||
deleteRepository: '리포지토리 삭제',
|
||||
newRepository: '새 리포지토리',
|
||||
urlOrPath: 'URL 또는 경로',
|
||||
absPath: '절대 경로',
|
||||
branch: '브랜치',
|
||||
accessKey: '액세스 키',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Git 리포지토리에 액세스하기 위한 자격 증명. 다음과 같아야 합니다:',
|
||||
ifYouUseGitOrSshUrl: 'Git 또는 SSH URL을 사용하는 경우.',
|
||||
ifYouUseHttpsOrFileUrl: 'HTTPS 또는 파일 URL을 사용하는 경우.',
|
||||
none: '없음',
|
||||
ssh: 'SSH',
|
||||
deleteProject: '프로젝트 삭제',
|
||||
save: '저장',
|
||||
deleteProject2: '프로젝트 삭제',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: '프로젝트를 삭제하면 되돌릴 수 없습니다. 확실히 하십시오.',
|
||||
name2: '이름 *',
|
||||
title: '제목 *',
|
||||
description: '설명',
|
||||
required: '필수',
|
||||
key: '{expr}',
|
||||
surveyVariables: '설문 변수',
|
||||
addVariable: '변수 추가',
|
||||
columns: '열',
|
||||
buildVersion: '빌드 버전',
|
||||
messageOptional: '메시지 (선택 사항)',
|
||||
debug: '디버그',
|
||||
dryRun: '드라이 런',
|
||||
diff: '차이',
|
||||
advanced: '고급',
|
||||
hide: '숨기기',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: '작업 템플릿 설정에서 CLI 인수를 재정의할 수 있도록 허용하십시오',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI 인수 (JSON 배열). 예: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: '시작됨',
|
||||
author: '작성자',
|
||||
duration: '지속 시간',
|
||||
stop: '중지',
|
||||
forceStop: '강제 중지',
|
||||
confirmTask: '확인',
|
||||
deleteTeamMember: '팀 멤버 삭제',
|
||||
team2: '팀',
|
||||
newTeamMember: '새 팀 멤버',
|
||||
user: '사용자',
|
||||
administrator: '관리자',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: '아티팩트의 시작 버전을 정의합니다. 각 실행은 아티팩트 버전을 증가시킵니다.',
|
||||
forMoreInformationAboutBuildingSeeThe: '빌드에 대한 자세한 정보는 다음을 참조하십시오',
|
||||
taskTemplateReference: '작업 템플릿 참조',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: '작업이 실행될 때 배포해야 할 아티팩트를 정의합니다.',
|
||||
forMoreInformationAboutDeployingSeeThe: '배포에 대한 자세한 정보는 다음을 참조하십시오',
|
||||
taskTemplateReference2: '작업 템플릿 참조',
|
||||
definesAutorunSchedule: '자동 실행 일정을 정의합니다.',
|
||||
forMoreInformationAboutCronSeeThe: 'Cron에 대한 자세한 정보는 다음을 참조하십시오',
|
||||
cronExpressionFormatReference: 'Cron 표현식 형식 참조',
|
||||
startVersion: '시작 버전',
|
||||
example000: '예: 0.0.0',
|
||||
buildTemplate: '빌드 템플릿',
|
||||
autorun: '자동 실행',
|
||||
playbookFilename: '플레이북 파일 이름 *',
|
||||
exampleSiteyml: '예: site.yml',
|
||||
inventory2: '인벤토리 *',
|
||||
repository: '리포지토리',
|
||||
environment3: '환경 *',
|
||||
vaultPassword: '금고 비밀번호',
|
||||
vaultPassword2: '금고 비밀번호',
|
||||
view: '보기',
|
||||
cron: '크론',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: '저는 특정 리포지토리의 새로운 커밋에 대해서만 크론으로 작업을 실행하고 싶습니다',
|
||||
repository2: '리포지토리',
|
||||
cronChecksNewCommitBeforeRun: '크론은 실행 전에 새로운 커밋을 확인합니다',
|
||||
readThe: '읽기',
|
||||
toLearnMoreAboutCron: '크론에 대해 더 알아보려면',
|
||||
suppressSuccessAlerts: '성공 알림 억제',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI 인수 (JSON 배열). 예: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: '작업에서 CLI 인수 허용',
|
||||
docs: '문서',
|
||||
editViews: '보기 편집',
|
||||
newTemplate: '새 템플릿',
|
||||
taskTemplates2: '작업 템플릿',
|
||||
all: '모두',
|
||||
notLaunched: '시작되지 않음',
|
||||
by: '{user_name}에 의해',
|
||||
editTemplate: '템플릿 편집',
|
||||
newTemplate2: '새 템플릿',
|
||||
deleteTemplate: '템플릿 삭제',
|
||||
playbook: '플레이북',
|
||||
email: '이메일',
|
||||
adminUser: '관리자 사용자',
|
||||
sendAlerts: '알림 전송',
|
||||
deleteUser: '사용자 삭제',
|
||||
newUser: '새 사용자',
|
||||
re: 'Re{getActionButtonTitle}',
|
||||
teamMember: '{expr} 팀 멤버',
|
||||
taskId: '작업 ID',
|
||||
version: '버전',
|
||||
status: '상태',
|
||||
start: '시작',
|
||||
actions: '작업',
|
||||
alert: '알림',
|
||||
admin: '관리자',
|
||||
role: '역할',
|
||||
external: '외부',
|
||||
time: '시간',
|
||||
path: '경로',
|
||||
gitUrl: 'Git URL',
|
||||
sshKey: 'SSH 키',
|
||||
lastTask: '마지막 작업',
|
||||
task2: '작업',
|
||||
build: '빌드',
|
||||
deploy: '배포',
|
||||
run: '실행',
|
||||
add: '추가',
|
||||
password_required: '비밀번호는 필수입니다',
|
||||
name_required: '이름은 필수입니다',
|
||||
user_credentials_required: '사용자 자격 증명은 필수입니다',
|
||||
type_required: '유형은 필수입니다',
|
||||
path_required: '인벤토리 파일 경로는 필수입니다',
|
||||
private_key_required: '개인 키는 필수입니다',
|
||||
project_name_required: '프로젝트 이름은 필수입니다',
|
||||
repository_required: '리포지토리는 필수입니다',
|
||||
branch_required: '브랜치는 필수입니다',
|
||||
key_required: '키는 필수입니다',
|
||||
user_required: '사용자는 필수입니다',
|
||||
build_version_required: '빌드 버전은 필수입니다',
|
||||
title_required: '제목은 필수입니다',
|
||||
isRequired: '필수입니다',
|
||||
mustBeInteger: '정수여야 합니다',
|
||||
mustBe0OrGreater: '0 이상이어야 합니다',
|
||||
start_version_required: '시작 버전은 필수입니다',
|
||||
playbook_filename_required: '플레이북 파일 이름은 필수입니다',
|
||||
inventory_required: '인벤토리는 필수입니다',
|
||||
environment_required: '환경은 필수입니다',
|
||||
email_required: '이메일은 필수입니다',
|
||||
build_template_required: '빌드 템플릿은 필수입니다',
|
||||
Task: '작업',
|
||||
Build: '빌드',
|
||||
Deploy: '배포',
|
||||
Run: '실행',
|
||||
CreateDemoProject: '데모 프로젝트 생성',
|
||||
LeaveProject: '프로젝트 나가기',
|
||||
integration: '통합',
|
||||
integrations: '통합',
|
||||
NewIntegration: '새 통합',
|
||||
EditIntegration: '통합 편집',
|
||||
DeleteIntegration: '통합 삭제',
|
||||
DeleteIntegrationMsg: '정말로 이 통합을 삭제하시겠습니까?',
|
||||
AddAlias: '별칭 추가',
|
||||
LoadAlias: '별칭 로딩 중...',
|
||||
runners: '러너',
|
||||
newRunner: '새 러너',
|
||||
enabled: '활성화됨',
|
||||
scheduleNextRun: '다음 실행',
|
||||
maxNumberOfParallelTasks: '최대 병렬 작업 수',
|
||||
runnerUsage: '사용량:',
|
||||
runnerToken: '토큰:',
|
||||
editRunner: '러너 편집',
|
||||
};
|
@ -1,8 +1,10 @@
|
||||
export default {
|
||||
'Check interval': 'Controleer interval',
|
||||
Schedule: 'Schema',
|
||||
backup: 'Back-up',
|
||||
downloadTheProjectBackupFile: 'Download het back-upbestand van het project (in json)',
|
||||
restoreProject: 'Herstellen...',
|
||||
incorrectUsrPwd: 'Onjuiste gebruikersnaam of wachtwoord',
|
||||
downloadTheProjectBackupFile: 'Download het project back-up bestand (in json)',
|
||||
restoreProject: 'Herstel Project...',
|
||||
incorrectUsrPwd: 'Onjuiste inlog of wachtwoord',
|
||||
askDeleteUser: 'Wilt u deze gebruiker echt verwijderen?',
|
||||
askDeleteTemp: 'Wilt u deze sjabloon echt verwijderen?',
|
||||
askDeleteEnv: 'Wilt u deze omgeving echt verwijderen?',
|
||||
@ -13,228 +15,245 @@ export default {
|
||||
askDeleteTMem: 'Wilt u dit teamlid echt verwijderen?',
|
||||
edit: 'Bewerken',
|
||||
nnew: 'Nieuw',
|
||||
keyFormSshKey: 'SSH-sleutel',
|
||||
keyFormSshKey: 'SSH Sleutel',
|
||||
keyFormLoginPassword: 'Inloggen met wachtwoord',
|
||||
keyFormNone: 'Geen',
|
||||
incorrectUrl: 'Onjuiste URL',
|
||||
username: 'Gebruikersnaam',
|
||||
username_required: 'Gebruikersnaam is verplicht',
|
||||
username_required: 'Gebruikersnaam is vereist',
|
||||
dashboard: 'Dashboard',
|
||||
history: 'Geschiedenis',
|
||||
activity: 'Activiteit',
|
||||
settings: 'Instellingen',
|
||||
signIn: 'Aanmelden',
|
||||
signIn: 'Inloggen',
|
||||
password: 'Wachtwoord',
|
||||
changePassword: 'Wachtwoord wijzigen',
|
||||
editUser: 'Gebruiker bewerken',
|
||||
newProject: 'Nieuw project',
|
||||
editUser: 'Bewerk Gebruiker',
|
||||
newProject: 'Nieuw Project',
|
||||
close: 'Sluiten',
|
||||
newProject2: 'Nieuw project...',
|
||||
demoMode: 'DEMO-MODUS',
|
||||
demoMode: 'DEMO MODUS',
|
||||
task: 'Taak #{expr}',
|
||||
youCanRunAnyTasks: 'U kunt alle taken uitvoeren',
|
||||
youCanRunAnyTasks: 'U kunt elke taak uitvoeren',
|
||||
youHaveReadonlyAccess: 'U heeft alleen-lezen toegang',
|
||||
taskTemplates: 'Taaksjablonen',
|
||||
taskTemplates: 'Taak Sjablonen',
|
||||
inventory: 'Inventaris',
|
||||
environment: 'Omgeving',
|
||||
keyStore: 'Sleutelopslag',
|
||||
keyStore: 'Sleutel Opslag',
|
||||
repositories: 'Repositories',
|
||||
darkMode: 'Donkere modus',
|
||||
darkMode: 'Donkere Modus',
|
||||
team: 'Team',
|
||||
users: 'Gebruikers',
|
||||
editAccount: 'Account bewerken',
|
||||
signOut: 'Afmelden',
|
||||
editAccount: 'Bewerk Account',
|
||||
signOut: 'Uitloggen',
|
||||
error: 'Fout',
|
||||
refreshPage: 'Pagina vernieuwen',
|
||||
relogin: 'Opnieuw aanmelden',
|
||||
howToFixSigninIssues: 'Hoe aanmeldingsproblemen op te lossen',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Allereerst hebt u toegang nodig tot de server waar Semaphore draait.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Voer het volgende commando uit op de server om bestaande gebruikers te zien:',
|
||||
semaphoreUserList: 'semaphore user list',
|
||||
refreshPage: 'Vernieuw Pagina',
|
||||
relogin: 'Opnieuw inloggen',
|
||||
howToFixSigninIssues: 'Hoe inlogproblemen op te lossen',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Ten eerste heeft u toegang nodig tot de server waar Semaphore draait.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Voer de volgende opdracht op de server uit om bestaande gebruikers te zien:',
|
||||
semaphoreUserList: 'semaphore gebruikerslijst',
|
||||
youCanChangePasswordOfExistingUser: 'U kunt het wachtwoord van een bestaande gebruiker wijzigen:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: 'Of maak een nieuwe beheerder aan:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore gebruiker wijzig-per-inlog --login gebruiker123 --wachtwoord {maakWachtwoordVoorbeeld}',
|
||||
orCreateNewAdminUser: 'Of maak een nieuwe admin gebruiker:',
|
||||
close2: 'Sluiten',
|
||||
semaphore: 'SEMAFOOR',
|
||||
dontHaveAccountOrCantSignIn: 'Hebt u geen account of kunt u zich niet aanmelden?',
|
||||
semaphore: 'SEMAPHORE',
|
||||
dontHaveAccountOrCantSignIn: 'Heeft u geen account of kunt u niet inloggen?',
|
||||
password2: 'Wachtwoord',
|
||||
cancel: 'Annuleren',
|
||||
noViews: 'Geen weergaven',
|
||||
addView: 'Weergave toevoegen',
|
||||
editEnvironment: 'Omgeving bewerken',
|
||||
deleteEnvironment: 'Omgeving verwijderen',
|
||||
addView: 'Voeg weergave toe',
|
||||
editEnvironment: 'Bewerk Omgeving',
|
||||
deleteEnvironment: 'Verwijder omgeving',
|
||||
environment2: 'Omgeving',
|
||||
newEnvironment: 'Nieuwe omgeving',
|
||||
newEnvironment: 'Nieuwe Omgeving',
|
||||
environmentName: 'Omgevingsnaam',
|
||||
extraVariables: 'Extra variabelen',
|
||||
enterExtraVariablesJson: 'Voer extra variabelen in JSON opmaak in...',
|
||||
enterExtraVariablesJson: 'Voer extra variabelen JSON in...',
|
||||
environmentVariables: 'Omgevingsvariabelen',
|
||||
enterEnvJson: 'Voer omgevings-JSON in...',
|
||||
enterEnvJson: 'Voer env JSON in...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'Omgeving en extra variabelen moeten geldige JSON zijn. Voorbeeld:',
|
||||
dashboard2: 'Dashboard',
|
||||
ansibleSemaphore: 'Semaphore UI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Het spijt ons, maar <%= htmlWebpackPlugin.options.title %> werkt niet correct zonder ingeschakelde JavaScript. Schakel het in om door te gaan.',
|
||||
deleteInventory: 'Inventaris verwijderen',
|
||||
newInventory: 'Nieuwe inventaris',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Het spijt ons, maar <%= htmlWebpackPlugin.options.title %> werkt niet goed zonder ingeschakelde JavaScript. Schakel het in om door te gaan.',
|
||||
deleteInventory: 'Verwijder inventaris',
|
||||
newInventory: 'Nieuwe Inventaris',
|
||||
name: 'Naam',
|
||||
userCredentials: 'Gebruikersreferenties',
|
||||
sudoCredentialsOptional: 'Sudo-referenties (optioneel)',
|
||||
sudoCredentialsOptional: 'Sudo Referenties (Optioneel)',
|
||||
type: 'Type',
|
||||
pathToInventoryFile: 'Pad naar inventarisbestand',
|
||||
pathToInventoryFile: 'Pad naar Inventarisbestand',
|
||||
enterInventory: 'Voer inventaris in...',
|
||||
staticInventoryExample: 'Voorbeeld van statische inventaris:',
|
||||
staticYamlInventoryExample: 'Voorbeeld van statische YAML-inventaris:',
|
||||
staticInventoryExample: 'Statische inventarisvoorbeeld:',
|
||||
staticYamlInventoryExample: 'Statisch YAML inventarisvoorbeeld:',
|
||||
keyName: 'Sleutelnaam',
|
||||
loginOptional: 'Inloggen (optioneel)',
|
||||
usernameOptional: 'Gebruikersnaam (optioneel)',
|
||||
loginOptional: 'Inloggen (Optioneel)',
|
||||
usernameOptional: 'Gebruikersnaam (Optioneel)',
|
||||
privateKey: 'Privésleutel',
|
||||
override: 'Overschrijven',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Gebruik dit type sleutel voor HTTPS-repositories en voor playbooks die geen SSH-verbindingen gebruiken.',
|
||||
deleteKey: 'Sleutel verwijderen',
|
||||
newKey: 'Nieuwe sleutel',
|
||||
create: 'Maken',
|
||||
newTask: 'Nieuwe taak',
|
||||
cantDeleteThe: 'Kan {objectTitle} niet verwijderen',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: 'De {objectTitle} kan niet worden verwijderd omdat deze wordt gebruikt door de onderstaande resources',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Gebruik dit type sleutel voor HTTPS repositories en voor playbooks die geen SSH-verbindingen gebruiken.',
|
||||
deleteKey: 'Verwijder sleutel',
|
||||
newKey: 'Nieuwe Sleutel',
|
||||
create: 'Aanmaken',
|
||||
newTask: 'Nieuwe Taak',
|
||||
cantDeleteThe: 'Kan de {objectTitle} niet verwijderen',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: 'De {objectTitle} kan niet worden verwijderd omdat deze wordt gebruikt door de onderstaande bronnen',
|
||||
projectName: 'Projectnaam',
|
||||
allowAlertsForThisProject: 'Waarschuwingen toestaan voor dit project',
|
||||
telegramChatIdOptional: 'Telegram Chat ID (optioneel)',
|
||||
maxNumberOfParallelTasksOptional: 'Maximaal aantal gelijktijdige taken (optioneel)',
|
||||
deleteRepository: 'Repository verwijderen',
|
||||
newRepository: 'Nieuwe repository',
|
||||
allowAlertsForThisProject: 'Sta waarschuwingen voor dit project toe',
|
||||
telegramChatIdOptional: 'Telegram Chat ID (Optioneel)',
|
||||
maxNumberOfParallelTasksOptional: 'Maximaal aantal parallelle taken (Optioneel)',
|
||||
deleteRepository: 'Verwijder repository',
|
||||
newRepository: 'Nieuwe Repository',
|
||||
urlOrPath: 'URL of pad',
|
||||
absPath: 'Absoluut pad',
|
||||
absPath: 'absoluut pad',
|
||||
branch: 'Tak',
|
||||
accessKey: 'Toegangssleutel',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Referenties om toegang te krijgen tot het Git-repository. Het zou moeten zijn:',
|
||||
ifYouUseGitOrSshUrl: 'als u Git- of SSH-URL gebruikt.',
|
||||
ifYouUseHttpsOrFileUrl: 'als u HTTPS- of bestand-URL gebruikt.',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Referenties om toegang te krijgen tot de Git-repository. Het zou moeten zijn:',
|
||||
ifYouUseGitOrSshUrl: 'als u Git of SSH URL gebruikt.',
|
||||
ifYouUseHttpsOrFileUrl: 'als u HTTPS of bestand URL gebruikt.',
|
||||
none: 'Geen',
|
||||
ssh: 'SSH',
|
||||
deleteProject: 'Project verwijderen',
|
||||
deleteProject: 'Verwijder project',
|
||||
save: 'Opslaan',
|
||||
deleteProject2: 'Project verwijderen',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Zodra u een project verwijdert, is er geen weg terug. Wees zeker.',
|
||||
deleteProject2: 'Verwijder Project',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Zodra u een project verwijdert, is er geen weg meer terug. Wees alstublieft zeker.',
|
||||
name2: 'Naam *',
|
||||
title: 'Titel *',
|
||||
description: 'Beschrijving',
|
||||
required: 'Vereist',
|
||||
key: '{expr}',
|
||||
surveyVariables: 'Enquêtevariabelen',
|
||||
addVariable: 'Variabele toevoegen',
|
||||
addVariable: 'Voeg variabele toe',
|
||||
columns: 'Kolommen',
|
||||
buildVersion: 'Bouwversie',
|
||||
messageOptional: 'Bericht (optioneel)',
|
||||
messageOptional: 'Bericht (Optioneel)',
|
||||
debug: 'Debug',
|
||||
dryRun: 'Proefrun',
|
||||
dryRun: 'Droog draaien',
|
||||
diff: 'Verschil',
|
||||
advanced: 'Geavanceerd',
|
||||
hide: 'Verbergen',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Sta het overschrijven van CLI-argument toe in de instellingen van het taaksjabloon',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI-argumenten (JSON-array). Voorbeeld: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Om het overschrijven van CLI-argumenten in Taak Sjablooninstellingen toe te staan',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI Args (JSON-array). Voorbeeld: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: 'Gestart',
|
||||
author: 'Auteur',
|
||||
duration: 'Duur',
|
||||
stop: 'Stoppen',
|
||||
forceStop: 'Gedwongen stop',
|
||||
deleteTeamMember: 'Teamlid verwijderen',
|
||||
stop: 'Stop',
|
||||
forceStop: 'Forceer Stop',
|
||||
confirmTask: 'Bevestigen',
|
||||
deleteTeamMember: 'Verwijder teamlid',
|
||||
team2: 'Team',
|
||||
newTeamMember: 'Nieuw teamlid',
|
||||
newTeamMember: 'Nieuw Teamlid',
|
||||
user: 'Gebruiker',
|
||||
administrator: 'Beheerder',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Definieert de startversie van uw artefact. Elke uitvoering verhoogt de artefactversie.',
|
||||
administrator: 'Administrator',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Definieert de startversie van uw artifact. Elke uitvoering verhoogt de artifactversie.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Voor meer informatie over bouwen, zie de',
|
||||
taskTemplateReference: 'Referentie taaksjabloon',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Definieert welk artefact moet worden geïmplementeerd wanneer de taak wordt uitgevoerd.',
|
||||
taskTemplateReference: 'Taak Sjabloonreferentie',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Definieert welk artifact moet worden gedeployed wanneer de taak draait.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Voor meer informatie over implementeren, zie de',
|
||||
taskTemplateReference2: 'Referentie taaksjabloon',
|
||||
definesAutorunSchedule: 'Definieert autorunschema.',
|
||||
taskTemplateReference2: 'Taak Sjabloonreferentie',
|
||||
definesAutorunSchedule: 'Definieert het autorun-schema.',
|
||||
forMoreInformationAboutCronSeeThe: 'Voor meer informatie over cron, zie de',
|
||||
cronExpressionFormatReference: 'Referentieformaat cron-uitdrukking',
|
||||
cronExpressionFormatReference: 'Cron-expressieformaatreferentie',
|
||||
startVersion: 'Startversie',
|
||||
example000: 'Voorbeeld: 0.0.0',
|
||||
buildTemplate: 'Bouwsjabloon',
|
||||
buildTemplate: 'Bouw Sjabloon',
|
||||
autorun: 'Automatisch uitvoeren',
|
||||
playbookFilename: 'Playbook-bestandsnaam *',
|
||||
playbookFilename: 'Playbook Bestandsnaam *',
|
||||
exampleSiteyml: 'Voorbeeld: site.yml',
|
||||
inventory2: 'Inventaris *',
|
||||
repository: 'Repository',
|
||||
environment3: 'Omgeving *',
|
||||
vaultPassword: 'Vault-wachtwoord',
|
||||
vaultPassword2: 'Vault-wachtwoord',
|
||||
vaultPassword: 'Kluiswachtwoord',
|
||||
vaultPassword2: 'Kluiswachtwoord',
|
||||
view: 'Weergave',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Ik wil een taak uitvoeren via cron alleen voor nieuwe commits van een bepaald repository',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Ik wil een taak via de cron uitvoeren alleen voor nieuwe commits van een bepaalde repository',
|
||||
repository2: 'Repository',
|
||||
cronChecksNewCommitBeforeRun: 'Cron controleert nieuwe commit voor uitvoering',
|
||||
cronChecksNewCommitBeforeRun: 'Cron controleert nieuwe commit voordat deze wordt uitgevoerd',
|
||||
readThe: 'Lees de',
|
||||
toLearnMoreAboutCron: 'om meer te weten te komen over Cron.',
|
||||
suppressSuccessAlerts: 'Onderdruk succesmeldingen',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI-argumenten (JSON-array). Voorbeeld: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Toestaan van CLI-argumenten in taak',
|
||||
toLearnMoreAboutCron: 'om meer te leren over Cron.',
|
||||
suppressSuccessAlerts: 'Suppress success alerts',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI Args (JSON-array). Voorbeeld: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Sta CLI-argumenten toe in Taak',
|
||||
docs: 'documentatie',
|
||||
editViews: 'Weergaven bewerken',
|
||||
editViews: 'Bewerk Weergaven',
|
||||
newTemplate: 'Nieuw sjabloon',
|
||||
taskTemplates2: 'Taaksjablonen',
|
||||
all: 'Alles',
|
||||
notLaunched: 'Niet gestart',
|
||||
taskTemplates2: 'Taak Sjablonen',
|
||||
all: 'Alle',
|
||||
notLaunched: 'Niet gelanceerd',
|
||||
by: 'door {user_name}',
|
||||
editTemplate: 'Sjabloon bewerken',
|
||||
newTemplate2: 'Nieuw sjabloon',
|
||||
deleteTemplate: 'Sjabloon verwijderen',
|
||||
editTemplate: 'Bewerk Sjabloon',
|
||||
newTemplate2: 'Nieuw Sjabloon',
|
||||
deleteTemplate: 'Verwijder sjabloon',
|
||||
playbook: 'Playbook',
|
||||
email: 'E-mail',
|
||||
adminUser: 'Beheerdersgebruiker',
|
||||
sendAlerts: 'Meldingen verzenden',
|
||||
deleteUser: 'Gebruiker verwijderen',
|
||||
newUser: 'Nieuwe gebruiker',
|
||||
re: 'Her{getActionButtonTitle}',
|
||||
adminUser: 'Admin gebruiker',
|
||||
sendAlerts: 'Stuur waarschuwingen',
|
||||
deleteUser: 'Verwijder gebruiker',
|
||||
newUser: 'Nieuwe Gebruiker',
|
||||
re: 'Re{getActionButtonTitle}',
|
||||
teamMember: '{expr} Teamlid',
|
||||
taskId: 'Taak-ID',
|
||||
taskId: 'Taak ID',
|
||||
version: 'Versie',
|
||||
status: 'Status',
|
||||
start: 'Starten',
|
||||
start: 'Start',
|
||||
actions: 'Acties',
|
||||
alert: 'Melding',
|
||||
admin: 'Beheerder',
|
||||
alert: 'Waarschuwing',
|
||||
admin: 'Admin',
|
||||
role: 'Rol',
|
||||
external: 'Extern',
|
||||
time: 'Tijd',
|
||||
path: 'Pad',
|
||||
gitUrl: 'Git-URL',
|
||||
sshKey: 'SSH-sleutel',
|
||||
lastTask: 'Laatste taak',
|
||||
gitUrl: 'Git URL',
|
||||
sshKey: 'SSH Sleutel',
|
||||
lastTask: 'Laatste Taak',
|
||||
task2: 'Taak',
|
||||
build: 'Bouwen',
|
||||
deploy: 'Implementeren',
|
||||
run: 'Uitvoeren',
|
||||
add: 'Toevoegen',
|
||||
password_required: 'Wachtwoord is verplicht',
|
||||
name_required: 'Naam is verplicht',
|
||||
user_credentials_required: 'Gebruikersreferenties zijn verplicht',
|
||||
type_required: 'Type is verplicht',
|
||||
path_required: 'Pad naar inventarisbestand is verplicht',
|
||||
private_key_required: 'Privésleutel is verplicht',
|
||||
project_name_required: 'Projectnaam is verplicht',
|
||||
repository_required: 'Repository is verplicht',
|
||||
branch_required: 'Tak is verplicht',
|
||||
key_required: 'Sleutel is verplicht',
|
||||
user_required: 'Gebruiker is verplicht',
|
||||
build_version_required: 'Bouwversie is verplicht',
|
||||
title_required: 'Titel is verplicht',
|
||||
isRequired: 'is verplicht',
|
||||
password_required: 'Wachtwoord is vereist',
|
||||
name_required: 'Naam is vereist',
|
||||
user_credentials_required: 'Gebruikersreferenties zijn vereist',
|
||||
type_required: 'Type is vereist',
|
||||
path_required: 'Pad naar Inventarisbestand is vereist',
|
||||
private_key_required: 'Privésleutel is vereist',
|
||||
project_name_required: 'Projectnaam is vereist',
|
||||
repository_required: 'Repository is vereist',
|
||||
branch_required: 'Tak is vereist',
|
||||
key_required: 'Sleutel is vereist',
|
||||
user_required: 'Gebruiker is vereist',
|
||||
build_version_required: 'Bouwversie is vereist',
|
||||
title_required: 'Titel is vereist',
|
||||
isRequired: 'is vereist',
|
||||
mustBeInteger: 'Moet een geheel getal zijn',
|
||||
mustBe0OrGreater: 'Moet 0 of groter zijn',
|
||||
start_version_required: 'Startversie is verplicht',
|
||||
playbook_filename_required: 'Playbook-bestandsnaam is verplicht',
|
||||
inventory_required: 'Inventaris is verplicht',
|
||||
environment_required: 'Omgeving is verplicht',
|
||||
email_required: 'E-mail is verplicht',
|
||||
build_template_required: 'Bouwsjabloon is verplicht',
|
||||
start_version_required: 'Startversie is vereist',
|
||||
playbook_filename_required: 'Playbook bestandsnaam is vereist',
|
||||
inventory_required: 'Inventaris is vereist',
|
||||
environment_required: 'Omgeving is vereist',
|
||||
email_required: 'E-mail is vereist',
|
||||
build_template_required: 'Bouwsjabloon is vereist',
|
||||
Task: 'Taak',
|
||||
Build: 'Bouwen',
|
||||
Deploy: 'Implementeren',
|
||||
Run: 'Uitvoeren',
|
||||
CreateDemoProject: 'Demo-project aanmaken',
|
||||
LeaveProject: 'Project verlaten',
|
||||
CreateDemoProject: 'Maak Demo Project',
|
||||
LeaveProject: 'Verlaat Project',
|
||||
integration: 'Integratie',
|
||||
integrations: 'Integraties',
|
||||
NewIntegration: 'Nieuwe Integratie',
|
||||
EditIntegration: 'Bewerk Integratie',
|
||||
DeleteIntegration: 'Verwijder Integratie',
|
||||
DeleteIntegrationMsg: 'Weet u zeker dat u deze integratie wilt verwijderen?',
|
||||
AddAlias: 'Voeg Alias toe',
|
||||
LoadAlias: 'Alias laden...',
|
||||
runners: 'Runners',
|
||||
newRunner: 'Nieuwe Runner',
|
||||
enabled: 'Ingeschakeld',
|
||||
scheduleNextRun: 'Volgende uitvoering',
|
||||
maxNumberOfParallelTasks: 'Maximaal aantal parallelle taken',
|
||||
runnerUsage: 'Gebruik:',
|
||||
runnerToken: 'Token:',
|
||||
editRunner: 'Bewerk Runner',
|
||||
};
|
||||
|
@ -1,27 +1,29 @@
|
||||
export default {
|
||||
'Check interval': 'Interwał sprawdzania',
|
||||
Schedule: 'Harmonogram',
|
||||
backup: 'Kopia zapasowa',
|
||||
downloadTheProjectBackupFile: 'Pobierz plik kopii zapasowej projektu (w formacie json)',
|
||||
restoreProject: 'Przywrócić...',
|
||||
incorrectUsrPwd: 'Nieprawidłowa nazwa użytkownika lub hasło.',
|
||||
restoreProject: 'Przywróć projekt...',
|
||||
incorrectUsrPwd: 'Niepoprawny login lub hasło',
|
||||
askDeleteUser: 'Czy na pewno chcesz usunąć tego użytkownika?',
|
||||
askDeleteTemp: 'Czy na pewno chcesz usunąć ten szablon?',
|
||||
askDeleteEnv: 'Czy na pewno chcesz usunąć to środowisko?',
|
||||
askDeleteInv: 'Czy na pewno chcesz usunąć tę ewidencję?',
|
||||
askDeleteInv: 'Czy na pewno chcesz usunąć ten inwentarz?',
|
||||
askDeleteKey: 'Czy na pewno chcesz usunąć ten klucz?',
|
||||
askDeleteRepo: 'Czy na pewno chcesz usunąć to repozytorium?',
|
||||
askDeleteProj: 'Czy na pewno chcesz usunąć ten projekt?',
|
||||
askDeleteTMem: 'Czy na pewno chcesz usunąć tego uczestnika zespołu?',
|
||||
edit: 'Modyfikuj',
|
||||
nnew: 'Utwórz',
|
||||
askDeleteTMem: 'Czy na pewno chcesz usunąć tego członka zespołu?',
|
||||
edit: 'Edytuj',
|
||||
nnew: 'Nowy',
|
||||
keyFormSshKey: 'Klucz SSH',
|
||||
keyFormLoginPassword: 'Login with password',
|
||||
keyFormNone: 'None',
|
||||
incorrectUrl: 'Nieprawidłowy URL',
|
||||
keyFormLoginPassword: 'Login z hasłem',
|
||||
keyFormNone: 'Brak',
|
||||
incorrectUrl: 'Niepoprawny URL',
|
||||
username: 'Nazwa użytkownika',
|
||||
username_required: 'Nazwa użytkownika jest wymagana.',
|
||||
dashboard: 'Pulpit',
|
||||
username_required: 'Nazwa użytkownika jest wymagana',
|
||||
dashboard: 'Panel',
|
||||
history: 'Historia',
|
||||
activity: 'Czynność',
|
||||
activity: 'Aktywność',
|
||||
settings: 'Ustawienia',
|
||||
signIn: 'Zaloguj się',
|
||||
password: 'Hasło',
|
||||
@ -32,145 +34,146 @@ export default {
|
||||
newProject2: 'Nowy projekt...',
|
||||
demoMode: 'TRYB DEMO',
|
||||
task: 'Zadanie #{expr}',
|
||||
youCanRunAnyTasks: 'Możesz uruchamiać każde zadanie',
|
||||
youHaveReadonlyAccess: 'Masz uprawnienia jedynie do odczytu',
|
||||
youCanRunAnyTasks: 'Możesz uruchomić dowolne zadania',
|
||||
youHaveReadonlyAccess: 'Masz dostęp tylko do odczytu',
|
||||
taskTemplates: 'Szablony zadań',
|
||||
inventory: 'Ewidencja',
|
||||
inventory: 'Inwentarz',
|
||||
environment: 'Środowisko',
|
||||
keyStore: 'Magazyn kluczy',
|
||||
repositories: 'Repozytoria',
|
||||
darkMode: 'Wersja ciemna',
|
||||
darkMode: 'Tryb ciemny',
|
||||
team: 'Zespół',
|
||||
users: 'Użytkownicy',
|
||||
editAccount: 'Modyfikuj konto',
|
||||
signOut: 'Wyjdź',
|
||||
editAccount: 'Edytuj konto',
|
||||
signOut: 'Wyloguj się',
|
||||
error: 'Błąd',
|
||||
refreshPage: 'Odśwież stronę',
|
||||
relogin: 'Zaloguj ponownie',
|
||||
howToFixSigninIssues: 'Rozwiązywanie problemów z logowaniem',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Najpierw wejdź na serwer na którym uruchomiony jest Semaphore',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Wykonaj poniższe polecenie aby zobaczyć użytkowników:',
|
||||
semaphoreUserList: 'Lista użytkowników Semaphore',
|
||||
relogin: 'Ponowne logowanie',
|
||||
howToFixSigninIssues: 'Jak naprawić problemy z logowaniem',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Po pierwsze, musisz mieć dostęp do serwera, na którym działa Semaphore.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Wykonaj następujące polecenie na serwerze, aby zobaczyć istniejących użytkowników:',
|
||||
semaphoreUserList: 'semaphore user list',
|
||||
youCanChangePasswordOfExistingUser: 'Możesz zmienić hasło istniejącego użytkownika:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: 'lub stworzyć nowego administratora:',
|
||||
orCreateNewAdminUser: 'Lub utwórz nowego użytkownika administratora:',
|
||||
close2: 'Zamknij',
|
||||
semaphore: 'SEMAPHORE',
|
||||
dontHaveAccountOrCantSignIn: 'Nie masz konta, lub masz kłopoty z logowaniem?',
|
||||
semaphore: 'SEMAFOR',
|
||||
dontHaveAccountOrCantSignIn: 'Nie masz konta lub nie możesz się zalogować?',
|
||||
password2: 'Hasło',
|
||||
cancel: 'Anuluj',
|
||||
noViews: 'Brak widoków',
|
||||
addView: 'Dodaj widok',
|
||||
editEnvironment: 'Edytuj środowisko',
|
||||
deleteEnvironment: 'Usuń Środowisko',
|
||||
deleteEnvironment: 'Usuń środowisko',
|
||||
environment2: 'Środowisko',
|
||||
newEnvironment: 'Nowe środowisko',
|
||||
environmentName: 'Nazwa środowiska',
|
||||
extraVariables: 'Dodatkowe zmienne',
|
||||
enterExtraVariablesJson: 'Wprowadź dodatkowe zmienne w formacie JSON...',
|
||||
enterExtraVariablesJson: 'Wprowadź dodatkowe zmienne JSON...',
|
||||
environmentVariables: 'Zmienne środowiskowe',
|
||||
enterEnvJson: 'Wprowadź środowisko JSON...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'Środowisko i dodatkowe zmienne muszą być w poprawnym formacie JSON np.',
|
||||
dashboard2: 'Pulpit',
|
||||
ansibleSemaphore: 'Semaphore UI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Przepraszamy, ale <%= htmlWebpackPlugin.options.title %> nie działa poprawnie bez Javascript-u. Włącz JS i spróbuj ponownie.',
|
||||
deleteInventory: 'Usuń ewidencję',
|
||||
newInventory: 'Nowa ewidencja',
|
||||
enterEnvJson: 'Wprowadź JSON środowiska...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'Środowisko i dodatkowe zmienne muszą być poprawnym JSON-em. Przykład:',
|
||||
dashboard2: 'Panel',
|
||||
ansibleSemaphore: 'Interfejs użytkownika Semaphore',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Przykro nam, ale <%= htmlWebpackPlugin.options.title %> nie działa poprawnie bez włączonego JavaScriptu. Proszę włączyć, aby kontynuować.',
|
||||
deleteInventory: 'Usuń inwentarz',
|
||||
newInventory: 'Nowy inwentarz',
|
||||
name: 'Nazwa',
|
||||
userCredentials: 'Dane użytkownika',
|
||||
sudoCredentialsOptional: 'Dane dla Sudo (Optional)',
|
||||
userCredentials: 'Dane logowania użytkownika',
|
||||
sudoCredentialsOptional: 'Dane logowania sudo (opcjonalnie)',
|
||||
type: 'Typ',
|
||||
pathToInventoryFile: 'Ścieżka do pliku ewidencji',
|
||||
enterInventory: 'Wprowadź ewidencję...',
|
||||
staticInventoryExample: 'Przykładowa ewidencja statyczna:',
|
||||
staticYamlInventoryExample: 'Przykładowa ewidencja statyczna w formacie YAML:',
|
||||
pathToInventoryFile: 'Ścieżka do pliku inwentarza',
|
||||
enterInventory: 'Wprowadź inwentarz...',
|
||||
staticInventoryExample: 'Przykład statycznego inwentarza:',
|
||||
staticYamlInventoryExample: 'Przykład statycznego inwentarza YAML:',
|
||||
keyName: 'Nazwa klucza',
|
||||
loginOptional: 'Login (Niewymagany)',
|
||||
usernameOptional: 'Nazwa użytkownika (Niewymagana)',
|
||||
loginOptional: 'Login (opcjonalnie)',
|
||||
usernameOptional: 'Nazwa użytkownika (opcjonalnie)',
|
||||
privateKey: 'Klucz prywatny',
|
||||
override: 'Override',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Użyj klucza tego typu dla repozytoriów HTTPS i dla scenariuszy używających połączeń innych niż SSH.',
|
||||
override: 'Nadpisz',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Użyj tego typu klucza dla repozytoriów HTTPS i dla playbooków, które używają połączeń nie-SSH.',
|
||||
deleteKey: 'Usuń klucz',
|
||||
newKey: 'Nowy klucz',
|
||||
create: 'Utwórz',
|
||||
newTask: 'Nowe zadanie',
|
||||
cantDeleteThe: 'Nie można usunąć {objectTitle}',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle} nie może być usunięty ponieważ jest używany przez poniższe zasoby.',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle} nie może być usunięty, ponieważ jest używany przez poniższe zasoby',
|
||||
projectName: 'Nazwa projektu',
|
||||
allowAlertsForThisProject: 'Zezwól na powiadomienia dla tego projektu.',
|
||||
telegramChatIdOptional: 'Telegram Chat ID (Niewymagany)',
|
||||
maxNumberOfParallelTasksOptional: 'Maksimum dla zadań współbieżnych (Niewymagane)',
|
||||
allowAlertsForThisProject: 'Zezwól na powiadomienia dla tego projektu',
|
||||
telegramChatIdOptional: 'ID czatu Telegram (opcjonalnie)',
|
||||
maxNumberOfParallelTasksOptional: 'Maksymalna liczba równoległych zadań (opcjonalnie)',
|
||||
deleteRepository: 'Usuń repozytorium',
|
||||
newRepository: 'Nowe repozytorium',
|
||||
urlOrPath: 'URL lub ścieżka',
|
||||
absPath: 'ścieżka bezwgl.',
|
||||
absPath: 'absolutna ścieżka',
|
||||
branch: 'Gałąź',
|
||||
accessKey: 'Klucz dostępu',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Dane dostępowe dla repozytorium Git:',
|
||||
ifYouUseGitOrSshUrl: 'jeśli używasz Git-a lub SSH URL.',
|
||||
ifYouUseHttpsOrFileUrl: 'jeśli używasz HTTPS lub URL pliku.',
|
||||
none: 'None',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Dane logowania do dostępu do repozytorium Git. Powinny być:',
|
||||
ifYouUseGitOrSshUrl: 'jeśli używasz URL Git lub SSH.',
|
||||
ifYouUseHttpsOrFileUrl: 'jeśli używasz URL HTTPS lub pliku.',
|
||||
none: 'Brak',
|
||||
ssh: 'SSH',
|
||||
deleteProject: 'Usuń projekt',
|
||||
save: 'Zapisz',
|
||||
deleteProject2: 'Usuń projekt',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Usunięcia projektu nie można cofnąć. Na pewno chcesz to zrobić?',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Gdy usuniesz projekt, nie ma powrotu. Proszę być pewnym.',
|
||||
name2: 'Nazwa *',
|
||||
title: 'Tytuł *',
|
||||
description: 'Opis',
|
||||
required: 'Wymagane',
|
||||
key: '{expr}',
|
||||
surveyVariables: 'Przejrzyj zmienne',
|
||||
surveyVariables: 'Zmienne ankiety',
|
||||
addVariable: 'Dodaj zmienną',
|
||||
columns: 'Kolumny',
|
||||
buildVersion: 'Build Version',
|
||||
messageOptional: 'Komunikat (nieobowiązkowy)',
|
||||
debug: 'Debuguj',
|
||||
dryRun: 'Przebieg próbny',
|
||||
diff: 'Diff',
|
||||
buildVersion: 'Wersja kompilacji',
|
||||
messageOptional: 'Wiadomość (opcjonalnie)',
|
||||
debug: 'Debug',
|
||||
dryRun: 'Symulacja',
|
||||
diff: 'Różnice',
|
||||
advanced: 'Zaawansowane',
|
||||
hide: 'Ukryj',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Zezwól na napisywanie argumentów CLI w ustawieniach Szablonu Zadania',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI Args (JSON array) np. [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: 'Rozpoczęte',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Aby zezwolić na nadpisanie argumentu CLI w ustawieniach szablonu zadania',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Argumenty CLI (tablica JSON). Przykład: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: 'Rozpoczęto',
|
||||
author: 'Autor',
|
||||
duration: 'Czas trwania',
|
||||
stop: 'Stop',
|
||||
stop: 'Zatrzymaj',
|
||||
forceStop: 'Wymuś zatrzymanie',
|
||||
confirmTask: 'Potwierdź',
|
||||
deleteTeamMember: 'Usuń członka zespołu',
|
||||
team2: 'Zespół',
|
||||
newTeamMember: 'Nowy członek zespołu',
|
||||
user: 'użytkownik',
|
||||
user: 'Użytkownik',
|
||||
administrator: 'Administrator',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Definiuje początkową wersję Twojego wytworu. Każde uruchomienie zwiększa wersję.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Aby uzyskać więcej informacji na temat budowania zobacz:',
|
||||
taskTemplateReference: 'Odniesienie do szablonu zadania',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Określa który wytwór zostanie wdrożony podczas uruchomienia zadania',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Więcej informacji dot. wdrażania znajdziesz',
|
||||
taskTemplateReference2: 'Odniesienie do szablonu zadania',
|
||||
definesAutorunSchedule: 'Defines autorun schedule.',
|
||||
forMoreInformationAboutCronSeeThe: 'Aby uzyskać więcej informacji na temat cron przejrzyj:',
|
||||
cronExpressionFormatReference: 'Format wyrażenia CRON',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Określa początkową wersję twojego artefaktu. Każde uruchomienie zwiększa wersję artefaktu.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Aby uzyskać więcej informacji na temat budowania, zobacz',
|
||||
taskTemplateReference: 'Odwołanie do szablonu zadania',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Określa, jaki artefakt powinien być wdrożony, gdy zadanie jest uruchamiane.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Aby uzyskać więcej informacji na temat wdrażania, zobacz',
|
||||
taskTemplateReference2: 'Odwołanie do szablonu zadania',
|
||||
definesAutorunSchedule: 'Określa harmonogram automatycznego uruchamiania.',
|
||||
forMoreInformationAboutCronSeeThe: 'Aby uzyskać więcej informacji na temat cron, zobacz',
|
||||
cronExpressionFormatReference: 'Odwołanie do formatu wyrażenia cron',
|
||||
startVersion: 'Wersja początkowa',
|
||||
example000: 'Np. 0.0.0',
|
||||
buildTemplate: 'Stwórz szablon',
|
||||
autorun: 'Uruchom automatycznie',
|
||||
playbookFilename: 'Plik scenariusza *',
|
||||
exampleSiteyml: 'np. site.yml',
|
||||
inventory2: 'Ewidencja *',
|
||||
example000: 'Przykład: 0.0.0',
|
||||
buildTemplate: 'Szablon budowy',
|
||||
autorun: 'Automatyczne uruchamianie',
|
||||
playbookFilename: 'Nazwa pliku playbook *',
|
||||
exampleSiteyml: 'Przykład: site.yml',
|
||||
inventory2: 'Inwentarz *',
|
||||
repository: 'Repozytorium',
|
||||
environment3: 'Środowisko *',
|
||||
vaultPassword: 'Hasło do Vault',
|
||||
vaultPassword2: 'Hasło do Vault',
|
||||
vaultPassword: 'Hasło skarbca',
|
||||
vaultPassword2: 'Hasło skarbca',
|
||||
view: 'Widok',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Chcę uruchomić zadanie z pomocą CRON jedynie dla nowych commit-ów repozytorium',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Chcę uruchomić zadanie przez cron tylko dla nowych commitów niektórego repozytorium',
|
||||
repository2: 'Repozytorium',
|
||||
cronChecksNewCommitBeforeRun: 'Cron sprawdza nowe commity przed uruchomieniem',
|
||||
readThe: 'Przeczytaj ',
|
||||
toLearnMoreAboutCron: 'aby dowiedzieć się więcej nt. Cron.',
|
||||
suppressSuccessAlerts: 'Wstrzymaj powiadomienia o sukcesie',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI Args (JSON array). Example: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
cronChecksNewCommitBeforeRun: 'Cron sprawdza nowy commit przed uruchomieniem',
|
||||
readThe: 'Przeczytaj',
|
||||
toLearnMoreAboutCron: 'aby dowiedzieć się więcej o Cron.',
|
||||
suppressSuccessAlerts: 'Tłumienie powiadomień o sukcesie',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Argumenty CLI (tablica JSON). Przykład: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Zezwól na argumenty CLI w zadaniu',
|
||||
docs: 'dokumentacja',
|
||||
editViews: 'Edytuj widoki',
|
||||
@ -178,62 +181,79 @@ export default {
|
||||
taskTemplates2: 'Szablony zadań',
|
||||
all: 'Wszystko',
|
||||
notLaunched: 'Nie uruchomiono',
|
||||
by: 'by {user_name}',
|
||||
editTemplate: 'Modyfikuj Szablon',
|
||||
newTemplate2: 'Nowy Szablon',
|
||||
by: 'przez {user_name}',
|
||||
editTemplate: 'Edytuj szablon',
|
||||
newTemplate2: 'Nowy szablon',
|
||||
deleteTemplate: 'Usuń szablon',
|
||||
playbook: 'Scenariusz',
|
||||
playbook: 'Playbook',
|
||||
email: 'Email',
|
||||
adminUser: 'Administrator',
|
||||
sendAlerts: 'Wyślij powiadomienie',
|
||||
adminUser: 'Użytkownik administratora',
|
||||
sendAlerts: 'Wyślij powiadomienia',
|
||||
deleteUser: 'Usuń użytkownika',
|
||||
newUser: 'Nowy użytkownik',
|
||||
re: 'Odp.{getActionButtonTitle}',
|
||||
teamMember: '{expr} Członek Zespołu',
|
||||
taskId: 'ID Zadania',
|
||||
re: 'Re{getActionButtonTitle}',
|
||||
teamMember: '{expr} członek zespołu',
|
||||
taskId: 'ID zadania',
|
||||
version: 'Wersja',
|
||||
status: 'Status',
|
||||
start: 'Start',
|
||||
start: 'Rozpocznij',
|
||||
actions: 'Akcje',
|
||||
alert: 'Powiadomienie',
|
||||
admin: 'Admin',
|
||||
admin: 'Administrator',
|
||||
role: 'Rola',
|
||||
external: 'External',
|
||||
external: 'Zewnętrzny',
|
||||
time: 'Czas',
|
||||
path: 'Ścieżka',
|
||||
gitUrl: 'Git URL',
|
||||
gitUrl: 'URL Git',
|
||||
sshKey: 'Klucz SSH',
|
||||
lastTask: 'Ostatnie zadanie',
|
||||
task2: 'Zadanie',
|
||||
build: 'Buduj',
|
||||
deploy: 'Wdrażaj',
|
||||
deploy: 'Wdróż',
|
||||
run: 'Uruchom',
|
||||
add: 'Dodaj',
|
||||
password_required: 'Hasło jest wymagane',
|
||||
name_required: 'Nazwa jest wymagana',
|
||||
user_credentials_required: 'Dane użytkownika są wymagane',
|
||||
user_credentials_required: 'Dane logowania użytkownika są wymagane',
|
||||
type_required: 'Typ jest wymagany',
|
||||
path_required: 'Ścieżka do pliku ewidencji jest wymagana',
|
||||
path_required: 'Ścieżka do pliku inwentarza jest wymagana',
|
||||
private_key_required: 'Klucz prywatny jest wymagany',
|
||||
project_name_required: 'Nazwa projektu jest wymagana',
|
||||
repository_required: 'Repozytorium jest wymagane',
|
||||
branch_required: 'Gałąź (branch) jest wymagana',
|
||||
branch_required: 'Gałąź jest wymagana',
|
||||
key_required: 'Klucz jest wymagany',
|
||||
user_required: 'Użytkownik jest wymagany',
|
||||
build_version_required: 'Wersja Build-u jest wymagana',
|
||||
build_version_required: 'Wersja budowy jest wymagana',
|
||||
title_required: 'Tytuł jest wymagany',
|
||||
isRequired: 'jest wymagany/-a',
|
||||
isRequired: 'jest wymagane',
|
||||
mustBeInteger: 'Musi być liczbą całkowitą',
|
||||
mustBe0OrGreater: 'Musi być większe lub równe 0 ',
|
||||
mustBe0OrGreater: 'Musi być 0 lub większa',
|
||||
start_version_required: 'Wersja początkowa jest wymagana',
|
||||
playbook_filename_required: 'Plik scenariusza jest wymagany',
|
||||
inventory_required: 'Ewidencja jest wymagana',
|
||||
playbook_filename_required: 'Nazwa pliku playbook jest wymagana',
|
||||
inventory_required: 'Inwentarz jest wymagany',
|
||||
environment_required: 'Środowisko jest wymagane',
|
||||
email_required: 'Email jest wymagany',
|
||||
build_template_required: 'Szablon Build jest wymagany',
|
||||
build_template_required: 'Szablon budowy jest wymagany',
|
||||
Task: 'Zadanie',
|
||||
Build: 'Build',
|
||||
Deploy: 'Wdrażaj',
|
||||
Build: 'Buduj',
|
||||
Deploy: 'Wdróż',
|
||||
Run: 'Uruchom',
|
||||
|
||||
CreateDemoProject: 'Utwórz projekt demo',
|
||||
LeaveProject: 'Opuszcz projekt',
|
||||
integration: 'Integracja',
|
||||
integrations: 'Integracje',
|
||||
NewIntegration: 'Nowa integracja',
|
||||
EditIntegration: 'Edytuj integrację',
|
||||
DeleteIntegration: 'Usuń integrację',
|
||||
DeleteIntegrationMsg: 'Czy na pewno chcesz usunąć tę integrację?',
|
||||
AddAlias: 'Dodaj alias',
|
||||
LoadAlias: 'Ładowanie aliasów...',
|
||||
runners: 'Uruchamiacze',
|
||||
newRunner: 'Nowy uruchamiacz',
|
||||
enabled: 'Włączony',
|
||||
scheduleNextRun: 'Następne uruchomienie',
|
||||
maxNumberOfParallelTasks: 'Maksymalna liczba równoległych zadań',
|
||||
runnerUsage: 'Użycie:',
|
||||
runnerToken: 'Token:',
|
||||
editRunner: 'Edytuj uruchamiacz',
|
||||
};
|
||||
|
@ -1,237 +1,259 @@
|
||||
export default {
|
||||
backup: 'Cópia de segurança',
|
||||
downloadTheProjectBackupFile: 'Baixe o arquivo de backup do projeto (em json)',
|
||||
restoreProject: 'Restaurar...',
|
||||
incorrectUsrPwd: 'Nome de utilizador ou palavra-passe incorretos',
|
||||
askDeleteUser: 'Tem a certeza de que deseja eliminar este utilizador?',
|
||||
askDeleteTemp: 'Tem a certeza de que deseja eliminar este modelo?',
|
||||
askDeleteEnv: 'Tem a certeza de que deseja eliminar este ambiente?',
|
||||
askDeleteInv: 'Tem a certeza de que deseja eliminar este inventário?',
|
||||
askDeleteKey: 'Tem a certeza de que deseja eliminar esta chave?',
|
||||
askDeleteRepo: 'Tem a certeza de que deseja eliminar este repositório?',
|
||||
askDeleteProj: 'Tem a certeza de que deseja eliminar este projeto?',
|
||||
askDeleteTMem: 'Tem a certeza de que deseja eliminar este membro da equipa?',
|
||||
'Check interval': 'Intervalo de verificação',
|
||||
Schedule: 'Agendar',
|
||||
backup: 'Backup',
|
||||
downloadTheProjectBackupFile: 'Baixar o arquivo de backup do projeto (em json)',
|
||||
restoreProject: 'Restaurar Projeto...',
|
||||
incorrectUsrPwd: 'Login ou senha incorretos',
|
||||
askDeleteUser: 'Você realmente deseja excluir este usuário?',
|
||||
askDeleteTemp: 'Você realmente deseja excluir este modelo?',
|
||||
askDeleteEnv: 'Você realmente deseja excluir este ambiente?',
|
||||
askDeleteInv: 'Você realmente deseja excluir este inventário?',
|
||||
askDeleteKey: 'Você realmente deseja excluir esta chave?',
|
||||
askDeleteRepo: 'Você realmente deseja excluir este repositório?',
|
||||
askDeleteProj: 'Você realmente deseja excluir este projeto?',
|
||||
askDeleteTMem: 'Você realmente deseja excluir este membro da equipe?',
|
||||
edit: 'Editar',
|
||||
nnew: 'Novo',
|
||||
keyFormSshKey: 'Chave SSH',
|
||||
keyFormLoginPassword: 'Iniciar sessão com palavra-passe',
|
||||
keyFormLoginPassword: 'Login com senha',
|
||||
keyFormNone: 'Nenhum',
|
||||
incorrectUrl: 'URL incorreto',
|
||||
username: 'Nome de utilizador',
|
||||
username_required: 'Nome de utilizador obrigatório',
|
||||
dashboard: 'Painel de Controlo',
|
||||
incorrectUrl: 'URL incorreta',
|
||||
username: 'Nome de usuário',
|
||||
username_required: 'Nome de usuário é obrigatório',
|
||||
dashboard: 'Painel',
|
||||
history: 'Histórico',
|
||||
activity: 'Atividade',
|
||||
settings: 'Definições',
|
||||
signIn: 'Iniciar sessão',
|
||||
password: 'Palavra-passe',
|
||||
changePassword: 'Alterar palavra-passe',
|
||||
editUser: 'Editar Utilizador',
|
||||
settings: 'Configurações',
|
||||
signIn: 'Entrar',
|
||||
password: 'Senha',
|
||||
changePassword: 'Alterar senha',
|
||||
editUser: 'Editar Usuário',
|
||||
newProject: 'Novo Projeto',
|
||||
close: 'Fechar',
|
||||
newProject2: 'Novo projeto...',
|
||||
demoMode: 'MODO DE DEMONSTRAÇÃO',
|
||||
demoMode: 'MODO DEMONSTRAÇÃO',
|
||||
task: 'Tarefa #{expr}',
|
||||
youCanRunAnyTasks: 'Pode executar qualquer tarefa',
|
||||
youHaveReadonlyAccess: 'Tem acesso apenas de leitura',
|
||||
taskTemplates: 'Modelos de Tarefas',
|
||||
youCanRunAnyTasks: 'Você pode executar quaisquer tarefas',
|
||||
youHaveReadonlyAccess: 'Você tem acesso somente leitura',
|
||||
taskTemplates: 'Modelos de Tarefa',
|
||||
inventory: 'Inventário',
|
||||
environment: 'Ambiente',
|
||||
keyStore: 'Armazenamento de Chaves',
|
||||
repositories: 'Repositórios',
|
||||
darkMode: 'Modo Escuro',
|
||||
team: 'Equipa',
|
||||
users: 'Utilizadores',
|
||||
team: 'Equipe',
|
||||
users: 'Usuários',
|
||||
editAccount: 'Editar Conta',
|
||||
signOut: 'Terminar sessão',
|
||||
signOut: 'Sair',
|
||||
error: 'Erro',
|
||||
refreshPage: 'Atualizar Página',
|
||||
relogin: 'Iniciar sessão novamente',
|
||||
howToFixSigninIssues: 'Como corrigir problemas de início de sessão',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Primeiro, precisa de acesso ao servidor onde o Semaphore está a correr.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Execute o seguinte comando no servidor para ver os utilizadores existentes:',
|
||||
relogin: 'Reentrar',
|
||||
howToFixSigninIssues: 'Como corrigir problemas de login',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Primeiro, você precisa de acesso ao servidor onde o Semaphore está em execução.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Execute o seguinte comando no servidor para ver os usuários existentes:',
|
||||
semaphoreUserList: 'semaphore user list',
|
||||
youCanChangePasswordOfExistingUser: 'Pode alterar a palavra-passe do utilizador existente:',
|
||||
youCanChangePasswordOfExistingUser: 'Você pode alterar a senha do usuário existente:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: 'Ou criar um novo utilizador administrador:',
|
||||
orCreateNewAdminUser: 'Ou crie um novo usuário administrador:',
|
||||
close2: 'Fechar',
|
||||
semaphore: 'SEMAPHORE',
|
||||
dontHaveAccountOrCantSignIn: 'Não tem uma conta ou não consegue iniciar sessão?',
|
||||
password2: 'Palavra-passe',
|
||||
semaphore: 'SEMAFORO',
|
||||
dontHaveAccountOrCantSignIn: 'Não tem conta ou não consegue entrar?',
|
||||
password2: 'Senha',
|
||||
cancel: 'Cancelar',
|
||||
noViews: 'Sem vistas',
|
||||
addView: 'Adicionar vista',
|
||||
noViews: 'Sem visualizações',
|
||||
addView: 'Adicionar visualização',
|
||||
editEnvironment: 'Editar Ambiente',
|
||||
deleteEnvironment: 'Eliminar ambiente',
|
||||
deleteEnvironment: 'Excluir ambiente',
|
||||
environment2: 'Ambiente',
|
||||
newEnvironment: 'Novo Ambiente',
|
||||
environmentName: 'Nome do Ambiente',
|
||||
extraVariables: 'Variáveis Extra',
|
||||
enterExtraVariablesJson: 'Introduza JSON de variáveis extra...',
|
||||
environmentVariables: 'Variáveis de Ambiente',
|
||||
enterEnvJson: 'Introduza JSON de ambiente...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'O ambiente e as variáveis extra devem ser JSON válidos. Exemplo:',
|
||||
dashboard2: 'Painel de Controlo',
|
||||
ansibleSemaphore: 'Semaphore Ansible',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Lamentamos, mas <%= htmlWebpackPlugin.options.title %> não funciona corretamente sem JavaScript ativado. Por favor, ative-o para continuar.',
|
||||
deleteInventory: 'Eliminar inventário',
|
||||
extraVariables: 'Variáveis extras',
|
||||
enterExtraVariablesJson: 'Insira variáveis extras JSON...',
|
||||
environmentVariables: 'Variáveis de ambiente',
|
||||
enterEnvJson: 'Insira env JSON...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'O ambiente e as variáveis extras devem ser JSON válidos. Exemplo:',
|
||||
dashboard2: 'Painel',
|
||||
ansibleSemaphore: 'Interface do Semaphore',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Lamentamos, mas <%= htmlWebpackPlugin.options.title %> não funciona corretamente sem JavaScript habilitado. Por favor, habilite-o para continuar.',
|
||||
deleteInventory: 'Excluir inventário',
|
||||
newInventory: 'Novo Inventário',
|
||||
name: 'Nome',
|
||||
userCredentials: 'Credenciais de Utilizador',
|
||||
userCredentials: 'Credenciais do Usuário',
|
||||
sudoCredentialsOptional: 'Credenciais Sudo (Opcional)',
|
||||
type: 'Tipo',
|
||||
pathToInventoryFile: 'Caminho para o ficheiro de Inventário',
|
||||
enterInventory: 'Introduza o inventário...',
|
||||
pathToInventoryFile: 'Caminho para o arquivo de Inventário',
|
||||
enterInventory: 'Insira inventário...',
|
||||
staticInventoryExample: 'Exemplo de inventário estático:',
|
||||
staticYamlInventoryExample: 'Exemplo de inventário YAML estático:',
|
||||
keyName: 'Nome da Chave',
|
||||
loginOptional: 'Início de sessão (Opcional)',
|
||||
usernameOptional: 'Nome de utilizador (Opcional)',
|
||||
loginOptional: 'Login (Opcional)',
|
||||
usernameOptional: 'Nome de usuário (Opcional)',
|
||||
privateKey: 'Chave Privada',
|
||||
override: 'Substituir',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Utilize este tipo de chave para repositórios HTTPS e para playbooks que utilizem ligações não SSH.',
|
||||
deleteKey: 'Eliminar chave',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Use este tipo de chave para repositórios HTTPS e para playbooks que usam conexões não-SSH.',
|
||||
deleteKey: 'Excluir chave',
|
||||
newKey: 'Nova Chave',
|
||||
create: 'Criar',
|
||||
newTask: 'Nova Tarefa',
|
||||
cantDeleteThe: 'Não é possível eliminar o {objectTitle}',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: 'O {objectTitle} não pode ser eliminado porque está a ser utilizado pelos recursos abaixo',
|
||||
cantDeleteThe: 'Não é possível excluir o {objectTitle}',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: 'O {objectTitle} não pode ser excluído porque está sendo usado pelos recursos abaixo',
|
||||
projectName: 'Nome do Projeto',
|
||||
allowAlertsForThisProject: 'Permitir alertas para este projeto',
|
||||
telegramChatIdOptional: 'ID de Chat do Telegram (Opcional)',
|
||||
maxNumberOfParallelTasksOptional: 'Número Máximo de Tarefas Paralelas (Opcional)',
|
||||
deleteRepository: 'Eliminar repositório',
|
||||
telegramChatIdOptional: 'ID do Chat do Telegram (Opcional)',
|
||||
maxNumberOfParallelTasksOptional: 'Número máximo de tarefas paralelas (Opcional)',
|
||||
deleteRepository: 'Excluir repositório',
|
||||
newRepository: 'Novo Repositório',
|
||||
urlOrPath: 'URL ou caminho',
|
||||
absPath: 'caminho abs.',
|
||||
absPath: 'caminho absoluto',
|
||||
branch: 'Ramo',
|
||||
accessKey: 'Chave de Acesso',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Credenciais para aceder ao repositório Git. Deve ser:',
|
||||
ifYouUseGitOrSshUrl: 'se utilizar o URL Git ou SSH.',
|
||||
ifYouUseHttpsOrFileUrl: 'se utilizar o URL HTTPS ou ficheiro.',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Credenciais para acessar o repositório Git. Deve ser:',
|
||||
ifYouUseGitOrSshUrl: 'se você usar URL Git ou SSH.',
|
||||
ifYouUseHttpsOrFileUrl: 'se você usar URL HTTPS ou de arquivo.',
|
||||
none: 'Nenhum',
|
||||
ssh: 'SSH',
|
||||
deleteProject: 'Eliminar projeto',
|
||||
save: 'Guardar',
|
||||
deleteProject2: 'Eliminar Projeto',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Depois de eliminar um projeto, não há volta atrás. Por favor, tenha a certeza.',
|
||||
deleteProject: 'Excluir projeto',
|
||||
save: 'Salvar',
|
||||
deleteProject2: 'Excluir Projeto',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Uma vez que você exclui um projeto, não há como voltar. Por favor, tenha certeza.',
|
||||
name2: 'Nome *',
|
||||
title: 'Título *',
|
||||
description: 'Descrição',
|
||||
required: 'Obrigatório',
|
||||
key: '{expr}',
|
||||
surveyVariables: 'Variáveis de Inquérito',
|
||||
surveyVariables: 'Variáveis de Pesquisa',
|
||||
addVariable: 'Adicionar variável',
|
||||
columns: 'Colunas',
|
||||
buildVersion: 'Versão de Compilação',
|
||||
buildVersion: 'Versão de Construção',
|
||||
messageOptional: 'Mensagem (Opcional)',
|
||||
debug: 'Depuração',
|
||||
dryRun: 'Execução a seco',
|
||||
debug: 'Depurar',
|
||||
dryRun: 'Execução Simulada',
|
||||
diff: 'Diferença',
|
||||
advanced: 'Avançado',
|
||||
hide: 'Ocultar',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Por favor, permita a substituição do argumento CLI nas definições do Modelo de Tarefa',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Argumentos CLI (matriz JSON). Exemplo: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Para permitir a substituição de argumento CLI nas configurações do Modelo de Tarefa',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Argumentos CLI (array JSON). Exemplo: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: 'Iniciado',
|
||||
author: 'Autor',
|
||||
duration: 'Duração',
|
||||
stop: 'Parar',
|
||||
deleteTeamMember: 'Eliminar membro da equipa',
|
||||
team2: 'Equipa',
|
||||
newTeamMember: 'Novo Membro da Equipa',
|
||||
user: 'Utilizador',
|
||||
forceStop: 'Parar Forçadamente',
|
||||
confirmTask: 'Confirmar',
|
||||
deleteTeamMember: 'Excluir membro da equipe',
|
||||
team2: 'Equipe',
|
||||
newTeamMember: 'Novo Membro da Equipe',
|
||||
user: 'Usuário',
|
||||
administrator: 'Administrador',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Define a versão de início do seu artefacto. Cada execução incrementa a versão do artefacto.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Para mais informações sobre a construção, consulte a',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Define a versão inicial do seu artefato. Cada execução incrementa a versão do artefato.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Para mais informações sobre construção, veja o',
|
||||
taskTemplateReference: 'Referência do Modelo de Tarefa',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Define qual artefacto deve ser implementado quando a tarefa for executada.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Para mais informações sobre a implementação, consulte a',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Define qual artefato deve ser implantado quando a tarefa for executada.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Para mais informações sobre implantação, veja o',
|
||||
taskTemplateReference2: 'Referência do Modelo de Tarefa',
|
||||
definesAutorunSchedule: 'Define o cronograma de autorun.',
|
||||
forMoreInformationAboutCronSeeThe: 'Para mais informações sobre o cron, consulte a',
|
||||
cronExpressionFormatReference: 'Referência do Formato de Expressão Cron',
|
||||
startVersion: 'Versão de Início',
|
||||
definesAutorunSchedule: 'Define o cronograma de execução automática.',
|
||||
forMoreInformationAboutCronSeeThe: 'Para mais informações sobre cron, veja o',
|
||||
cronExpressionFormatReference: 'Referência do formato de expressão cron',
|
||||
startVersion: 'Versão Inicial',
|
||||
example000: 'Exemplo: 0.0.0',
|
||||
buildTemplate: 'Modelo de Compilação',
|
||||
autorun: 'Autorun',
|
||||
playbookFilename: 'Nome do Ficheiro de Playbook *',
|
||||
buildTemplate: 'Modelo de Construção',
|
||||
autorun: 'Execução Automática',
|
||||
playbookFilename: 'Nome do Arquivo do Playbook *',
|
||||
exampleSiteyml: 'Exemplo: site.yml',
|
||||
inventory2: 'Inventário *',
|
||||
repository: 'Repositório',
|
||||
environment3: 'Ambiente *',
|
||||
vaultPassword: 'Palavra-passe Vault',
|
||||
vaultPassword2: 'Palavra-passe Vault',
|
||||
view: 'Vista',
|
||||
vaultPassword: 'Senha do Cofre',
|
||||
vaultPassword2: 'Senha do Cofre',
|
||||
view: 'Visualizar',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Quero executar uma tarefa pelo cron apenas para novos commits de algum repositório',
|
||||
repository2: 'Repositório',
|
||||
cronChecksNewCommitBeforeRun: 'O cron verifica um novo commit antes da execução',
|
||||
cronChecksNewCommitBeforeRun: 'O cron verifica novos commits antes de executar',
|
||||
readThe: 'Leia o',
|
||||
toLearnMoreAboutCron: 'para saber mais sobre o Cron.',
|
||||
toLearnMoreAboutCron: 'para saber mais sobre Cron.',
|
||||
suppressSuccessAlerts: 'Suprimir alertas de sucesso',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Argumentos CLI (matriz JSON). Exemplo: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Argumentos CLI (array JSON). Exemplo: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Permitir argumentos CLI na Tarefa',
|
||||
docs: 'documentação',
|
||||
editViews: 'Editar Vistas',
|
||||
docs: 'documentos',
|
||||
editViews: 'Editar Visualizações',
|
||||
newTemplate: 'Novo modelo',
|
||||
taskTemplates2: 'Modelos de Tarefas',
|
||||
all: 'Tudo',
|
||||
taskTemplates2: 'Modelos de Tarefa',
|
||||
all: 'Todos',
|
||||
notLaunched: 'Não lançado',
|
||||
by: 'por {user_name}',
|
||||
editTemplate: 'Editar Modelo',
|
||||
newTemplate2: 'Novo Modelo',
|
||||
deleteTemplate: 'Eliminar modelo',
|
||||
deleteTemplate: 'Excluir modelo',
|
||||
playbook: 'Playbook',
|
||||
email: 'E-mail',
|
||||
adminUser: 'Utilizador Administrador',
|
||||
email: 'Email',
|
||||
adminUser: 'Usuário administrador',
|
||||
sendAlerts: 'Enviar alertas',
|
||||
deleteUser: 'Eliminar utilizador',
|
||||
newUser: 'Novo Utilizador',
|
||||
deleteUser: 'Excluir usuário',
|
||||
newUser: 'Novo Usuário',
|
||||
re: 'Re{getActionButtonTitle}',
|
||||
teamMember: '{expr} Membro da Equipa',
|
||||
teamMember: '{expr} Membro da Equipe',
|
||||
taskId: 'ID da Tarefa',
|
||||
version: 'Versão',
|
||||
status: 'Estado',
|
||||
status: 'Status',
|
||||
start: 'Iniciar',
|
||||
actions: 'Ações',
|
||||
alert: 'Alerta',
|
||||
admin: 'Administrador',
|
||||
admin: 'Admin',
|
||||
role: 'Função',
|
||||
external: 'Externo',
|
||||
time: 'Hora',
|
||||
time: 'Tempo',
|
||||
path: 'Caminho',
|
||||
gitUrl: 'URL Git',
|
||||
gitUrl: 'URL do Git',
|
||||
sshKey: 'Chave SSH',
|
||||
lastTask: 'Última Tarefa',
|
||||
// task2: 'Tarefa',
|
||||
// build: 'Compilar',
|
||||
// deploy: 'Implementar',
|
||||
task2: 'Tarefa',
|
||||
build: 'Construir',
|
||||
deploy: 'Implantar',
|
||||
run: 'Executar',
|
||||
add: 'Adicionar',
|
||||
password_required: 'Palavra-passe obrigatória',
|
||||
name_required: 'Nome obrigatório',
|
||||
user_credentials_required: 'Credenciais de utilizador obrigatórias',
|
||||
type_required: 'Tipo obrigatório',
|
||||
path_required: 'Caminho para o ficheiro de Inventário obrigatório',
|
||||
private_key_required: 'Chave privada obrigatória',
|
||||
project_name_required: 'Nome do projeto obrigatório',
|
||||
repository_required: 'Repositório obrigatório',
|
||||
branch_required: 'Ramo obrigatório',
|
||||
key_required: 'Chave obrigatória',
|
||||
user_required: 'Utilizador obrigatório',
|
||||
build_version_required: 'Versão de compilação obrigatória',
|
||||
title_required: 'Título obrigatório',
|
||||
password_required: 'Senha é obrigatória',
|
||||
name_required: 'Nome é obrigatório',
|
||||
user_credentials_required: 'Credenciais do usuário são obrigatórias',
|
||||
type_required: 'Tipo é obrigatório',
|
||||
path_required: 'Caminho para o arquivo de Inventário é obrigatório',
|
||||
private_key_required: 'Chave privada é obrigatória',
|
||||
project_name_required: 'Nome do projeto é obrigatório',
|
||||
repository_required: 'Repositório é obrigatório',
|
||||
branch_required: 'Ramo é obrigatório',
|
||||
key_required: 'Chave é obrigatória',
|
||||
user_required: 'Usuário é obrigatório',
|
||||
build_version_required: 'Versão de construção é obrigatória',
|
||||
title_required: 'Título é obrigatório',
|
||||
isRequired: 'é obrigatório',
|
||||
mustBeInteger: 'Deve ser um número inteiro',
|
||||
mustBe0OrGreater: 'Deve ser 0 ou superior',
|
||||
start_version_required: 'Versão de início obrigatória',
|
||||
playbook_filename_required: 'Nome do ficheiro de playbook obrigatório',
|
||||
inventory_required: 'Inventário obrigatório',
|
||||
environment_required: 'Ambiente obrigatório',
|
||||
email_required: 'E-mail obrigatório',
|
||||
build_template_required: 'Modelo de compilação obrigatório',
|
||||
// Task: 'Tarefa',
|
||||
// Build: 'Compilar',
|
||||
// Deploy: 'Implementar',
|
||||
mustBe0OrGreater: 'Deve ser 0 ou maior',
|
||||
start_version_required: 'Versão inicial é obrigatória',
|
||||
playbook_filename_required: 'Nome do arquivo do playbook é obrigatório',
|
||||
inventory_required: 'Inventário é obrigatório',
|
||||
environment_required: 'Ambiente é obrigatório',
|
||||
email_required: 'Email é obrigatório',
|
||||
build_template_required: 'Modelo de construção é obrigatório',
|
||||
Task: 'Tarefa',
|
||||
Build: 'Construir',
|
||||
Deploy: 'Implantar',
|
||||
Run: 'Executar',
|
||||
CreateDemoProject: 'Criar Projeto de Demonstração',
|
||||
LeaveProject: 'Sair do Projeto',
|
||||
integration: 'Integração',
|
||||
integrations: 'Integrações',
|
||||
NewIntegration: 'Nova Integração',
|
||||
EditIntegration: 'Editar Integração',
|
||||
DeleteIntegration: 'Excluir Integração',
|
||||
DeleteIntegrationMsg: 'Você tem certeza de que deseja excluir esta Integração?',
|
||||
AddAlias: 'Adicionar Alias',
|
||||
LoadAlias: 'Carregando aliases...',
|
||||
runners: 'Executores',
|
||||
newRunner: 'Novo Executor',
|
||||
enabled: 'Habilitado',
|
||||
scheduleNextRun: 'Próxima execução',
|
||||
maxNumberOfParallelTasks: 'Número máximo de tarefas paralelas',
|
||||
runnerUsage: 'Uso:',
|
||||
runnerToken: 'Token:',
|
||||
editRunner: 'Editar Executor',
|
||||
};
|
||||
|
@ -1,8 +1,10 @@
|
||||
export default {
|
||||
backup: 'Cópia de segurança',
|
||||
downloadTheProjectBackupFile: 'Baixe o arquivo de backup do projeto (em json)',
|
||||
restoreProject: 'Restaurar...',
|
||||
incorrectUsrPwd: 'Usuário ou senha incorretos',
|
||||
'Check interval': 'Intervalo de verificação',
|
||||
Schedule: 'Agendar',
|
||||
backup: 'Backup',
|
||||
downloadTheProjectBackupFile: 'Baixar o arquivo de backup do projeto (em json)',
|
||||
restoreProject: 'Restaurar Projeto...',
|
||||
incorrectUsrPwd: 'Login ou senha incorretos',
|
||||
askDeleteUser: 'Você realmente deseja excluir este usuário?',
|
||||
askDeleteTemp: 'Você realmente deseja excluir este modelo?',
|
||||
askDeleteEnv: 'Você realmente deseja excluir este ambiente?',
|
||||
@ -30,11 +32,11 @@ export default {
|
||||
newProject: 'Novo Projeto',
|
||||
close: 'Fechar',
|
||||
newProject2: 'Novo projeto...',
|
||||
demoMode: 'MODO DE DEMONSTRAÇÃO',
|
||||
demoMode: 'MODO DEMONSTRAÇÃO',
|
||||
task: 'Tarefa #{expr}',
|
||||
youCanRunAnyTasks: 'Você pode executar qualquer tarefa',
|
||||
youHaveReadonlyAccess: 'Você tem acesso somente leitura',
|
||||
taskTemplates: 'Modelos de Tarefas',
|
||||
taskTemplates: 'Modelos de Tarefa',
|
||||
inventory: 'Inventário',
|
||||
environment: 'Ambiente',
|
||||
keyStore: 'Armazenamento de Chaves',
|
||||
@ -46,75 +48,75 @@ export default {
|
||||
signOut: 'Sair',
|
||||
error: 'Erro',
|
||||
refreshPage: 'Atualizar Página',
|
||||
relogin: 'Refazer login',
|
||||
relogin: 'Reentrar',
|
||||
howToFixSigninIssues: 'Como corrigir problemas de login',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Primeiramente, você precisa ter acesso ao servidor onde o Semaphore está em execução.',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Primeiro, você precisa de acesso ao servidor onde o Semaphore está em execução.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Execute o seguinte comando no servidor para ver os usuários existentes:',
|
||||
semaphoreUserList: 'semaphore lista de usuários',
|
||||
youCanChangePasswordOfExistingUser: 'Você pode alterar a senha de um usuário existente:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore alterar-por-login --login usuário123 --senha {exemploDeSenha}',
|
||||
orCreateNewAdminUser: 'Ou criar um novo usuário administrador:',
|
||||
semaphoreUserList: 'lista de usuários semaphore',
|
||||
youCanChangePasswordOfExistingUser: 'Você pode alterar a senha do usuário existente:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: 'Ou crie um novo usuário administrador:',
|
||||
close2: 'Fechar',
|
||||
semaphore: 'SEMAPHORE',
|
||||
dontHaveAccountOrCantSignIn: 'Não tem uma conta ou não consegue fazer login?',
|
||||
semaphore: 'SEMAFORO',
|
||||
dontHaveAccountOrCantSignIn: 'Não tem conta ou não consegue entrar?',
|
||||
password2: 'Senha',
|
||||
cancel: 'Cancelar',
|
||||
noViews: 'Nenhuma visualização',
|
||||
noViews: 'Sem visualizações',
|
||||
addView: 'Adicionar visualização',
|
||||
editEnvironment: 'Editar Ambiente',
|
||||
deleteEnvironment: 'Excluir ambiente',
|
||||
environment2: 'Ambiente',
|
||||
newEnvironment: 'Novo Ambiente',
|
||||
environmentName: 'Nome do Ambiente',
|
||||
extraVariables: 'Variáveis Extras',
|
||||
enterExtraVariablesJson: 'Insira JSON de variáveis extras...',
|
||||
environmentVariables: 'Variáveis de Ambiente',
|
||||
enterEnvJson: 'Insira JSON de ambiente...',
|
||||
extraVariables: 'Variáveis extras',
|
||||
enterExtraVariablesJson: 'Insira variáveis extras em JSON...',
|
||||
environmentVariables: 'Variáveis de ambiente',
|
||||
enterEnvJson: 'Insira env JSON...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'O ambiente e as variáveis extras devem ser JSON válidos. Exemplo:',
|
||||
dashboard2: 'Painel',
|
||||
ansibleSemaphore: 'Semaphore UI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Pedimos desculpas, mas <%= htmlWebpackPlugin.options.title %> não funciona corretamente sem JavaScript habilitado. Por favor, habilite-o para continuar.',
|
||||
ansibleSemaphore: 'Interface do Semaphore',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Lamentamos, mas <%= htmlWebpackPlugin.options.title %> não funciona corretamente sem JavaScript habilitado. Por favor, habilite-o para continuar.',
|
||||
deleteInventory: 'Excluir inventário',
|
||||
newInventory: 'Novo Inventário',
|
||||
name: 'Nome',
|
||||
userCredentials: 'Credenciais de Usuário',
|
||||
userCredentials: 'Credenciais do Usuário',
|
||||
sudoCredentialsOptional: 'Credenciais Sudo (Opcional)',
|
||||
type: 'Tipo',
|
||||
pathToInventoryFile: 'Caminho para o arquivo de inventário',
|
||||
enterInventory: 'Insira o inventário...',
|
||||
pathToInventoryFile: 'Caminho para o arquivo de Inventário',
|
||||
enterInventory: 'Insira inventário...',
|
||||
staticInventoryExample: 'Exemplo de inventário estático:',
|
||||
staticYamlInventoryExample: 'Exemplo de inventário YAML estático:',
|
||||
keyName: 'Nome da Chave',
|
||||
loginOptional: 'Login (Opcional)',
|
||||
usernameOptional: 'Nome de usuário (Opcional)',
|
||||
privateKey: 'Chave Privada',
|
||||
override: 'Sobrepor',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Use este tipo de chave para repositórios HTTPS e para playbooks que utilizam conexões não-SSH.',
|
||||
override: 'Substituir',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Use este tipo de chave para repositórios HTTPS e para playbooks que usam conexões não-SSH.',
|
||||
deleteKey: 'Excluir chave',
|
||||
newKey: 'Nova Chave',
|
||||
create: 'Criar',
|
||||
newTask: 'Nova Tarefa',
|
||||
cantDeleteThe: 'Não é possível excluir o {objectTitle}',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: 'O {objectTitle} não pode ser excluído porque é utilizado pelos recursos abaixo',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: 'O {objectTitle} não pode ser excluído porque está sendo usado pelos recursos abaixo',
|
||||
projectName: 'Nome do Projeto',
|
||||
allowAlertsForThisProject: 'Permitir alertas para este projeto',
|
||||
telegramChatIdOptional: 'ID do Chat do Telegram (Opcional)',
|
||||
maxNumberOfParallelTasksOptional: 'Número máximo de tarefas em paralelo (Opcional)',
|
||||
maxNumberOfParallelTasksOptional: 'Número máximo de tarefas paralelas (Opcional)',
|
||||
deleteRepository: 'Excluir repositório',
|
||||
newRepository: 'Novo Repositório',
|
||||
urlOrPath: 'URL ou caminho',
|
||||
absPath: 'caminho absoluto',
|
||||
branch: 'Branch',
|
||||
branch: 'Ramo',
|
||||
accessKey: 'Chave de Acesso',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Credenciais para acessar o repositório Git. Deve ser:',
|
||||
ifYouUseGitOrSshUrl: 'se você usar Git ou URL SSH.',
|
||||
ifYouUseHttpsOrFileUrl: 'se você usar URL HTTPS ou arquivo.',
|
||||
ifYouUseGitOrSshUrl: 'se você usar URL Git ou SSH.',
|
||||
ifYouUseHttpsOrFileUrl: 'se você usar URL HTTPS ou de arquivo.',
|
||||
none: 'Nenhum',
|
||||
ssh: 'SSH',
|
||||
deleteProject: 'Excluir projeto',
|
||||
save: 'Salvar',
|
||||
deleteProject2: 'Excluir Projeto',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Uma vez que você exclui um projeto, não há como voltar atrás. Esteja certo.',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Uma vez que você exclui um projeto, não há como voltar. Por favor, tenha certeza.',
|
||||
name2: 'Nome *',
|
||||
title: 'Título *',
|
||||
description: 'Descrição',
|
||||
@ -123,59 +125,60 @@ export default {
|
||||
surveyVariables: 'Variáveis de Pesquisa',
|
||||
addVariable: 'Adicionar variável',
|
||||
columns: 'Colunas',
|
||||
buildVersion: 'Versão de Build',
|
||||
buildVersion: 'Versão de Construção',
|
||||
messageOptional: 'Mensagem (Opcional)',
|
||||
debug: 'Debug',
|
||||
debug: 'Depurar',
|
||||
dryRun: 'Execução Simulada',
|
||||
diff: 'Diferença',
|
||||
advanced: 'Avançado',
|
||||
hide: 'Ocultar',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Permita a substituição de argumentos CLI nas configurações do Modelo de Tarefa',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Argumentos CLI (JSON array). Exemplo: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Para permitir a substituição de argumento CLI nas configurações do Modelo de Tarefa',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Argumentos CLI (array JSON). Exemplo: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: 'Iniciado',
|
||||
author: 'Autor',
|
||||
duration: 'Duração',
|
||||
stop: 'Parar',
|
||||
forceStop: 'Forçar Parada',
|
||||
forceStop: 'Parar Forçadamente',
|
||||
confirmTask: 'Confirmar',
|
||||
deleteTeamMember: 'Excluir membro da equipe',
|
||||
team2: 'Equipe',
|
||||
newTeamMember: 'Novo Membro da Equipe',
|
||||
user: 'Usuário',
|
||||
administrator: 'Administrador',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Define a versão inicial de seu artefato. Cada execução incrementa a versão do artefato.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Para obter mais informações sobre construção, consulte o',
|
||||
taskTemplateReference: 'Referência de Modelo de Tarefa',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Define qual artefato deve ser implantado quando a tarefa é executada.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Para obter mais informações sobre implantação, consulte o',
|
||||
taskTemplateReference2: 'Referência de Modelo de Tarefa',
|
||||
definesAutorunSchedule: 'Define o cronograma de autorun.',
|
||||
forMoreInformationAboutCronSeeThe: 'Para obter mais informações sobre cron, consulte a',
|
||||
cronExpressionFormatReference: 'Referência de Formato de Expressão Cron',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Define a versão inicial do seu artefato. Cada execução incrementa a versão do artefato.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Para mais informações sobre construção, veja o',
|
||||
taskTemplateReference: 'Referência do Modelo de Tarefa',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Define qual artefato deve ser implantado quando a tarefa for executada.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Para mais informações sobre implantação, veja o',
|
||||
taskTemplateReference2: 'Referência do Modelo de Tarefa',
|
||||
definesAutorunSchedule: 'Define o cronograma de execução automática.',
|
||||
forMoreInformationAboutCronSeeThe: 'Para mais informações sobre cron, veja o',
|
||||
cronExpressionFormatReference: 'Referência do formato de expressão cron',
|
||||
startVersion: 'Versão Inicial',
|
||||
example000: 'Exemplo: 0.0.0',
|
||||
buildTemplate: 'Modelo de Build',
|
||||
autorun: 'Autorun',
|
||||
playbookFilename: 'Nome do Playbook *',
|
||||
buildTemplate: 'Modelo de Construção',
|
||||
autorun: 'Execução Automática',
|
||||
playbookFilename: 'Nome do Arquivo do Playbook *',
|
||||
exampleSiteyml: 'Exemplo: site.yml',
|
||||
inventory2: 'Inventário *',
|
||||
repository: 'Repositório',
|
||||
environment3: 'Ambiente *',
|
||||
vaultPassword: 'Senha do Vault',
|
||||
vaultPassword2: 'Senha do Vault',
|
||||
view: 'Visualização',
|
||||
vaultPassword: 'Senha do Cofre',
|
||||
vaultPassword2: 'Senha do Cofre',
|
||||
view: 'Visualizar',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Eu quero executar uma tarefa no cron apenas para novos commits de algum repositório',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Quero executar uma tarefa pelo cron apenas para novos commits de algum repositório',
|
||||
repository2: 'Repositório',
|
||||
cronChecksNewCommitBeforeRun: 'O cron verifica novos commits antes da execução',
|
||||
cronChecksNewCommitBeforeRun: 'O cron verifica novos commits antes de executar',
|
||||
readThe: 'Leia o',
|
||||
toLearnMoreAboutCron: 'para saber mais sobre o Cron.',
|
||||
toLearnMoreAboutCron: 'para saber mais sobre Cron.',
|
||||
suppressSuccessAlerts: 'Suprimir alertas de sucesso',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Argumentos CLI (JSON array). Exemplo: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Permitir Argumentos CLI na Tarefa',
|
||||
docs: 'documentação',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Argumentos CLI (array JSON). Exemplo: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Permitir argumentos CLI na Tarefa',
|
||||
docs: 'documentos',
|
||||
editViews: 'Editar Visualizações',
|
||||
newTemplate: 'Novo Modelo',
|
||||
taskTemplates2: 'Modelos de Tarefas',
|
||||
newTemplate: 'Novo modelo',
|
||||
taskTemplates2: 'Modelos de Tarefa',
|
||||
all: 'Todos',
|
||||
notLaunched: 'Não lançado',
|
||||
by: 'por {user_name}',
|
||||
@ -183,8 +186,8 @@ export default {
|
||||
newTemplate2: 'Novo Modelo',
|
||||
deleteTemplate: 'Excluir modelo',
|
||||
playbook: 'Playbook',
|
||||
email: 'E-mail',
|
||||
adminUser: 'Usuário Administrador',
|
||||
email: 'Email',
|
||||
adminUser: 'Usuário administrador',
|
||||
sendAlerts: 'Enviar alertas',
|
||||
deleteUser: 'Excluir usuário',
|
||||
newUser: 'Novo Usuário',
|
||||
@ -196,7 +199,7 @@ export default {
|
||||
start: 'Iniciar',
|
||||
actions: 'Ações',
|
||||
alert: 'Alerta',
|
||||
admin: 'Administrador',
|
||||
admin: 'Admin',
|
||||
role: 'Função',
|
||||
external: 'Externo',
|
||||
time: 'Tempo',
|
||||
@ -205,34 +208,52 @@ export default {
|
||||
sshKey: 'Chave SSH',
|
||||
lastTask: 'Última Tarefa',
|
||||
task2: 'Tarefa',
|
||||
build: 'Build',
|
||||
deploy: 'Implantação',
|
||||
run: 'Execução',
|
||||
build: 'Construir',
|
||||
deploy: 'Implantar',
|
||||
run: 'Executar',
|
||||
add: 'Adicionar',
|
||||
password_required: 'Senha é obrigatória',
|
||||
name_required: 'Nome é obrigatório',
|
||||
user_credentials_required: 'Credenciais de usuário são obrigatórias',
|
||||
user_credentials_required: 'Credenciais do usuário são obrigatórias',
|
||||
type_required: 'Tipo é obrigatório',
|
||||
path_required: 'Caminho para arquivo de inventário é obrigatório',
|
||||
path_required: 'Caminho para o arquivo de Inventário é obrigatório',
|
||||
private_key_required: 'Chave privada é obrigatória',
|
||||
project_name_required: 'Nome do projeto é obrigatório',
|
||||
repository_required: 'Repositório é obrigatório',
|
||||
branch_required: 'Branch é obrigatório',
|
||||
branch_required: 'Ramo é obrigatório',
|
||||
key_required: 'Chave é obrigatória',
|
||||
user_required: 'Usuário é obrigatório',
|
||||
build_version_required: 'Versão de build é obrigatória',
|
||||
build_version_required: 'Versão de construção é obrigatória',
|
||||
title_required: 'Título é obrigatório',
|
||||
isRequired: 'é obrigatório',
|
||||
mustBeInteger: 'Deve ser um número inteiro',
|
||||
mustBe0OrGreater: 'Deve ser 0 ou maior',
|
||||
start_version_required: 'Versão inicial é obrigatória',
|
||||
playbook_filename_required: 'Nome do playbook é obrigatório',
|
||||
playbook_filename_required: 'Nome do arquivo do playbook é obrigatório',
|
||||
inventory_required: 'Inventário é obrigatório',
|
||||
environment_required: 'Ambiente é obrigatório',
|
||||
email_required: 'E-mail é obrigatório',
|
||||
build_template_required: 'Modelo de build é obrigatório',
|
||||
email_required: 'Email é obrigatório',
|
||||
build_template_required: 'Modelo de construção é obrigatório',
|
||||
Task: 'Tarefa',
|
||||
Build: 'Build',
|
||||
Deploy: 'Implantação',
|
||||
Run: 'Execução',
|
||||
Build: 'Construir',
|
||||
Deploy: 'Implantar',
|
||||
Run: 'Executar',
|
||||
CreateDemoProject: 'Criar Projeto de Demonstração',
|
||||
LeaveProject: 'Sair do Projeto',
|
||||
integration: 'Integração',
|
||||
integrations: 'Integrações',
|
||||
NewIntegration: 'Nova Integração',
|
||||
EditIntegration: 'Editar Integração',
|
||||
DeleteIntegration: 'Excluir Integração',
|
||||
DeleteIntegrationMsg: 'Você tem certeza de que deseja excluir esta Integração?',
|
||||
AddAlias: 'Adicionar Alias',
|
||||
LoadAlias: 'Carregando aliases...',
|
||||
runners: 'Executores',
|
||||
newRunner: 'Novo Executor',
|
||||
enabled: 'Habilitado',
|
||||
scheduleNextRun: 'Próxima execução',
|
||||
maxNumberOfParallelTasks: 'Número máximo de tarefas paralelas',
|
||||
runnerUsage: 'Uso:',
|
||||
runnerToken: 'Token:',
|
||||
editRunner: 'Editar Executor',
|
||||
};
|
||||
|
@ -1,201 +1,205 @@
|
||||
export default {
|
||||
backup: 'Бэкап',
|
||||
downloadTheProjectBackupFile: 'Выгрузить файл резервной копии проекта (в формате JSON)',
|
||||
restoreProject: 'Восстановить...',
|
||||
incorrectUsrPwd: 'Некорректный логин или пароль',
|
||||
'Check interval': 'Интервал проверки',
|
||||
Schedule: 'Расписание',
|
||||
backup: 'Резервное копирование',
|
||||
downloadTheProjectBackupFile: 'Скачать файл резервной копии проекта (в формате json)',
|
||||
restoreProject: 'Восстановить проект...',
|
||||
incorrectUsrPwd: 'Неверный логин или пароль',
|
||||
askDeleteUser: 'Вы действительно хотите удалить этого пользователя?',
|
||||
askDeleteTemp: 'Вы действительно хотите удалить этот шаблон?',
|
||||
askDeleteEnv: 'Вы действительно хотите удалить это окружение?',
|
||||
askDeleteEnv: 'Вы действительно хотите удалить эту среду?',
|
||||
askDeleteInv: 'Вы действительно хотите удалить этот инвентарь?',
|
||||
askDeleteKey: 'Вы действительно хотите удалить этот ключ?',
|
||||
askDeleteRepo: 'Вы действительно хотите удалить этот репозиторий?',
|
||||
askDeleteProj: 'Вы действительно хотите удалить этот проект?',
|
||||
askDeleteTMem: 'Вы действительно хотите удалить этого участника команды?',
|
||||
edit: 'Изменить',
|
||||
edit: 'Редактировать',
|
||||
nnew: 'Новый',
|
||||
keyFormSshKey: 'SSH ключ',
|
||||
keyFormLoginPassword: 'Логин с паролем',
|
||||
keyFormNone: 'Ничего',
|
||||
incorrectUrl: 'Некорректный URL',
|
||||
keyFormNone: 'Нет',
|
||||
incorrectUrl: 'Неверный URL',
|
||||
username: 'Имя пользователя',
|
||||
username_required: 'Имя пользователя обязательно',
|
||||
dashboard: 'Панель',
|
||||
dashboard: 'Панель управления',
|
||||
history: 'История',
|
||||
activity: 'Активность',
|
||||
settings: 'Настройки',
|
||||
signIn: 'Войти',
|
||||
password: 'Пароль',
|
||||
changePassword: 'Изменить пароль',
|
||||
editUser: 'Изменить пользователя',
|
||||
changePassword: 'Сменить пароль',
|
||||
editUser: 'Редактировать пользователя',
|
||||
newProject: 'Новый проект',
|
||||
close: 'Закрыть',
|
||||
newProject2: 'Новый проект...',
|
||||
demoMode: 'Демо режим',
|
||||
demoMode: 'РЕЖИМ ДЕМО',
|
||||
task: 'Задача #{expr}',
|
||||
youCanRunAnyTasks: 'Вы можете запускать любые задачи',
|
||||
youHaveReadonlyAccess: 'Вы имеете доступ "только для чтения"',
|
||||
youHaveReadonlyAccess: 'У вас доступ только для чтения',
|
||||
taskTemplates: 'Шаблоны задач',
|
||||
inventory: 'Инвентарь',
|
||||
environment: 'Окружение',
|
||||
environment: 'Переменные окружения',
|
||||
keyStore: 'Хранилище ключей',
|
||||
repositories: 'Репозитории',
|
||||
darkMode: 'Тёмная тема',
|
||||
darkMode: 'Темный режим',
|
||||
team: 'Команда',
|
||||
users: 'Пользователи',
|
||||
editAccount: 'Изменить учётную запись',
|
||||
editAccount: 'Редактировать аккаунт',
|
||||
signOut: 'Выйти',
|
||||
error: 'Ошибка',
|
||||
refreshPage: 'Обновить страницу',
|
||||
relogin: 'Перезайти',
|
||||
howToFixSigninIssues: 'Как устранить проблемы со входом в систему',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Во-первых, необходим доступ к серверу, на котором работает Semaphore.',
|
||||
relogin: 'Повторный вход',
|
||||
howToFixSigninIssues: 'Как исправить проблемы с входом',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: 'Во-первых, вам нужен доступ к серверу, на котором работает Semaphore.',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: 'Выполните следующую команду на сервере, чтобы увидеть существующих пользователей:',
|
||||
semaphoreUserList: 'Список пользователей semaphore',
|
||||
semaphoreUserList: 'semaphore user list',
|
||||
youCanChangePasswordOfExistingUser: 'Вы можете изменить пароль существующего пользователя:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: 'Или создать нового пользователя с поными правами:',
|
||||
orCreateNewAdminUser: 'Или создайте нового администратора:',
|
||||
close2: 'Закрыть',
|
||||
semaphore: 'Семафор',
|
||||
dontHaveAccountOrCantSignIn: 'Нет учётной записи или не можете войти?',
|
||||
semaphore: 'СЕМАФОР',
|
||||
dontHaveAccountOrCantSignIn: 'Нет аккаунта или не можете войти?',
|
||||
password2: 'Пароль',
|
||||
cancel: 'Закрыть',
|
||||
noViews: 'Нет видов',
|
||||
addView: 'Добавить вид',
|
||||
editEnvironment: 'Изменить окружение',
|
||||
cancel: 'Отмена',
|
||||
noViews: 'Нет представлений',
|
||||
addView: 'Добавить представление',
|
||||
editEnvironment: 'Редактировать переменные окружкния',
|
||||
deleteEnvironment: 'Удалить окружение',
|
||||
environment2: 'Окружение',
|
||||
environment2: 'Переменные окружения',
|
||||
newEnvironment: 'Новое окружение',
|
||||
environmentName: 'Имя окружения',
|
||||
extraVariables: 'Дополнительные переменные',
|
||||
enterExtraVariablesJson: 'Ввести дополнительные переменные в формате JSON...',
|
||||
enterExtraVariablesJson: 'Введите дополнительные переменные в формате JSON...',
|
||||
environmentVariables: 'Переменные окружения',
|
||||
enterEnvJson: 'Введите переменную окружения в формате JSON...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'Окружениеи дополнительные переменные должны быть корректным JSON. Например:',
|
||||
dashboard2: 'Панель',
|
||||
ansibleSemaphore: 'Ансибл Семафор',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Извините, но <%= htmlWebpackPlugin.options.title %> не работает без включенного JavaScript. Пожалуйста включите, чтобы продолжить',
|
||||
enterEnvJson: 'Введите env JSON...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: 'Переменные среды и дополнительные переменные должны быть действительным JSON. Пример:',
|
||||
dashboard2: 'Панель управления',
|
||||
ansibleSemaphore: 'Semaphore UI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: 'Извините, но <%= htmlWebpackPlugin.options.title %> не работает должным образом без включенного JavaScript. Пожалуйста, включите его, чтобы продолжить.',
|
||||
deleteInventory: 'Удалить инвентарь',
|
||||
newInventory: 'Новый инвентарь',
|
||||
name: 'Имя',
|
||||
userCredentials: 'Учётные данные пользователя',
|
||||
sudoCredentialsOptional: 'Повышенные учётные данные (дополнительно)',
|
||||
userCredentials: 'Учетные данные пользователя',
|
||||
sudoCredentialsOptional: 'Учетные данные sudo (необязательно)',
|
||||
type: 'Тип',
|
||||
pathToInventoryFile: 'Путь до файла инвентаря',
|
||||
pathToInventoryFile: 'Путь к файлу инвентаря',
|
||||
enterInventory: 'Введите инвентарь...',
|
||||
staticInventoryExample: 'Пример статичного инвентаря:',
|
||||
staticYamlInventoryExample: 'Пример статичного инвентаря в YAML:',
|
||||
staticInventoryExample: 'Пример статического инвентаря:',
|
||||
staticYamlInventoryExample: 'Пример статического YAML инвентаря:',
|
||||
keyName: 'Имя ключа',
|
||||
loginOptional: 'Логин (дополнительно)',
|
||||
usernameOptional: 'Имя пользователя (дополнительно)',
|
||||
loginOptional: 'Логин (необязательно)',
|
||||
usernameOptional: 'Имя пользователя (необязательно)',
|
||||
privateKey: 'Закрытый ключ',
|
||||
override: 'Переопределить',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Используйте этот тип ключа для HTTPS-репозиториев и для плейбуков, использующих не-SSH-соединения.',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: 'Используйте этот тип ключа для HTTPS репозиториев и для плейбуков, которые используют не SSH соединения.',
|
||||
deleteKey: 'Удалить ключ',
|
||||
newKey: 'Новый ключ',
|
||||
create: 'Создать',
|
||||
newTask: 'Новая задача',
|
||||
cantDeleteThe: 'Невозможно удалить {objectTitle}',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle} нельзя удалить, так как он используется следующими ресурсами',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle} не может быть удален, так как он используется ресурсами ниже',
|
||||
projectName: 'Имя проекта',
|
||||
allowAlertsForThisProject: 'Разрешить оповещения для этого проекта',
|
||||
telegramChatIdOptional: 'Идентификатор чата Телеграм (дополнительно)',
|
||||
maxNumberOfParallelTasksOptional: 'Максимальное число параллельных задач (дополнительно)',
|
||||
telegramChatIdOptional: 'Telegram Chat ID (необязательно)',
|
||||
maxNumberOfParallelTasksOptional: 'Максимальное количество параллельных задач (необязательно)',
|
||||
deleteRepository: 'Удалить репозиторий',
|
||||
newRepository: 'Новый репозиторий',
|
||||
urlOrPath: 'URL или путь',
|
||||
absPath: 'abs. path',
|
||||
absPath: 'абс. путь',
|
||||
branch: 'Ветка',
|
||||
accessKey: 'Ключ доступа',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Учетные данные для доступа к репозиториям Git. Должен быть:',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: 'Учетные данные для доступа к Git репозиторию. Это должно быть:',
|
||||
ifYouUseGitOrSshUrl: 'если вы используете Git или SSH URL.',
|
||||
ifYouUseHttpsOrFileUrl: 'если вы используете HTTPS или file URL.',
|
||||
none: 'Ничего',
|
||||
none: 'Нет',
|
||||
ssh: 'SSH',
|
||||
deleteProject: 'Удалить проект',
|
||||
save: 'Сохранить',
|
||||
deleteProject2: 'Удалить проект',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'Как только вы удалите проект, вернуть его будет невозможно. Пожалуйста, будьте осторожны.',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: 'После удаления проекта возврата нет. Пожалуйста, будьте уверены.',
|
||||
name2: 'Имя *',
|
||||
title: 'Заголовок *',
|
||||
title: 'Название *',
|
||||
description: 'Описание',
|
||||
required: 'Необходимый',
|
||||
required: 'Обязательно',
|
||||
key: '{expr}',
|
||||
surveyVariables: 'Опрос переменных',
|
||||
surveyVariables: 'Переменные опроса',
|
||||
addVariable: 'Добавить переменную',
|
||||
columns: 'Столбцы',
|
||||
buildVersion: 'Версия сборки',
|
||||
messageOptional: 'Сообщение (дополнительно)',
|
||||
messageOptional: 'Сообщение (необязательно)',
|
||||
debug: 'Отладка',
|
||||
dryRun: 'Пробный запуск',
|
||||
diff: 'Разница',
|
||||
advanced: 'Расширенный',
|
||||
hide: 'Спрятать',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Пожалуйста, разрешите переопределение аргумента CLI в настройках шаблона задачи',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'Аргументы CLI (массив JSON). Например: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: 'Начал',
|
||||
diff: 'Различия',
|
||||
advanced: 'Расширенные',
|
||||
hide: 'Скрыть',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: 'Чтобы разрешить переопределение аргумента CLI в настройках шаблона задачи',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI Args (JSON массив). Пример: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: 'Запущено',
|
||||
author: 'Автор',
|
||||
duration: 'Продолжительность',
|
||||
stop: 'Стоп',
|
||||
deleteTeamMember: 'Удалить члена команды',
|
||||
stop: 'Остановить',
|
||||
forceStop: 'Принудительная остановка',
|
||||
confirmTask: 'Подтвердить',
|
||||
deleteTeamMember: 'Удалить участника команды',
|
||||
team2: 'Команда',
|
||||
newTeamMember: 'Новый член команды',
|
||||
newTeamMember: 'Новый участник команды',
|
||||
user: 'Пользователь',
|
||||
administrator: 'Администратор',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Определяет начальную версию вашего артефакта. Каждый запуск увеличивает версию артефакта.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Дополнительную информацию о построении смотрите',
|
||||
taskTemplateReference: 'Справочник по шаблону задачи',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Определяет, какой артефакт должен быть развернут при запуске задачи.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Дополнительные сведения о развертывании смотрите',
|
||||
taskTemplateReference2: 'Справочник по шаблону задачи',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: 'Определяет начальную версию вашего артефакта. Каждое выполнение увеличивает версию артефакта.',
|
||||
forMoreInformationAboutBuildingSeeThe: 'Для получения дополнительной информации о сборке смотрите',
|
||||
taskTemplateReference: 'Справка по шаблону задачи',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: 'Определяет, какой артефакт должен быть развернут при выполнении задачи.',
|
||||
forMoreInformationAboutDeployingSeeThe: 'Для получения дополнительной информации о развертывании смотрите',
|
||||
taskTemplateReference2: 'Справка по шаблону задачи',
|
||||
definesAutorunSchedule: 'Определяет расписание автозапуска.',
|
||||
forMoreInformationAboutCronSeeThe: 'Дополнительные сведения о Крон см.',
|
||||
cronExpressionFormatReference: 'Документация по формату выражений Крон',
|
||||
forMoreInformationAboutCronSeeThe: 'Для получения дополнительной информации о cron смотрите',
|
||||
cronExpressionFormatReference: 'Справка по формату выражений cron',
|
||||
startVersion: 'Начальная версия',
|
||||
example000: 'Например: 0.0.0',
|
||||
example000: 'Пример: 0.0.0',
|
||||
buildTemplate: 'Шаблон сборки',
|
||||
autorun: 'Автозапуск',
|
||||
playbookFilename: 'Имя файла плейбука *',
|
||||
exampleSiteyml: 'Например: site.yml',
|
||||
exampleSiteyml: 'Пример: site.yml',
|
||||
inventory2: 'Инвентарь *',
|
||||
repository: 'Репозиторий',
|
||||
environment3: 'Окружение *',
|
||||
vaultPassword: 'Vault пароль',
|
||||
vaultPassword2: 'Vault пароль',
|
||||
view: 'Вид',
|
||||
cron: 'Крон',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Я хочу запускать задачу по Крону только для новых коммитов некоторых репозиториев',
|
||||
environment3: 'Среда *',
|
||||
vaultPassword: 'Пароль хранилища',
|
||||
vaultPassword2: 'Пароль хранилища',
|
||||
view: 'Просмотр',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: 'Я хочу запускать задачу по cron только для новых коммитов некоторого репозитория',
|
||||
repository2: 'Репозиторий',
|
||||
cronChecksNewCommitBeforeRun: 'Проверять через Крон новые коммиты до запуска',
|
||||
cronChecksNewCommitBeforeRun: 'Cron проверяет новый коммит перед запуском',
|
||||
readThe: 'Читать',
|
||||
toLearnMoreAboutCron: 'чтобы узнать больше о Крон.',
|
||||
suppressSuccessAlerts: 'Скрыть оповещения об успехе',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'Аргументы CLI (массив JSON). Например: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Разрешить рагументы CLI в задаче',
|
||||
docs: 'Документация',
|
||||
editViews: 'Изменить вид',
|
||||
toLearnMoreAboutCron: 'чтобы узнать больше о Cron.',
|
||||
suppressSuccessAlerts: 'Подавить успешные оповещения',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI Args (JSON массив). Пример: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: 'Разрешить аргументы CLI в задаче',
|
||||
docs: 'документация',
|
||||
editViews: 'Редактировать представления',
|
||||
newTemplate: 'Новый шаблон',
|
||||
taskTemplates2: 'Шаблоны задач',
|
||||
all: 'Все',
|
||||
notLaunched: 'Не запущен',
|
||||
by: 'к {user_name}',
|
||||
editTemplate: 'Изменить шаблон',
|
||||
notLaunched: 'Не запущено',
|
||||
by: 'от {user_name}',
|
||||
editTemplate: 'Редактировать шаблон',
|
||||
newTemplate2: 'Новый шаблон',
|
||||
deleteTemplate: 'Удалить шаблон',
|
||||
playbook: 'Плейбук',
|
||||
email: 'Почта',
|
||||
email: 'Электронная почта',
|
||||
adminUser: 'Администратор',
|
||||
sendAlerts: 'Отправить оповещение',
|
||||
sendAlerts: 'Отправить оповещения',
|
||||
deleteUser: 'Удалить пользователя',
|
||||
newUser: 'Новый пользователь',
|
||||
re: 'Пере{getActionButtonTitle}',
|
||||
teamMember: '{expr} Team Member',
|
||||
taskId: 'Номер задачи',
|
||||
re: 'Re{getActionButtonTitle}',
|
||||
teamMember: '{expr} Участник команды',
|
||||
taskId: 'ID задачи',
|
||||
version: 'Версия',
|
||||
status: 'Статус',
|
||||
start: 'Начать',
|
||||
actions: 'Действия',
|
||||
alert: 'Оповещение',
|
||||
admin: 'Администратор',
|
||||
admin: 'Админ',
|
||||
role: 'Роль',
|
||||
external: 'Внешний',
|
||||
time: 'Время',
|
||||
@ -203,36 +207,53 @@ export default {
|
||||
gitUrl: 'Git URL',
|
||||
sshKey: 'SSH ключ',
|
||||
lastTask: 'Последняя задача',
|
||||
// task2: 'Задача',
|
||||
// build: 'Сборка',
|
||||
// deploy: 'Развертывать',
|
||||
task2: 'Задача',
|
||||
build: 'Сборка',
|
||||
deploy: 'Развертывание',
|
||||
run: 'Запуск',
|
||||
add: 'Добавить',
|
||||
password_required: 'Требуется пароль',
|
||||
name_required: 'Требуется имя',
|
||||
user_credentials_required: 'Требуются учетные данные пользователя',
|
||||
type_required: 'Требуется тип',
|
||||
path_required: 'Требуется путь до файла инвенторя',
|
||||
private_key_required: 'Требуется приватный ключ',
|
||||
project_name_required: 'Требуется имя проекта',
|
||||
репозиторий_required: 'Требуется репозиторий',
|
||||
branch_required: 'Требуется ветка',
|
||||
key_required: 'Требуется ключ',
|
||||
user_required: 'Требуется пользователь',
|
||||
build_version_required: 'Требуется номер сборки',
|
||||
title_required: 'Требуется заголовок',
|
||||
isRequired: 'требуется',
|
||||
password_required: 'Пароль обязателен',
|
||||
name_required: 'Имя обязательно',
|
||||
user_credentials_required: 'Учетные данные пользователя обязательны',
|
||||
type_required: 'Тип обязателен',
|
||||
path_required: 'Путь к файлу инвентаря обязателен',
|
||||
private_key_required: 'Закрытый ключ обязателен',
|
||||
project_name_required: 'Имя проекта обязательно',
|
||||
repository_required: 'Репозиторий обязателен',
|
||||
branch_required: 'Ветка обязательна',
|
||||
key_required: 'Ключ обязателен',
|
||||
user_required: 'Пользователь обязателен',
|
||||
build_version_required: 'Версия сборки обязательна',
|
||||
title_required: 'Название обязательно',
|
||||
isRequired: 'обязательно',
|
||||
mustBeInteger: 'Должно быть целым числом',
|
||||
mustBe0OrGreater: 'Должно быть 0 или больше',
|
||||
start_version_required: 'Требуется стартовая версия',
|
||||
playbook_filename_required: 'Требуется имя файла плейбука',
|
||||
inventory_required: 'Требуется инвентарь',
|
||||
environment_required: 'Требуется окружение',
|
||||
email_required: 'Требуется почта',
|
||||
build_template_required: 'Требуется шаблон сборки',
|
||||
// Task: 'Задача',
|
||||
// Build: 'Сборка',
|
||||
// Deploy: 'Развертывать',
|
||||
start_version_required: 'Начальная версия обязательна',
|
||||
playbook_filename_required: 'Имя файла плейбука обязательно',
|
||||
inventory_required: 'Инвентарь обязателен',
|
||||
environment_required: 'Среда обязательна',
|
||||
email_required: 'Электронная почта обязательна',
|
||||
build_template_required: 'Шаблон сборки обязателен',
|
||||
Task: 'Задача',
|
||||
Build: 'Сборка',
|
||||
Deploy: 'Развертывание',
|
||||
Run: 'Запуск',
|
||||
|
||||
CreateDemoProject: 'Создать демонстрационный проект',
|
||||
LeaveProject: 'Покинуть проект',
|
||||
integration: 'Интеграция',
|
||||
integrations: 'Интеграции',
|
||||
NewIntegration: 'Новая интеграция',
|
||||
EditIntegration: 'Редактировать интеграцию',
|
||||
DeleteIntegration: 'Удалить интеграцию',
|
||||
DeleteIntegrationMsg: 'Вы уверены, что хотите удалить эту интеграцию?',
|
||||
AddAlias: 'Добавить псевдоним',
|
||||
LoadAlias: 'Загрузка псевдонимов...',
|
||||
runners: 'Ранеры',
|
||||
newRunner: 'Новый ранер',
|
||||
enabled: 'Включено',
|
||||
scheduleNextRun: 'Следующий запуск',
|
||||
maxNumberOfParallelTasks: 'Максимальное количество параллельных задач',
|
||||
runnerUsage: 'Использование:',
|
||||
runnerToken: 'Токен:',
|
||||
editRunner: 'Редактировать исполнителя',
|
||||
};
|
||||
|
@ -1,250 +1,259 @@
|
||||
export default {
|
||||
'Check interval': '检查间隔',
|
||||
Schedule: '计划',
|
||||
backup: '备份',
|
||||
downloadTheProjectBackupFile: '下载项目备份文件(json格式)',
|
||||
restoreProject: '恢复...',
|
||||
incorrectUsrPwd: '用户名或密码错误',
|
||||
askDeleteUser: '您确定要删除此用户吗?',
|
||||
askDeleteTemp: '您确实要删除此模板吗?',
|
||||
askDeleteEnv: '您确实要删除此环境吗?',
|
||||
askDeleteInv: '您确实要删除此主机配置吗?',
|
||||
askDeleteKey: '您确定要删除此密钥吗?',
|
||||
askDeleteRepo: '您确定要删除此存储库吗?',
|
||||
askDeleteProj: '您确定要删除此项目吗?',
|
||||
askDeleteTMem: '您确定要删除此团队成员吗?',
|
||||
restoreProject: '恢复项目...',
|
||||
incorrectUsrPwd: '用户名或密码不正确',
|
||||
askDeleteUser: '您真的想删除这个用户吗?',
|
||||
askDeleteTemp: '您真的想删除这个模板吗?',
|
||||
askDeleteEnv: '您真的想删除这个环境吗?',
|
||||
askDeleteInv: '您真的想删除这个库存吗?',
|
||||
askDeleteKey: '您真的想删除这个密钥吗?',
|
||||
askDeleteRepo: '您真的想删除这个仓库吗?',
|
||||
askDeleteProj: '您真的想删除这个项目吗?',
|
||||
askDeleteTMem: '您真的想删除这个团队成员吗?',
|
||||
edit: '编辑',
|
||||
nnew: '新建',
|
||||
keyFormSshKey: 'SSH 密钥',
|
||||
keyFormLoginPassword: '使用密码登录',
|
||||
keyFormNone: '无',
|
||||
incorrectUrl: 'URL地址不正确',
|
||||
incorrectUrl: '不正确的 URL',
|
||||
username: '用户名',
|
||||
username_required: '未填写用户名',
|
||||
dashboard: '控制台',
|
||||
username_required: '用户名是必需的',
|
||||
dashboard: '仪表板',
|
||||
history: '历史',
|
||||
activity: '活动',
|
||||
settings: '设置',
|
||||
signIn: '登录',
|
||||
password: '密码',
|
||||
changePassword: '更改密码',
|
||||
editUser: '编译用户',
|
||||
newProject: '新建项目',
|
||||
editUser: '编辑用户',
|
||||
newProject: '新项目',
|
||||
close: '关闭',
|
||||
newProject2: '新建项目...',
|
||||
demoMode: 'DEMO MODE',
|
||||
newProject2: '新项目...',
|
||||
demoMode: '演示模式',
|
||||
task: '任务 #{expr}',
|
||||
youCanRunAnyTasks: '您可以运行任何任务',
|
||||
youHaveReadonlyAccess: '您只有只读访问权限',
|
||||
youHaveReadonlyAccess: '您具有只读访问权限',
|
||||
taskTemplates: '任务模板',
|
||||
inventory: '主机配置',
|
||||
inventory: '库存',
|
||||
environment: '环境',
|
||||
keyStore: '密钥库',
|
||||
repositories: '存储库',
|
||||
darkMode: '暗色模式',
|
||||
keyStore: '密钥存储',
|
||||
repositories: '仓库',
|
||||
darkMode: '黑暗模式',
|
||||
team: '团队',
|
||||
users: '用户',
|
||||
editAccount: '账户编辑',
|
||||
signOut: '注销',
|
||||
editAccount: '编辑账户',
|
||||
signOut: '登出',
|
||||
error: '错误',
|
||||
refreshPage: '刷新页面',
|
||||
relogin: '重新登录',
|
||||
howToFixSigninIssues: '如何解决登录问题',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: '首先,您需要登录运行 Semaphore 的服务器。',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: '在服务器上执行以下命令查看现有用户:',
|
||||
semaphoreUserList: 'semaphore user list',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: '首先,您需要访问运行 Semaphore 的服务器。',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: '在服务器上执行以下命令以查看现有用户:',
|
||||
semaphoreUserList: 'semaphore 用户列表',
|
||||
youCanChangePasswordOfExistingUser: '您可以更改现有用户的密码:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: '或者创建新的管理员用户:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore 用户更改 - 登录 --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: '或创建新管理员用户:',
|
||||
close2: '关闭',
|
||||
semaphore: 'SEMAPHORE',
|
||||
dontHaveAccountOrCantSignIn: '没有帐户或无法登录?',
|
||||
semaphore: '信号灯',
|
||||
dontHaveAccountOrCantSignIn: '没有账户或无法登录?',
|
||||
password2: '密码',
|
||||
cancel: '关闭',
|
||||
noViews: '没有分组视图',
|
||||
addView: '新增分组视图',
|
||||
cancel: '取消',
|
||||
noViews: '没有视图',
|
||||
addView: '添加视图',
|
||||
editEnvironment: '编辑环境',
|
||||
deleteEnvironment: '删除环境',
|
||||
environment2: '环境',
|
||||
newEnvironment: '新增环境',
|
||||
newEnvironment: '新环境',
|
||||
environmentName: '环境名称',
|
||||
extraVariables: '扩展变量',
|
||||
enterExtraVariablesJson: '添加额外的Json格式变量...',
|
||||
extraVariables: '额外变量',
|
||||
enterExtraVariablesJson: '输入额外变量 JSON...',
|
||||
environmentVariables: '环境变量',
|
||||
enterEnvJson: '添加额外的Json格式环境变量...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: '环境变量和额外变量必须是有效的 JSON。例如:',
|
||||
dashboard2: '控制台',
|
||||
ansibleSemaphore: 'Semaphore UI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: '抱歉,如果未启用 JavaScript,<%= htmlWebpackPlugin.options.title %> 将无法正常工作。请启用它以继续。',
|
||||
deleteInventory: '删除主机配置',
|
||||
newInventory: '新增主机配置',
|
||||
enterEnvJson: '输入环境 JSON...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: '环境和额外变量必须是有效的 JSON。示例:',
|
||||
dashboard2: '仪表板',
|
||||
ansibleSemaphore: '信号灯 UI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: '我们很抱歉,但 <%= htmlWebpackPlugin.options.title %> 在没有启用 JavaScript 的情况下无法正常工作。请启用它以继续。',
|
||||
deleteInventory: '删除库存',
|
||||
newInventory: '新库存',
|
||||
name: '名称',
|
||||
userCredentials: '用户凭据',
|
||||
sudoCredentialsOptional: 'Sudo 凭据(可选)',
|
||||
type: '类型',
|
||||
pathToInventoryFile: '主机配置文件路径',
|
||||
enterInventory: '编辑主机配置...',
|
||||
staticInventoryExample: '静态主机配置示例:',
|
||||
staticYamlInventoryExample: '静态 YAML 格式主机配置示例:',
|
||||
keyName: '凭据名称',
|
||||
loginOptional: '登录名 (可选)',
|
||||
usernameOptional: '用户名 (可选)',
|
||||
pathToInventoryFile: '库存文件路径',
|
||||
enterInventory: '输入库存...',
|
||||
staticInventoryExample: '静态库存示例:',
|
||||
staticYamlInventoryExample: '静态 YAML 库存示例:',
|
||||
keyName: '密钥名称',
|
||||
loginOptional: '登录(可选)',
|
||||
usernameOptional: '用户名(可选)',
|
||||
privateKey: '私钥',
|
||||
override: '覆盖',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: '对于 HTTPS 存储库和使用非 SSH 连接的 playbook,请使用此类密钥。',
|
||||
deleteKey: '删除凭据',
|
||||
newKey: '新增凭据',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: '使用此类型的密钥用于 HTTPS 仓库和使用非 SSH 连接的剧本。',
|
||||
deleteKey: '删除密钥',
|
||||
newKey: '新密钥',
|
||||
create: '创建',
|
||||
newTask: '创建任务',
|
||||
newTask: '新任务',
|
||||
cantDeleteThe: '无法删除 {objectTitle}',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '无法删除 {objectTitle},因为它已被如下资源使用',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle} 无法删除,因为它被以下资源使用',
|
||||
projectName: '项目名称',
|
||||
allowAlertsForThisProject: '在此项目开启通知',
|
||||
telegramChatIdOptional: 'Telegram Chat ID (可选)',
|
||||
maxNumberOfParallelTasksOptional: '最大并行任务数 (可选)',
|
||||
deleteRepository: '删除存储库',
|
||||
newRepository: '新增存储库',
|
||||
allowAlertsForThisProject: '允许此项目的警报',
|
||||
telegramChatIdOptional: 'Telegram 聊天 ID(可选)',
|
||||
maxNumberOfParallelTasksOptional: '最大并行任务数(可选)',
|
||||
deleteRepository: '删除仓库',
|
||||
newRepository: '新仓库',
|
||||
urlOrPath: 'URL 或路径',
|
||||
absPath: 'abs. path',
|
||||
absPath: '绝对路径',
|
||||
branch: '分支',
|
||||
accessKey: '访问凭证',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: '访问 Git 存储库的凭据。它应该是:',
|
||||
ifYouUseGitOrSshUrl: '如果您使用 Git 或 SSH URL.',
|
||||
ifYouUseHttpsOrFileUrl: '如果您使用 HTTPS 或文件 URL.',
|
||||
none: 'None',
|
||||
accessKey: '访问密钥',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: '访问 Git 仓库的凭据。它应该是:',
|
||||
ifYouUseGitOrSshUrl: '如果您使用 Git 或 SSH URL。',
|
||||
ifYouUseHttpsOrFileUrl: '如果您使用 HTTPS 或文件 URL。',
|
||||
none: '无',
|
||||
ssh: 'SSH',
|
||||
deleteProject: '删除项目',
|
||||
save: '保存',
|
||||
deleteProject2: '删除项目',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: '一旦删除项目,就无法恢复!!!',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: '一旦您删除项目,就无法恢复。请确认。',
|
||||
name2: '名称 *',
|
||||
title: '标题 *',
|
||||
description: '说明',
|
||||
description: '描述',
|
||||
required: '必需',
|
||||
key: '{expr}',
|
||||
surveyVariables: '列出变量',
|
||||
surveyVariables: '调查变量',
|
||||
addVariable: '添加变量',
|
||||
columns: '列',
|
||||
buildVersion: '编译版本',
|
||||
messageOptional: '说明 (可选)',
|
||||
debug: '调试模式',
|
||||
dryRun: 'Dry Run',
|
||||
diff: '显示差异',
|
||||
advanced: '高级选项',
|
||||
buildVersion: '构建版本',
|
||||
messageOptional: '消息(可选)',
|
||||
debug: '调试',
|
||||
dryRun: '干运行',
|
||||
diff: '差异',
|
||||
advanced: '高级',
|
||||
hide: '隐藏',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: '请在设置中开启 “允许在任务中自定义 CLI 参数”',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI 测试 (JSON 数组). 例如: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: '已启动',
|
||||
author: '关联用户',
|
||||
duration: '说明',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: '允许在任务模板设置中覆盖 CLI 参数',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI 参数(JSON 数组)。示例:[ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: '已开始',
|
||||
author: '作者',
|
||||
duration: '持续时间',
|
||||
stop: '停止',
|
||||
forceStop: '强制删除',
|
||||
forceStop: '强制停止',
|
||||
confirmTask: '确认',
|
||||
deleteTeamMember: '删除团队成员',
|
||||
team2: '团队',
|
||||
newTeamMember: '新增团队成员',
|
||||
newTeamMember: '新团队成员',
|
||||
user: '用户',
|
||||
administrator: '管理员',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: '定义起始版本,每次运行都会增加版本。',
|
||||
forMoreInformationAboutBuildingSeeThe: '有关构建的更多信息,请参阅',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: '定义您的工件的起始版本。每次运行都会增加工件版本。',
|
||||
forMoreInformationAboutBuildingSeeThe: '有关构建的更多信息,请参见',
|
||||
taskTemplateReference: '任务模板参考',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: '定义任务运行时应部署哪些产物。',
|
||||
forMoreInformationAboutDeployingSeeThe: '有关部署的更多信息,请参阅',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: '定义在任务运行时应部署的工件。',
|
||||
forMoreInformationAboutDeployingSeeThe: '有关部署的更多信息,请参见',
|
||||
taskTemplateReference2: '任务模板参考',
|
||||
definesAutorunSchedule: '定义计划任务',
|
||||
forMoreInformationAboutCronSeeThe: '有关 cron 的更多信息,请参阅',
|
||||
definesAutorunSchedule: '定义自动运行计划。',
|
||||
forMoreInformationAboutCronSeeThe: '有关 cron 的更多信息,请参见',
|
||||
cronExpressionFormatReference: 'Cron 表达式格式参考',
|
||||
startVersion: '开始版本',
|
||||
example000: '例如: 0.0.0',
|
||||
startVersion: '起始版本',
|
||||
example000: '示例:0.0.0',
|
||||
buildTemplate: '构建模板',
|
||||
autorun: '自动运行',
|
||||
playbookFilename: 'Playbook 文件名称 *',
|
||||
exampleSiteyml: '例如: site.yml',
|
||||
inventory2: '主机配置 *',
|
||||
repository: '存储库',
|
||||
playbookFilename: '剧本文件名 *',
|
||||
exampleSiteyml: '示例:site.yml',
|
||||
inventory2: '库存 *',
|
||||
repository: '仓库',
|
||||
environment3: '环境 *',
|
||||
vaultPassword: 'Vault 密码',
|
||||
vaultPassword2: 'Vault 密码',
|
||||
view: 'View',
|
||||
vaultPassword: '保险库密码',
|
||||
vaultPassword2: '保险库密码',
|
||||
view: '视图',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: '我想通过 cron 运行一个任务,仅用于某些存储库的新提交',
|
||||
repository2: '存储库',
|
||||
cronChecksNewCommitBeforeRun: 'Cron 在运行前检查新的提交',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: '我想通过 cron 仅为某个仓库的新提交运行任务',
|
||||
repository2: '仓库',
|
||||
cronChecksNewCommitBeforeRun: 'Cron 在运行前检查新提交',
|
||||
readThe: '阅读',
|
||||
toLearnMoreAboutCron: '了解有关 Cron 的更多信息。',
|
||||
suppressSuccessAlerts: 'Suppress success alerts',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI 参数 (JSON 数组格式). 例如: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: '允许任务中自定义 CLI 参数',
|
||||
toLearnMoreAboutCron: '以了解有关 Cron 的更多信息。',
|
||||
suppressSuccessAlerts: '抑制成功警报',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI 参数(JSON 数组)。示例:[ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: '允许任务中的 CLI 参数',
|
||||
docs: '文档',
|
||||
editViews: '编辑视图',
|
||||
newTemplate: '新增模板',
|
||||
newTemplate: '新模板',
|
||||
taskTemplates2: '任务模板',
|
||||
all: '全部',
|
||||
all: '所有',
|
||||
notLaunched: '未启动',
|
||||
by: 'by {user_name}',
|
||||
by: '由 {user_name}',
|
||||
editTemplate: '编辑模板',
|
||||
newTemplate2: '新建模板',
|
||||
newTemplate2: '新模板',
|
||||
deleteTemplate: '删除模板',
|
||||
playbook: 'Playbook',
|
||||
email: '邮箱',
|
||||
playbook: '剧本',
|
||||
email: '电子邮件',
|
||||
adminUser: '管理员用户',
|
||||
sendAlerts: '发送通知',
|
||||
sendAlerts: '发送警报',
|
||||
deleteUser: '删除用户',
|
||||
newUser: '新增用户',
|
||||
re: 'Re{getActionButtonTitle}',
|
||||
teamMember: '{expr} Team Member',
|
||||
newUser: '新用户',
|
||||
re: '重新 {getActionButtonTitle}',
|
||||
teamMember: '{expr} 团队成员',
|
||||
taskId: '任务 ID',
|
||||
version: '版本',
|
||||
status: '状态',
|
||||
start: '启动',
|
||||
actions: '任务',
|
||||
alert: '通知',
|
||||
start: '开始',
|
||||
actions: '操作',
|
||||
alert: '警报',
|
||||
admin: '管理员',
|
||||
role: '角色',
|
||||
external: '扩展',
|
||||
external: '外部',
|
||||
time: '时间',
|
||||
path: '路径',
|
||||
gitUrl: 'Git 存储库链接',
|
||||
gitUrl: 'Git URL',
|
||||
sshKey: 'SSH 密钥',
|
||||
lastTask: '最后一次任务',
|
||||
lastTask: '最后任务',
|
||||
task2: '任务',
|
||||
build: '编译',
|
||||
build: '构建',
|
||||
deploy: '部署',
|
||||
run: '执行',
|
||||
run: '运行',
|
||||
add: '添加',
|
||||
password_required: '密码是必填项',
|
||||
name_required: '名称是必填项',
|
||||
user_credentials_required: '用户凭证是必填项',
|
||||
type_required: '类型是是必填项',
|
||||
path_required: '主机配置文件路径是必填项',
|
||||
private_key_required: '私钥是是必填项',
|
||||
project_name_required: '项目名称是必填项',
|
||||
repository_required: '存储库地址是必填项',
|
||||
branch_required: '分支是必填项',
|
||||
key_required: 'Key 是必填项',
|
||||
user_required: '用户是必填项',
|
||||
build_version_required: '编译版本是必填项',
|
||||
title_required: '标题是必填项',
|
||||
isRequired: '是必填项',
|
||||
password_required: '密码是必需的',
|
||||
name_required: '名称是必需的',
|
||||
user_credentials_required: '用户凭据是必需的',
|
||||
type_required: '类型是必需的',
|
||||
path_required: '库存文件路径是必需的',
|
||||
private_key_required: '私钥是必需的',
|
||||
project_name_required: '项目名称是必需的',
|
||||
repository_required: '仓库是必需的',
|
||||
branch_required: '分支是必需的',
|
||||
key_required: '密钥是必需的',
|
||||
user_required: '用户是必需的',
|
||||
build_version_required: '构建版本是必需的',
|
||||
title_required: '标题是必需的',
|
||||
isRequired: '是必需的',
|
||||
mustBeInteger: '必须是整数',
|
||||
mustBe0OrGreater: '必须大于或等于 0',
|
||||
start_version_required: '开始版本是必填项',
|
||||
playbook_filename_required: 'Playbook 文件名称是必填项',
|
||||
inventory_required: '主机配置是必填项',
|
||||
environment_required: '环境配置是必填项',
|
||||
email_required: '邮箱是必填项',
|
||||
build_template_required: '编译模板是必填项',
|
||||
start_version_required: '起始版本是必需的',
|
||||
playbook_filename_required: '剧本文件名是必需的',
|
||||
inventory_required: '库存是必需的',
|
||||
environment_required: '环境是必需的',
|
||||
email_required: '电子邮件是必需的',
|
||||
build_template_required: '构建模板是必需的',
|
||||
Task: '任务',
|
||||
Build: '编译',
|
||||
Build: '构建',
|
||||
Deploy: '部署',
|
||||
Run: '运行',
|
||||
CreateDemoProject: '创建模板项目',
|
||||
CreateDemoProject: '创建演示项目',
|
||||
LeaveProject: '离开项目',
|
||||
Schedule: '计划任务',
|
||||
integration: '外部集成',
|
||||
integrations: '外部集成',
|
||||
NewIntegration: '新增集成',
|
||||
integration: '集成',
|
||||
integrations: '集成',
|
||||
NewIntegration: '新集成',
|
||||
EditIntegration: '编辑集成',
|
||||
DeleteIntegration: '删除集成',
|
||||
DeleteIntegrationMsg: '确定删除此集成吗?',
|
||||
AddAlias: '新增 Alias',
|
||||
LoadAlias: '列出已有的 Alias',
|
||||
DeleteIntegrationMsg: '您确定要删除此集成吗?',
|
||||
AddAlias: '添加别名',
|
||||
LoadAlias: '加载别名...',
|
||||
runners: '运行器',
|
||||
newRunner: '新运行器',
|
||||
enabled: '已启用',
|
||||
scheduleNextRun: '下次运行',
|
||||
maxNumberOfParallelTasks: '最大并行任务数',
|
||||
runnerUsage: '使用:',
|
||||
runnerToken: '令牌:',
|
||||
editRunner: '编辑运行器',
|
||||
};
|
||||
|
@ -1,242 +1,259 @@
|
||||
export default {
|
||||
'Check interval': '檢查間隔',
|
||||
Schedule: '排程',
|
||||
backup: '備份',
|
||||
downloadTheProjectBackupFile: '下載專案備份檔(json格式)',
|
||||
restoreProject: '恢复...',
|
||||
incorrectUsrPwd: '使用者名稱或密碼錯誤',
|
||||
askDeleteUser: '您確定要刪除此使用者嗎? ',
|
||||
askDeleteTemp: '您確實要刪除此範本嗎? ',
|
||||
askDeleteEnv: '您確實要刪除此環境嗎? ',
|
||||
askDeleteInv: '您確實要刪除此主機配置嗎? ',
|
||||
askDeleteKey: '您確定要刪除此金鑰嗎? ',
|
||||
askDeleteRepo: '您確定要刪除此儲存庫嗎? ',
|
||||
askDeleteProj: '您確定要刪除此項目嗎? ',
|
||||
askDeleteTMem: '您確定要刪除此團隊成員嗎? ',
|
||||
downloadTheProjectBackupFile: '下載專案備份檔案(json格式)',
|
||||
restoreProject: '還原專案...',
|
||||
incorrectUsrPwd: '登入或密碼不正確',
|
||||
askDeleteUser: '您確定要刪除這個使用者嗎?',
|
||||
askDeleteTemp: '您確定要刪除這個範本嗎?',
|
||||
askDeleteEnv: '您確定要刪除這個環境嗎?',
|
||||
askDeleteInv: '您確定要刪除這個庫存嗎?',
|
||||
askDeleteKey: '您確定要刪除這個金鑰嗎?',
|
||||
askDeleteRepo: '您確定要刪除這個儲存庫嗎?',
|
||||
askDeleteProj: '您確定要刪除這個專案嗎?',
|
||||
askDeleteTMem: '您確定要刪除這個團隊成員嗎?',
|
||||
edit: '編輯',
|
||||
nnew: '新建',
|
||||
nnew: '新增',
|
||||
keyFormSshKey: 'SSH 金鑰',
|
||||
keyFormLoginPassword: '使用密碼登入',
|
||||
keyFormNone: '無',
|
||||
incorrectUrl: 'URL位址不正確',
|
||||
incorrectUrl: '不正確的 URL',
|
||||
username: '使用者名稱',
|
||||
username_required: '未填入使用者名稱',
|
||||
dashboard: '控制台',
|
||||
username_required: '使用者名稱是必填的',
|
||||
dashboard: '儀表板',
|
||||
history: '歷史',
|
||||
activity: '活動',
|
||||
settings: '設定',
|
||||
signIn: '登入',
|
||||
password: '密碼',
|
||||
changePassword: '更改密碼',
|
||||
editUser: '編譯使用者',
|
||||
newProject: '新建專案',
|
||||
editUser: '編輯使用者',
|
||||
newProject: '新專案',
|
||||
close: '關閉',
|
||||
newProject2: '新建專案...',
|
||||
demoMode: 'DEMO MODE',
|
||||
newProject2: '新專案...',
|
||||
demoMode: '示範模式',
|
||||
task: '任務 #{expr}',
|
||||
youCanRunAnyTasks: '您可以執行任何任務',
|
||||
youHaveReadonlyAccess: '您只有唯讀存取權限',
|
||||
youHaveReadonlyAccess: '您擁有唯讀權限',
|
||||
taskTemplates: '任務範本',
|
||||
inventory: '主機配置',
|
||||
inventory: '庫存',
|
||||
environment: '環境',
|
||||
keyStore: '金鑰庫',
|
||||
keyStore: '金鑰儲存',
|
||||
repositories: '儲存庫',
|
||||
darkMode: '暗色模式',
|
||||
darkMode: '黑暗模式',
|
||||
team: '團隊',
|
||||
users: '使用者',
|
||||
editAccount: '帳戶編輯',
|
||||
signOut: '註銷',
|
||||
editAccount: '編輯帳戶',
|
||||
signOut: '登出',
|
||||
error: '錯誤',
|
||||
refreshPage: '刷新頁面',
|
||||
refreshPage: '重新整理頁面',
|
||||
relogin: '重新登入',
|
||||
howToFixSigninIssues: '如何解決登入問題',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: '首先,您需要登入執行 Semaphore 的伺服器。 ',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: '在伺服器上執行以下命令查看現有使用者:',
|
||||
firstlyYouNeedAccessToTheServerWhereSemaphoreRunni: '首先,您需要訪問運行 Semaphore 的伺服器。',
|
||||
executeTheFollowingCommandOnTheServerToSeeExisting: '在伺服器上執行以下命令以查看現有使用者:',
|
||||
semaphoreUserList: 'semaphore user list',
|
||||
youCanChangePasswordOfExistingUser: '您可以更改現有使用者的密碼:',
|
||||
semaphoreUserChangebyloginLoginUser123Password: 'semaphore user change-by-login --login user123 --password {makePasswordExample}',
|
||||
orCreateNewAdminUser: '或建立新的管理員使用者:',
|
||||
orCreateNewAdminUser: '或創建新的管理員使用者:',
|
||||
close2: '關閉',
|
||||
semaphore: 'SEMAPHORE',
|
||||
dontHaveAccountOrCantSignIn: '沒有帳戶或無法登入? ',
|
||||
semaphore: '信號燈',
|
||||
dontHaveAccountOrCantSignIn: '沒有帳戶或無法登入?',
|
||||
password2: '密碼',
|
||||
cancel: '關閉',
|
||||
noViews: '沒有分組視圖',
|
||||
addView: '新增分組檢視',
|
||||
cancel: '取消',
|
||||
noViews: '沒有視圖',
|
||||
addView: '新增視圖',
|
||||
editEnvironment: '編輯環境',
|
||||
deleteEnvironment: '刪除環境',
|
||||
environment2: '環境',
|
||||
newEnvironment: '新增環境',
|
||||
newEnvironment: '新環境',
|
||||
environmentName: '環境名稱',
|
||||
extraVariables: '擴展變數',
|
||||
enterExtraVariablesJson: '新增額外的Json格式變數...',
|
||||
extraVariables: '額外變數',
|
||||
enterExtraVariablesJson: '輸入額外變數 JSON...',
|
||||
environmentVariables: '環境變數',
|
||||
enterEnvJson: '新增額外的Json格式環境變數...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: '環境變數和額外變數必須是有效的 JSON。 例如:',
|
||||
dashboard2: '控制台',
|
||||
enterEnvJson: '輸入環境 JSON...',
|
||||
environmentAndExtraVariablesMustBeValidJsonExample: '環境和額外變數必須是有效的 JSON。範例:',
|
||||
dashboard2: '儀表板',
|
||||
ansibleSemaphore: 'Semaphore UI',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: '抱歉,如果未啟用 JavaScript,<%= htmlWebpackPlugin.options.title %> 將無法正常運作。 請啟用它以繼續。 ',
|
||||
deleteInventory: '刪除主機配置',
|
||||
newInventory: '新增主機配置',
|
||||
wereSorryButHtmlwebpackpluginoptionstitleDoesntWor: '我們很抱歉,但 <%= htmlWebpackPlugin.options.title %> 在未啟用 JavaScript 的情況下無法正常工作。請啟用它以繼續。',
|
||||
deleteInventory: '刪除庫存',
|
||||
newInventory: '新庫存',
|
||||
name: '名稱',
|
||||
userCredentials: '使用者憑證',
|
||||
sudoCredentialsOptional: 'Sudo 憑證(可選)',
|
||||
type: '類型',
|
||||
pathToInventoryFile: '主機設定檔路徑',
|
||||
enterInventory: '編輯主機配置...',
|
||||
staticInventoryExample: '靜態主機配置範例:',
|
||||
staticYamlInventoryExample: '靜態 YAML 格式主機設定範例:',
|
||||
keyName: '憑證名稱',
|
||||
loginOptional: '登入名稱 (可選)',
|
||||
usernameOptional: '使用者名稱 (可選)',
|
||||
pathToInventoryFile: '庫存檔案路徑',
|
||||
enterInventory: '輸入庫存...',
|
||||
staticInventoryExample: '靜態庫存範例:',
|
||||
staticYamlInventoryExample: '靜態 YAML 庫存範例:',
|
||||
keyName: '金鑰名稱',
|
||||
loginOptional: '登入(可選)',
|
||||
usernameOptional: '使用者名稱(可選)',
|
||||
privateKey: '私鑰',
|
||||
override: '覆蓋',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: '對於 HTTPS 儲存庫和使用非 SSH 連線的 playbook,請使用此類金鑰。 ',
|
||||
deleteKey: '刪除憑證',
|
||||
newKey: '新增憑證',
|
||||
useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook: '對於 HTTPS 儲存庫和使用非 SSH 連接的 playbook,請使用此類型的金鑰。',
|
||||
deleteKey: '刪除金鑰',
|
||||
newKey: '新金鑰',
|
||||
create: '創建',
|
||||
newTask: '建立任務',
|
||||
newTask: '新任務',
|
||||
cantDeleteThe: '無法刪除 {objectTitle}',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '無法刪除 {objectTitle},因為它已被如下資源使用',
|
||||
theCantBeDeletedBecauseItUsedByTheResourcesBelow: '{objectTitle} 無法刪除,因為它被以下資源使用',
|
||||
projectName: '專案名稱',
|
||||
allowAlertsForThisProject: '在此專案開啟通知',
|
||||
telegramChatIdOptional: 'Telegram Chat ID (可選)',
|
||||
maxNumberOfParallelTasksOptional: '最大並行任務數 (可選)',
|
||||
allowAlertsForThisProject: '允許此專案的警報',
|
||||
telegramChatIdOptional: 'Telegram 聊天 ID(可選)',
|
||||
maxNumberOfParallelTasksOptional: '最大並行任務數(可選)',
|
||||
deleteRepository: '刪除儲存庫',
|
||||
newRepository: '新增儲存庫',
|
||||
newRepository: '新儲存庫',
|
||||
urlOrPath: 'URL 或路徑',
|
||||
absPath: 'abs. path',
|
||||
absPath: '絕對路徑',
|
||||
branch: '分支',
|
||||
accessKey: '存取憑證',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: '存取 Git 儲存庫的憑證。 它應該是:',
|
||||
ifYouUseGitOrSshUrl: '如果您使用 Git 或 SSH URL.',
|
||||
ifYouUseHttpsOrFileUrl: '如果您使用 HTTPS 或檔案 URL.',
|
||||
none: 'None',
|
||||
accessKey: '訪問金鑰',
|
||||
credentialsToAccessToTheGitRepositoryItShouldBe: '訪問 Git 儲存庫的憑證。應該是:',
|
||||
ifYouUseGitOrSshUrl: '如果您使用 Git 或 SSH URL。',
|
||||
ifYouUseHttpsOrFileUrl: '如果您使用 HTTPS 或檔案 URL。',
|
||||
none: '無',
|
||||
ssh: 'SSH',
|
||||
deleteProject: '刪除項目',
|
||||
save: '儲存',
|
||||
deleteProject2: '刪除項目',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: '一旦刪除項目,將無法恢復 !',
|
||||
deleteProject: '刪除專案',
|
||||
save: '保存',
|
||||
deleteProject2: '刪除專案',
|
||||
onceYouDeleteAProjectThereIsNoGoingBackPleaseBeCer: '一旦刪除專案,就無法恢復。請確定。',
|
||||
name2: '名稱 *',
|
||||
title: '標題 *',
|
||||
description: '說明',
|
||||
description: '描述',
|
||||
required: '必填',
|
||||
key: '{expr}',
|
||||
surveyVariables: '列出變數',
|
||||
surveyVariables: '調查變數',
|
||||
addVariable: '新增變數',
|
||||
columns: '列',
|
||||
buildVersion: '編譯版本',
|
||||
messageOptional: '說明 (可選)',
|
||||
debug: '調試模式',
|
||||
dryRun: 'Dry Run',
|
||||
diff: '顯示差異',
|
||||
advanced: '進階選項',
|
||||
columns: '欄位',
|
||||
buildVersion: '版本',
|
||||
messageOptional: '訊息(可選)',
|
||||
debug: '除錯',
|
||||
dryRun: '模擬執行',
|
||||
diff: '差異',
|
||||
advanced: '進階',
|
||||
hide: '隱藏',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: '請在設定中開啟 「允許在任務中自訂 CLI 參數」',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI 測試 (JSON 陣列). 例如: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
pleaseAllowOverridingCliArgumentInTaskTemplateSett: '允許在任務範本設定中覆蓋 CLI 參數',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe: 'CLI 參數(JSON 陣列)。範例: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
started: '已啟動',
|
||||
author: '關聯用戶',
|
||||
duration: '說明',
|
||||
author: '作者',
|
||||
duration: '持續時間',
|
||||
stop: '停止',
|
||||
forceStop: '強制刪除',
|
||||
confirmTask: '确认',
|
||||
forceStop: '強制停止',
|
||||
confirmTask: '確認',
|
||||
deleteTeamMember: '刪除團隊成員',
|
||||
team2: '團隊',
|
||||
newTeamMember: '新增團隊成員',
|
||||
newTeamMember: '新團隊成員',
|
||||
user: '使用者',
|
||||
administrator: '管理員',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: '定義起始版本,每次運行都會增加版本。 ',
|
||||
forMoreInformationAboutBuildingSeeThe: '有關構建的更多信息,請參閱',
|
||||
definesStartVersionOfYourArtifactEachRunIncrements: '定義您的工件的起始版本。每次運行都會增加工件版本。',
|
||||
forMoreInformationAboutBuildingSeeThe: '有關構建的更多信息,請參見',
|
||||
taskTemplateReference: '任務範本參考',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: '定義任務執行時應部署哪些產物。 ',
|
||||
forMoreInformationAboutDeployingSeeThe: '有關部署的更多信息,請參閱',
|
||||
definesWhatArtifactShouldBeDeployedWhenTheTaskRun: '定義在任務運行時應部署的工件。',
|
||||
forMoreInformationAboutDeployingSeeThe: '有關部署的更多信息,請參見',
|
||||
taskTemplateReference2: '任務範本參考',
|
||||
definesAutorunSchedule: '定義計畫任務',
|
||||
forMoreInformationAboutCronSeeThe: '有關 cron 的更多信息,請參閱',
|
||||
definesAutorunSchedule: '定義自動運行排程。',
|
||||
forMoreInformationAboutCronSeeThe: '有關 cron 的更多信息,請參見',
|
||||
cronExpressionFormatReference: 'Cron 表達式格式參考',
|
||||
startVersion: '開始版本',
|
||||
example000: '例如: 0.0.0',
|
||||
buildTemplate: '建置範本',
|
||||
startVersion: '起始版本',
|
||||
example000: '範例: 0.0.0',
|
||||
buildTemplate: '構建範本',
|
||||
autorun: '自動運行',
|
||||
playbookFilename: 'Playbook 檔案名稱 *',
|
||||
exampleSiteyml: '例如: site.yml',
|
||||
inventory2: '主機配置 *',
|
||||
playbookFilename: 'Playbook 檔名 *',
|
||||
exampleSiteyml: '範例: site.yml',
|
||||
inventory2: '庫存 *',
|
||||
repository: '儲存庫',
|
||||
environment3: '環境 *',
|
||||
vaultPassword: 'Vault 密碼',
|
||||
vaultPassword2: 'Vault 密碼',
|
||||
view: '查看',
|
||||
cron: '計劃任務',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: '我想透過 cron 執行一個任務,只用於某些儲存庫的新提交',
|
||||
vaultPassword: '保險庫密碼',
|
||||
vaultPassword2: '保險庫密碼',
|
||||
view: '視圖',
|
||||
cron: 'Cron',
|
||||
iWantToRunATaskByTheCronOnlyForForNewCommitsOfSome: '我想通過 cron 僅對某些儲存庫的新提交運行任務',
|
||||
repository2: '儲存庫',
|
||||
cronChecksNewCommitBeforeRun: 'Cron 在執行前檢查新的提交',
|
||||
cronChecksNewCommitBeforeRun: 'Cron 在運行之前檢查新提交',
|
||||
readThe: '閱讀',
|
||||
toLearnMoreAboutCron: '了解更多關於 Cron 的資訊。 ',
|
||||
suppressSuccessAlerts: 'Suppress success alerts',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI 參數 (JSON 陣列格式). 例如: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: '允許任務中自訂 CLI 參數',
|
||||
toLearnMoreAboutCron: '以了解有關 Cron 的更多信息。',
|
||||
suppressSuccessAlerts: '抑制成功警報',
|
||||
cliArgsJsonArrayExampleIMyinventoryshPrivatekeythe2: 'CLI 參數(JSON 陣列)。範例: [ "-i", "@myinventory.sh", "--private-key=/there/id_rsa", "-vvvv" ]',
|
||||
allowCliArgsInTask: '允許任務中的 CLI 參數',
|
||||
docs: '文檔',
|
||||
editViews: '編輯檢視',
|
||||
newTemplate: '新增模板',
|
||||
editViews: '編輯視圖',
|
||||
newTemplate: '新範本',
|
||||
taskTemplates2: '任務範本',
|
||||
all: '全部',
|
||||
all: '所有',
|
||||
notLaunched: '未啟動',
|
||||
by: 'by {user_name}',
|
||||
by: '由 {user_name}',
|
||||
editTemplate: '編輯範本',
|
||||
newTemplate2: '新建範本',
|
||||
deleteTemplate: '刪除模板',
|
||||
newTemplate2: '新範本',
|
||||
deleteTemplate: '刪除範本',
|
||||
playbook: 'Playbook',
|
||||
email: '信箱',
|
||||
email: '電子郵件',
|
||||
adminUser: '管理員使用者',
|
||||
sendAlerts: '發送通知',
|
||||
sendAlerts: '發送警報',
|
||||
deleteUser: '刪除使用者',
|
||||
newUser: '新增使用者',
|
||||
re: 'Re{getActionButtonTitle}',
|
||||
teamMember: '{expr} Team Member',
|
||||
newUser: '新使用者',
|
||||
re: '重新 {getActionButtonTitle}',
|
||||
teamMember: '{expr} 團隊成員',
|
||||
taskId: '任務 ID',
|
||||
version: '版本',
|
||||
status: '狀態',
|
||||
start: '啟動',
|
||||
actions: '任務',
|
||||
alert: '通知',
|
||||
start: '開始',
|
||||
actions: '操作',
|
||||
alert: '警報',
|
||||
admin: '管理員',
|
||||
role: '角色',
|
||||
external: '擴展',
|
||||
external: '外部',
|
||||
time: '時間',
|
||||
path: '路徑',
|
||||
gitUrl: 'Git 儲存庫連結',
|
||||
sshKey: 'SSH 密鑰',
|
||||
lastTask: '最後一次任務',
|
||||
gitUrl: 'Git URL',
|
||||
sshKey: 'SSH 金鑰',
|
||||
lastTask: '最後任務',
|
||||
task2: '任務',
|
||||
build: '編譯',
|
||||
build: '構建',
|
||||
deploy: '部署',
|
||||
run: '執行',
|
||||
run: '運行',
|
||||
add: '新增',
|
||||
password_required: '密碼是必填項',
|
||||
name_required: '名稱是必填項',
|
||||
user_credentials_required: '使用者憑證是必填項',
|
||||
type_required: '型別是必填項',
|
||||
path_required: '主機設定檔路徑是必填項',
|
||||
private_key_required: '私鑰是是必填項',
|
||||
project_name_required: '專案名稱是必填項',
|
||||
repository_required: '儲存庫位址是必填項',
|
||||
branch_required: '分支是必填項',
|
||||
key_required: 'Key 是必填項',
|
||||
user_required: '使用者是必填項',
|
||||
build_version_required: '編譯版是必填項',
|
||||
title_required: '標題是必填項',
|
||||
isRequired: '是必填項',
|
||||
password_required: '密碼是必填的',
|
||||
name_required: '名稱是必填的',
|
||||
user_credentials_required: '使用者憑證是必填的',
|
||||
type_required: '類型是必填的',
|
||||
path_required: '庫存檔案路徑是必填的',
|
||||
private_key_required: '私鑰是必填的',
|
||||
project_name_required: '專案名稱是必填的',
|
||||
repository_required: '儲存庫是必填的',
|
||||
branch_required: '分支是必填的',
|
||||
key_required: '金鑰是必填的',
|
||||
user_required: '使用者是必填的',
|
||||
build_version_required: '版本是必填的',
|
||||
title_required: '標題是必填的',
|
||||
isRequired: '是必填的',
|
||||
mustBeInteger: '必須是整數',
|
||||
mustBe0OrGreater: '必須大於或等於 0',
|
||||
start_version_required: '開始版本是必填項',
|
||||
playbook_filename_required: 'Playbook 檔案名稱是必填項',
|
||||
inventory_required: '主機配置是必填項',
|
||||
environment_required: '環境配置是必填項',
|
||||
email_required: '信箱是必填項',
|
||||
build_template_required: '編譯模板是必填項',
|
||||
mustBe0OrGreater: '必須是 0 或更大',
|
||||
start_version_required: '起始版本是必填的',
|
||||
playbook_filename_required: 'Playbook 檔名是必填的',
|
||||
inventory_required: '庫存是必填的',
|
||||
environment_required: '環境是必填的',
|
||||
email_required: '電子郵件是必填的',
|
||||
build_template_required: '構建範本是必填的',
|
||||
Task: '任務',
|
||||
Build: '編譯',
|
||||
Build: '構建',
|
||||
Deploy: '部署',
|
||||
Run: '運行',
|
||||
CreateDemoProject: '建立範本專案',
|
||||
CreateDemoProject: '創建示範專案',
|
||||
LeaveProject: '離開專案',
|
||||
|
||||
integration: '整合',
|
||||
integrations: '整合',
|
||||
NewIntegration: '新整合',
|
||||
EditIntegration: '編輯整合',
|
||||
DeleteIntegration: '刪除整合',
|
||||
DeleteIntegrationMsg: '您確定要刪除這個整合嗎?',
|
||||
AddAlias: '新增別名',
|
||||
LoadAlias: '正在加載別名...',
|
||||
runners: '執行者',
|
||||
newRunner: '新執行者',
|
||||
enabled: '已啟用',
|
||||
scheduleNextRun: '下一次運行',
|
||||
maxNumberOfParallelTasks: '最大並行任務數',
|
||||
runnerUsage: '使用情況:',
|
||||
runnerToken: '令牌:',
|
||||
editRunner: '編輯執行者',
|
||||
};
|
||||
|
@ -17,6 +17,7 @@ import New from '../views/project/New.vue';
|
||||
import Integrations from '../views/project/Integrations.vue';
|
||||
import IntegrationExtractor from '../views/project/IntegrationExtractor.vue';
|
||||
import Apps from '../views/Apps.vue';
|
||||
import Runners from '../views/Runners.vue';
|
||||
|
||||
Vue.use(VueRouter);
|
||||
|
||||
@ -101,6 +102,10 @@ const routes = [
|
||||
path: '/users',
|
||||
component: Users,
|
||||
},
|
||||
{
|
||||
path: '/runners',
|
||||
component: Runners,
|
||||
},
|
||||
{
|
||||
path: '/apps',
|
||||
component: Apps,
|
||||
|
254
web/src/views/Runners.vue
Normal file
254
web/src/views/Runners.vue
Normal file
@ -0,0 +1,254 @@
|
||||
<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
|
||||
<div v-if="items != null">
|
||||
<EditDialog
|
||||
v-model="editDialog"
|
||||
:save-button-text="itemId === 'new' ? $t('create') : $t('save')"
|
||||
:title="itemId === 'new' ? $t('newRunner') : $t('editRunner')"
|
||||
@save="loadItemsAndShowRunnerDetails($event)"
|
||||
>
|
||||
<template v-slot:form="{ onSave, onError, needSave, needReset }">
|
||||
<RunnerForm
|
||||
:project-id="projectId"
|
||||
:item-id="itemId"
|
||||
@save="onSave"
|
||||
@error="onError"
|
||||
:need-save="needSave"
|
||||
:need-reset="needReset"
|
||||
:is-admin="true"
|
||||
/>
|
||||
</template>
|
||||
</EditDialog>
|
||||
|
||||
<EditDialog
|
||||
:max-width="600"
|
||||
v-model="newRunnerTokenDialog"
|
||||
:save-button-text="null"
|
||||
:title="$t('newRunnerToken')"
|
||||
>
|
||||
<template v-slot:form="{}">
|
||||
<div>
|
||||
<div class="mb-4">
|
||||
<div>Token:</div>
|
||||
<div style="position: relative;">
|
||||
<code
|
||||
class="pa-2 mt-2"
|
||||
style="background: gray; color: white; display: block; font-size: 14px;"
|
||||
>{{ (newRunner || {}).token }}</code>
|
||||
|
||||
<v-btn
|
||||
style="position: absolute; right: 10px; top: 2px;"
|
||||
icon
|
||||
color="white"
|
||||
@click="copyToClipboard((newRunner || {}).token)"
|
||||
>
|
||||
<v-icon>mdi-content-copy</v-icon>
|
||||
</v-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div>Usage:</div>
|
||||
<div style="position: relative;">
|
||||
<pre style="white-space: pre-wrap;
|
||||
background: gray;
|
||||
color: white;
|
||||
border-radius: 10px;
|
||||
margin-top: 5px;"
|
||||
class="pa-2"
|
||||
>{{ runnerUsageCommand }}</pre>
|
||||
|
||||
<v-btn
|
||||
style="position: absolute; right: 10px; top: 10px;"
|
||||
icon
|
||||
color="white"
|
||||
@click="copyToClipboard(runnerUsageCommand)"
|
||||
>
|
||||
<v-icon>mdi-content-copy</v-icon>
|
||||
</v-btn>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</EditDialog>
|
||||
|
||||
<YesNoDialog
|
||||
:title="$t('deleteRunner')"
|
||||
:text="$t('askDeleteRunner')"
|
||||
v-model="deleteItemDialog"
|
||||
@yes="deleteItem(itemId)"
|
||||
/>
|
||||
|
||||
<v-toolbar flat>
|
||||
<v-btn
|
||||
icon
|
||||
class="mr-4"
|
||||
@click="returnToProjects()"
|
||||
>
|
||||
<v-icon>mdi-arrow-left</v-icon>
|
||||
</v-btn>
|
||||
<v-toolbar-title>{{ $t('runners') }}</v-toolbar-title>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn
|
||||
color="primary"
|
||||
@click="editItem('new')"
|
||||
>{{ $t('newRunner') }}
|
||||
</v-btn>
|
||||
</v-toolbar>
|
||||
|
||||
<v-data-table
|
||||
:headers="headers"
|
||||
:items="items"
|
||||
class="mt-4"
|
||||
:footer-props="{ itemsPerPageOptions: [20] }"
|
||||
>
|
||||
<template v-slot:item.active="{ item }">
|
||||
<v-switch
|
||||
v-model="item.active"
|
||||
inset
|
||||
@change="setActive(item.id, item.active)"
|
||||
></v-switch>
|
||||
</template>
|
||||
|
||||
<template v-slot:item.name="{ item }">{{ item.name || '—' }}</template>
|
||||
|
||||
<template v-slot:item.webhook="{ item }">{{ item.webhook || '—' }}</template>
|
||||
|
||||
<template v-slot:item.max_parallel_tasks="{ item }">
|
||||
{{ item.max_parallel_tasks || '∞' }}
|
||||
</template>
|
||||
|
||||
<template v-slot:item.actions="{ item }">
|
||||
<div style="white-space: nowrap">
|
||||
<v-btn
|
||||
icon
|
||||
class="mr-1"
|
||||
@click="askDeleteItem(item.id)"
|
||||
>
|
||||
<v-icon>mdi-delete</v-icon>
|
||||
</v-btn>
|
||||
|
||||
<v-btn
|
||||
icon
|
||||
class="mr-1"
|
||||
@click="editItem(item.id)"
|
||||
>
|
||||
<v-icon>mdi-pencil</v-icon>
|
||||
</v-btn>
|
||||
</div>
|
||||
</template>
|
||||
</v-data-table>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import EventBus from '@/event-bus';
|
||||
import YesNoDialog from '@/components/YesNoDialog.vue';
|
||||
import ItemListPageBase from '@/components/ItemListPageBase';
|
||||
import EditDialog from '@/components/EditDialog.vue';
|
||||
import RunnerForm from '@/components/RunnerForm.vue';
|
||||
import axios from 'axios';
|
||||
|
||||
export default {
|
||||
mixins: [ItemListPageBase],
|
||||
|
||||
components: {
|
||||
RunnerForm,
|
||||
YesNoDialog,
|
||||
EditDialog,
|
||||
},
|
||||
|
||||
props: {
|
||||
webHost: String,
|
||||
},
|
||||
|
||||
computed: {
|
||||
runnerUsageCommand() {
|
||||
return `SEMAPHORE_RUNNER_API_URL=${this.webHost}/internal \\
|
||||
SEMAPHORE_RUNNER_ID=${(this.newRunner || {}).id} \\
|
||||
SEMAPHORE_RUNNER_TOKEN=${(this.newRunner || {}).token} \\
|
||||
semaphore runner --no-config`;
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
newRunnerTokenDialog: null,
|
||||
newRunner: null,
|
||||
};
|
||||
},
|
||||
|
||||
methods: {
|
||||
async loadItemsAndShowRunnerDetails(e) {
|
||||
if (e.item.token) {
|
||||
this.newRunnerTokenDialog = true;
|
||||
this.newRunner = e.item;
|
||||
}
|
||||
return this.loadItems();
|
||||
},
|
||||
|
||||
async copyToClipboard(text) {
|
||||
try {
|
||||
await window.navigator.clipboard.writeText(text);
|
||||
EventBus.$emit('i-snackbar', {
|
||||
color: 'success',
|
||||
text: 'The command has been copied to the clipboard.',
|
||||
});
|
||||
} catch (e) {
|
||||
EventBus.$emit('i-snackbar', {
|
||||
color: 'error',
|
||||
text: `Can't copy the command: ${e.message}`,
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
async setActive(runnerId, active) {
|
||||
await axios({
|
||||
method: 'post',
|
||||
url: `/api/runners/${runnerId}/active`,
|
||||
responseType: 'json',
|
||||
data: {
|
||||
active,
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
getHeaders() {
|
||||
return [
|
||||
{
|
||||
value: 'active',
|
||||
}, {
|
||||
text: this.$i18n.t('name'),
|
||||
value: 'name',
|
||||
width: '50%',
|
||||
},
|
||||
{
|
||||
text: this.$i18n.t('webhook'),
|
||||
value: 'webhook',
|
||||
},
|
||||
{
|
||||
text: this.$i18n.t('maxNumberOfParallelTasks'),
|
||||
value: 'max_parallel_tasks',
|
||||
}, {
|
||||
text: this.$i18n.t('actions'),
|
||||
value: 'actions',
|
||||
sortable: false,
|
||||
}];
|
||||
},
|
||||
|
||||
async returnToProjects() {
|
||||
EventBus.$emit('i-open-last-project');
|
||||
},
|
||||
|
||||
getItemsUrl() {
|
||||
return '/api/runners';
|
||||
},
|
||||
|
||||
getSingleItemUrl() {
|
||||
return `/api/runners/${this.itemId}`;
|
||||
},
|
||||
|
||||
getEventName() {
|
||||
return 'i-runner';
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
@ -69,7 +69,6 @@
|
||||
icon
|
||||
class="mr-1"
|
||||
@click="askDeleteItem(item.id)"
|
||||
:disabled="item.id === userId"
|
||||
>
|
||||
<v-icon>mdi-delete</v-icon>
|
||||
</v-btn>
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
<v-toolbar flat >
|
||||
<v-app-bar-nav-icon @click="showDrawer()"></v-app-bar-nav-icon>
|
||||
<v-toolbar-title>{{ $t('environment2') }}</v-toolbar-title>
|
||||
<v-toolbar-title>{{ $t('environment') }}</v-toolbar-title>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn
|
||||
color="primary"
|
||||
|
Loading…
Reference in New Issue
Block a user