From 29069d38bfcad9fb6b26b98a4563a511836132c9 Mon Sep 17 00:00:00 2001
From: Randy Edmunds
Date: Fri, 6 Dec 2013 18:15:13 -0800
Subject: [PATCH 01/17] fix parsing to handle minified style sheet
---
src/language/CSSUtils.js | 34 +++++++++++++++++++++++++---------
1 file changed, 25 insertions(+), 9 deletions(-)
diff --git a/src/language/CSSUtils.js b/src/language/CSSUtils.js
index 9466e897997..90fe1f31671 100644
--- a/src/language/CSSUtils.js
+++ b/src/language/CSSUtils.js
@@ -631,7 +631,7 @@ define(function (require, exports, module) {
while (token !== "," && token !== "{") {
currentSelector += token;
if (!_nextTokenSkippingComments()) {
- break;
+ return false; // eof
}
}
@@ -671,19 +671,28 @@ define(function (require, exports, module) {
currentSelector = "";
}
selectorStartChar = -1;
+
+ return true;
}
function _parseSelectorList() {
selectorGroupStartLine = (stream.string.indexOf(",") !== -1) ? line : -1;
selectorGroupStartChar = stream.start;
- _parseSelector(stream.start);
+ if (!_parseSelector(stream.start)) {
+ return false;
+ }
+
while (token === ",") {
if (!_nextTokenSkippingComments()) {
- break;
+ return false; // eof
+ }
+ if (!_parseSelector(stream.start)) {
+ return false;
}
- _parseSelector(stream.start);
}
+
+ return true;
}
function _parseDeclarationList() {
@@ -773,10 +782,14 @@ define(function (require, exports, module) {
// Skip everything until the opening '{'
while (token !== "{") {
if (!_nextTokenSkippingComments()) {
- break;
+ return; // eof
}
}
- _nextTokenSkippingWhitespace(); // skip past '{', to next non-ws token
+
+ // skip past '{', to next non-ws token
+ if (!_nextTokenSkippingWhitespace()) {
+ return; // eof
+ }
// Parse rules until we see '}'
_parseRuleList("}");
@@ -788,7 +801,7 @@ define(function (require, exports, module) {
// Skip everything until the next ';'
while (token !== ";") {
if (!_nextTokenSkippingComments()) {
- break;
+ return; // eof
}
}
@@ -799,7 +812,7 @@ define(function (require, exports, module) {
// Skip everything until the next '}'
while (token !== "}") {
if (!_nextTokenSkippingComments()) {
- break;
+ return; // eof
}
}
}
@@ -807,7 +820,10 @@ define(function (require, exports, module) {
// parse a style rule
function _parseRule() {
- _parseSelectorList();
+ if (!_parseSelectorList()) {
+ return false;
+ }
+
_parseDeclarationList();
}
From 7c0c4bb7f4f536152e36b7aff2618c0ce3230890 Mon Sep 17 00:00:00 2001
From: Mikael Jorhult
Date: Sun, 8 Dec 2013 18:30:40 +0100
Subject: [PATCH 02/17] Update swedish sample project.
---
samples/sv/Kom igang/index.html | 42 +++++++++++++++++++++------------
1 file changed, 27 insertions(+), 15 deletions(-)
diff --git a/samples/sv/Kom igang/index.html b/samples/sv/Kom igang/index.html
index a872e16f00a..dc08c80fda2 100644
--- a/samples/sv/Kom igang/index.html
+++ b/samples/sv/Kom igang/index.html
@@ -52,10 +52,12 @@ Quick Edit för CSS och JavaScript
- Vill du se hur det fungerar? Placera markören -elementet och tryck Cmd/Ctrl + E.
+ Vill du se hur det fungerar? Placera markören på -elementet ovan och tryck Cmd/Ctrl + E.
Då visas CSS quick editorn ovan. Till höger kan du se en lista över alla CSS-regler som är relaterade
- till detta element. Skrolla igenom reglerna med kortkommandot Alt + Upp/Ner för att hitta en
- du vill redigera.
+ till detta element. Det fungerar även på klass och ID-attribut.
+
+ Du kan skapa nya regler på samma sätt. Klicka på en av -taggarna ovan och tryck Cmd/Ctrl + E.
+ Just nu finns det inga regler men genom att klicka på knappen Ny regel skapar du en ny stilregel för -taggar.
@@ -63,9 +65,9 @@ Quick Edit för CSS och JavaScript
- Du kan använda samma kortkommando för JavaScript-kod för att visa definitionen av en funktion när
- markören placeras på funktionens namn där du anropar den. Tills vidare kan inline-editorer inte
- nästlas så du kan bara använda Quick Edit från den "fullstora" editorn.
+ Samma kortkommande kan användas även på andra saker, till exempel funktioner i JavaScript för att
+ färger, tidsfunktioner för animering och nya saker läggs till hela tiden!
+ Just nu kan inte inline-editorer nästlas så du kan bara använda Quick Edit från den "fullstora" editorn.
Förhandsvisa CSS-ändringar direkt i webbläsaren
- Du vet den där "spara och ladda om-proceduren" vi använt oss av i flera år? Den där du gör
+ Du vet den där "spara och ladda om"-proceduren vi använt oss av i flera år? Den där du gör
en ändring i din editor, sparar, går till webbläsaren och laddar om för att se resultatet?
Med Brackets behöver du inte göra det.
- Brackets öppnar en direktlänk till din lokala webbläsare och skjuter ut dina CSS-ändringar
+ Brackets öppnar en direktlänk till din lokala webbläsare och skjuter ut dina HTML- och CSS-ändringar
medan du skriver! Du kanske redan använder något liknande webbläsarverktyg men med Brackets
behöver du inte kopiera och klistra in koden fram och tillbaka mellan webbläsare och editor. Din kod
körs i webbläsaren men skrivs i din editor!
@@ -98,7 +100,7 @@
Markera HTML-element och CSS-regler i realtid
i realtid. Ikonens färg kommer att byta färg från grå till guld när Brackets lyckats skapa en länk
till din webbläsare.
- Om du sedan plaerar markören på -taggen ovan se du hur en blå markeringen visas runt
+ Om du sedan placerar markören på -taggen ovan ser du hur en blå markeringen visas runt
bilden i Chrome. Du kan sedan använda Cmd/Ctrl + E för att visa de relaterade CSS-reglerna.
Prova att ändra tjockleken på border-egenskapen från 10px till 20px eller att ändra backgrundsfärgen
från "transparent" till "hotpink". Om Brackets och din webbläsare körs sida vid sida kommer du att se
@@ -106,16 +108,16 @@ Markera HTML-element och CSS-regler i realtid
- För tillfället stöder Brackets bara Live Preview för CSS. Dock laddas webbläsaren automatiskt när du
+ För tillfället stöder Brackets bara Live Preview för HTML och CSS. Dock laddas webbläsaren automatiskt när du
sparar HTML- eller JavaScript-dokument. Vi jobbar för fullt med att utveckla stöd för Live Preview
- även för HTML och JavaScript. Live previews fungerar just nu bara i Google Chrome men med tiden hoppas
- vi kunna erbjuda denna funktionalitet i alla större webbläsare.
+ även för JavaScript. Live preview fungerar just nu bara i Google Chrome men med tiden hoppas
+ vi kunna erbjuda denna funktionalitet i alla vanligt förekommande webbläsare.
Quick View
För de av oss som fortfarande inte memorerat färgkoderna för HEX eller RGB gör Brackets det snabbt och
- enkelt att se vilken färg som används. När du pekar över ett färgvärde eller gradient, i antingen
+ enkelt att se vilken färg som används. När du pekar på ett färgvärde eller gradient, i antingen
HTML eller CSS, visas en förhandsgranskning av färgen/gradienten automatiskt. Detsamma gäller bilder:
peka på bildens sökväg i Brackets så visas en tumnagelversion av bilden.
@@ -128,6 +130,16 @@ Quick View
förhandvisningen av bilder genom att placera markören vid skärmdumpen tidigare i detta dokument.
+ Behöver du någonting annat? Prova ett tillägg!
+
+ Utöver alla bra funktioner som är inbyggda i Brackets har vårt stora, och växande, community av
+ tilläggsutvecklare tagit fram mer än hundra tillägg som ger mer användar funktionalitet. Om du saknar
+ någonting i Brackets är det stor chans att att någon redan byggt ett tillägg för att lösa det.
+ För att bläddra eller söka i listan över tillgängliga tillägg går du till Arkiv > Tilläggshanteraren
+ och klickar på fliken "Tillgängliga". När du hittat ett tillägg du vill ha klickar du bara på knappen "Installera"
+ intill det.
+
+
@@ -135,13 +147,13 @@ ENGAGERA DIG
Brackets är ett open-source-projekt. Webbutvecklare från hela världen bidrar för att göra Brackets till
en bättre kodeditor. Många andra bygger tillägg som ökar Brackets funktionalitet.
- Bidra med dina åsiker, idéer eller bidra med kod direkt till projektet.
+ Berätta för oss vad du tycker, dina åsiker och idéer eller bidra med kod direkt till projektet.
- Brackets.io
- Brackets utvecklingsblogg
- Brackets på GitHub
- - Brackets-tillägg
+ - Register över Brackets-tillägg
- Brackets Wiki
- Brackets Developer Mailing List
- @Brackets på Twitter
From b19b20a583c2764eadb1c31a2dad6c9c7b127b7d Mon Sep 17 00:00:00 2001
From: Randy Edmunds
Date: Mon, 9 Dec 2013 08:34:57 -0800
Subject: [PATCH 03/17] safety check for lines array index
---
src/language/CSSUtils.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/language/CSSUtils.js b/src/language/CSSUtils.js
index 90fe1f31671..05c0f2bee95 100644
--- a/src/language/CSSUtils.js
+++ b/src/language/CSSUtils.js
@@ -698,7 +698,7 @@ define(function (require, exports, module) {
function _parseDeclarationList() {
var j;
- declListStartLine = line;
+ declListStartLine = Math.min(line, lineCount - 1);
declListStartChar = stream.start;
// Extract the entire selector group we just saw.
From cbdf5a48c5d458eaf1eb30c462c3ed49b31a9888 Mon Sep 17 00:00:00 2001
From: YuAo
Date: Sat, 14 Dec 2013 01:18:09 +0800
Subject: [PATCH 04/17] select the initial hint on backspace key press
---
src/extensions/default/CSSCodeHints/main.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/extensions/default/CSSCodeHints/main.js b/src/extensions/default/CSSCodeHints/main.js
index 9aca2bbe1f4..2547b84cb1d 100644
--- a/src/extensions/default/CSSCodeHints/main.js
+++ b/src/extensions/default/CSSCodeHints/main.js
@@ -209,7 +209,7 @@ define(function (require, exports, module) {
selectInitial = false;
- if (this.primaryTriggerKeys.indexOf(implicitChar) !== -1) {
+ if (this.primaryTriggerKeys.indexOf(implicitChar) !== -1 || implicitChar === null) {
selectInitial = true;
}
From f7b10b8d1ae51c2e0074065e1bf0b4b489fd03bb Mon Sep 17 00:00:00 2001
From: YuAo
Date: Sat, 14 Dec 2013 01:22:25 +0800
Subject: [PATCH 05/17] clear hints when nothing's left
---
src/extensions/default/CSSCodeHints/main.js | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/extensions/default/CSSCodeHints/main.js b/src/extensions/default/CSSCodeHints/main.js
index 2547b84cb1d..8d80473c7b5 100644
--- a/src/extensions/default/CSSCodeHints/main.js
+++ b/src/extensions/default/CSSCodeHints/main.js
@@ -216,6 +216,10 @@ define(function (require, exports, module) {
// Clear the exclusion if the user moves the cursor with left/right arrow key.
this.updateExclusion(true);
+ if (this.info.offset === 0) {
+ return null;
+ }
+
if (context === CSSUtils.PROP_VALUE) {
// When switching from a NAME to a VALUE context, restart the session
// to give other more specialized providers a chance to intervene.
From 92de6d97e71cdb1b25ce7fb52fed0d98f3b04340 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1s=20Malbr=C3=A1n?=
Date: Mon, 16 Dec 2013 20:27:44 -0300
Subject: [PATCH 06/17] Spanish string translations for Sprint 35
---
src/nls/es/strings.js | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/src/nls/es/strings.js b/src/nls/es/strings.js
index 5ecd2d310e5..f460037933e 100644
--- a/src/nls/es/strings.js
+++ b/src/nls/es/strings.js
@@ -110,22 +110,28 @@ define({
"EXT_MODIFIED_MESSAGE" : "{0} ha sido modificado, pero también tiene cambios en {APP_NAME}.
¿Qué versión quieres conservar?",
"EXT_DELETED_MESSAGE" : "{0} ha sido eliminado, pero tiene cambios sin guardar en {APP_NAME}.
¿Quieres conservar tus cambios?",
+ // Generic dialog/button labels
+ "OK" : "Aceptar",
+ "CANCEL" : "Cancelar",
+ "DONT_SAVE" : "No guardar",
+ "SAVE" : "Guardar",
+ "DELETE" : "Eliminar",
+ "BUTTON_YES" : "Sí",
+ "BUTTON_NO" : "No",
+
// Find, Replace, Find in Files
- "SEARCH_REGEXP_INFO" : "Utiliza /re/ para búsquedas con expresiones regulares",
"FIND_RESULT_COUNT" : "{0} resultados",
"FIND_RESULT_COUNT_SINGLE" : "1 resultado",
"FIND_NO_RESULTS" : "No hay resultados",
- "WITH" : "Con",
- "BUTTON_YES" : "Sí",
- "BUTTON_NO" : "No",
+ "REPLACE_PLACEHOLDER" : "Reemplazar con\u2026",
"BUTTON_REPLACE_ALL" : "Todo\u2026",
- "BUTTON_STOP" : "Parar",
"BUTTON_REPLACE" : "Reemplazar",
-
"BUTTON_NEXT" : "\u25B6",
"BUTTON_PREV" : "\u25C0",
"BUTTON_NEXT_HINT" : "Siguiente coincidencia",
"BUTTON_PREV_HINT" : "Anterior coincidencia",
+ "BUTTON_CASESENSITIVE_HINT" : "Sensible a mayúsculas",
+ "BUTTON_REGEXP_HINT" : "Expresión regular",
"OPEN_FILE" : "Abrir archivo",
"SAVE_FILE_AS" : "Guardar archivo",
@@ -135,10 +141,12 @@ define({
"NO_UPDATE_TITLE" : "¡Estás actualizado!",
"NO_UPDATE_MESSAGE" : "Estás utilizando la última versión de {APP_NAME}.",
+ // Replace All (in single file)
"FIND_REPLACE_TITLE_PART1" : "Reemplazar \"",
"FIND_REPLACE_TITLE_PART2" : "\" con \"",
"FIND_REPLACE_TITLE_PART3" : "\" — {2} {0} {1}",
+ // Find in Files
"FIND_IN_FILES_TITLE_PART1" : "\"",
"FIND_IN_FILES_TITLE_PART2" : "\" encontrado",
"FIND_IN_FILES_TITLE_PART3" : "— {0} {1} {2} en {3} {4}",
@@ -307,11 +315,6 @@ define({
// Strings for main-view.html
"EXPERIMENTAL_BUILD" : "versión experimental",
"DEVELOPMENT_BUILD" : "versión de desarrollo",
- "OK" : "Aceptar",
- "DONT_SAVE" : "No guardar",
- "SAVE" : "Guardar",
- "CANCEL" : "Cancelar",
- "DELETE" : "Eliminar",
"RELOAD_FROM_DISK" : "Volver a cargar desde disco",
"KEEP_CHANGES_IN_EDITOR" : "Conservar los cambios del editor",
"CLOSE_DONT_SAVE" : "Cerrar (No guardar)",
@@ -429,7 +432,6 @@ define({
"UNIT_PIXELS" : "píxeles",
-
// extensions/default/DebugCommands
"DEBUG_MENU" : "Desarrollo",
"CMD_SHOW_DEV_TOOLS" : "Mostrar herramientas para desarrolladores",
From 0537821df953456240e6e90593f52afe7ef30c91 Mon Sep 17 00:00:00 2001
From: gncy2013
Date: Tue, 17 Dec 2013 21:16:51 +0800
Subject: [PATCH 07/17] Update strings.js of zh-cn
Add Simplified Chinese translation to strings.js. Based on the file in
sprint 35 dev build.
---
src/nls/zh-cn/strings.js | 365 ++++++++++++++++++++++++++-------------
1 file changed, 242 insertions(+), 123 deletions(-)
diff --git a/src/nls/zh-cn/strings.js b/src/nls/zh-cn/strings.js
index 5300684cd14..a570d3874f1 100644
--- a/src/nls/zh-cn/strings.js
+++ b/src/nls/zh-cn/strings.js
@@ -1,30 +1,31 @@
/*
- * Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
- *
+ * Copyright (c) 2012 Adobe Systems Incorporated. All rights reserved.
+ *
* Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
- *
+ *
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
- *
+ *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
- *
+ *
*/
/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */
/*global define */
define({
+
/**
* Errors
*/
@@ -36,7 +37,9 @@ define({
"NO_MODIFICATION_ALLOWED_ERR" : "无法修改此目录.",
"NO_MODIFICATION_ALLOWED_ERR_FILE" : "你没有权限做此次修改.",
"FILE_EXISTS_ERR" : "该文件已存在.",
-
+ "FILE" : "文件",
+ "DIRECTORY" : "目录",
+
// Project error strings
"ERROR_LOADING_PROJECT" : "无法加载此项目.",
"OPEN_DIALOG_ERROR" : "显示[打开文件]对话框出现错误. (错误 {0})",
@@ -45,13 +48,16 @@ define({
// File open/save error string
"ERROR_OPENING_FILE_TITLE" : "打开文件时出现错误",
- "ERROR_OPENING_FILE" : "程序试图打开该文件时出现了一个错误,文件:{0}. {1}",
+ "ERROR_OPENING_FILE" : "程序试图打开该文件时出现了一个错误, 文件:{0}. {1}",
+ "ERROR_OPENING_FILES" : "试图打开以下文件时出现错误:",
"ERROR_RELOADING_FILE_TITLE" : "重新加载文件时出现错误",
- "ERROR_RELOADING_FILE" : "程序试图重新加载该文件时出现了一个错误,文件:{0}. {1}",
+ "ERROR_RELOADING_FILE" : "程序试图重新加载该文件时出现了一个错误, 文件:{0}. {1}",
"ERROR_SAVING_FILE_TITLE" : "保存文件时出现错误",
- "ERROR_SAVING_FILE" : "程序试图保存该文件时出现了一个错误,文件: {0}. {1}",
+ "ERROR_SAVING_FILE" : "程序试图保存该文件时出现了一个错误, 文件: {0}. {1}",
"ERROR_RENAMING_FILE_TITLE" : "重命名文件失败",
"ERROR_RENAMING_FILE" : "为该文件重命名时出现错误,文件: {0}. {1}",
+ "ERROR_DELETING_FILE_TITLE" : "删除文件失败",
+ "ERROR_DELETING_FILE" : "试图删除该文件时出现错误,文件: {0}. {1}",
"INVALID_FILENAME_TITLE" : "无效文件名",
"INVALID_FILENAME_MESSAGE" : "文件名不得包含: /?*:;{}<>\\|",
"FILE_ALREADY_EXISTS" : "该文件 {0} 已经存在.",
@@ -60,81 +66,112 @@ define({
// Application error strings
"ERROR_IN_BROWSER_TITLE" : "囧! {APP_NAME} 暂无法运行在浏览器窗口中.",
- "ERROR_IN_BROWSER" : "{APP_NAME} 是建立在HTML上的一个桌面程序,你可以用它修改本地文件. 可以前往此处下载系统对应的版本github.com/adobe/brackets-shell,然后重新运行 {APP_NAME}.",
-
- // FileIndexManager error string
+ "ERROR_IN_BROWSER" : "{APP_NAME} 是建立在 HTML 上的一个桌面程序, 你可以用它修改本地文件. 可以前往此处下载系统对应的版本github.com/adobe/brackets-shell,然后重新运行 {APP_NAME}.",
+
+ // ProjectManager max files error string
"ERROR_MAX_FILES_TITLE" : "索引文件错误",
"ERROR_MAX_FILES" : "索引的文件过多,请减少索引的文件.",
// Live Development error strings
"ERROR_LAUNCHING_BROWSER_TITLE" : "启动浏览器失败",
- "ERROR_CANT_FIND_CHROME" : "没有找到Google Chrome浏览器,请确定您已安装了Chrome浏览器?",
+ "ERROR_CANT_FIND_CHROME" : "没有找到 Google Chrome 浏览器, 请确定您已安装了Chrome浏览器.",
"ERROR_LAUNCHING_BROWSER" : "启动浏览器的时候出现一个错误. (错误 {0})",
"LIVE_DEVELOPMENT_ERROR_TITLE" : "实时预览错误",
"LIVE_DEVELOPMENT_RELAUNCH_TITLE" : "正在连接浏览器",
- "LIVE_DEVELOPMENT_ERROR_MESSAGE" : "要使用实时预览,需要重启 Chrome 并打开远程调试功能。
你确定重新启动 Chrome 浏览器,并且打开远程调试功能吗?",
+ "LIVE_DEVELOPMENT_ERROR_MESSAGE" : "要使用实时预览,需要重启 Chrome 并打开远程调试功能.
你确定重新启动 Chrome 浏览器, 并且打开远程调试功能吗?",
"LIVE_DEV_LOADING_ERROR_MESSAGE" : "无法加载实时开发页面.",
- "LIVE_DEV_NEED_HTML_MESSAGE" : "需要打开一个HTML文件才能实时预览.",
- "LIVE_DEV_NEED_BASEURL_MESSAGE" : "实时预览需要一个服务端,您需要为这个项目指定一个基本URL地址.(如http://127.0.0.1/)",
- "LIVE_DEV_SERVER_NOT_READY_MESSAGE" : "试图启动HTTP服务器时出现错误,请再试一次.",
+ "LIVE_DEV_NEED_HTML_MESSAGE" : "需要打开一个 HTML 文件才能实时预览.",
+ "LIVE_DEV_NEED_BASEURL_MESSAGE" : "实时预览需要一个服务端,您需要为这个项目指定一个基本 URL 地址.(如http://127.0.0.1/)",
+ "LIVE_DEV_SERVER_NOT_READY_MESSAGE" : "试图启动 HTTP 服务器时出现错误,请再试一次.",
"LIVE_DEVELOPMENT_INFO_TITLE" : "欢迎使用实时预览!",
- "LIVE_DEVELOPMENT_INFO_MESSAGE" : "{APP_NAME}将通过实时预览连接至你的浏览器. 你的HTML文件将在浏览器中预览, 修改你的代码将会即时更新你浏览器中的预览.
目前版本的 {APP_NAME}, 实时预览只能运行于 Google Chrome浏览器和更新实时编辑时的 CSS 文件. 当你保存了Javascript文件与HTML文件,实时预览将在浏览器中重新加载他们.
(此消息仅会出现一次.)",
- "LIVE_DEVELOPMENT_TROUBLESHOOTING" : "更多信息,请参考实时预览在线错误信息.",
+ "LIVE_DEVELOPMENT_INFO_MESSAGE" : "{APP_NAME} 将通过实时预览连接至你的浏览器. 你的 HTML 文件将在浏览器中预览, 修改你的代码将会即时更新你浏览器中的预览.
目前版本的 {APP_NAME} 实时预览只能运行于 Google Chrome 浏览器更新实时编辑时的 CSS 和 HTML 文件. 当你保存了 JavaScript 文件, 实时预览将在浏览器中重新加载他们.
(此消息仅会出现一次.)",
+ "LIVE_DEVELOPMENT_TROUBLESHOOTING" : "更多信息, 请参考实时预览在线错误信息.",
"LIVE_DEV_STATUS_TIP_NOT_CONNECTED" : "实时预览",
"LIVE_DEV_STATUS_TIP_PROGRESS1" : "实时预览: 连接中\u2026",
"LIVE_DEV_STATUS_TIP_PROGRESS2" : "实时预览: 初始化\u2026",
"LIVE_DEV_STATUS_TIP_CONNECTED" : "断开实时预览",
- "LIVE_DEV_STATUS_TIP_OUT_OF_SYNC" : "实时预览: 点击断开 (保存文件并更新预览)",
+ "LIVE_DEV_STATUS_TIP_OUT_OF_SYNC" : "实时预览 (保存文件并刷新)",
+ "LIVE_DEV_STATUS_TIP_SYNC_ERROR" : "实时预览 (由于语法错误没有更新)",
+
+ "LIVE_DEV_DETACHED_REPLACED_WITH_DEVTOOLS" : "由于浏览器开发人员工具已打开, 实施预览已关闭.",
+ "LIVE_DEV_DETACHED_TARGET_CLOSED" : "由于浏览器中页面已关闭, 实施预览已关闭",
+ "LIVE_DEV_NAVIGATED_AWAY" : "由于浏览器打开一个不属于本项目的页面, 实施预览已关闭",
+ "LIVE_DEV_CLOSED_UNKNOWN_REASON" : "未知原因 ({0}) 导致实施预览关闭",
"SAVE_CLOSE_TITLE" : "保存更新",
"SAVE_CLOSE_MESSAGE" : "保存{0}文件中所做的修改?",
"SAVE_CLOSE_MULTI_MESSAGE" : "是否保存以下文件的修改?",
"EXT_MODIFIED_TITLE" : "外部文件发生变化",
+ "CONFIRM_FOLDER_DELETE_TITLE" : "删除确认",
+ "CONFIRM_FOLDER_DELETE" : "确认要删除 {0}中的文件?",
+ "FILE_DELETED_TITLE" : "文件已删除",
"EXT_MODIFIED_MESSAGE" : "{0} 已产生了外部修改,但是{APP_NAME}有你未保存的内容.
请选择一个版本?",
"EXT_DELETED_MESSAGE" : "{0} 已被删除,但是{APP_NAME}有你未保存的内容 .
是否保存你的修改?",
-
- // Find, Replace, Find in Files
- "SEARCH_REGEXP_INFO" : "使用正则表达式进行搜索,范例:/re/",
- "WITH" : "与",
+
+ // Generic dialog/button labels
+ "OK" : "确认",
+ "CANCEL" : "取消",
+ "DONT_SAVE" : "不要保存",
+ "SAVE" : "保存",
+ "DELETE" : "删除",
"BUTTON_YES" : "是",
"BUTTON_NO" : "否",
- "BUTTON_STOP" : "停止",
+
+ // Find, Replace, Find in Files
+ "FIND_RESULT_COUNT" : "{0} 个匹配项",
+ "FIND_RESULT_COUNT_SINGLE" : "1 个匹配项",
+ "FIND_NO_RESULTS" : "未找到匹配项",
+ "REPLACE_PLACEHOLDER" : "替换为\u2026",
+ "BUTTON_REPLACE_ALL" : "全部\u2026",
+ "BUTTON_REPLACE" : "替换",
+ "BUTTON_NEXT" : "\u25B6",
+ "BUTTON_PREV" : "\u25C0",
+ "BUTTON_NEXT_HINT" : "下一个匹配项",
+ "BUTTON_PREV_HINT" : "上一个匹配项",
+ "BUTTON_CASESENSITIVE_HINT" : "区分大小写",
+ "BUTTON_REGEXP_HINT" : "正则表达式",
"OPEN_FILE" : "打开文件",
+ "SAVE_FILE_AS" : "保存文件",
"CHOOSE_FOLDER" : "请选择一个目录",
"RELEASE_NOTES" : "发行说明",
- "NO_UPDATE_TITLE" : "更新!",
+ "NO_UPDATE_TITLE" : "已更新!",
"NO_UPDATE_MESSAGE" : "正在使用最新版本的 {APP_NAME}.",
-
-
- "FIND_IN_FILES_TITLE" : "于 \"{4}\" {5} - {0} {1} 在 {2} {3}",
- "FIND_IN_FILES_SCOPED" : "在 {0}",
- "FIND_IN_FILES_NO_SCOPE" : "在项目",
+
+ // Replace All (in single file)
+ "FIND_REPLACE_TITLE_PART1" : "替换 \"",
+ "FIND_REPLACE_TITLE_PART2" : "\" 为 \"",
+ "FIND_REPLACE_TITLE_PART3" : "\" — {2} {0} {1}",
+
+ // Find in Files
+ "FIND_IN_FILES_TITLE_PART1" : "\"",
+ "FIND_IN_FILES_TITLE_PART2" : "\" 已找到",
+ "FIND_IN_FILES_TITLE_PART3" : "— {0} {1} {2} 于 {3} {4}",
+ "FIND_IN_FILES_SCOPED" : "在 {0} 中",
+ "FIND_IN_FILES_NO_SCOPE" : "在项目中",
"FIND_IN_FILES_FILE" : "个文件",
"FIND_IN_FILES_FILES" : "个文件",
"FIND_IN_FILES_MATCH" : "个匹配",
"FIND_IN_FILES_MATCHES" : "个匹配",
- "FIND_IN_FILES_MORE_THAN" : "",
- "FIND_IN_FILES_MAX" : " (前 {0} 个匹配)",
- "FIND_IN_FILES_FILE_PATH" : "文件: {0}",
- "FIND_IN_FILES_LINE" : "行: {0}",
-
+ "FIND_IN_FILES_MORE_THAN" : "超过 ",
+ "FIND_IN_FILES_PAGING" : "{0}—{1}",
+ "FIND_IN_FILES_FILE_PATH" : "{0} {2} {1}", // We shoudl use normal dashes on Windows instead of em dash eventually
"ERROR_FETCHING_UPDATE_INFO_TITLE" : "获取更新信息失败",
- "ERROR_FETCHING_UPDATE_INFO_MSG" : "无法从服务器获取最新的更新信息.请确认你的电脑已经连接互联网,然后再次尝试重新获取!",
-
+ "ERROR_FETCHING_UPDATE_INFO_MSG" : "无法从服务器获取最新的更新信息. 请确认你的电脑已经连接互联网, 然后再次尝试重新获取!",
+
/**
* ProjectManager
*/
- "PROJECT_LOADING" : "载入中\u2026",
- "UNTITLED" : "无标题",
-
+ "PROJECT_LOADING" : "载入中\u2026",
+ "UNTITLED" : "无标题",
+ "WORKING_FILES" : "工作区",
+
/**
* Keyboard modifier names
*/
-
"KEYBOARD_CTRL" : "Ctrl",
"KEYBOARD_SHIFT" : "Shift",
"KEYBOARD_SPACE" : "空格",
@@ -143,14 +180,31 @@ define({
* StatusBar strings
*/
"STATUSBAR_CURSOR_POSITION" : "行 {0}, 列 {1}",
+ "STATUSBAR_SELECTION_CH_SINGULAR" : " \u2014 已选中 {0} 列",
+ "STATUSBAR_SELECTION_CH_PLURAL" : " \u2014 已选中 {0} 列",
+ "STATUSBAR_SELECTION_LINE_SINGULAR" : " \u2014 已选中 {0} 行",
+ "STATUSBAR_SELECTION_LINE_PLURAL" : " \u2014 已选中 {0} 行",
"STATUSBAR_INDENT_TOOLTIP_SPACES" : "点击切换缩进为空格",
- "STATUSBAR_INDENT_TOOLTIP_TABS" : "点击切换缩进为TAB",
+ "STATUSBAR_INDENT_TOOLTIP_TABS" : "点击切换缩进为Tab",
"STATUSBAR_INDENT_SIZE_TOOLTIP_SPACES" : "点击修改缩进的空格长度",
- "STATUSBAR_INDENT_SIZE_TOOLTIP_TABS" : "点击修改缩进的TAB长度",
- "STATUSBAR_SPACES" : "空格长度",
- "STATUSBAR_TAB_SIZE" : "Tab长度",
- "STATUSBAR_LINE_COUNT" : "{0} 行",
+ "STATUSBAR_INDENT_SIZE_TOOLTIP_TABS" : "点击修改缩进的Tab长度",
+ "STATUSBAR_SPACES" : "空格长度:",
+ "STATUSBAR_TAB_SIZE" : "Tab 长度:",
+ "STATUSBAR_LINE_COUNT_SINGULAR" : "\u2014 {0} 行",
+ "STATUSBAR_LINE_COUNT_PLURAL" : "\u2014 {0} 行",
+ // CodeInspection: errors/warnings
+ "ERRORS_PANEL_TITLE" : "{0} 个错误",
+ "ERRORS_PANEL_TITLE_SINGLE" : "{0} 个错误",
+ "ERRORS_PANEL_TITLE_MULTI" : "检查问题",
+ "SINGLE_ERROR" : "1 {0} 个错误",
+ "MULTIPLE_ERRORS" : "{1} {0} 个错误",
+ "NO_ERRORS" : "未发现 JSLint 错误 - 骚年加油!",
+ "LINT_DISABLED" : "JSLint 已被禁用或者无法在此文件工作.",
+ "NO_LINT_AVAILABLE" : "{0} 没有可用检查器",
+ "NOTHING_TO_LINT" : "没有可检查文件",
+
+
/**
* Command Name Constants
*/
@@ -162,18 +216,24 @@ define({
"CMD_FILE_NEW_FOLDER" : "新建目录",
"CMD_FILE_OPEN" : "打开\u2026",
"CMD_ADD_TO_WORKING_SET" : "添加至工作集合",
+ "CMD_OPEN_DROPPED_FILES" : "Open Dropped Files",
"CMD_OPEN_FOLDER" : "打开目录\u2026",
"CMD_FILE_CLOSE" : "关闭",
"CMD_FILE_CLOSE_ALL" : "全部关闭",
+ "CMD_FILE_CLOSE_LIST" : "关闭列表中的文件",
+ "CMD_FILE_CLOSE_OTHERS" : "关闭其他文件",
+ "CMD_FILE_CLOSE_ABOVE" : "关闭上面的其他文件",
+ "CMD_FILE_CLOSE_BELOW" : "关闭下面的其他文件",
"CMD_FILE_SAVE" : "保存",
"CMD_FILE_SAVE_ALL" : "全部保存",
"CMD_FILE_SAVE_AS" : "另存为\u2026",
"CMD_LIVE_FILE_PREVIEW" : "在线预览",
- "CMD_LIVE_HIGHLIGHT" : "在线高亮代码",
"CMD_PROJECT_SETTINGS" : "项目设置\u2026",
"CMD_FILE_RENAME" : "重命名",
- "CMD_INSTALL_EXTENSION" : "安装扩展",
+ "CMD_FILE_DELETE" : "删除",
+ "CMD_INSTALL_EXTENSION" : "安装扩展\u2026",
"CMD_EXTENSION_MANAGER" : "扩展管理器\u2026",
+ "CMD_FILE_REFRESH" : "刷新文件列表",
"CMD_QUIT" : "退出",
// Used in native File menu on Windows
"CMD_EXIT" : "退出",
@@ -184,7 +244,7 @@ define({
"CMD_REDO" : "重做",
"CMD_CUT" : "剪切",
"CMD_COPY" : "复制",
- "CMD_PASTE" : "粘帖",
+ "CMD_PASTE" : "粘贴",
"CMD_SELECT_ALL" : "全选",
"CMD_SELECT_LINE" : "选中当前行",
"CMD_FIND" : "查找",
@@ -201,10 +261,11 @@ define({
"CMD_BLOCK_COMMENT" : "注释选中内容",
"CMD_LINE_UP" : "移到下一行",
"CMD_LINE_DOWN" : "移到上一行",
+ "CMD_OPEN_LINE_ABOVE" : "在上方插入新行",
+ "CMD_OPEN_LINE_BELOW" : "在下方插入新行",
"CMD_TOGGLE_CLOSE_BRACKETS" : "自动完成括号",
"CMD_SHOW_CODE_HINTS" : "显示代码提示",
-
// View menu commands
"VIEW_MENU" : "视图",
"CMD_HIDE_SIDEBAR" : "隐藏边栏",
@@ -217,6 +278,8 @@ define({
"CMD_TOGGLE_LINE_NUMBERS" : "显示行号",
"CMD_TOGGLE_ACTIVE_LINE" : "高亮当前行",
"CMD_TOGGLE_WORD_WRAP" : "自动换行",
+ "CMD_LIVE_HIGHLIGHT" : "实时预览高亮",
+ "CMD_VIEW_TOGGLE_INSPECTION" : "保存时检查文件",
"CMD_SORT_WORKINGSET_BY_ADDED" : "根据添加时间排序",
"CMD_SORT_WORKINGSET_BY_NAME" : "根据名称排序",
"CMD_SORT_WORKINGSET_BY_TYPE" : "根据类型排序",
@@ -227,9 +290,12 @@ define({
"CMD_QUICK_OPEN" : "打开快速导航",
"CMD_GOTO_LINE" : "转到某行",
"CMD_GOTO_DEFINITION" : "转到定义",
+ "CMD_GOTO_FIRST_PROBLEM" : "转到第一个错误/警告",
"CMD_TOGGLE_QUICK_EDIT" : "快速编辑",
+ "CMD_TOGGLE_QUICK_DOCS" : "快速文档",
"CMD_QUICK_EDIT_PREV_MATCH" : "上一个匹配项",
"CMD_QUICK_EDIT_NEXT_MATCH" : "下一个匹配项",
+ "CMD_CSS_QUICK_EDIT_NEW_RULE" : "新 CSS 规则",
"CMD_NEXT_DOC" : "下一个文件",
"CMD_PREV_DOC" : "上一个文件",
"CMD_SHOW_IN_TREE" : "在侧边栏显示",
@@ -243,95 +309,146 @@ define({
"CMD_RELEASE_NOTES" : "发行说明",
"CMD_REPORT_AN_ISSUE" : "报告问题",
"CMD_SHOW_EXTENSIONS_FOLDER" : "显示扩展目录",
- "CMD_TWITTER" : "{TWITTER_NAME}的Twitter(推特需要翻墙)",
+ "CMD_TWITTER" : "{TWITTER_NAME} 的 Twitter (推特需要翻墙)",
"CMD_ABOUT" : "关于 {APP_TITLE}",
-
- // Special commands invoked by the native shell
- "CMD_CLOSE_WINDOW" : "关闭窗口",
- "CMD_ABORT_QUIT" : "强行退出",
-
// Strings for main-view.html
- "EXPERIMENTAL_BUILD" : "测试生成",
- "DEVELOPMENT_BUILD" : "开发生成",
- "SEARCH_RESULTS" : "查询结果",
- "OK" : "确定",
- "DONT_SAVE" : "放弃保存",
- "SAVE" : "保存",
- "CANCEL" : "取消",
+ "EXPERIMENTAL_BUILD" : "体验版",
+ "DEVELOPMENT_BUILD" : "开发版",
"RELOAD_FROM_DISK" : "重新从硬盘中加载",
- "KEEP_CHANGES_IN_EDITOR" : "选择编辑器中修改的内容",
+ "KEEP_CHANGES_IN_EDITOR" : "保留编辑器中的修改",
"CLOSE_DONT_SAVE" : "放弃保存并关闭",
- "RELAUNCH_CHROME" : "重新运行Chrome",
- "INSTALL" : "安装",
+ "RELAUNCH_CHROME" : "重新运行 Chrome",
"ABOUT" : "关于",
"CLOSE" : "关闭",
- "ABOUT_TEXT_LINE1" : "Sprint {VERSION_MINOR} {BUILD_TYPE} {VERSION}",
- "ABOUT_TEXT_LINE3" : "关于第三方软件的条款,条例,声明 {ADOBE_THIRD_PARTY} 以此作为参考.",
+ "ABOUT_TEXT_LINE1" : "sprint {VERSION_MINOR} {BUILD_TYPE} {VERSION}",
+ "ABOUT_TEXT_LINE3" : "关于第三方软件的条款, 条例, 声明 {ADOBE_THIRD_PARTY} 以此作为参考.",
"ABOUT_TEXT_LINE4" : "文档与源码在 https://github.com/adobe/brackets/",
- "ABOUT_TEXT_LINE5" : "基于\u2764和JavaScript由以下用户参与贡献设计:",
- "ABOUT_TEXT_LINE6" : "有很多很多相当多的人,我这里就不给你看了,可以去Github上看吧.",
- "UPDATE_NOTIFICATION_TOOLTIP" : "有一个新的 {APP_NAME}!点此查看详情.",
+ "ABOUT_TEXT_LINE5" : "基于 \u2764 和 JavaScript 由以下用户参与贡献设计:",
+ "ABOUT_TEXT_LINE6" : "有相当多的人参与其中, 但有现在一些问题导致加载不出, 你可以到GitHub上去看.",
+ "ABOUT_TEXT_WEB_PLATFORM_DOCS" : "Web Platform Docs and the Web Platform graphical logo are licensed under a Creative Commons Attribution license, CC-BY 3.0 Unported.",
+ "UPDATE_NOTIFICATION_TOOLTIP" : "有一个新版本的 {APP_NAME}! 点此查看详情.",
"UPDATE_AVAILABLE_TITLE" : "可用的更新",
- "UPDATE_MESSAGE" : "有一个新的 {APP_NAME} .增加了一些功能:",
+ "UPDATE_MESSAGE" : "有一个新版本的 {APP_NAME}. 增加了一些功能:",
"GET_IT_NOW" : "马上获取!",
- "PROJECT_SETTINGS_TITLE" : "项目设置: {0}",
- "PROJECT_SETTING_BASE_URL" : "在线预览的基地址",
- "PROJECT_SETTING_BASE_URL_HINT" : "(使用本地服务器,并且指定一个URL)",
+ "PROJECT_SETTINGS_TITLE" : "Project Settings for: {0}",
+ "PROJECT_SETTING_BASE_URL" : "在线预览的根目录地址",
+ "PROJECT_SETTING_BASE_URL_HINT" : "使用本地服务器, 并指定一个URL. 例如: http://localhost:8000/",
"BASEURL_ERROR_INVALID_PROTOCOL" : "实时预览不支持此协议 {0} —请使用 http: 或 https: .",
"BASEURL_ERROR_SEARCH_DISALLOWED" : "地址不能包含搜索参数如 \"{0}\".",
"BASEURL_ERROR_HASH_DISALLOWED" : "地址不能包含哈希如 \"{0}\".",
"BASEURL_ERROR_INVALID_CHAR" : "特殊字符 '{0}' 必须 %-encoded.",
- "BASEURL_ERROR_UNKNOWN_ERROR" : "地址解析错误,请确认地址格式",
+ "BASEURL_ERROR_UNKNOWN_ERROR" : "地址解析错误, 请确认地址格式",
+
+ // CSS Quick Edit
+ "BUTTON_NEW_RULE" : "新 CSS 规则",
- // Extension Management strings
+ // Extension Management strings
+ "INSTALL" : "安装",
+ "UPDATE" : "升级",
+ "REMOVE" : "移除",
+ "OVERWRITE" : "覆盖",
+ "CANT_REMOVE_DEV" : "\"dev\" 文件夹中扩展必须手动删除.",
+ "CANT_UPDATE" : "升级与当前版本的 {APP_NAME} 不兼容.",
"INSTALL_EXTENSION_TITLE" : "安装扩展",
+ "UPDATE_EXTENSION_TITLE" : "升级扩展",
"INSTALL_EXTENSION_LABEL" : "扩展包地址",
- "INSTALL_EXTENSION_HINT" : "填写一个基于URL或者Github的ZIP扩展包地址.",
- "INSTALLING_FROM" : "正在从 {0} 安装扩展 ...",
+ "INSTALL_EXTENSION_HINT" : "填写扩展包的 zip 文件或 GitHub repo 的链接地址",
+ "INSTALLING_FROM" : "正在从 {0} 安装扩展\u2026",
"INSTALL_SUCCEEDED" : "安装成功!",
"INSTALL_FAILED" : "安装失败.",
- "CANCELING_INSTALL" : "正在取消...",
- "CANCELING_HUNG" : "取消安装需要很长时间.可能出现了内部错误.",
- "INSTALL_CANCELLED" : "安装已取消.",
+ "CANCELING_INSTALL" : "正在取消\u2026",
+ "CANCELING_HUNG" : "取消安装需要很长时间. 可能出现了内部错误.",
+ "INSTALL_CANCELED" : "安装已取消.",
// These must match the error codes in ExtensionsDomain.Errors.* :
- "INVALID_ZIP_FILE" : "{0}不是一个有效的ZIP文件.",
- "INVALID_PACKAGE_JSON" : "扩展包中的Package.json不存在. (错误是: {0}).",
- "MISSING_PACKAGE_NAME" : "扩展包中的Package.json未指定扩展包名称. {0}.",
+ "INVALID_ZIP_FILE" : "下载的内容不是一个有效的ZIP文件.",
+ "INVALID_PACKAGE_JSON" : "扩展包中的 Package.json 不存在. (错误是: {0}).",
+ "MISSING_PACKAGE_NAME" : "扩展包中的 Package.json 未指定扩展包名称.",
"BAD_PACKAGE_NAME" : "{0} 是一个无效扩展包名.",
- "MISSING_PACKAGE_VERSION" : "扩展包中的Package.json未指定版本号 {0}.",
- "INVALID_VERSION_NUMBER" : "扩展包版本 ({0}) 是一个无效版本号.",
- "API_NOT_COMPATIBLE" : "这个扩展包不兼容当前的版本,将安装至Disabled扩展文件夹中.",
- "MISSING_MAIN" : "扩展包遗失main.js文件.",
- "ALREADY_INSTALLED" : "该扩展已经存在,将安装至Disabled扩展文件夹中.",
- "DOWNLOAD_ID_IN_USE" : "内部错误:该下载ID已被使用.",
- "DOWNLOAD_TARGET_EXISTS" : "临时下载文件已存在: {0}.",
+ "MISSING_PACKAGE_VERSION" : "扩展包中的 Package.json 未指定扩展包版本.",
+ "INVALID_VERSION_NUMBER" : "扩展包版本号 ({0}) 无效.",
+ "INVALID_BRACKETS_VERSION" : "{APP_NAME} 兼容性字串 ({0}) 无效.",
+ "DISALLOWED_WORDS" : "({1}) 不允许在 {0} 中出现.",
+ "API_NOT_COMPATIBLE" : "这个扩展包不兼容当前的版本的 {APP_NAME}. 将安装至 Disabled 扩展文件夹中.",
+ "MISSING_MAIN" : "扩展包遗失 main.js 文件.",
+ "EXTENSION_ALREADY_INSTALLED" : "安装这个扩展将会覆盖先前的版本, 覆盖旧版本吗?",
+ "EXTENSION_SAME_VERSION" : "已安装相同版本的扩展. 覆盖已存在的安装吗?",
+ "EXTENSION_OLDER_VERSION" : "扩展包版本 {0} 低于已安装版本 ({1}). 覆盖已存在的安装吗?",
+ "DOWNLOAD_ID_IN_USE" : "内部错误: 该下载ID已被使用.",
"NO_SERVER_RESPONSE" : "无法连接到服务器.",
- "CANNOT_WRITE_TEMP" : "无法保存下载文件到临时文件.",
- "BAD_HTTP_STATUS" : "未在服务器上发现该文件 (HTTP {0}).",
- "ERROR_LOADING" : "扩展程序遇到一个错误,将重启扩展.",
- "MALFORMED_URL" : "无法识别的URL地址.",
- "UNSUPPORTED_PROTOCOL" : "需要一个Http或Https协议的地址.",
+ "BAD_HTTP_STATUS" : "无法保存下载文件到临时文件.",
+ "CANNOT_WRITE_TEMP" : "未在服务器上发现该文件 (HTTP {0}).",
+ "ERROR_LOADING" : "扩展程序启动时遇到一个错误.",
+ "MALFORMED_URL" : "无效的链接地址. 请检查输入是否有误",
+ "UNSUPPORTED_PROTOCOL" : "需要一个 http 或 https 协议的地址.",
"UNKNOWN_ERROR" : "未知内部错误.",
// For NOT_FOUND_ERR, see generic strings above
+ "EXTENSION_MANAGER_TITLE" : "扩展管理器",
+ "EXTENSION_MANAGER_ERROR_LOAD" : "无法连接到 extension registry. 请稍后重试.",
+ "INSTALL_FROM_URL" : "从 URL 安装\u2026",
+ "EXTENSION_AUTHOR" : "作者",
+ "EXTENSION_DATE" : "日期",
+ "EXTENSION_INCOMPATIBLE_NEWER" : "这个扩展需要更新版本的 {APP_NAME}.",
+ "EXTENSION_INCOMPATIBLE_OLDER" : "这个扩展目前只能在旧版本的 {APP_NAME} 上运行.",
+ "EXTENSION_LATEST_INCOMPATIBLE_NEWER" : "扩展版本为 {0} 的需要一个更新版本的 {APP_NAME}. 但你可以安装先前版本的扩展 {1}.",
+ "EXTENSION_LATEST_INCOMPATIBLE_OLDER" : "扩展版本为 {0} 的需要一个更旧版本的 {APP_NAME}. 但你可以安装先前版本的扩展 {1}.",
+ "EXTENSION_NO_DESCRIPTION" : "没有描述",
+ "EXTENSION_MORE_INFO" : "更多信息...",
+ "EXTENSION_ERROR" : "扩展错误",
+ "EXTENSION_KEYWORDS" : "关键词",
+ "EXTENSION_INSTALLED" : "已安装",
+ "EXTENSION_UPDATE_INSTALLED" : "此扩展的更新已下载, 将在退出 {APP_NAME} 时安装.",
+ "EXTENSION_SEARCH_PLACEHOLDER" : "搜索",
+ "EXTENSION_MORE_INFO_LINK" : "更多",
+ "BROWSE_EXTENSIONS" : "浏览扩展",
+ "EXTENSION_MANAGER_REMOVE" : "移除扩展",
+ "EXTENSION_MANAGER_REMOVE_ERROR" : "无法移除一个或多个扩展: {0}. {APP_NAME} 仍会退出.",
+ "EXTENSION_MANAGER_UPDATE" : "升级扩展",
+ "EXTENSION_MANAGER_UPDATE_ERROR" : "无法升级一个或多个扩展: {0}. {APP_NAME} 仍会退出.",
+ "MARKED_FOR_REMOVAL" : "标记为删除",
+ "UNDO_REMOVE" : "撤销",
+ "MARKED_FOR_UPDATE" : "标记为升级",
+ "UNDO_UPDATE" : "撤销",
+ "CHANGE_AND_QUIT_TITLE" : "扩展更改",
+ "CHANGE_AND_QUIT_MESSAGE" : "安装或移除已标记的扩展, 需要退出并重启 {APP_NAME}. 请保存未保存的更改.",
+ "REMOVE_AND_QUIT" : "移除扩展并退出",
+ "CHANGE_AND_QUIT" : "更改扩展并退出",
+ "UPDATE_AND_QUIT" : "升级扩展并退出",
+ "EXTENSION_NOT_INSTALLED" : "无法移除扩展 {0} 其并未被安装.",
+ "NO_EXTENSIONS" : "还没有安装扩展.
点击上面的按钮开始.",
+ "NO_EXTENSION_MATCHES" : "没有找到相符的扩展.",
+ "REGISTRY_SANITY_CHECK_WARNING" : "小心来自未知源的扩展.",
+ "EXTENSIONS_INSTALLED_TITLE" : "已安装",
+ "EXTENSIONS_AVAILABLE_TITLE" : "可获取",
+ "EXTENSIONS_UPDATES_TITLE" : "升级",
+ "INLINE_EDITOR_NO_MATCHES" : "未找到匹配项.",
+ "CSS_QUICK_EDIT_NO_MATCHES" : "不存在符合选择的 CSS 规则.
点击 \"新 CSS 规则\" 来创建.",
+ "CSS_QUICK_EDIT_NO_STYLESHEETS" : "您的项目中没有样式表.
建立一个来添加 CSS 规则.",
+ /**
+ * Unit names
+ */
+
+ "UNIT_PIXELS" : "像素",
+
// extensions/default/DebugCommands
"DEBUG_MENU" : "调试",
- "CMD_SHOW_DEV_TOOLS" : "显示开发工具",
+ "CMD_SHOW_DEV_TOOLS" : "显示开发人员工具",
"CMD_REFRESH_WINDOW" : "刷新 {APP_NAME}",
"CMD_NEW_BRACKETS_WINDOW" : "新建一个 {APP_NAME} 窗口",
"CMD_SWITCH_LANGUAGE" : "选择语言",
"CMD_RUN_UNIT_TESTS" : "运行测试",
"CMD_SHOW_PERF_DATA" : "显示性能数据",
- "CMD_ENABLE_NODE_DEBUGGER" : "启用Node.JS调试",
- "CMD_LOG_NODE_STATE" : "将Node.JS日志显示在控制台中",
- "CMD_RESTART_NODE" : "重启Node.JS",
+ "CMD_ENABLE_NODE_DEBUGGER" : "启用 Node.js 调试",
+ "CMD_LOG_NODE_STATE" : "将 Node.js 日志显示在控制台中",
+ "CMD_RESTART_NODE" : "重启 Node.js",
"LANGUAGE_TITLE" : "选择语言",
"LANGUAGE_MESSAGE" : "请从列表中选择所需的语言:",
"LANGUAGE_SUBMIT" : "重新加载 {APP_NAME}",
"LANGUAGE_CANCEL" : "取消",
+ "LANGUAGE_SYSTEM_DEFAULT" : "系统默认语言",
// Locales (used by Debug > Switch Language)
"LOCALE_CS" : "捷克语",
@@ -341,26 +458,34 @@ define({
"LOCALE_FI" : "芬兰语",
"LOCALE_FR" : "法语",
"LOCALE_IT" : "意大利语",
- "LOCALE_JA" : "日本语",
+ "LOCALE_JA" : "日语",
"LOCALE_NB" : "挪威语",
+ "LOCALE_NL" : "荷兰语",
+ "LOCALE_FA_IR" : "波斯语(伊朗)",
"LOCALE_PL" : "波兰语",
"LOCALE_PT_BR" : "葡萄牙语(巴西)",
"LOCALE_PT_PT" : "葡萄牙语",
+ "LOCALE_RO" : "罗马尼亚语",
"LOCALE_RU" : "俄语",
- "LOCALE_SR" : "塞尔维亚",
+ "LOCALE_SK" : "斯洛伐克语",
+ "LOCALE_SR" : "塞尔维亚",
"LOCALE_SV" : "瑞典语",
"LOCALE_TR" : "土耳其语",
"LOCALE_ZH_CN" : "简体中文",
"LOCALE_HU" : "匈牙利语",
+ // extensions/default/InlineTimingFunctionEditor
+ "INLINE_TIMING_EDITOR_TIME" : "Time",
+ "INLINE_TIMING_EDITOR_PROGRESSION" : "Progression",
+
// extensions/default/InlineColorEditor
"COLOR_EDITOR_CURRENT_COLOR_SWATCH_TIP" : "当前颜色",
"COLOR_EDITOR_ORIGINAL_COLOR_SWATCH_TIP" : "原来的颜色",
- "COLOR_EDITOR_RGBA_BUTTON_TIP" : "RGBa格式",
+ "COLOR_EDITOR_RGBA_BUTTON_TIP" : "RGBa 格式",
"COLOR_EDITOR_HEX_BUTTON_TIP" : "十六进制格式",
- "COLOR_EDITOR_HSLA_BUTTON_TIP" : "HSLa格式",
- "COLOR_EDITOR_USED_COLOR_TIP_SINGULAR" : "{0} ({1} 次)",
- "COLOR_EDITOR_USED_COLOR_TIP_PLURAL" : "{0} ({1} 次)",
+ "COLOR_EDITOR_HSLA_BUTTON_TIP" : "HSLa 格式",
+ "COLOR_EDITOR_USED_COLOR_TIP_SINGULAR" : "{0} (使用 {1} 次)",
+ "COLOR_EDITOR_USED_COLOR_TIP_PLURAL" : "{0} (使用 {1} 次)",
// extensions/default/JavaScriptCodeHints
"CMD_JUMPTO_DEFINITION" : "跳转到源代码定义处",
@@ -368,13 +493,7 @@ define({
"NO_ARGUMENTS" : "<无相应参数>",
// extensions/default/JSLint
- "CMD_JSLINT" : "启用JSLint",
- "CMD_JSLINT_FIRST_ERROR" : "转到第一个JSLint错误",
- "JSLINT_ERRORS" : "JSLint错误",
- "JSLINT_ERROR_INFORMATION" : "1个JSLint错误",
- "JSLINT_ERRORS_INFORMATION" : "{0}个JSLint错误",
- "JSLINT_NO_ERRORS" : "未发现JSLint错误 - 骚年加油!",
- "JSLINT_DISABLED" : "JSLint已被禁用或者无法工作在此文件.",
+ "JSLINT_NAME" : "JSLint",
// extensions/default/QuickView
"CMD_ENABLE_QUICK_VIEW" : "鼠标悬停时启用快速查看",
From fe187e7bc6d021ca7a7d0c4a3ec78f07a66146b9 Mon Sep 17 00:00:00 2001
From: gncy2013
Date: Tue, 17 Dec 2013 21:47:29 +0800
Subject: [PATCH 08/17] Fix a wrong word
---
src/nls/zh-cn/strings.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/nls/zh-cn/strings.js b/src/nls/zh-cn/strings.js
index a570d3874f1..1d152f27244 100644
--- a/src/nls/zh-cn/strings.js
+++ b/src/nls/zh-cn/strings.js
@@ -227,7 +227,7 @@ define({
"CMD_FILE_SAVE" : "保存",
"CMD_FILE_SAVE_ALL" : "全部保存",
"CMD_FILE_SAVE_AS" : "另存为\u2026",
- "CMD_LIVE_FILE_PREVIEW" : "在线预览",
+ "CMD_LIVE_FILE_PREVIEW" : "实时预览",
"CMD_PROJECT_SETTINGS" : "项目设置\u2026",
"CMD_FILE_RENAME" : "重命名",
"CMD_FILE_DELETE" : "删除",
@@ -332,7 +332,7 @@ define({
"UPDATE_MESSAGE" : "有一个新版本的 {APP_NAME}. 增加了一些功能:",
"GET_IT_NOW" : "马上获取!",
"PROJECT_SETTINGS_TITLE" : "Project Settings for: {0}",
- "PROJECT_SETTING_BASE_URL" : "在线预览的根目录地址",
+ "PROJECT_SETTING_BASE_URL" : "实时预览的根目录地址",
"PROJECT_SETTING_BASE_URL_HINT" : "使用本地服务器, 并指定一个URL. 例如: http://localhost:8000/",
"BASEURL_ERROR_INVALID_PROTOCOL" : "实时预览不支持此协议 {0} —请使用 http: 或 https: .",
"BASEURL_ERROR_SEARCH_DISALLOWED" : "地址不能包含搜索参数如 \"{0}\".",
From fdbee924f6eda924b26b10a128ab069abe90cb38 Mon Sep 17 00:00:00 2001
From: Mikael Jorhult
Date: Tue, 17 Dec 2013 18:56:26 +0100
Subject: [PATCH 09/17] Add strings for buttons.
---
src/nls/sv/strings.js | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/src/nls/sv/strings.js b/src/nls/sv/strings.js
index e8ef806124a..4adc0022cda 100644
--- a/src/nls/sv/strings.js
+++ b/src/nls/sv/strings.js
@@ -110,22 +110,28 @@ define({
"EXT_MODIFIED_MESSAGE" : "{0} har ändrats men har också osparade ändringar i {APP_NAME}.
Vilken version vill du behålla?",
"EXT_DELETED_MESSAGE" : "{0} har raderats man har också osparade ändringar i {APP_NAME}.
Vill du behålla dina ändringar?",
+ // Generic dialog/button labels
+ "OK" : "OK",
+ "CANCEL" : "Avbryt",
+ "DONT_SAVE" : "Spara inte",
+ "SAVE" : "Spara",
+ "DELETE" : "Radera",
+ "BUTTON_YES" : "Ja",
+ "BUTTON_NO" : "Nej",
+
// Find, Replace, Find in Files
- "SEARCH_REGEXP_INFO" : "Använd /re/ syntax för regexp-sökning",
"FIND_RESULT_COUNT" : "{0} träffar",
"FIND_RESULT_COUNT_SINGLE" : "1 träff",
"FIND_NO_RESULTS" : "Inga träffar",
- "WITH" : "med",
- "BUTTON_YES" : "Ja",
- "BUTTON_NO" : "Nej",
+ "REPLACE_PLACEHOLDER" : "Ersätt med\u2026",
"BUTTON_REPLACE_ALL" : "Alla\u2026",
- "BUTTON_STOP" : "Avbryt",
"BUTTON_REPLACE" : "Ersätt",
-
"BUTTON_NEXT" : "\u25B6",
"BUTTON_PREV" : "\u25C0",
"BUTTON_NEXT_HINT" : "Nästa träff",
"BUTTON_PREV_HINT" : "Föregående träff",
+ "BUTTON_CASESENSITIVE_HINT" : "Skiftlägeskänslig",
+ "BUTTON_REGEXP_HINT" : "Regular Expression",
"OPEN_FILE" : "Öppna fil",
"SAVE_FILE_AS" : "Spara fil som",
@@ -135,10 +141,12 @@ define({
"NO_UPDATE_TITLE" : "Du är uppdaterad!",
"NO_UPDATE_MESSAGE" : "Du använder den senaste versionen av {APP_NAME}.",
+ // Replace All (in single file)
"FIND_REPLACE_TITLE_PART1" : "Ersätt \"",
"FIND_REPLACE_TITLE_PART2" : "\" med \"",
"FIND_REPLACE_TITLE_PART3" : "\" — {2} {0} {1}",
+ // Find in Files
"FIND_IN_FILES_TITLE_PART1" : "\"",
"FIND_IN_FILES_TITLE_PART2" : "\" hittades",
"FIND_IN_FILES_TITLE_PART3" : "— {0} {1} {2} i {3} {4}",
@@ -307,11 +315,6 @@ define({
// Strings for main-view.html
"EXPERIMENTAL_BUILD" : "experimental build",
"DEVELOPMENT_BUILD" : "development build",
- "OK" : "OK",
- "DONT_SAVE" : "Spara inte",
- "SAVE" : "Spara",
- "CANCEL" : "Avbryt",
- "DELETE" : "Radera",
"RELOAD_FROM_DISK" : "Ladda om",
"KEEP_CHANGES_IN_EDITOR" : "Behåll ändringar i editorn",
"CLOSE_DONT_SAVE" : "Stäng (spara inte)",
From cc93db0cc0d1d2ba304a44fa089ce88fef41a0ce Mon Sep 17 00:00:00 2001
From: YuAo
Date: Wed, 18 Dec 2013 10:00:50 +0800
Subject: [PATCH 10/17] fix the bug that prevents Ctrl+Space from invoking css
hints
---
src/extensions/default/CSSCodeHints/main.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/extensions/default/CSSCodeHints/main.js b/src/extensions/default/CSSCodeHints/main.js
index 8d80473c7b5..9db72185e67 100644
--- a/src/extensions/default/CSSCodeHints/main.js
+++ b/src/extensions/default/CSSCodeHints/main.js
@@ -216,7 +216,7 @@ define(function (require, exports, module) {
// Clear the exclusion if the user moves the cursor with left/right arrow key.
this.updateExclusion(true);
- if (this.info.offset === 0) {
+ if (this.info.offset === 0 && lastContext !== null) {
return null;
}
From 4d09ced3b62122a24fd7cb0063d01fb46983075e Mon Sep 17 00:00:00 2001
From: gncy2013
Date: Wed, 18 Dec 2013 13:24:44 +0800
Subject: [PATCH 11/17] Change 2012 to 2013
---
src/nls/zh-cn/strings.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/nls/zh-cn/strings.js b/src/nls/zh-cn/strings.js
index 1d152f27244..d725b256ced 100644
--- a/src/nls/zh-cn/strings.js
+++ b/src/nls/zh-cn/strings.js
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012 Adobe Systems Incorporated. All rights reserved.
+ * Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
From 706416097a59fe4970000db50357fa7934de8b9e Mon Sep 17 00:00:00 2001
From: gncy2013
Date: Wed, 18 Dec 2013 17:17:31 +0800
Subject: [PATCH 12/17] Revised edition
---
src/nls/zh-cn/strings.js | 54 ++++++++++++++++++++--------------------
1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/src/nls/zh-cn/strings.js b/src/nls/zh-cn/strings.js
index d725b256ced..6b904d58b63 100644
--- a/src/nls/zh-cn/strings.js
+++ b/src/nls/zh-cn/strings.js
@@ -55,35 +55,35 @@ define({
"ERROR_SAVING_FILE_TITLE" : "保存文件时出现错误",
"ERROR_SAVING_FILE" : "程序试图保存该文件时出现了一个错误, 文件: {0}. {1}",
"ERROR_RENAMING_FILE_TITLE" : "重命名文件失败",
- "ERROR_RENAMING_FILE" : "为该文件重命名时出现错误,文件: {0}. {1}",
+ "ERROR_RENAMING_FILE" : "为该文件重命名时出现错误, 文件: {0}. {1}",
"ERROR_DELETING_FILE_TITLE" : "删除文件失败",
- "ERROR_DELETING_FILE" : "试图删除该文件时出现错误,文件: {0}. {1}",
- "INVALID_FILENAME_TITLE" : "无效文件名",
- "INVALID_FILENAME_MESSAGE" : "文件名不得包含: /?*:;{}<>\\|",
- "FILE_ALREADY_EXISTS" : "该文件 {0} 已经存在.",
- "ERROR_CREATING_FILE_TITLE" : "新建文件错误",
- "ERROR_CREATING_FILE" : "试图创建该文件时出现错误,文件: {0}. {1}",
+ "ERROR_DELETING_FILE" : "试图删除该文件时出现错误, 文件: {0}. {1}",
+ "INVALID_FILENAME_TITLE" : "无效文件名: {0}",
+ "INVALID_FILENAME_MESSAGE" : "文件名不得包含: /?*:;{}<>\\| 或使用操作系统保留文件名",
+ "FILE_ALREADY_EXISTS" : "该文件 {0} {1} 已经存在.",
+ "ERROR_CREATING_FILE_TITLE" : "创建文件 {0} 错误",
+ "ERROR_CREATING_FILE" : "试图创建 {0} 时出现错误 {1}. {2}",
// Application error strings
"ERROR_IN_BROWSER_TITLE" : "囧! {APP_NAME} 暂无法运行在浏览器窗口中.",
- "ERROR_IN_BROWSER" : "{APP_NAME} 是建立在 HTML 上的一个桌面程序, 你可以用它修改本地文件. 可以前往此处下载系统对应的版本github.com/adobe/brackets-shell,然后重新运行 {APP_NAME}.",
+ "ERROR_IN_BROWSER" : "{APP_NAME} 是建立在 HTML 上的一个桌面程序, 你可以用它修改本地文件. 可以前往此处下载系统对应的版本github.com/adobe/brackets-shell, 然后重新运行 {APP_NAME}.",
// ProjectManager max files error string
"ERROR_MAX_FILES_TITLE" : "索引文件错误",
- "ERROR_MAX_FILES" : "索引的文件过多,请减少索引的文件.",
+ "ERROR_MAX_FILES" : "索引的文件过多, 请减少索引的文件.",
// Live Development error strings
"ERROR_LAUNCHING_BROWSER_TITLE" : "启动浏览器失败",
- "ERROR_CANT_FIND_CHROME" : "没有找到 Google Chrome 浏览器, 请确定您已安装了Chrome浏览器.",
+ "ERROR_CANT_FIND_CHROME" : "没有找到 Google Chrome 浏览器, 请确定您已安装了 Chrome 浏览器.",
"ERROR_LAUNCHING_BROWSER" : "启动浏览器的时候出现一个错误. (错误 {0})",
"LIVE_DEVELOPMENT_ERROR_TITLE" : "实时预览错误",
"LIVE_DEVELOPMENT_RELAUNCH_TITLE" : "正在连接浏览器",
- "LIVE_DEVELOPMENT_ERROR_MESSAGE" : "要使用实时预览,需要重启 Chrome 并打开远程调试功能.
你确定重新启动 Chrome 浏览器, 并且打开远程调试功能吗?",
+ "LIVE_DEVELOPMENT_ERROR_MESSAGE" : "要使用实时预览, 需要重启 Chrome 并打开远程调试功能.
你确定重新启动 Chrome 浏览器, 并且打开远程调试功能吗?",
"LIVE_DEV_LOADING_ERROR_MESSAGE" : "无法加载实时开发页面.",
- "LIVE_DEV_NEED_HTML_MESSAGE" : "需要打开一个 HTML 文件才能实时预览.",
- "LIVE_DEV_NEED_BASEURL_MESSAGE" : "实时预览需要一个服务端,您需要为这个项目指定一个基本 URL 地址.(如http://127.0.0.1/)",
- "LIVE_DEV_SERVER_NOT_READY_MESSAGE" : "试图启动 HTTP 服务器时出现错误,请再试一次.",
+ "LIVE_DEV_NEED_HTML_MESSAGE" : "打开一个 HTML 文件或确认项目中包含 index.html 文件以启动实时预览.",
+ "LIVE_DEV_NEED_BASEURL_MESSAGE" : "实时预览需要一个服务端, 您需要为这个项目指定一个基本 URL 地址. (如http://127.0.0.1/)",
+ "LIVE_DEV_SERVER_NOT_READY_MESSAGE" : "试图启动 HTTP 服务器时出现错误, 请再试一次.",
"LIVE_DEVELOPMENT_INFO_TITLE" : "欢迎使用实时预览!",
"LIVE_DEVELOPMENT_INFO_MESSAGE" : "{APP_NAME} 将通过实时预览连接至你的浏览器. 你的 HTML 文件将在浏览器中预览, 修改你的代码将会即时更新你浏览器中的预览.
目前版本的 {APP_NAME} 实时预览只能运行于 Google Chrome 浏览器更新实时编辑时的 CSS 和 HTML 文件. 当你保存了 JavaScript 文件, 实时预览将在浏览器中重新加载他们.
(此消息仅会出现一次.)",
"LIVE_DEVELOPMENT_TROUBLESHOOTING" : "更多信息, 请参考实时预览在线错误信息.",
@@ -101,14 +101,14 @@ define({
"LIVE_DEV_CLOSED_UNKNOWN_REASON" : "未知原因 ({0}) 导致实施预览关闭",
"SAVE_CLOSE_TITLE" : "保存更新",
- "SAVE_CLOSE_MESSAGE" : "保存{0}文件中所做的修改?",
+ "SAVE_CLOSE_MESSAGE" : "保存 {0} 文件中所做的修改?",
"SAVE_CLOSE_MULTI_MESSAGE" : "是否保存以下文件的修改?",
"EXT_MODIFIED_TITLE" : "外部文件发生变化",
"CONFIRM_FOLDER_DELETE_TITLE" : "删除确认",
- "CONFIRM_FOLDER_DELETE" : "确认要删除 {0}中的文件?",
+ "CONFIRM_FOLDER_DELETE" : "确认要删除目录 {0}?",
"FILE_DELETED_TITLE" : "文件已删除",
- "EXT_MODIFIED_MESSAGE" : "{0} 已产生了外部修改,但是{APP_NAME}有你未保存的内容.
请选择一个版本?",
- "EXT_DELETED_MESSAGE" : "{0} 已被删除,但是{APP_NAME}有你未保存的内容 .
是否保存你的修改?",
+ "EXT_MODIFIED_MESSAGE" : "{0} 已产生了外部修改, 但是 {APP_NAME} 中有你未保存的内容.
需要保留哪个版本?",
+ "EXT_DELETED_MESSAGE" : "{0} 已被删除, 但是 {APP_NAME} 有你未保存的内容.
是否保存你的修改?",
// Generic dialog/button labels
"OK" : "确认",
@@ -216,7 +216,7 @@ define({
"CMD_FILE_NEW_FOLDER" : "新建目录",
"CMD_FILE_OPEN" : "打开\u2026",
"CMD_ADD_TO_WORKING_SET" : "添加至工作集合",
- "CMD_OPEN_DROPPED_FILES" : "Open Dropped Files",
+ "CMD_OPEN_DROPPED_FILES" : "打开拖放的文件",
"CMD_OPEN_FOLDER" : "打开目录\u2026",
"CMD_FILE_CLOSE" : "关闭",
"CMD_FILE_CLOSE_ALL" : "全部关闭",
@@ -325,7 +325,7 @@ define({
"ABOUT_TEXT_LINE3" : "关于第三方软件的条款, 条例, 声明 {ADOBE_THIRD_PARTY} 以此作为参考.",
"ABOUT_TEXT_LINE4" : "文档与源码在 https://github.com/adobe/brackets/",
"ABOUT_TEXT_LINE5" : "基于 \u2764 和 JavaScript 由以下用户参与贡献设计:",
- "ABOUT_TEXT_LINE6" : "有相当多的人参与其中, 但有现在一些问题导致加载不出, 你可以到GitHub上去看.",
+ "ABOUT_TEXT_LINE6" : "有相当多的人参与其中, 但现在有一些问题导致加载不出, 你可以到GitHub上去看.",
"ABOUT_TEXT_WEB_PLATFORM_DOCS" : "Web Platform Docs and the Web Platform graphical logo are licensed under a Creative Commons Attribution license, CC-BY 3.0 Unported.",
"UPDATE_NOTIFICATION_TOOLTIP" : "有一个新版本的 {APP_NAME}! 点此查看详情.",
"UPDATE_AVAILABLE_TITLE" : "可用的更新",
@@ -369,15 +369,15 @@ define({
"INVALID_VERSION_NUMBER" : "扩展包版本号 ({0}) 无效.",
"INVALID_BRACKETS_VERSION" : "{APP_NAME} 兼容性字串 ({0}) 无效.",
"DISALLOWED_WORDS" : "({1}) 不允许在 {0} 中出现.",
- "API_NOT_COMPATIBLE" : "这个扩展包不兼容当前的版本的 {APP_NAME}. 将安装至 Disabled 扩展文件夹中.",
+ "API_NOT_COMPATIBLE" : "这个扩展包不兼容当前版本的 {APP_NAME}. 将安装至 Disabled 扩展文件夹中.",
"MISSING_MAIN" : "扩展包遗失 main.js 文件.",
"EXTENSION_ALREADY_INSTALLED" : "安装这个扩展将会覆盖先前的版本, 覆盖旧版本吗?",
"EXTENSION_SAME_VERSION" : "已安装相同版本的扩展. 覆盖已存在的安装吗?",
"EXTENSION_OLDER_VERSION" : "扩展包版本 {0} 低于已安装版本 ({1}). 覆盖已存在的安装吗?",
"DOWNLOAD_ID_IN_USE" : "内部错误: 该下载ID已被使用.",
"NO_SERVER_RESPONSE" : "无法连接到服务器.",
- "BAD_HTTP_STATUS" : "无法保存下载文件到临时文件.",
- "CANNOT_WRITE_TEMP" : "未在服务器上发现该文件 (HTTP {0}).",
+ "BAD_HTTP_STATUS" : "未在服务器上发现该文件 (HTTP {0}).",
+ "CANNOT_WRITE_TEMP" : "无法保存下载文件到临时文件.",
"ERROR_LOADING" : "扩展程序启动时遇到一个错误.",
"MALFORMED_URL" : "无效的链接地址. 请检查输入是否有误",
"UNSUPPORTED_PROTOCOL" : "需要一个 http 或 https 协议的地址.",
@@ -390,8 +390,8 @@ define({
"EXTENSION_DATE" : "日期",
"EXTENSION_INCOMPATIBLE_NEWER" : "这个扩展需要更新版本的 {APP_NAME}.",
"EXTENSION_INCOMPATIBLE_OLDER" : "这个扩展目前只能在旧版本的 {APP_NAME} 上运行.",
- "EXTENSION_LATEST_INCOMPATIBLE_NEWER" : "扩展版本为 {0} 的需要一个更新版本的 {APP_NAME}. 但你可以安装先前版本的扩展 {1}.",
- "EXTENSION_LATEST_INCOMPATIBLE_OLDER" : "扩展版本为 {0} 的需要一个更旧版本的 {APP_NAME}. 但你可以安装先前版本的扩展 {1}.",
+ "EXTENSION_LATEST_INCOMPATIBLE_NEWER" : "扩展版本为 {0} 需要一个更新版本的 {APP_NAME}. 但你可以安装先前版本的扩展 {1}.",
+ "EXTENSION_LATEST_INCOMPATIBLE_OLDER" : "扩展版本为 {0} 需要一个更旧版本的 {APP_NAME}. 但你可以安装先前版本的扩展 {1}.",
"EXTENSION_NO_DESCRIPTION" : "没有描述",
"EXTENSION_MORE_INFO" : "更多信息...",
"EXTENSION_ERROR" : "扩展错误",
@@ -415,7 +415,7 @@ define({
"CHANGE_AND_QUIT" : "更改扩展并退出",
"UPDATE_AND_QUIT" : "升级扩展并退出",
"EXTENSION_NOT_INSTALLED" : "无法移除扩展 {0} 其并未被安装.",
- "NO_EXTENSIONS" : "还没有安装扩展.
点击上面的按钮开始.",
+ "NO_EXTENSIONS" : "还没有安装扩展.
点击上面的可获取标签开始.",
"NO_EXTENSION_MATCHES" : "没有找到相符的扩展.",
"REGISTRY_SANITY_CHECK_WARNING" : "小心来自未知源的扩展.",
"EXTENSIONS_INSTALLED_TITLE" : "已安装",
@@ -423,7 +423,7 @@ define({
"EXTENSIONS_UPDATES_TITLE" : "升级",
"INLINE_EDITOR_NO_MATCHES" : "未找到匹配项.",
- "CSS_QUICK_EDIT_NO_MATCHES" : "不存在符合选择的 CSS 规则.
点击 \"新 CSS 规则\" 来创建.",
+ "CSS_QUICK_EDIT_NO_MATCHES" : "符合选择的 CSS 规则不存在.
点击 \"新 CSS 规则\" 来创建.",
"CSS_QUICK_EDIT_NO_STYLESHEETS" : "您的项目中没有样式表.
建立一个来添加 CSS 规则.",
/**
From 4132d53cb7176069837bb721f49e259c13c2bd3f Mon Sep 17 00:00:00 2001
From: gncy2013
Date: Thu, 19 Dec 2013 00:28:40 +0800
Subject: [PATCH 13/17] Adjust one string
---
src/nls/zh-cn/strings.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/nls/zh-cn/strings.js b/src/nls/zh-cn/strings.js
index 6b904d58b63..99de97ac00e 100644
--- a/src/nls/zh-cn/strings.js
+++ b/src/nls/zh-cn/strings.js
@@ -62,7 +62,7 @@ define({
"INVALID_FILENAME_MESSAGE" : "文件名不得包含: /?*:;{}<>\\| 或使用操作系统保留文件名",
"FILE_ALREADY_EXISTS" : "该文件 {0} {1} 已经存在.",
"ERROR_CREATING_FILE_TITLE" : "创建文件 {0} 错误",
- "ERROR_CREATING_FILE" : "试图创建 {0} 时出现错误 {1}. {2}",
+ "ERROR_CREATING_FILE" : "试图创建 {0} {1} 时出现错误. {2}",
// Application error strings
"ERROR_IN_BROWSER_TITLE" : "囧! {APP_NAME} 暂无法运行在浏览器窗口中.",
From 687234ab1a9e0bf78dedf5a423dcbbf2fccb3c7c Mon Sep 17 00:00:00 2001
From: Kevin Dangoor
Date: Wed, 18 Dec 2013 21:56:51 -0500
Subject: [PATCH 14/17] Set for sprint 36
---
package.json | 7 +++----
src/config.json | 4 ++--
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/package.json b/package.json
index efa7d26a268..a6130434597 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "Brackets",
- "version": "0.35.0-0",
- "apiVersion": "0.35.0",
+ "version": "0.36.0-0",
+ "apiVersion": "0.36.0",
"homepage": "http://brackets.io",
"issues": {
"url": "http://github.com/adobe/brackets/issues"
@@ -20,7 +20,7 @@
"phantomjs": "1.9.0-1",
"grunt-lib-phantomjs": "0.3.0",
"grunt-contrib-jshint": "0.6.0",
- "grunt-contrib-watch": "0.3.1",
+ "grunt-contrib-watch": "0.4.3",
"grunt-contrib-jasmine": "0.4.2",
"grunt-template-jasmine-requirejs": "0.1.0",
"grunt-contrib-cssmin": "0.6.0",
@@ -31,7 +31,6 @@
"grunt-contrib-requirejs": "0.4.1",
"grunt-contrib-uglify": "0.2.0",
"grunt-contrib-concat": "0.3.0",
- "grunt-contrib-watch": "0.4.3",
"grunt-targethtml": "0.2.6",
"grunt-usemin": "0.1.11",
"load-grunt-tasks": "0.2.0",
diff --git a/src/config.json b/src/config.json
index bcf3c0cb879..6dabb6382eb 100644
--- a/src/config.json
+++ b/src/config.json
@@ -18,8 +18,8 @@
"linting.enabled_by_default": true
},
"name": "Brackets",
- "version": "0.35.0-0",
- "apiVersion": "0.35.0",
+ "version": "0.36.0-0",
+ "apiVersion": "0.36.0",
"homepage": "http://brackets.io",
"issues": {
"url": "http://github.com/adobe/brackets/issues"
From b318be27de5fe07683f1066abc4b62e58c2bbef6 Mon Sep 17 00:00:00 2001
From: Randy Edmunds
Date: Wed, 18 Dec 2013 20:52:49 -0800
Subject: [PATCH 15/17] always select first css value
---
src/extensions/default/CSSCodeHints/main.js | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/extensions/default/CSSCodeHints/main.js b/src/extensions/default/CSSCodeHints/main.js
index 9aca2bbe1f4..7ea199dbb35 100644
--- a/src/extensions/default/CSSCodeHints/main.js
+++ b/src/extensions/default/CSSCodeHints/main.js
@@ -209,14 +209,14 @@ define(function (require, exports, module) {
selectInitial = false;
- if (this.primaryTriggerKeys.indexOf(implicitChar) !== -1) {
- selectInitial = true;
- }
-
// Clear the exclusion if the user moves the cursor with left/right arrow key.
this.updateExclusion(true);
if (context === CSSUtils.PROP_VALUE) {
+
+ // Always select initial value
+ selectInitial = true;
+
// When switching from a NAME to a VALUE context, restart the session
// to give other more specialized providers a chance to intervene.
if (lastContext === CSSUtils.PROP_NAME) {
@@ -260,6 +260,12 @@ define(function (require, exports, module) {
selectInitial: selectInitial
};
} else if (context === CSSUtils.PROP_NAME) {
+
+ // Select initial property if anything has been typed
+ if (this.primaryTriggerKeys.indexOf(implicitChar) !== -1) {
+ selectInitial = true;
+ }
+
lastContext = CSSUtils.PROP_NAME;
needle = needle.substr(0, this.info.offset);
result = $.map(properties, function (pvalues, pname) {
From fe91284f6995f7acec8ebd2b3be64ae8e2a946e5 Mon Sep 17 00:00:00 2001
From: Randy Edmunds
Date: Thu, 19 Dec 2013 14:37:53 -0800
Subject: [PATCH 16/17] fix entity insertion with 2 entities on same line
---
.../default/HtmlEntityCodeHints/main.js | 28 ++++++++++++++-----
.../unittest-files/default.html | 2 +-
2 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/src/extensions/default/HtmlEntityCodeHints/main.js b/src/extensions/default/HtmlEntityCodeHints/main.js
index c83ef1ab68e..8f6a7aec073 100644
--- a/src/extensions/default/HtmlEntityCodeHints/main.js
+++ b/src/extensions/default/HtmlEntityCodeHints/main.js
@@ -220,17 +220,31 @@ define(function (require, exports, module) {
var start = {line: -1, ch: -1},
end = {line: -1, ch: -1},
cursor = this.editor.getCursorPos(),
- match,
- matchSemicolonPos;
+ line = this.editor.document.getLine(cursor.line),
+ subLine,
+ ampersandPos,
+ semicolonPos,
+ entityMatch;
end.line = start.line = cursor.line;
start.ch = cursor.ch - this.currentQuery.length;
- match = this.editor.document.getLine(cursor.line).slice(cursor.ch);
- matchSemicolonPos = match.indexOf(";");
+ subLine = line.slice(cursor.ch);
+ ampersandPos = subLine.indexOf("&");
+ semicolonPos = subLine.indexOf(";");
end.ch = start.ch + this.currentQuery.length;
-
- if (matchSemicolonPos !== -1 && /^(#*[0-9]+)|([a-zA-Z]+)$/.test(match.slice(0, matchSemicolonPos))) {
- end.ch = this.editor.document.getLine(cursor.line).indexOf(";", start.ch) + 1;
+
+ // We're looking for ';' in line before next '&'
+ if (semicolonPos !== -1 && (ampersandPos === -1 || ampersandPos > semicolonPos)) {
+
+ subLine = subLine.slice(0, semicolonPos);
+
+ // regexp must match entire subLine string
+ entityMatch = subLine.match(/^(#?[0-9]+)|([a-zA-Z]+)$/);
+ if (entityMatch && entityMatch.length > 0 && entityMatch.index === 0 &&
+ entityMatch[0].length === subLine.length) {
+ // replace entity
+ end.ch = line.indexOf(";", start.ch) + 1;
+ }
}
completion = completion.slice(0, completion.indexOf(" "));
diff --git a/src/extensions/default/HtmlEntityCodeHints/unittest-files/default.html b/src/extensions/default/HtmlEntityCodeHints/unittest-files/default.html
index f5324db10de..346d1fa7186 100644
--- a/src/extensions/default/HtmlEntityCodeHints/unittest-files/default.html
+++ b/src/extensions/default/HtmlEntityCodeHints/unittest-files/default.html
@@ -15,7 +15,7 @@
- Test´
+ Test´ with more text and a subsequent entity such as †
From 287729cadc3901a3cb8fe44c1345e7df287cc86c Mon Sep 17 00:00:00 2001
From: YuAo
Date: Fri, 20 Dec 2013 10:00:46 +0800
Subject: [PATCH 17/17] reapply 'select the initial hint on backspace key
press'
---
src/extensions/default/CSSCodeHints/main.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/extensions/default/CSSCodeHints/main.js b/src/extensions/default/CSSCodeHints/main.js
index ab1a6245338..bf400d50eba 100644
--- a/src/extensions/default/CSSCodeHints/main.js
+++ b/src/extensions/default/CSSCodeHints/main.js
@@ -266,7 +266,7 @@ define(function (require, exports, module) {
} else if (context === CSSUtils.PROP_NAME) {
// Select initial property if anything has been typed
- if (this.primaryTriggerKeys.indexOf(implicitChar) !== -1) {
+ if (this.primaryTriggerKeys.indexOf(implicitChar) !== -1 || needle !== "") {
selectInitial = true;
}