diff --git a/src/nls/cs/strings.js b/src/nls/cs/strings.js index 1081d9a485b..d04a3981323 100644 --- a/src/nls/cs/strings.js +++ b/src/nls/cs/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Chyba při mazání souboru", "ERROR_DELETING_FILE" : "Došlo k chybě při mazání souboru {0}. {1}", "INVALID_FILENAME_TITLE" : "Špatné jméno souboru", - "INVALID_FILENAME_MESSAGE" : "Jméno souboru nemůže obsahovat znaky: /?*:;{}<>\\|", + "INVALID_FILENAME_MESSAGE" : "Jméno souboru nemůže obsahovat znaky: {0}", "FILE_ALREADY_EXISTS" : "Soubor {0} již existuje.", "ERROR_CREATING_FILE_TITLE" : "Chyba při tvorbě souboru", "ERROR_CREATING_FILE" : "Došlo k chybě při vytváření souboru {0}. {1}", diff --git a/src/nls/de/strings.js b/src/nls/de/strings.js index 7e697f42e67..7440fc79c58 100644 --- a/src/nls/de/strings.js +++ b/src/nls/de/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Fehler beim Löschen der Datei", "ERROR_DELETING_FILE" : "Beim Löschen der Datei {0} ist ein Fehler aufgetreten. {1}", "INVALID_FILENAME_TITLE" : "Ungültiger {0}name", - "INVALID_FILENAME_MESSAGE" : "Dateinamen dürfen folgende Zeichen nicht enthalten: /?*:;{}<>\\| Auch dürfen keine vom System reservierten Wörter vorkommen.", + "INVALID_FILENAME_MESSAGE" : "Dateinamen dürfen folgende Zeichen nicht enthalten: {0} Auch dürfen keine vom System reservierten Wörter vorkommen.", "FILE_ALREADY_EXISTS" : "{0} {1} existiert bereits.", // TODO: depends on {0} gender "ERROR_CREATING_FILE_TITLE" : "Fehler beim Erstellen von {0}", // TODO: depends on {0} gender "ERROR_CREATING_FILE" : "Beim Erstellen von {0} {1} ist ein Fehler aufgetreten: {2}", // TODO: depends on {0} gender diff --git a/src/nls/el/strings.js b/src/nls/el/strings.js index 3c008ab4a56..77abb381232 100644 --- a/src/nls/el/strings.js +++ b/src/nls/el/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Σφάλμα διαγραφής αρχείου", "ERROR_DELETING_FILE" : "Σφάλμα προέκυψε κατά τη διαδικασία διαγραφής του αρχείου {0}. {1}", "INVALID_FILENAME_TITLE" : "Μη έγκυρο {0} όνομα", - "INVALID_FILENAME_MESSAGE" : "Τα όνομα αρχείων δεν μπορούν να περιέχουν τους ακόλουθους χαρακτήρες: /?*:;{}<>\\| ή οποιεσδήποτε system reserved λέξεις.", + "INVALID_FILENAME_MESSAGE" : "Τα όνομα αρχείων δεν μπορούν να περιέχουν τους ακόλουθους χαρακτήρες: {0} ή οποιεσδήποτε system reserved λέξεις.", "FILE_ALREADY_EXISTS" : "Το {0} {1} υπάρχει ήδη.", "ERROR_CREATING_FILE_TITLE" : "Σφάλμα δημιουργίας {0}", "ERROR_CREATING_FILE" : "Σφάλμα προέκυψε κατά τη διαδικασία δημιουργίας του {0} {1}. {2}", diff --git a/src/nls/es/strings.js b/src/nls/es/strings.js index f460037933e..8ee2dd025de 100644 --- a/src/nls/es/strings.js +++ b/src/nls/es/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Error eliminando archivo", "ERROR_DELETING_FILE" : "Ha ocurrido un error al intentar eliminar el archivo {0}. {1}", "INVALID_FILENAME_TITLE" : "Nombre de {0} inválido", - "INVALID_FILENAME_MESSAGE" : "Los nombres de archivo no pueden contener los siguientes caracteres: /?*:;{}<>\\| o usar palabras reservadas del sistema", + "INVALID_FILENAME_MESSAGE" : "Los nombres de archivo no pueden contener los siguientes caracteres: {0} o usar palabras reservadas del sistema", "FILE_ALREADY_EXISTS" : "El {0} {0} ya existe.", "ERROR_CREATING_FILE_TITLE" : "Error creando {0}", "ERROR_CREATING_FILE" : "Ha ocurrido un error al intentar crear el {0} {1}. {2}", diff --git a/src/nls/fa-ir/strings.js b/src/nls/fa-ir/strings.js index 860688c8861..720d41b7669 100644 --- a/src/nls/fa-ir/strings.js +++ b/src/nls/fa-ir/strings.js @@ -60,7 +60,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "خطا در حذف پرونده", "ERROR_DELETING_FILE" : "بروز خطا بهنگام تلاش برای جذف پرونده {0}. {1}", "INVALID_FILENAME_TITLE" : "مقدار وارد شده {0} معتبر نمی باشد", - "INVALID_FILENAME_MESSAGE" : "نام پرونده نمی تواند شامل مقادیر زیر باشد: /?*:;{}<>\\| or use any system reserved words.", + "INVALID_FILENAME_MESSAGE" : "نام پرونده نمی تواند شامل مقادیر زیر باشد: {0} or use any system reserved words.", "FILE_ALREADY_EXISTS" : "پرونده ای با نام {0} {1} وجود دارد.", "ERROR_CREATING_FILE_TITLE" : "خطا در ایجاد {0}", "ERROR_CREATING_FILE" : "بروز خطا بهنگام ایجاد {0} {1}. {2}", diff --git a/src/nls/fi/strings.js b/src/nls/fi/strings.js index 3c250a617b6..2342aa1d427 100644 --- a/src/nls/fi/strings.js +++ b/src/nls/fi/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Virhe poistettaessa tiedostoa", "ERROR_DELETING_FILE" : "Tapahtui virhe yrittäessä poistaa tiedosto {0}. {1}", "INVALID_FILENAME_TITLE" : "Kelpaamaton {0}nimi", - "INVALID_FILENAME_MESSAGE" : "Tiedostonimi ei voi sisältää seuraavia merkkejä: /?*:;{}<>\\| tai mitään järjestelmän varaamia sanoja.", + "INVALID_FILENAME_MESSAGE" : "Tiedostonimi ei voi sisältää seuraavia merkkejä: {0} tai mitään järjestelmän varaamia sanoja.", "FILE_ALREADY_EXISTS" : "{0} {1} on jo olemassa.", "ERROR_CREATING_FILE_TITLE" : "Virhe luodessa {0}a", "ERROR_CREATING_FILE" : "Virhe yrittäessä luoda {0}a {1}. {2}", diff --git a/src/nls/hu/strings.js b/src/nls/hu/strings.js index 6895d597e72..7115e3e5c81 100644 --- a/src/nls/hu/strings.js +++ b/src/nls/hu/strings.js @@ -56,7 +56,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Hiba történt a fájl törlése közben", "ERROR_DELETING_FILE" : "Hiba történt a fájl törlése közben: {0}. {1}", "INVALID_FILENAME_TITLE" : "Helytelen fájlnév", - "INVALID_FILENAME_MESSAGE" : "A fájl neve nem tartalmazhatja a következő karaktereket: /?*:;{}<>\\| és foglalt rendszer neveket.", + "INVALID_FILENAME_MESSAGE" : "A fájl neve nem tartalmazhatja a következő karaktereket: {0} és foglalt rendszer neveket.", "FILE_ALREADY_EXISTS" : "A fájl {0} már létezik.", "ERROR_CREATING_FILE_TITLE" : "Hiba történt a fájl létrehozása közben.", "ERROR_CREATING_FILE" : "Hiba történt a fájl létrehozása közben: {0}. {1}", diff --git a/src/nls/it/strings.js b/src/nls/it/strings.js index 39433596fd2..4bb7e78369c 100644 --- a/src/nls/it/strings.js +++ b/src/nls/it/strings.js @@ -53,7 +53,7 @@ define({ "ERROR_RENAMING_FILE_TITLE" : "Errore durante il tentativo di rinominare il file", "ERROR_RENAMING_FILE" : "Errore durante il tentativo di rinominare il file {0}. {1}", "INVALID_FILENAME_TITLE" : "Il nome del file non è valido", - "INVALID_FILENAME_MESSAGE" : "Il nome del file non può contenere i seguenti caratteri: /?*:;{}<>\\|", + "INVALID_FILENAME_MESSAGE" : "Il nome del file non può contenere i seguenti caratteri: {0}", "FILE_ALREADY_EXISTS" : "Il file {0} esiste già.", "ERROR_CREATING_FILE_TITLE" : "Errore durante la creazione del file", "ERROR_CREATING_FILE" : "Errore durante il tentativo di creare il file {0}. {1}", diff --git a/src/nls/ko/strings.js b/src/nls/ko/strings.js index 7b4301018f8..a3af613deb8 100644 --- a/src/nls/ko/strings.js +++ b/src/nls/ko/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE": "파일 삭제 에러", "ERROR_DELETING_FILE": "파일을 삭제할 때 에러가 발생했습니다 {0}. {1}", "INVALID_FILENAME_TITLE": "잘못된 {0}이름", - "INVALID_FILENAME_MESSAGE": "파일 이름에는 다음 문자를 포함 할 수 없습니다: /?*:;{}<>\\| 또는 시스템의 모든 예약어", + "INVALID_FILENAME_MESSAGE": "파일 이름에는 다음 문자를 포함 할 수 없습니다: {0} 또는 시스템의 모든 예약어", "FILE_ALREADY_EXISTS": "{0} {1}은 이미 존재 합니다.", "ERROR_CREATING_FILE_TITLE": "{0}를 만들 때 에러가 발생했습니다", "ERROR_CREATING_FILE": "{0} {1}를 만들 때 에러가 발생했습니다.{2}", diff --git a/src/nls/nb/strings.js b/src/nls/nb/strings.js index 236b198b60d..0df1165455d 100644 --- a/src/nls/nb/strings.js +++ b/src/nls/nb/strings.js @@ -50,7 +50,7 @@ define({ "ERROR_SAVING_FILE_TITLE" : "Feil ved lagring av fil", "ERROR_SAVING_FILE" : "Det oppstod en feil ved forsøk på å lagre filen {0}. {1}", "INVALID_FILENAME_TITLE" : "Ugyldig filnavn", - "INVALID_FILENAME_MESSAGE" : "Filnavn kan ikke inneholde følgende tegn: /?*:;{}<>\\|", + "INVALID_FILENAME_MESSAGE" : "Filnavn kan ikke inneholde følgende tegn: {0}", "FILE_ALREADY_EXISTS" : "Filen {0} eksisterer allerede.", "ERROR_CREATING_FILE_TITLE" : "Feil ved oppretting av fil", "ERROR_CREATING_FILE" : "Det oppstod en feil ved forsøk på å opprette filen {0}. {1}", diff --git a/src/nls/nl/strings.js b/src/nls/nl/strings.js index b33ca3d7a7f..540c9b12ac4 100644 --- a/src/nls/nl/strings.js +++ b/src/nls/nl/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Probleem bij het verwijderen van een bestand", "ERROR_DELETING_FILE" : "Er is een fout opgetreden bij het verwijderen van het bestand {0}. {1}", "INVALID_FILENAME_TITLE" : "Ongeldige {0} naam", - "INVALID_FILENAME_MESSAGE" : "Bestandsnamen kunnen de volgende karakters niet bevatten: /?*:;{}<>\\| of gebruik maken van woorden die door het systeem zijn gereserveerd.", + "INVALID_FILENAME_MESSAGE" : "Bestandsnamen kunnen de volgende karakters niet bevatten: {0} of gebruik maken van woorden die door het systeem zijn gereserveerd.", "FILE_ALREADY_EXISTS" : "Het {0} {1} bestaat al.", "ERROR_CREATING_FILE_TITLE" : "Probleem bij het aanmaken van een {0}", "ERROR_CREATING_FILE" : "Er is een fout opgetreden bij het aanmaken van het {0} {1}. {2}", diff --git a/src/nls/pl/strings.js b/src/nls/pl/strings.js index deeb259ac6b..41e61bede79 100644 --- a/src/nls/pl/strings.js +++ b/src/nls/pl/strings.js @@ -53,7 +53,7 @@ define({ "ERROR_RENAMING_FILE_TITLE" : "Nie można zmienić nazwy", "ERROR_RENAMING_FILE" : "Wystąpił błąd podczas próby zmiany nazwy pliku {0}. {1}", "INVALID_FILENAME_TITLE" : "Niewłaściwa nazwa pliku", - "INVALID_FILENAME_MESSAGE" : "Nazwa pliku nie może zawierać następujących znaków: /?*:;{}<>\\|", + "INVALID_FILENAME_MESSAGE" : "Nazwa pliku nie może zawierać następujących znaków: {0}", "FILE_ALREADY_EXISTS" : "Plik {0} już istnieje.", "ERROR_CREATING_FILE_TITLE" : "Nie można utworzyć pliku", "ERROR_CREATING_FILE" : "Wystąpił błąd podczas próby utworzenia pliku {0}. {1}", diff --git a/src/nls/pt-br/strings.js b/src/nls/pt-br/strings.js index 69c767ef19c..4ec6e71e18b 100644 --- a/src/nls/pt-br/strings.js +++ b/src/nls/pt-br/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Erro ao excluir arquivo", "ERROR_DELETING_FILE" : "Ocorreu um erro ao tentar excluir o arquivo {0}. {1}", "INVALID_FILENAME_TITLE" : "Nome de {0} inválido", - "INVALID_FILENAME_MESSAGE" : "Nomes de arquivos não podem conter os seguintes caracteres: /?*:;{}<>\\| nem usar palavras reservadas do sistema.", + "INVALID_FILENAME_MESSAGE" : "Nomes de arquivos não podem conter os seguintes caracteres: {0} nem usar palavras reservadas do sistema.", "FILE_ALREADY_EXISTS" : "Já existe um {0} chamado {1}.", "ERROR_CREATING_FILE_TITLE" : "Erro ao criar {0}", "ERROR_CREATING_FILE" : "Ocorreu um erro ao tentar criar o {0} {1}. {2}", diff --git a/src/nls/pt-pt/strings.js b/src/nls/pt-pt/strings.js index 67907ca8c4d..c3c516b039a 100644 --- a/src/nls/pt-pt/strings.js +++ b/src/nls/pt-pt/strings.js @@ -53,7 +53,7 @@ define({ "ERROR_RENAMING_FILE_TITLE" : "Erro ao renomear ficheiro", "ERROR_RENAMING_FILE" : "Ocorreu um erro ao tentar renomear o ficheiro {0}. {1}", "INVALID_FILENAME_TITLE" : "Nome do ficheiro inválido", - "INVALID_FILENAME_MESSAGE" : "O nome do ficheiro não pode conter os seguintes caracteres: /?*:;{}<>\\|", + "INVALID_FILENAME_MESSAGE" : "O nome do ficheiro não pode conter os seguintes caracteres: {0}", "FILE_ALREADY_EXISTS" : "O ficheiro {0} já existe.", "ERROR_CREATING_FILE_TITLE" : "Erro ao criar ficheiro.", "ERROR_CREATING_FILE" : "Ocorreu um erro ao tentar criar o ficheiro {0}. {1}", diff --git a/src/nls/ro/strings.js b/src/nls/ro/strings.js index 92a33908811..cbb90f1df18 100644 --- a/src/nls/ro/strings.js +++ b/src/nls/ro/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Eroare la ștergerea fișierului", "ERROR_DELETING_FILE" : "S-a produs o eroare la încercarea de a șterge fișierul {0}. {1}", "INVALID_FILENAME_TITLE" : "Numele {0} e invalid", - "INVALID_FILENAME_MESSAGE" : "Numele fișierului nu poate conține următoarele caractere: /?*:;{}<>\\| sau să fie un cuvânt rezervat de sistemul de operare.", + "INVALID_FILENAME_MESSAGE" : "Numele fișierului nu poate conține următoarele caractere: {0} sau să fie un cuvânt rezervat de sistemul de operare.", "FILE_ALREADY_EXISTS" : "Fișierul {0} {1} există deja.", "ERROR_CREATING_FILE_TITLE" : "Eroare la crearea fișierului {0}", "ERROR_CREATING_FILE" : "S-a produs o eroare la încercarea de a crea fișierul {0} {1}. {2}", diff --git a/src/nls/root/strings.js b/src/nls/root/strings.js index 39591c369bb..dfe831c51b4 100644 --- a/src/nls/root/strings.js +++ b/src/nls/root/strings.js @@ -60,7 +60,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Error deleting file", "ERROR_DELETING_FILE" : "An error occurred when trying to delete the file {0}. {1}", "INVALID_FILENAME_TITLE" : "Invalid {0} name", - "INVALID_FILENAME_MESSAGE" : "Filenames cannot contain the following characters: /?*:;{}<>\\| or use any system reserved words.", + "INVALID_FILENAME_MESSAGE" : "Filenames cannot contain the following characters: {0} or use any system reserved words.", "FILE_ALREADY_EXISTS" : "The {0} {1} already exists.", "ERROR_CREATING_FILE_TITLE" : "Error creating {0}", "ERROR_CREATING_FILE" : "An error occurred when trying to create the {0} {1}. {2}", diff --git a/src/nls/ru/strings.js b/src/nls/ru/strings.js index 8c3d0ca8019..583a22be80a 100644 --- a/src/nls/ru/strings.js +++ b/src/nls/ru/strings.js @@ -53,7 +53,7 @@ define({ "ERROR_RENAMING_FILE_TITLE" : "Ошибка переименования файла", "ERROR_RENAMING_FILE" : "Произошла ошибка при попытке переименовать файл {0}. {1}", "INVALID_FILENAME_TITLE" : "Неверное имя файла", - "INVALID_FILENAME_MESSAGE" : "Имена файлов не могут содержать следующие символы: /?*:;{}<>\\|", + "INVALID_FILENAME_MESSAGE" : "Имена файлов не могут содержать следующие символы: {0}", "FILE_ALREADY_EXISTS" : "Файл {0} уже существует.", "ERROR_CREATING_FILE_TITLE" : "Ошибка создания файла", "ERROR_CREATING_FILE" : "Произошла ошибка при попытке создать файл {0}. {1}", diff --git a/src/nls/sk/strings.js b/src/nls/sk/strings.js index 5fe9b380875..541cc3e38d3 100644 --- a/src/nls/sk/strings.js +++ b/src/nls/sk/strings.js @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Chyba pri zmazaní súboru", "ERROR_DELETING_FILE" : "Nastala chyba pri zmazaní súboru {0}. {1}", "INVALID_FILENAME_TITLE" : "Neplatný {0} názov", - "INVALID_FILENAME_MESSAGE" : "Názvy súboru nesmú obsahovať nasledujúce znaky: /?*:;{}<>\\| alebo používať rezervované systémové slová.", + "INVALID_FILENAME_MESSAGE" : "Názvy súboru nesmú obsahovať nasledujúce znaky: {0} alebo používať rezervované systémové slová.", "FILE_ALREADY_EXISTS" : "Súbor {0} {1} už existuje.", "ERROR_CREATING_FILE_TITLE" : "Chyba pri vytváraní súboru {0}", "ERROR_CREATING_FILE" : "Nastala chyba pri vytváraní súboru {0} {1}. {2}", diff --git a/src/nls/sr/strings.js b/src/nls/sr/strings.js index 3c2ec0264aa..d28fe5c8ce5 100644 --- a/src/nls/sr/strings.js +++ b/src/nls/sr/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Грешка при брисању датотеке", "ERROR_DELETING_FILE" : "Дошло је до грешке приликом покушаја да се обрише датотека {0}. {1}", "INVALID_FILENAME_TITLE" : "Име {0} није валидно", - "INVALID_FILENAME_MESSAGE" : "Имена датотека не смеју садржати следеће карактере: /?*:;{}<>\\| или системски резервисане речи.", + "INVALID_FILENAME_MESSAGE" : "Имена датотека не смеју садржати следеће карактере: {0} или системски резервисане речи.", "FILE_ALREADY_EXISTS" : "{0} {1} већ постоји.", "ERROR_CREATING_FILE_TITLE" : "Грешка при креирању {0}", "ERROR_CREATING_FILE" : "Дошло је до грешке приликом покушаја да се креира {0} {1}. {2}", diff --git a/src/nls/sv/strings.js b/src/nls/sv/strings.js index 4adc0022cda..6174c41a814 100644 --- a/src/nls/sv/strings.js +++ b/src/nls/sv/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "Filen kunde inte raderas", "ERROR_DELETING_FILE" : "Ett fel uppstod när filen {0} skulle tas bort. {1}", "INVALID_FILENAME_TITLE" : "Ogiltigt filnamn", - "INVALID_FILENAME_MESSAGE" : "Filnamn får inte innehålla följande tecken: /?*:;{}<>\\| eller innehålla ord som reserverats av systemet.", + "INVALID_FILENAME_MESSAGE" : "Filnamn får inte innehålla följande tecken: {0} eller innehålla ord som reserverats av systemet.", "FILE_ALREADY_EXISTS" : "En fil med namnet {0} existerar redan.", "ERROR_CREATING_FILE_TITLE" : "Filen {0} kunde inte skapas", "ERROR_CREATING_FILE" : "Ett fel uppstod när {0} {1} skulle skapas. {2}", diff --git a/src/nls/tr/strings.js b/src/nls/tr/strings.js index 464c7621619..d4014fe3ab3 100644 --- a/src/nls/tr/strings.js +++ b/src/nls/tr/strings.js @@ -53,7 +53,7 @@ define({ "ERROR_RENAMING_FILE_TITLE" : "Dosya ismi değiştirilirken hata", "ERROR_RENAMING_FILE" : "{0} dosyasının ismi değiştirilirken hata meydana geldi. {1}", "INVALID_FILENAME_TITLE" : "Hatalı dosya ismi", - "INVALID_FILENAME_MESSAGE" : "Dosya isimleri yandaki karakterleri bulunduramaz: /?*:;{}<>\\|", + "INVALID_FILENAME_MESSAGE" : "Dosya isimleri yandaki karakterleri bulunduramaz: {0}", "FILE_ALREADY_EXISTS" : "{0} dosyası zaten bulunmakta", "ERROR_CREATING_FILE_TITLE" : "Dosya yaratılırken hata", "ERROR_CREATING_FILE" : "{0} dosyası yaratılırken hata meydana geldi. {1}", diff --git a/src/nls/zh-cn/strings.js b/src/nls/zh-cn/strings.js index 99de97ac00e..00a36f9728a 100644 --- a/src/nls/zh-cn/strings.js +++ b/src/nls/zh-cn/strings.js @@ -59,7 +59,7 @@ define({ "ERROR_DELETING_FILE_TITLE" : "删除文件失败", "ERROR_DELETING_FILE" : "试图删除该文件时出现错误, 文件: {0}. {1}", "INVALID_FILENAME_TITLE" : "无效文件名: {0}", - "INVALID_FILENAME_MESSAGE" : "文件名不得包含: /?*:;{}<>\\| 或使用操作系统保留文件名", + "INVALID_FILENAME_MESSAGE" : "文件名不得包含: {0} 或使用操作系统保留文件名", "FILE_ALREADY_EXISTS" : "该文件 {0} {1} 已经存在.", "ERROR_CREATING_FILE_TITLE" : "创建文件 {0} 错误", "ERROR_CREATING_FILE" : "试图创建 {0} {1} 时出现错误. {2}", diff --git a/src/project/ProjectManager.js b/src/project/ProjectManager.js index 8d58c5e2a9c..2c5f63f6dd5 100644 --- a/src/project/ProjectManager.js +++ b/src/project/ProjectManager.js @@ -175,6 +175,15 @@ define(function (require, exports, module) { */ var _projectInitialLoad = null; + /** + * @private + * A string containing all invalid characters for a specific platform. + * This will be used to construct a regular expression for checking invalid filenames. + * When a filename with one of these invalid characters are detected, then it is + * also used to substitute the place holder of the error message. + */ + var _invalidChars; + /** * @private * RegEx to validate if a filename is not allowed even if the system allows it. @@ -756,6 +765,7 @@ define(function (require, exports, module) { if (entry.isDirectory) { jsonEntry.children = []; jsonEntry.state = "closed"; + jsonEntry.data = _.escape(jsonEntry.data); } else { jsonEntry.data = ViewUtils.getFileEntryDisplay(entry); } @@ -1419,6 +1429,9 @@ define(function (require, exports, module) { * @private * Check a filename for illegal characters. If any are found, show an error * dialog and return false. If no illegal characters are found, return true. + * Although Mac and Linux allow ?*| characters, we still cannot allow them + * since these have special meaning for all file systems. + * * @param {string} filename * @param {boolean} isFolder * @return {boolean} Returns true if no illegal characters are found @@ -1427,11 +1440,12 @@ define(function (require, exports, module) { // Validate file name // Checks for valid Windows filenames: // See http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx - if ((filename.search(/[\/?*:;\{\}<>\\|]+/) !== -1) || filename.match(_illegalFilenamesRegEx)) { + if ((filename.search(new RegExp("[" + _invalidChars + "]+")) !== -1) || + filename.match(_illegalFilenamesRegEx)) { Dialogs.showModalDialog( DefaultDialogs.DIALOG_ID_ERROR, StringUtils.format(Strings.INVALID_FILENAME_TITLE, isFolder ? Strings.DIRECTORY : Strings.FILE), - Strings.INVALID_FILENAME_MESSAGE + StringUtils.format(Strings.INVALID_FILENAME_MESSAGE, _invalidChars) ); return false; } @@ -1718,14 +1732,16 @@ define(function (require, exports, module) { var isFolder = $selected.hasClass("jstree-open") || $selected.hasClass("jstree-closed"); _projectTree.one("rename.jstree", function (event, data) { - // Make sure the file was actually renamed - var changed = (data.rslt.old_name !== data.rslt.new_name); + var unescapedOldName = _.unescape(data.rslt.old_name), + unescapedNewName = _.unescape(data.rslt.new_name), + // Make sure the file was actually renamed + changed = (unescapedOldName !== unescapedNewName); var _resetOldFilename = function () { _projectTree.jstree("set_text", $selected, ViewUtils.getFileEntryDisplay(entry)); }; - if (!changed || !_checkForValidFilename(data.rslt.new_name, isFolder)) { + if (!changed || !_checkForValidFilename(unescapedNewName, isFolder)) { // No change or invalid filename. Reset the old name and bail. _resetOldFilename(); return; @@ -1735,8 +1751,8 @@ define(function (require, exports, module) { // Folder paths have to end with a slash. Use look-head (?=...) to only replace the folder's name, not the slash as well var oldNameEndPattern = isFolder ? "(?=\/$)" : "$"; - var oldNameRegex = new RegExp(StringUtils.regexEscape(data.rslt.old_name) + oldNameEndPattern); - var newName = oldFullPath.replace(oldNameRegex, data.rslt.new_name); + var oldNameRegex = new RegExp(StringUtils.regexEscape(unescapedOldName) + oldNameEndPattern); + var newName = oldFullPath.replace(oldNameRegex, unescapedNewName); renameItem(oldFullPath, newName, isFolder) .done(function () { @@ -1768,8 +1784,9 @@ define(function (require, exports, module) { }); }); - // since html_titles are enabled, we have to reset the text without markup - _projectTree.jstree("set_text", $selected, entry.name); + // Since html_titles are enabled, we have to reset the text without markup. + // And we also need to explicitly escape all html-sensitive characters. + _projectTree.jstree("set_text", $selected, _.escape(entry.name)); _projectTree.jstree("rename"); }); // No fail handler: silently no-op if file doesn't exist in tree @@ -2138,6 +2155,15 @@ define(function (require, exports, module) { CommandManager.register(Strings.CMD_PROJECT_SETTINGS, Commands.FILE_PROJECT_SETTINGS, _projectSettings); CommandManager.register(Strings.CMD_FILE_REFRESH, Commands.FILE_REFRESH, refreshFileTree); + // Init invalid characters string + if (brackets.platform === "mac") { + _invalidChars = "?*|:"; + } else if (brackets.platform === "linux") { + _invalidChars = "?*|/"; + } else { + _invalidChars = "/?*:<>\\|\""; // invalid characters on Windows + } + // Define public API exports.getProjectRoot = getProjectRoot; exports.getBaseUrl = getBaseUrl; diff --git a/src/project/SidebarView.js b/src/project/SidebarView.js index abb24279451..684d437aa6f 100644 --- a/src/project/SidebarView.js +++ b/src/project/SidebarView.js @@ -50,7 +50,8 @@ define(function (require, exports, module) { Strings = require("strings"), EditorManager = require("editor/EditorManager"), Global = require("utils/Global"), - Resizer = require("utils/Resizer"); + Resizer = require("utils/Resizer"), + _ = require("thirdparty/lodash"); // These vars are initialized by the htmlReady handler // below since they refer to DOM elements @@ -72,7 +73,7 @@ define(function (require, exports, module) { displayName = "/"; } - $projectTitle.html(displayName); + $projectTitle.html(_.escape(displayName)); $projectTitle.attr("title", fullPath); // Trigger a scroll on the project files container to diff --git a/src/utils/ViewUtils.js b/src/utils/ViewUtils.js index 671793d553d..ff4b213a6d1 100644 --- a/src/utils/ViewUtils.js +++ b/src/utils/ViewUtils.js @@ -396,7 +396,10 @@ define(function (require, exports, module) { i = name.lastIndexOf("."); if (i >= 0) { - name = name.substring(0, i) + "" + name.substring(i) + ""; + // Escape all HTML-sensitive characters in filename. + name = _.escape(name.substring(0, i)) + "" + _.escape(name.substring(i)) + ""; + } else { + name = _.escape(name); } return name; diff --git a/test/spec/ProjectManager-test.js b/test/spec/ProjectManager-test.js index d5c5d63bc48..4f385f09a15 100644 --- a/test/spec/ProjectManager-test.js +++ b/test/spec/ProjectManager-test.js @@ -152,11 +152,18 @@ define(function (require, exports, module) { }); it("should fail when file name contains special characters", function () { - var chars = "/?*:;{}<>\\"; + var chars = "/?*:<>\\|\""; // invalid characters on Windows var i = 0; - var len = chars.length; + var len = 0; var charAt, didCreate, gotError; + if (brackets.platform === "mac") { + chars = "?*|:"; + } else if (brackets.platform === "linux") { + chars = "?*|/"; + } + len = chars.length; + function createFile() { // skip rename ProjectManager.createNewItem(tempDir, "file" + charAt + ".js", true)