mirror of
https://github.com/mickael-kerjean/filestash
synced 2026-01-06 15:55:30 +01:00
feat (local): translation of common server side errors
This commit is contained in:
parent
71156132db
commit
517ec5bc0b
7 changed files with 36 additions and 18 deletions
|
|
@ -3,6 +3,7 @@ import ReactCSSTransitionGroup from 'react-addons-css-transition-group';
|
|||
|
||||
import { NgIf, Icon } from './';
|
||||
import { notify } from '../helpers/';
|
||||
import { t } from '../locales/';
|
||||
import './notification.scss';
|
||||
|
||||
export class Notification extends React.Component {
|
||||
|
|
@ -71,7 +72,7 @@ export class Notification extends React.Component {
|
|||
<NgIf key={this.state.message_text+this.state.message_type+this.state.appear} cond={this.state.appear === true} className="no-select">
|
||||
<div className={"component_notification--container "+(this.state.message_type || 'info')}>
|
||||
<div className="message">
|
||||
{ this.state.message_text }
|
||||
{ t(this.state.message_text || "") }
|
||||
</div>
|
||||
<div className="close" onClick={this.cancelAnimation.bind(this)}>
|
||||
<Icon name="close" />
|
||||
|
|
|
|||
|
|
@ -7,16 +7,20 @@
|
|||
"ADMIN_CONSOLE": "console administrateur",
|
||||
"ADVANCED": "avancée",
|
||||
"ALL_DONE": "Tout est bon!",
|
||||
"ALREADY_EXIST": "existe déjà",
|
||||
"BEAUTIFUL_URL": "id_du_lien",
|
||||
"CAMERA": "appareil",
|
||||
"CAN_RESHARE": "peut repartager",
|
||||
"CANCEL": "annuler",
|
||||
"CANNOT_ESTABLISH_A_CONNECTION": "Impossible d'établir une connexion",
|
||||
"CANT_LOAD_THIS_PICTURE": "impossible de charger cette image",
|
||||
"CANT_USE_FILESYSTEM": "Impossible d'utiliser le système de fichiers",
|
||||
"CODE": "code",
|
||||
"CONFIGURE": "configuration",
|
||||
"CONFIRM_BY_TYPING": "confirmez en écrivant",
|
||||
"CONNECT": "connection",
|
||||
"COPIED_TO_CLIPBOARD": "Copié dans le presse-papier",
|
||||
"TRAFFIC_CONGESTION_TRY_AGAIN_LATER": "Congestion, réessayez plus tard",
|
||||
"CREATE_A_NEW_LINK": "créer un lien partagé",
|
||||
"CURRENT": "en cours",
|
||||
"CURRENT_UPLOAD": "en cours",
|
||||
|
|
@ -44,18 +48,30 @@
|
|||
"INCORRECT_PASSWORD": "mot de passe incorrect",
|
||||
"INFO": "Information",
|
||||
"INTERNAL_ERROR_CANT_CREATE_A_{{VALUE}}": "erreur interne: vous ne pouvez pas créer un {{VALUE}}",
|
||||
"INVALID_PASSWORD": "mot de passe incorrect",
|
||||
"INVALID_ACCOUNT": "compte invalide",
|
||||
"LOCATION": "position",
|
||||
"MISSING_DEPENDENCY": "dépendance manquante",
|
||||
"NAVIGATE": "naviguer",
|
||||
"NEW_FILE": "Nouv. Fichier",
|
||||
"NEW_DIRECTORY": "Nouv. Dossier",
|
||||
"NEW_FILE": "Nouveau Fichier",
|
||||
"NEW_FILE::SHORT": "Nouv. Fichier",
|
||||
"NEW_DIRECTORY": "Nouveau Dossier",
|
||||
"NEW_DIRECTORY::SHORT": "Nouv. Dossier",
|
||||
"NO": "non",
|
||||
"NOT_ALLOWED": "interdit",
|
||||
"NOT_AUTHORISED": "autorisation manquante",
|
||||
"NOT_FOUND": "introuvable",
|
||||
"NOT_IMPLEMENTED": "non implémenté",
|
||||
"NOT_SUPPORTED": "non supporté",
|
||||
"NOT_VALID": "pas valide",
|
||||
"NUMBER_OF_CONNECTIONS": "nombre de connexion",
|
||||
"OK": "ok",
|
||||
"OOPS": "Oops!",
|
||||
"ONLY_FOR_USERS": "Uniquement pour certains utilisateurs",
|
||||
"OOPS": "oops!",
|
||||
"ONLY_FOR_USERS": "uniquement pour certains utilisateurs",
|
||||
"PASSPHRASE": "mot de passe de clef",
|
||||
"PROPERTIES": "Propriétés",
|
||||
"PATH": "chemin",
|
||||
"PERMISSION_DENIED": "autorisation refusée",
|
||||
"PROPERTIES": "propriétés",
|
||||
"PORT": "port",
|
||||
"PASSWORD": "mot de passe",
|
||||
"PASSWORD_CANT_BE_EMPTY": "le mot de passe ne peut pas être vide",
|
||||
|
|
@ -70,15 +86,16 @@
|
|||
"SAVE_CURRENT_FILE": "enregistrer le fichier actuel",
|
||||
"SEARCH": "recherche",
|
||||
"SETTINGS": "réglage",
|
||||
"SORT_BY_TYPE": "Trier par type",
|
||||
"SORT_BY_DATE": "Trier par date",
|
||||
"SORT_BY_NAME": "Trier par nom",
|
||||
"SORT_BY_TYPE": "trier par type",
|
||||
"SORT_BY_DATE": "trier par date",
|
||||
"SORT_BY_NAME": "trier par nom",
|
||||
"SUPPORT": "support",
|
||||
"THERE_IS_NOTHING_HERE": "il n'y a rien ici",
|
||||
"THE_LINK_WAS_COPIED_IN_THE_CLIPBOARD": "le lien a été copié dans le presse-papiers",
|
||||
"THE_LINK_WONT_BE_VALID_AFTER": "le lien ne sera plus valide après",
|
||||
"THE_FILE_{{VALUE}}_WAS_RENAMED": "le fichier \"{{VALUE}}\" a été renommé",
|
||||
"THE_FILE_{{VALUE}}_WAS_DELETED": "le fichier \"{{VALUE}}\" a été supprimé",
|
||||
"TIMEOUT": "trop long",
|
||||
"TODO": "todo",
|
||||
"UPLOADER": "uploader",
|
||||
"USERNAME": "nom d'utilisateur",
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ var (
|
|||
ErrNotReachable error = NewError("Cannot establish a connection", 502)
|
||||
ErrInvalidPassword = NewError("Invalid Password", 403)
|
||||
ErrNotImplemented = NewError("Not Implemented", 501)
|
||||
ErrNotSupported = NewError("This feature is not supported", 501)
|
||||
ErrNotSupported = NewError("Not supported", 501)
|
||||
ErrFilesystemError = NewError("Can't use filesystem", 503)
|
||||
ErrMissingDependency = NewError("Missing dependency", 424)
|
||||
ErrNotAuthorized = NewError("Not authorised", 401)
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ func SessionAuthenticate(ctx App, res http.ResponseWriter, req *http.Request) {
|
|||
|
||||
home, err := model.GetHome(backend, session["path"])
|
||||
if err != nil {
|
||||
SendErrorResult(res, ErrInvalidPassword)
|
||||
SendErrorResult(res, ErrAuthenticationFailed)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ func (f Ftp) Init(params map[string]string, app *App) (IBackend, error) {
|
|||
return backend, err
|
||||
}
|
||||
if _, err := client.ReadDir("/"); err != nil {
|
||||
return backend, err
|
||||
return backend, ErrAuthenticationFailed
|
||||
}
|
||||
backend = &Ftp{client}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ func (s S3Backend) Cat(path string) (io.ReadCloser, error) {
|
|||
} else if awsErr.Code() == "InvalidArgument" && strings.Contains(awsErr.Message(), "secret key was invalid") {
|
||||
return nil, NewError("This file is encrypted file, you need the correct key!", 400)
|
||||
} else if awsErr.Code() == "AccessDenied" {
|
||||
return nil, NewError("Access denied", 403)
|
||||
return nil, ErrNotAllowed
|
||||
}
|
||||
return nil ,err
|
||||
}
|
||||
|
|
@ -223,7 +223,7 @@ func (s S3Backend) Rm(path string) error {
|
|||
client := s3.New(s.createSession(p.bucket))
|
||||
|
||||
if p.bucket == "" {
|
||||
return NewError("Doesn't exist", 404)
|
||||
return ErrNotFound
|
||||
}
|
||||
|
||||
objs, err := client.ListObjects(&s3.ListObjectsInput{
|
||||
|
|
@ -276,7 +276,7 @@ func (s S3Backend) Mv(from string, to string) error {
|
|||
client := s3.New(s.createSession(f.bucket))
|
||||
|
||||
if f.path == "" {
|
||||
return NewError("Can't move this", 403)
|
||||
return ErrNotImplemented
|
||||
}
|
||||
|
||||
input := &s3.CopyObjectInput{
|
||||
|
|
@ -303,7 +303,7 @@ func (s S3Backend) Touch(path string) error {
|
|||
client := s3.New(s.createSession(p.bucket))
|
||||
|
||||
if p.bucket == "" {
|
||||
return NewError("Can't do that on S3", 403)
|
||||
return ErrNotValid
|
||||
}
|
||||
|
||||
input := &s3.PutObjectInput{
|
||||
|
|
@ -324,7 +324,7 @@ func (s S3Backend) Save(path string, file io.Reader) error {
|
|||
p := s.path(path)
|
||||
|
||||
if p.bucket == "" {
|
||||
return NewError("Can't do that on S3", 403)
|
||||
return ErrNotValid
|
||||
}
|
||||
uploader := s3manager.NewUploader(s.createSession(path))
|
||||
input := s3manager.UploadInput{
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ func (s Sftp) Init(params map[string]string, app *App) (IBackend, error) {
|
|||
|
||||
session, err := sftp.NewClient(s.SSHClient)
|
||||
if err != nil {
|
||||
return &s, ErrNotReachable
|
||||
return &s, err
|
||||
}
|
||||
s.SFTPClient = session
|
||||
SftpCache.Set(params, &s)
|
||||
|
|
|
|||
Loading…
Reference in a new issue