From e7bbd8256b8c701205389be431bbafd8743c72a9 Mon Sep 17 00:00:00 2001 From: ZyX Date: Fri, 4 Mar 2016 21:55:28 +0300 Subject: eval: Add luaeval function No tests yet, no documentation update, no :lua* stuff, no vim module. converter.c should also work with typval_T, not Object. Known problem: luaeval("1", {}) results in PANIC: unprotected error in call to Lua API (attempt to index a nil value) Ref #3823 --- src/nvim/CMakeLists.txt | 40 ++- src/nvim/eval.c | 43 +++ src/nvim/eval.lua | 1 + src/nvim/viml/executor/converter.c | 537 +++++++++++++++++++++++++++++++++++++ src/nvim/viml/executor/converter.h | 12 + src/nvim/viml/executor/executor.c | 270 +++++++++++++++++++ src/nvim/viml/executor/executor.h | 23 ++ src/nvim/viml/executor/vim.lua | 2 + 8 files changed, 919 insertions(+), 9 deletions(-) create mode 100644 src/nvim/viml/executor/converter.c create mode 100644 src/nvim/viml/executor/converter.h create mode 100644 src/nvim/viml/executor/executor.c create mode 100644 src/nvim/viml/executor/executor.h create mode 100644 src/nvim/viml/executor/vim.lua (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 22cf1f3a3d..a47a8e49c7 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -11,11 +11,10 @@ endif() endif() set(GENERATED_DIR ${PROJECT_BINARY_DIR}/src/nvim/auto) -set(DISPATCH_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/gendispatch.lua) -file(GLOB API_HEADERS api/*.h) -file(GLOB MSGPACK_RPC_HEADERS msgpack_rpc/*.h) +set(MSGPACK_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/genmsgpack.lua) set(API_METADATA ${PROJECT_BINARY_DIR}/api_metadata.mpack) set(FUNCS_DATA ${PROJECT_BINARY_DIR}/funcs_data.mpack) +set(MSGPACK_LUA_C_BINDINGS ${GENERATED_DIR}/msgpack_lua_c_bindings.generated.c) set(HEADER_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/gendeclarations.lua) set(GENERATED_INCLUDES_DIR ${PROJECT_BINARY_DIR}/include) set(GENERATED_API_DISPATCH ${GENERATED_DIR}/api/private/dispatch_wrappers.generated.h) @@ -37,8 +36,14 @@ set(EVAL_DEFS_FILE ${PROJECT_SOURCE_DIR}/src/nvim/eval.lua) set(OPTIONS_LIST_FILE ${PROJECT_SOURCE_DIR}/src/nvim/options.lua) set(UNICODE_TABLES_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/genunicodetables.lua) set(UNICODE_DIR ${PROJECT_SOURCE_DIR}/unicode) -file(GLOB UNICODE_FILES ${UNICODE_DIR}/*.txt) set(GENERATED_UNICODE_TABLES ${GENERATED_DIR}/unicode_tables.generated.h) +set(VIM_MODULE_FILE ${GENERATED_DIR}/viml/executor/vim_module.generated.h) +set(VIM_MODULE_SOURCE ${PROJECT_SOURCE_DIR}/src/nvim/viml/executor/vim.lua) +set(VIM_MODULE_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/generate_vim_module.lua) + +file(GLOB API_HEADERS api/*.h) +file(GLOB MSGPACK_RPC_HEADERS msgpack_rpc/*.h) +file(GLOB UNICODE_FILES ${UNICODE_DIR}/*.txt) include_directories(${GENERATED_DIR}) include_directories(${CACHED_GENERATED_DIR}) @@ -57,6 +62,8 @@ foreach(subdir tui event eval + viml + viml/executor ) if(${subdir} MATCHES "tui" AND NOT FEAT_TUI) continue() @@ -198,18 +205,30 @@ add_custom_command(OUTPUT ${GENERATED_UNICODE_TABLES} ${UNICODE_FILES} ) -add_custom_command(OUTPUT ${GENERATED_API_DISPATCH} ${GENERATED_FUNCS_METADATA} - ${API_METADATA} - COMMAND ${LUA_PRG} ${DISPATCH_GENERATOR} ${CMAKE_CURRENT_LIST_DIR} - ${API_HEADERS} ${GENERATED_API_DISPATCH} +add_custom_command( + OUTPUT ${GENERATED_API_DISPATCH} ${GENERATED_FUNCS_METADATA} + ${API_METADATA} ${MSGPACK_LUA_C_BINDINGS} + COMMAND ${LUA_PRG} ${MSGPACK_GENERATOR} ${CMAKE_CURRENT_LIST_DIR} + ${GENERATED_API_DISPATCH} ${GENERATED_FUNCS_METADATA} ${API_METADATA} + ${MSGPACK_LUA_C_BINDINGS} + ${API_HEADERS} DEPENDS ${API_HEADERS} ${MSGPACK_RPC_HEADERS} - ${DISPATCH_GENERATOR} + ${MSGPACK_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/api/dispatch_deprecated.lua ) +add_custom_command( + OUTPUT ${VIM_MODULE_FILE} + COMMAND ${LUA_PRG} ${VIM_MODULE_GENERATOR} ${VIM_MODULE_SOURCE} + ${VIM_MODULE_FILE} + DEPENDS + ${VIM_MODULE_GENERATOR} + ${VIM_MODULE_SOURCE} +) + list(APPEND NEOVIM_GENERATED_SOURCES "${PROJECT_BINARY_DIR}/config/auto/pathdef.c" "${GENERATED_API_DISPATCH}" @@ -219,6 +238,8 @@ list(APPEND NEOVIM_GENERATED_SOURCES "${GENERATED_EVENTS_NAMES_MAP}" "${GENERATED_OPTIONS}" "${GENERATED_UNICODE_TABLES}" + "${MSGPACK_LUA_C_BINDINGS}" + "${VIM_MODULE_FILE}" ) add_custom_command(OUTPUT ${GENERATED_EX_CMDS_ENUM} ${GENERATED_EX_CMDS_DEFS} @@ -270,6 +291,7 @@ list(APPEND NVIM_LINK_LIBRARIES ${LIBTERMKEY_LIBRARIES} ${UNIBILIUM_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} + ${LUAJIT_LIBRARIES} ) if(UNIX) diff --git a/src/nvim/eval.c b/src/nvim/eval.c index d49fcbf17e..c9141fbcbf 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -95,6 +95,7 @@ #include "nvim/lib/khash.h" #include "nvim/lib/queue.h" #include "nvim/eval/typval_encode.h" +#include "nvim/viml/executor/executor.h" #define DICT_MAXNEST 100 /* maximum nesting of lists and dicts */ @@ -13376,6 +13377,48 @@ static void get_maparg(typval_T *argvars, typval_T *rettv, int exact) } } +/// luaeval() function implementation +static void f_luaeval(typval_T *argvars, typval_T *rettv, FunPtr fptr) + FUNC_ATTR_NONNULL_ALL +{ + char *const str = (char *) get_tv_string(&argvars[0]); + if (str == NULL) { + return; + } + + Object arg; + if (argvars[1].v_type == VAR_UNKNOWN) { + arg = NIL; + } else { + arg = vim_to_object(&argvars[1]); + } + + // TODO(ZyX-I): Create function which converts lua objects directly to VimL + // objects, not to API objects. + Error err; + String err_str; + Object ret = executor_eval_lua(cstr_as_string(str), arg, &err, &err_str); + if (err.set) { + if (err_str.size) { + EMSG3(_("E971: Failed to eval lua string: %s (%s)"), err.msg, + err_str.data); + } else { + EMSG2(_("E971: Failed to eval lua string: %s"), err.msg); + } + } + + api_free_string(err_str); + + if (!err.set) { + if (!object_to_vim(ret, rettv, &err)) { + EMSG2(_("E972: Failed to convert resulting API object to VimL: %s"), + err.msg); + } + } + + api_free_object(ret); +} + /* * "map()" function */ diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index e3c5981b32..9db90ce05d 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -193,6 +193,7 @@ return { localtime={}, log={args=1, func="float_op_wrapper", data="&log"}, log10={args=1, func="float_op_wrapper", data="&log10"}, + luaeval={args={1, 2}}, map={args=2}, maparg={args={1, 4}}, mapcheck={args={1, 3}}, diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c new file mode 100644 index 0000000000..2105beb08a --- /dev/null +++ b/src/nvim/viml/executor/converter.c @@ -0,0 +1,537 @@ +#include +#include +#include +#include + +#include "nvim/api/private/defs.h" +#include "nvim/api/private/helpers.h" +#include "nvim/func_attr.h" +#include "nvim/memory.h" +#include "nvim/assert.h" + +#include "nvim/viml/executor/converter.h" +#include "nvim/viml/executor/executor.h" + +#ifdef INCLUDE_GENERATED_DECLARATIONS +# include "viml/executor/converter.c.generated.h" +#endif + +#define NLUA_PUSH_IDX(lstate, type, idx) \ + do { \ + STATIC_ASSERT(sizeof(type) <= sizeof(lua_Number), \ + "Number sizes do not match"); \ + const type src = idx; \ + lua_Number tgt; \ + memset(&tgt, 0, sizeof(tgt)); \ + memcpy(&tgt, &src, sizeof(src)); \ + lua_pushnumber(lstate, tgt); \ + } while (0) + +#define NLUA_POP_IDX(lstate, type, stack_idx, idx) \ + do { \ + STATIC_ASSERT(sizeof(type) <= sizeof(lua_Number), \ + "Number sizes do not match"); \ + const lua_Number src = lua_tonumber(lstate, stack_idx); \ + type tgt; \ + memcpy(&tgt, &src, sizeof(tgt)); \ + idx = tgt; \ + } while (0) + +/// Push value which is a type index +/// +/// Used for all “typed” tables: i.e. for all tables which represent VimL +/// values. +static inline void nlua_push_type_idx(lua_State *lstate) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushboolean(lstate, true); +} + +/// Push value which is a locks index +/// +/// Used for containers tables. +static inline void nlua_push_locks_idx(lua_State *lstate) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushboolean(lstate, false); +} + +/// Push value which is a value index +/// +/// Used for tables which represent scalar values, like float value. +static inline void nlua_push_val_idx(lua_State *lstate) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushnumber(lstate, (lua_Number) 0); +} + +/// Push type +/// +/// Type is a value in vim.types table. +/// +/// @param[out] lstate Lua state. +/// @param[in] type Type to push (key in vim.types table). +static inline void nlua_push_type(lua_State *lstate, const char *const type) +{ + lua_getglobal(lstate, "vim"); + lua_getfield(lstate, -1, "types"); + lua_remove(lstate, -2); + lua_getfield(lstate, -1, type); + lua_remove(lstate, -2); +} + +/// Create lua table which has an entry that determines its VimL type +/// +/// @param[out] lstate Lua state. +/// @param[in] narr Number of “array” entries to be populated later. +/// @param[in] nrec Number of “dictionary” entries to be populated later. +/// @param[in] type Type of the table. +static inline void nlua_create_typed_table(lua_State *lstate, + const size_t narr, + const size_t nrec, + const char *const type) + FUNC_ATTR_NONNULL_ALL +{ + lua_createtable(lstate, (int) narr, (int) (1 + nrec)); + nlua_push_type_idx(lstate); + nlua_push_type(lstate, type); + lua_rawset(lstate, -3); +} + + +/// Convert given String to lua string +/// +/// Leaves converted string on top of the stack. +void nlua_push_String(lua_State *lstate, const String s) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushlstring(lstate, s.data, s.size); +} + +/// Convert given Integer to lua number +/// +/// Leaves converted number on top of the stack. +void nlua_push_Integer(lua_State *lstate, const Integer n) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushnumber(lstate, (lua_Number) n); +} + +/// Convert given Float to lua table +/// +/// Leaves converted table on top of the stack. +void nlua_push_Float(lua_State *lstate, const Float f) + FUNC_ATTR_NONNULL_ALL +{ + nlua_create_typed_table(lstate, 0, 1, "float"); + nlua_push_val_idx(lstate); + lua_pushnumber(lstate, (lua_Number) f); + lua_rawset(lstate, -3); +} + +/// Convert given Float to lua boolean +/// +/// Leaves converted value on top of the stack. +void nlua_push_Boolean(lua_State *lstate, const Boolean b) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushboolean(lstate, b); +} + +static inline void nlua_add_locks_table(lua_State *lstate) +{ + nlua_push_locks_idx(lstate); + lua_newtable(lstate); + lua_rawset(lstate, -3); +} + +/// Convert given Dictionary to lua table +/// +/// Leaves converted table on top of the stack. +void nlua_push_Dictionary(lua_State *lstate, const Dictionary dict) + FUNC_ATTR_NONNULL_ALL +{ + nlua_create_typed_table(lstate, 0, 1 + dict.size, "dict"); + nlua_add_locks_table(lstate); + for (size_t i = 0; i < dict.size; i++) { + nlua_push_String(lstate, dict.items[i].key); + nlua_push_Object(lstate, dict.items[i].value); + lua_rawset(lstate, -3); + } +} + +/// Convert given Array to lua table +/// +/// Leaves converted table on top of the stack. +void nlua_push_Array(lua_State *lstate, const Array array) + FUNC_ATTR_NONNULL_ALL +{ + nlua_create_typed_table(lstate, array.size, 1, "float"); + nlua_add_locks_table(lstate); + for (size_t i = 0; i < array.size; i++) { + nlua_push_Object(lstate, array.items[i]); + lua_rawseti(lstate, -3, (int) i + 1); + } +} + +#define GENERATE_INDEX_FUNCTION(type) \ +void nlua_push_##type(lua_State *lstate, const type item) \ + FUNC_ATTR_NONNULL_ALL \ +{ \ + NLUA_PUSH_IDX(lstate, type, item); \ +} + +GENERATE_INDEX_FUNCTION(Buffer) +GENERATE_INDEX_FUNCTION(Window) +GENERATE_INDEX_FUNCTION(Tabpage) + +#undef GENERATE_INDEX_FUNCTION + +/// Convert given Object to lua value +/// +/// Leaves converted value on top of the stack. +void nlua_push_Object(lua_State *lstate, const Object obj) + FUNC_ATTR_NONNULL_ALL +{ + switch (obj.type) { + case kObjectTypeNil: { + lua_pushnil(lstate); + break; + } +#define ADD_TYPE(type, data_key) \ + case kObjectType##type: { \ + nlua_push_##type(lstate, obj.data.data_key); \ + break; \ + } + ADD_TYPE(Boolean, boolean) + ADD_TYPE(Integer, integer) + ADD_TYPE(Float, floating) + ADD_TYPE(String, string) + ADD_TYPE(Array, array) + ADD_TYPE(Dictionary, dictionary) +#undef ADD_TYPE +#define ADD_REMOTE_TYPE(type) \ + case kObjectType##type: { \ + nlua_push_##type(lstate, (type)obj.data.integer); \ + break; \ + } + ADD_REMOTE_TYPE(Buffer) + ADD_REMOTE_TYPE(Window) + ADD_REMOTE_TYPE(Tabpage) +#undef ADD_REMOTE_TYPE + } +} + + +/// Convert lua value to string +/// +/// Always pops one value from the stack. +String nlua_pop_String(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + String ret; + + ret.data = (char *) lua_tolstring(lstate, -1, &(ret.size)); + + if (ret.data == NULL) { + lua_pop(lstate, 1); + set_api_error("Expected lua string", err); + return (String) { .size = 0, .data = NULL }; + } + + ret.data = xmemdupz(ret.data, ret.size); + lua_pop(lstate, 1); + + return ret; +} + +/// Convert lua value to integer +/// +/// Always pops one value from the stack. +Integer nlua_pop_Integer(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + Integer ret = 0; + + if (!lua_isnumber(lstate, -1)) { + lua_pop(lstate, 1); + set_api_error("Expected lua integer", err); + return ret; + } + ret = (Integer) lua_tonumber(lstate, -1); + lua_pop(lstate, 1); + + return ret; +} + +/// Convert lua value to boolean +/// +/// Always pops one value from the stack. +Boolean nlua_pop_Boolean(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + Boolean ret = lua_toboolean(lstate, -1); + lua_pop(lstate, 1); + return ret; +} + +static inline bool nlua_check_type(lua_State *lstate, Error *err, + const char *const type) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + if (lua_type(lstate, -1) != LUA_TTABLE) { + set_api_error("Expected lua table", err); + return true; + } + + nlua_push_type_idx(lstate); + lua_rawget(lstate, -2); + nlua_push_type(lstate, type); + if (!lua_rawequal(lstate, -2, -1)) { + lua_pop(lstate, 2); + set_api_error("Expected lua table with float type", err); + return true; + } + lua_pop(lstate, 2); + + return false; +} + +/// Convert lua table to float +/// +/// Always pops one value from the stack. +Float nlua_pop_Float(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + Float ret = 0; + + if (nlua_check_type(lstate, err, "float")) { + lua_pop(lstate, 1); + return 0; + } + + nlua_push_val_idx(lstate); + lua_rawget(lstate, -2); + + if (!lua_isnumber(lstate, -1)) { + lua_pop(lstate, 2); + set_api_error("Value field should be lua number", err); + return ret; + } + ret = lua_tonumber(lstate, -1); + lua_pop(lstate, 2); + + return ret; +} + +/// Convert lua table to array +/// +/// Always pops one value from the stack. +Array nlua_pop_Array(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + Array ret = { .size = 0, .items = NULL }; + + if (nlua_check_type(lstate, err, "list")) { + lua_pop(lstate, 1); + return ret; + } + + for (int i = 1; ; i++, ret.size++) { + lua_rawgeti(lstate, -1, i); + + if (lua_isnil(lstate, -1)) { + lua_pop(lstate, 1); + break; + } + lua_pop(lstate, 1); + } + + if (ret.size == 0) { + lua_pop(lstate, 1); + return ret; + } + + ret.items = xcalloc(ret.size, sizeof(*ret.items)); + for (size_t i = 1; i <= ret.size; i++) { + Object val; + + lua_rawgeti(lstate, -1, (int) i); + + val = nlua_pop_Object(lstate, err); + if (err->set) { + ret.size = i; + lua_pop(lstate, 1); + api_free_array(ret); + return (Array) { .size = 0, .items = NULL }; + } + ret.items[i - 1] = val; + } + lua_pop(lstate, 1); + + return ret; +} + +/// Convert lua table to dictionary +/// +/// Always pops one value from the stack. Does not check whether +/// `vim.is_dict(table[type_idx])` or whether topmost value on the stack is +/// a table. +Dictionary nlua_pop_Dictionary_unchecked(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + Dictionary ret = { .size = 0, .items = NULL }; + + lua_pushnil(lstate); + + while (lua_next(lstate, -2)) { + if (lua_type(lstate, -2) == LUA_TSTRING) { + ret.size++; + } + lua_pop(lstate, 1); + } + + if (ret.size == 0) { + lua_pop(lstate, 1); + return ret; + } + ret.items = xcalloc(ret.size, sizeof(*ret.items)); + + lua_pushnil(lstate); + for (size_t i = 0; lua_next(lstate, -2);) { + // stack: dict, key, value + + if (lua_type(lstate, -2) == LUA_TSTRING) { + lua_pushvalue(lstate, -2); + // stack: dict, key, value, key + + ret.items[i].key = nlua_pop_String(lstate, err); + // stack: dict, key, value + + if (!err->set) { + ret.items[i].value = nlua_pop_Object(lstate, err); + // stack: dict, key + } else { + lua_pop(lstate, 1); + // stack: dict, key + } + + if (err->set) { + ret.size = i; + api_free_dictionary(ret); + lua_pop(lstate, 2); + // stack: + return (Dictionary) { .size = 0, .items = NULL }; + } + i++; + } else { + lua_pop(lstate, 1); + // stack: dict, key + } + } + lua_pop(lstate, 1); + + return ret; +} + +/// Convert lua table to dictionary +/// +/// Always pops one value from the stack. +Dictionary nlua_pop_Dictionary(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + if (nlua_check_type(lstate, err, "dict")) { + lua_pop(lstate, 1); + return (Dictionary) { .size = 0, .items = NULL }; + } + + return nlua_pop_Dictionary_unchecked(lstate, err); +} + +/// Convert lua table to object +/// +/// Always pops one value from the stack. +Object nlua_pop_Object(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + Object ret = { .type = kObjectTypeNil }; + + switch (lua_type(lstate, -1)) { + case LUA_TNIL: { + ret.type = kObjectTypeNil; + lua_pop(lstate, 1); + break; + } + case LUA_TSTRING: { + ret.type = kObjectTypeString; + ret.data.string = nlua_pop_String(lstate, err); + break; + } + case LUA_TNUMBER: { + ret.type = kObjectTypeInteger; + ret.data.integer = nlua_pop_Integer(lstate, err); + break; + } + case LUA_TBOOLEAN: { + ret.type = kObjectTypeBoolean; + ret.data.boolean = nlua_pop_Boolean(lstate, err); + break; + } + case LUA_TTABLE: { + lua_getglobal(lstate, "vim"); + // stack: obj, vim +#define CHECK_TYPE(Type, key, vim_type) \ + lua_getfield(lstate, -1, "is_" #vim_type); \ + /* stack: obj, vim, checker */ \ + lua_pushvalue(lstate, -3); \ + /* stack: obj, vim, checker, obj */ \ + lua_call(lstate, 1, 1); \ + /* stack: obj, vim, result */ \ + if (lua_toboolean(lstate, -1)) { \ + lua_pop(lstate, 2); \ + /* stack: obj */ \ + ret.type = kObjectType##Type; \ + ret.data.key = nlua_pop_##Type(lstate, err); \ + /* stack: */ \ + break; \ + } \ + lua_pop(lstate, 1); \ + // stack: obj, vim + CHECK_TYPE(Float, floating, float) + CHECK_TYPE(Array, array, list) + CHECK_TYPE(Dictionary, dictionary, dict) +#undef CHECK_TYPE + lua_pop(lstate, 1); + // stack: obj + ret.type = kObjectTypeDictionary; + ret.data.dictionary = nlua_pop_Dictionary_unchecked(lstate, err); + break; + } + default: { + lua_pop(lstate, 1); + set_api_error("Cannot convert given lua type", err); + break; + } + } + if (err->set) { + ret.type = kObjectTypeNil; + } + + return ret; +} + +#define GENERATE_INDEX_FUNCTION(type) \ +type nlua_pop_##type(lua_State *lstate, Error *err) \ + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT \ +{ \ + type ret; \ + NLUA_POP_IDX(lstate, type, -1, ret); \ + lua_pop(lstate, 1); \ + return ret; \ +} + +GENERATE_INDEX_FUNCTION(Buffer) +GENERATE_INDEX_FUNCTION(Window) +GENERATE_INDEX_FUNCTION(Tabpage) + +#undef GENERATE_INDEX_FUNCTION diff --git a/src/nvim/viml/executor/converter.h b/src/nvim/viml/executor/converter.h new file mode 100644 index 0000000000..e11d0cef19 --- /dev/null +++ b/src/nvim/viml/executor/converter.h @@ -0,0 +1,12 @@ +#ifndef NVIM_VIML_EXECUTOR_CONVERTER_H +#define NVIM_VIML_EXECUTOR_CONVERTER_H + +#include +#include +#include "nvim/api/private/defs.h" +#include "nvim/func_attr.h" + +#ifdef INCLUDE_GENERATED_DECLARATIONS +# include "viml/executor/converter.h.generated.h" +#endif +#endif // NVIM_VIML_EXECUTOR_CONVERTER_H diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c new file mode 100644 index 0000000000..6f1e847649 --- /dev/null +++ b/src/nvim/viml/executor/executor.c @@ -0,0 +1,270 @@ +#include +#include +#include + +#include "nvim/misc1.h" +#include "nvim/getchar.h" +#include "nvim/garray.h" +#include "nvim/func_attr.h" +#include "nvim/api/private/defs.h" +#include "nvim/api/vim.h" +#include "nvim/vim.h" +#include "nvim/message.h" + +#include "nvim/viml/executor/executor.h" +#include "nvim/viml/executor/converter.h" + +typedef struct { + Error err; + String lua_err_str; +} LuaError; + +#ifdef INCLUDE_GENERATED_DECLARATIONS +# include "viml/executor/vim_module.generated.h" +# include "viml/executor/executor.c.generated.h" +#endif + +/// Name of the run code for use in messages +#define NLUA_EVAL_NAME "" + +/// Call C function which does not expect any arguments +/// +/// @param function Called function +/// @param numret Number of returned arguments +#define NLUA_CALL_C_FUNCTION_0(lstate, function, numret) \ + do { \ + lua_pushcfunction(lstate, &function); \ + lua_call(lstate, 0, numret); \ + } while (0) +/// Call C function which expects four arguments +/// +/// @param function Called function +/// @param numret Number of returned arguments +/// @param a… Supplied argument (should be a void* pointer) +#define NLUA_CALL_C_FUNCTION_3(lstate, function, numret, a1, a2, a3) \ + do { \ + lua_pushcfunction(lstate, &function); \ + lua_pushlightuserdata(lstate, a1); \ + lua_pushlightuserdata(lstate, a2); \ + lua_pushlightuserdata(lstate, a3); \ + lua_call(lstate, 3, numret); \ + } while (0) +/// Call C function which expects five arguments +/// +/// @param function Called function +/// @param numret Number of returned arguments +/// @param a… Supplied argument (should be a void* pointer) +#define NLUA_CALL_C_FUNCTION_4(lstate, function, numret, a1, a2, a3, a4) \ + do { \ + lua_pushcfunction(lstate, &function); \ + lua_pushlightuserdata(lstate, a1); \ + lua_pushlightuserdata(lstate, a2); \ + lua_pushlightuserdata(lstate, a3); \ + lua_pushlightuserdata(lstate, a4); \ + lua_call(lstate, 4, numret); \ + } while (0) + +static void set_lua_error(lua_State *lstate, LuaError *lerr) + FUNC_ATTR_NONNULL_ALL +{ + const char *const str = lua_tolstring(lstate, -1, &lerr->lua_err_str.size); + lerr->lua_err_str.data = xmemdupz(str, lerr->lua_err_str.size); + lua_pop(lstate, 1); + + // FIXME? More specific error? + set_api_error("Error while executing lua code", &lerr->err); +} + +/// Compare two strings, ignoring case +/// +/// Expects two values on the stack: compared strings. Returns one of the +/// following numbers: 0, -1 or 1. +/// +/// Does no error handling: never call it with non-string or with some arguments +/// omitted. +static int nlua_stricmp(lua_State *lstate) FUNC_ATTR_NONNULL_ALL +{ + const char *s1 = luaL_checklstring(lstate, 1, NULL); + const char *s2 = luaL_checklstring(lstate, 2, NULL); + const int ret = STRICMP(s1, s2); + lua_pop(lstate, 2); + lua_pushnumber(lstate, (lua_Number) ((ret > 0) - (ret < 0))); + return 1; +} + +/// Evaluate lua string +/// +/// Expects three values on the stack: string to evaluate, pointer to the +/// location where result is saved, pointer to the location where error is +/// saved. Always returns nothing (from the lua point of view). +static int nlua_exec_lua_string(lua_State *lstate) FUNC_ATTR_NONNULL_ALL +{ + String *str = (String *) lua_touserdata(lstate, 1); + Object *obj = (Object *) lua_touserdata(lstate, 2); + LuaError *lerr = (LuaError *) lua_touserdata(lstate, 3); + lua_pop(lstate, 3); + + if (luaL_loadbuffer(lstate, str->data, str->size, NLUA_EVAL_NAME)) { + set_lua_error(lstate, lerr); + return 0; + } + if (lua_pcall(lstate, 0, 1, 0)) { + set_lua_error(lstate, lerr); + return 0; + } + *obj = nlua_pop_Object(lstate, &lerr->err); + return 0; +} + +/// Initialize lua interpreter state +/// +/// Called by lua interpreter itself to initialize state. +static int nlua_state_init(lua_State *lstate) FUNC_ATTR_NONNULL_ALL +{ + lua_pushcfunction(lstate, &nlua_stricmp); + lua_setglobal(lstate, "stricmp"); + if (luaL_dostring(lstate, (char *) &vim_module[0])) { + LuaError lerr; + set_lua_error(lstate, &lerr); + return 1; + } + nlua_add_api_functions(lstate); + lua_setglobal(lstate, "vim"); + return 0; +} + +/// Initialize lua interpreter +/// +/// Crashes NeoVim if initialization fails. Should be called once per lua +/// interpreter instance. +static lua_State *init_lua(void) + FUNC_ATTR_NONNULL_RET FUNC_ATTR_WARN_UNUSED_RESULT +{ + lua_State *lstate = luaL_newstate(); + if (lstate == NULL) { + EMSG(_("E970: Failed to initialize lua interpreter")); + preserve_exit(); + } + luaL_openlibs(lstate); + NLUA_CALL_C_FUNCTION_0(lstate, nlua_state_init, 0); + return lstate; +} + +static Object exec_lua_string(lua_State *lstate, String str, LuaError *lerr) + FUNC_ATTR_NONNULL_ALL +{ + Object ret = { kObjectTypeNil, { false } }; + NLUA_CALL_C_FUNCTION_3(lstate, nlua_exec_lua_string, 0, &str, &ret, lerr); + return ret; +} + +static lua_State *global_lstate = NULL; + +/// Execute lua string +/// +/// Used for :lua. +/// +/// @param[in] str String to execute. +/// @param[out] err Location where error will be saved. +/// @param[out] err_str Location where lua error string will be saved, if any. +/// +/// @return Result of the execution. +Object executor_exec_lua(String str, Error *err, String *err_str) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + if (global_lstate == NULL) { + global_lstate = init_lua(); + } + + LuaError lerr = { + .err = { .set = false }, + .lua_err_str = STRING_INIT, + }; + + Object ret = exec_lua_string(global_lstate, str, &lerr); + + *err = lerr.err; + *err_str = lerr.lua_err_str; + + return ret; +} + +/// Evaluate lua string +/// +/// Used for luaeval(). Expects three values on the stack: +/// +/// 1. String to evaluate. +/// 2. _A value. +/// 3. Pointer to location where result is saved. +/// 4. Pointer to location where error will be saved. +/// +/// @param[in,out] lstate Lua interpreter state. +static int nlua_eval_lua_string(lua_State *lstate) + FUNC_ATTR_NONNULL_ALL +{ + String *str = (String *) lua_touserdata(lstate, 1); + Object *arg = (Object *) lua_touserdata(lstate, 2); + Object *ret = (Object *) lua_touserdata(lstate, 3); + LuaError *lerr = (LuaError *) lua_touserdata(lstate, 4); + + garray_T str_ga; + ga_init(&str_ga, 1, 80); +#define EVALHEADER "local _A=select(1,...) return " + ga_concat_len(&str_ga, EVALHEADER, sizeof(EVALHEADER) - 1); +#undef EVALHEADER + ga_concat_len(&str_ga, str->data, str->size); + if (luaL_loadbuffer(lstate, str_ga.ga_data, (size_t) str_ga.ga_len, + NLUA_EVAL_NAME)) { + set_lua_error(lstate, lerr); + return 0; + } + ga_clear(&str_ga); + + nlua_push_Object(lstate, *arg); + if (lua_pcall(lstate, 1, 1, 0)) { + set_lua_error(lstate, lerr); + return 0; + } + *ret = nlua_pop_Object(lstate, &lerr->err); + + return 0; +} + +static Object eval_lua_string(lua_State *lstate, String str, Object arg, + LuaError *lerr) + FUNC_ATTR_NONNULL_ALL +{ + Object ret = { kObjectTypeNil, { false } }; + NLUA_CALL_C_FUNCTION_4(lstate, nlua_eval_lua_string, 0, + &str, &arg, &ret, lerr); + return ret; +} + +/// Evaluate lua string +/// +/// Used for luaeval(). +/// +/// @param[in] str String to execute. +/// @param[out] err Location where error will be saved. +/// @param[out] err_str Location where lua error string will be saved, if any. +/// +/// @return Result of the execution. +Object executor_eval_lua(String str, Object arg, Error *err, String *err_str) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + if (global_lstate == NULL) { + global_lstate = init_lua(); + } + + LuaError lerr = { + .err = { .set = false }, + .lua_err_str = STRING_INIT, + }; + + Object ret = eval_lua_string(global_lstate, str, arg, &lerr); + + *err = lerr.err; + *err_str = lerr.lua_err_str; + + return ret; +} diff --git a/src/nvim/viml/executor/executor.h b/src/nvim/viml/executor/executor.h new file mode 100644 index 0000000000..85cb3550e7 --- /dev/null +++ b/src/nvim/viml/executor/executor.h @@ -0,0 +1,23 @@ +#ifndef NVIM_VIML_EXECUTOR_EXECUTOR_H +#define NVIM_VIML_EXECUTOR_EXECUTOR_H + +#include + +#include "nvim/api/private/defs.h" +#include "nvim/func_attr.h" + +// Generated by msgpack-gen.lua +void nlua_add_api_functions(lua_State *lstate) REAL_FATTR_NONNULL_ALL; + +#define set_api_error(s, err) \ + do { \ + Error *err_ = (err); \ + err_->type = kErrorTypeException; \ + err_->set = true; \ + memcpy(&err_->msg[0], s, sizeof(s)); \ + } while (0) + +#ifdef INCLUDE_GENERATED_DECLARATIONS +# include "viml/executor/executor.h.generated.h" +#endif +#endif // NVIM_VIML_EXECUTOR_EXECUTOR_H diff --git a/src/nvim/viml/executor/vim.lua b/src/nvim/viml/executor/vim.lua new file mode 100644 index 0000000000..8d1c5bdf4f --- /dev/null +++ b/src/nvim/viml/executor/vim.lua @@ -0,0 +1,2 @@ +-- TODO(ZyX-I): Create compatibility layer. +return {} -- cgit From f551df17f33e7f38b7e5693eb923118ca1542d27 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 10 Jul 2016 08:03:14 +0300 Subject: viml/executor: Directly generate typval_T values Note: this will *still* crash when using API in cases similar to the one described in first commit. Just it needs different code to reproduce. --- src/nvim/eval.c | 70 +++---- src/nvim/eval/decode.c | 138 +++++++------ src/nvim/viml/executor/converter.c | 388 +++++++++++++++++++++++++++++++++++++ src/nvim/viml/executor/converter.h | 3 + src/nvim/viml/executor/executor.c | 159 ++++++++------- 5 files changed, 572 insertions(+), 186 deletions(-) (limited to 'src') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index c9141fbcbf..248383d2e1 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -6480,28 +6480,44 @@ static void dict_free_dict(dict_T *d) { xfree(d); } -void dict_free(dict_T *d) { +void dict_free(dict_T *d) +{ if (!in_free_unref_items) { dict_free_contents(d); dict_free_dict(d); } } -/* - * Allocate a Dictionary item. - * The "key" is copied to the new item. - * Note that the value of the item "di_tv" still needs to be initialized! - */ -dictitem_T *dictitem_alloc(char_u *key) FUNC_ATTR_NONNULL_RET +/// Allocate a dictionary item +/// +/// @note that the value of the item di_tv still needs to be initialized. +/// +/// @param[in] key Item key. +/// @param[in] len Key length. +/// +/// @return [allocated] New dictionary item. +dictitem_T *dictitem_alloc_len(const char *const key, const size_t len) + FUNC_ATTR_NONNULL_RET FUNC_ATTR_MALLOC FUNC_ATTR_WARN_UNUSED_RESULT { - dictitem_T *di = xmalloc(offsetof(dictitem_T, di_key) + STRLEN(key) + 1); -#ifndef __clang_analyzer__ - STRCPY(di->di_key, key); -#endif + dictitem_T *const di = xmallocz(offsetof(dictitem_T, di_key) + len); + memcpy(di->di_key, key, len); di->di_flags = DI_FLAGS_ALLOC; return di; } +/// Allocate a dictionary item +/// +/// @note that the value of the item di_tv still needs to be initialized. +/// +/// @param[in] key Item key, NUL-terminated string. +/// +/// @return [allocated] New dictionary item. +dictitem_T *dictitem_alloc(const char_u *const key) + FUNC_ATTR_NONNULL_RET FUNC_ATTR_MALLOC FUNC_ATTR_WARN_UNUSED_RESULT +{ + return dictitem_alloc_len((const char *)key, STRLEN(key)); +} + /* * Make a copy of a Dictionary item. */ @@ -13386,37 +13402,7 @@ static void f_luaeval(typval_T *argvars, typval_T *rettv, FunPtr fptr) return; } - Object arg; - if (argvars[1].v_type == VAR_UNKNOWN) { - arg = NIL; - } else { - arg = vim_to_object(&argvars[1]); - } - - // TODO(ZyX-I): Create function which converts lua objects directly to VimL - // objects, not to API objects. - Error err; - String err_str; - Object ret = executor_eval_lua(cstr_as_string(str), arg, &err, &err_str); - if (err.set) { - if (err_str.size) { - EMSG3(_("E971: Failed to eval lua string: %s (%s)"), err.msg, - err_str.data); - } else { - EMSG2(_("E971: Failed to eval lua string: %s"), err.msg); - } - } - - api_free_string(err_str); - - if (!err.set) { - if (!object_to_vim(ret, rettv, &err)) { - EMSG2(_("E972: Failed to convert resulting API object to VimL: %s"), - err.msg); - } - } - - api_free_object(ret); + executor_eval_lua(cstr_as_string(str), &argvars[1], rettv); } /* diff --git a/src/nvim/eval/decode.c b/src/nvim/eval/decode.c index 43e9f76c0f..cb5a624f7b 100644 --- a/src/nvim/eval/decode.c +++ b/src/nvim/eval/decode.c @@ -7,6 +7,7 @@ #include "nvim/eval/encode.h" #include "nvim/ascii.h" #include "nvim/message.h" +#include "nvim/globals.h" #include "nvim/charset.h" // vim_str2nr #include "nvim/lib/kvec.h" #include "nvim/vim.h" // OK, FAIL @@ -218,6 +219,69 @@ static inline int json_decoder_pop(ValuesStackItem obj, } \ } while (0) +/// Create a new special dictionary that ought to represent a MAP +/// +/// @param[out] ret_tv Address where new special dictionary is saved. +/// +/// @return [allocated] list which should contain key-value pairs. Return value +/// may be safely ignored. +list_T *decode_create_map_special_dict(typval_T *const ret_tv) + FUNC_ATTR_NONNULL_ALL +{ + list_T *const list = list_alloc(); + list->lv_refcount++; + create_special_dict(ret_tv, kMPMap, ((typval_T) { + .v_type = VAR_LIST, + .v_lock = VAR_UNLOCKED, + .vval = { .v_list = list }, + })); + return list; +} + +/// Convert char* string to typval_T +/// +/// Depending on whether string has (no) NUL bytes, it may use a special +/// dictionary or decode string to VAR_STRING. +/// +/// @param[in] s String to decode. +/// @param[in] len String length. +/// @param[in] hasnul Whether string has NUL byte, not or it was not yet +/// determined. +/// @param[in] binary If true, save special string type as kMPBinary, +/// otherwise kMPString. +/// +/// @return Decoded string. +typval_T decode_string(const char *const s, const size_t len, + const TriState hasnul, const bool binary) + FUNC_ATTR_WARN_UNUSED_RESULT +{ + assert(s != NULL || len == 0); + const bool really_hasnul = (hasnul == kNone + ? memchr(s, NUL, len) != NULL + : (bool)hasnul); + if (really_hasnul) { + list_T *const list = list_alloc(); + list->lv_refcount++; + typval_T tv; + create_special_dict(&tv, binary ? kMPBinary : kMPString, ((typval_T) { + .v_type = VAR_LIST, + .v_lock = VAR_UNLOCKED, + .vval = { .v_list = list }, + })); + if (encode_list_write((void *)list, s, len) == -1) { + clear_tv(&tv); + return (typval_T) { .v_type = VAR_UNKNOWN, .v_lock = VAR_UNLOCKED }; + } + return tv; + } else { + return (typval_T) { + .v_type = VAR_STRING, + .v_lock = VAR_UNLOCKED, + .vval = { .v_string = xmemdupz(s, len) }, + }; + } +} + /// Parse JSON double-quoted string /// /// @param[in] conv Defines conversion necessary to convert UTF-8 string to @@ -428,29 +492,13 @@ static inline int parse_json_string(vimconv_T *const conv, str = new_str; str_end = new_str + str_len; } - if (hasnul) { - typval_T obj; - list_T *const list = list_alloc(); - list->lv_refcount++; - create_special_dict(&obj, kMPString, ((typval_T) { - .v_type = VAR_LIST, - .v_lock = VAR_UNLOCKED, - .vval = { .v_list = list }, - })); - if (encode_list_write((void *) list, str, (size_t) (str_end - str)) - == -1) { - clear_tv(&obj); - goto parse_json_string_fail; - } - xfree(str); - POP(obj, true); - } else { - *str_end = NUL; - POP(((typval_T) { - .v_type = VAR_STRING, - .vval = { .v_string = (char_u *) str }, - }), false); + typval_T obj; + obj = decode_string(str, (size_t)(str_end - str), hasnul ? kTrue : kFalse, + false); + if (obj.v_type == VAR_UNKNOWN) { + goto parse_json_string_fail; } + POP(obj, obj.v_type != VAR_STRING); goto parse_json_string_ret; parse_json_string_fail: ret = FAIL; @@ -827,13 +875,7 @@ json_decode_string_cycle_start: list_T *val_list = NULL; if (next_map_special) { next_map_special = false; - val_list = list_alloc(); - val_list->lv_refcount++; - create_special_dict(&tv, kMPMap, ((typval_T) { - .v_type = VAR_LIST, - .v_lock = VAR_UNLOCKED, - .vval = { .v_list = val_list }, - })); + val_list = decode_create_map_special_dict(&tv); } else { dict_T *dict = dict_alloc(); dict->dv_refcount++; @@ -980,37 +1022,15 @@ int msgpack_to_vim(const msgpack_object mobj, typval_T *const rettv) break; } case MSGPACK_OBJECT_STR: { - list_T *const list = list_alloc(); - list->lv_refcount++; - create_special_dict(rettv, kMPString, ((typval_T) { - .v_type = VAR_LIST, - .v_lock = VAR_UNLOCKED, - .vval = { .v_list = list }, - })); - if (encode_list_write((void *) list, mobj.via.str.ptr, mobj.via.str.size) - == -1) { + *rettv = decode_string(mobj.via.bin.ptr, mobj.via.bin.size, kTrue, false); + if (rettv->v_type == VAR_UNKNOWN) { return FAIL; } break; } case MSGPACK_OBJECT_BIN: { - if (memchr(mobj.via.bin.ptr, NUL, mobj.via.bin.size) == NULL) { - *rettv = (typval_T) { - .v_type = VAR_STRING, - .v_lock = VAR_UNLOCKED, - .vval = { .v_string = xmemdupz(mobj.via.bin.ptr, mobj.via.bin.size) }, - }; - break; - } - list_T *const list = list_alloc(); - list->lv_refcount++; - create_special_dict(rettv, kMPBinary, ((typval_T) { - .v_type = VAR_LIST, - .v_lock = VAR_UNLOCKED, - .vval = { .v_list = list }, - })); - if (encode_list_write((void *) list, mobj.via.bin.ptr, mobj.via.bin.size) - == -1) { + *rettv = decode_string(mobj.via.bin.ptr, mobj.via.bin.size, kNone, true); + if (rettv->v_type == VAR_UNKNOWN) { return FAIL; } break; @@ -1067,13 +1087,7 @@ int msgpack_to_vim(const msgpack_object mobj, typval_T *const rettv) } break; msgpack_to_vim_generic_map: {} - list_T *const list = list_alloc(); - list->lv_refcount++; - create_special_dict(rettv, kMPMap, ((typval_T) { - .v_type = VAR_LIST, - .v_lock = VAR_UNLOCKED, - .vval = { .v_list = list }, - })); + list_T *const list = decode_create_map_special_dict(rettv); for (size_t i = 0; i < mobj.via.map.size; i++) { list_T *const kv_pair = list_alloc(); list_append_list(list, kv_pair); diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c index 2105beb08a..123659aa5c 100644 --- a/src/nvim/viml/executor/converter.c +++ b/src/nvim/viml/executor/converter.c @@ -2,12 +2,24 @@ #include #include #include +#include +#include #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/func_attr.h" #include "nvim/memory.h" #include "nvim/assert.h" +// FIXME: vim.h is not actually needed, but otherwise it states MAXPATHL is +// redefined +#include "nvim/vim.h" +#include "nvim/globals.h" +#include "nvim/message.h" +#include "nvim/eval_defs.h" +#include "nvim/ascii.h" + +#include "nvim/lib/kvec.h" +#include "nvim/eval/decode.h" #include "nvim/viml/executor/converter.h" #include "nvim/viml/executor/executor.h" @@ -16,6 +28,382 @@ # include "viml/executor/converter.c.generated.h" #endif +/// Helper structure for nlua_pop_typval +typedef struct { + typval_T *tv; ///< Location where conversion result is saved. + bool container; ///< True if tv is a container. + bool special; ///< If true then tv is a _VAL part of special dictionary + ///< that represents mapping. +} PopStackItem; + +/// Convert lua object to VimL typval_T +/// +/// Should pop exactly one value from lua stack. +/// +/// @param lstate Lua state. +/// @param[out] ret_tv Where to put the result. +/// +/// @return `true` in case of success, `false` in case of failure. Error is +/// reported automatically. +bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) +{ + bool ret = true; +#ifndef NDEBUG + const int initial_size = lua_gettop(lstate); +#endif + kvec_t(PopStackItem) stack = KV_INITIAL_VALUE; + kv_push(stack, ((PopStackItem) { ret_tv, false, false })); + while (ret && kv_size(stack)) { + if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { + emsgf(_("E1502: Lua failed to grow stack to %i"), lua_gettop(lstate) + 3); + ret = false; + break; + } + PopStackItem cur = kv_pop(stack); + if (cur.container) { + if (cur.special || cur.tv->v_type == VAR_DICT) { + assert(cur.tv->v_type == (cur.special ? VAR_LIST : VAR_DICT)); + if (lua_next(lstate, -2)) { + assert(lua_type(lstate, -2) == LUA_TSTRING); + size_t len; + const char *s = lua_tolstring(lstate, -2, &len); + if (cur.special) { + list_T *const kv_pair = list_alloc(); + list_append_list(cur.tv->vval.v_list, kv_pair); + listitem_T *const key = listitem_alloc(); + key->li_tv = decode_string(s, len, kTrue, false); + list_append(kv_pair, key); + if (key->li_tv.v_type == VAR_UNKNOWN) { + ret = false; + list_unref(kv_pair); + continue; + } + listitem_T *const val = listitem_alloc(); + list_append(kv_pair, val); + kv_push(stack, cur); + cur = (PopStackItem) { &val->li_tv, false, false }; + } else { + dictitem_T *const di = dictitem_alloc_len(s, len); + if (dict_add(cur.tv->vval.v_dict, di) == FAIL) { + assert(false); + } + kv_push(stack, cur); + cur = (PopStackItem) { &di->di_tv, false, false }; + } + } else { + lua_pop(lstate, 1); + continue; + } + } else { + assert(cur.tv->v_type == VAR_LIST); + lua_rawgeti(lstate, -1, cur.tv->vval.v_list->lv_len + 1); + if (lua_isnil(lstate, -1)) { + lua_pop(lstate, 1); + lua_pop(lstate, 1); + continue; + } + listitem_T *li = listitem_alloc(); + list_append(cur.tv->vval.v_list, li); + kv_push(stack, cur); + cur = (PopStackItem) { &li->li_tv, false, false }; + } + } + assert(!cur.container); + memset(cur.tv, 0, sizeof(*cur.tv)); + switch (lua_type(lstate, -1)) { + case LUA_TNIL: { + cur.tv->v_type = VAR_SPECIAL; + cur.tv->vval.v_special = kSpecialVarNull; + break; + } + case LUA_TBOOLEAN: { + cur.tv->v_type = VAR_SPECIAL; + cur.tv->vval.v_special = (lua_toboolean(lstate, -1) + ? kSpecialVarTrue + : kSpecialVarFalse); + break; + } + case LUA_TSTRING: { + size_t len; + const char *s = lua_tolstring(lstate, -1, &len); + *cur.tv = decode_string(s, len, kNone, true); + if (cur.tv->v_type == VAR_UNKNOWN) { + ret = false; + } + break; + } + case LUA_TNUMBER: { + const lua_Number n = lua_tonumber(lstate, -1); + if (n > (lua_Number)VARNUMBER_MAX || n < (lua_Number)VARNUMBER_MIN + || ((lua_Number)((varnumber_T)n)) != n) { + cur.tv->v_type = VAR_FLOAT; + cur.tv->vval.v_float = (float_T)n; + } else { + cur.tv->v_type = VAR_NUMBER; + cur.tv->vval.v_number = (varnumber_T)n; + } + break; + } + case LUA_TTABLE: { + bool has_string = false; + bool has_string_with_nul = false; + bool has_other = false; + size_t maxidx = 0; + size_t tsize = 0; + lua_pushnil(lstate); + while (lua_next(lstate, -2)) { + switch (lua_type(lstate, -2)) { + case LUA_TSTRING: { + size_t len; + const char *s = lua_tolstring(lstate, -2, &len); + if (memchr(s, NUL, len) != NULL) { + has_string_with_nul = true; + } + has_string = true; + break; + } + case LUA_TNUMBER: { + const lua_Number n = lua_tonumber(lstate, -2); + if (n > (lua_Number)SIZE_MAX || n <= 0 + || ((lua_Number)((size_t)n)) != n) { + has_other = true; + } else { + const size_t idx = (size_t)n; + if (idx > maxidx) { + maxidx = idx; + } + } + break; + } + default: { + has_other = true; + break; + } + } + tsize++; + lua_pop(lstate, 1); + } + + if (tsize == 0) { + // Assuming empty list + cur.tv->v_type = VAR_LIST; + cur.tv->vval.v_list = list_alloc(); + cur.tv->vval.v_list->lv_refcount++; + } else if (tsize == maxidx && !has_other && !has_string) { + // Assuming array + cur.tv->v_type = VAR_LIST; + cur.tv->vval.v_list = list_alloc(); + cur.tv->vval.v_list->lv_refcount++; + cur.container = true; + kv_push(stack, cur); + } else if (has_string && !has_other && maxidx == 0) { + // Assuming dictionary + cur.special = has_string_with_nul; + if (has_string_with_nul) { + decode_create_map_special_dict(cur.tv); + assert(cur.tv->v_type = VAR_DICT); + dictitem_T *const val_di = dict_find(cur.tv->vval.v_dict, + (char_u *)"_VAL", 4); + assert(val_di != NULL); + cur.tv = &val_di->di_tv; + assert(cur.tv->v_type == VAR_LIST); + } else { + cur.tv->v_type = VAR_DICT; + cur.tv->vval.v_dict = dict_alloc(); + cur.tv->vval.v_dict->dv_refcount++; + } + cur.container = true; + kv_push(stack, cur); + lua_pushnil(lstate); + } else { + EMSG(_("E5100: Cannot convert given lua table: table " + "should either have a sequence of positive integer keys " + "or contain only string keys")); + ret = false; + } + break; + } + default: { + EMSG(_("E5101: Cannot convert given lua type")); + ret = false; + break; + } + } + if (!cur.container) { + lua_pop(lstate, 1); + } + } + kv_destroy(stack); + if (!ret) { + clear_tv(ret_tv); + memset(ret_tv, 0, sizeof(*ret_tv)); + lua_pop(lstate, lua_gettop(lstate) - initial_size + 1); + } + assert(lua_gettop(lstate) == initial_size - 1); + return ret; +} + +#define TYPVAL_ENCODE_ALLOW_SPECIALS true + +#define TYPVAL_ENCODE_CONV_NIL(tv) \ + lua_pushnil(lstate) + +#define TYPVAL_ENCODE_CONV_BOOL(tv, num) \ + lua_pushboolean(lstate, (bool)(num)) + +#define TYPVAL_ENCODE_CONV_NUMBER(tv, num) \ + lua_pushnumber(lstate, (lua_Number)(num)) + +#define TYPVAL_ENCODE_CONV_UNSIGNED_NUMBER TYPVAL_ENCODE_CONV_NUMBER + +#define TYPVAL_ENCODE_CONV_FLOAT(tv, flt) \ + TYPVAL_ENCODE_CONV_NUMBER(tv, flt) + +#define TYPVAL_ENCODE_CONV_STRING(tv, str, len) \ + lua_pushlstring(lstate, (const char *)(str), (len)) + +#define TYPVAL_ENCODE_CONV_STR_STRING TYPVAL_ENCODE_CONV_STRING + +#define TYPVAL_ENCODE_CONV_EXT_STRING(tv, str, len, type) \ + TYPVAL_ENCODE_CONV_NIL() + +#define TYPVAL_ENCODE_CONV_FUNC_START(tv, fun) \ + do { \ + TYPVAL_ENCODE_CONV_NIL(tv); \ + goto typval_encode_stop_converting_one_item; \ + } while (0) + +#define TYPVAL_ENCODE_CONV_FUNC_BEFORE_ARGS(tv, len) +#define TYPVAL_ENCODE_CONV_FUNC_BEFORE_SELF(tv, len) +#define TYPVAL_ENCODE_CONV_FUNC_END(tv) + +#define TYPVAL_ENCODE_CONV_EMPTY_LIST(tv) \ + lua_createtable(lstate, 0, 0) + +#define TYPVAL_ENCODE_CONV_EMPTY_DICT(tv, dict) \ + TYPVAL_ENCODE_CONV_EMPTY_LIST() + +#define TYPVAL_ENCODE_CONV_LIST_START(tv, len) \ + do { \ + if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { \ + emsgf(_("E5102: Lua failed to grow stack to %i"), \ + lua_gettop(lstate) + 3); \ + return false; \ + } \ + lua_createtable(lstate, (int)(len), 0); \ + lua_pushnumber(lstate, 1); \ + } while (0) + +#define TYPVAL_ENCODE_CONV_REAL_LIST_AFTER_START(tv, mpsv) + +#define TYPVAL_ENCODE_CONV_LIST_BETWEEN_ITEMS(tv) \ + do { \ + lua_Number idx = lua_tonumber(lstate, -2); \ + lua_rawset(lstate, -3); \ + lua_pushnumber(lstate, idx + 1); \ + } while (0) + +#define TYPVAL_ENCODE_CONV_LIST_END(tv) \ + lua_rawset(lstate, -3) + +#define TYPVAL_ENCODE_CONV_DICT_START(tv, dict, len) \ + do { \ + if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { \ + emsgf(_("E5102: Lua failed to grow stack to %i"), \ + lua_gettop(lstate) + 3); \ + return false; \ + } \ + lua_createtable(lstate, 0, (int)(len)); \ + } while (0) + +#define TYPVAL_ENCODE_SPECIAL_DICT_KEY_CHECK(label, kv_pair) + +#define TYPVAL_ENCODE_CONV_REAL_DICT_AFTER_START(tv, dict, mpsv) + +#define TYPVAL_ENCODE_CONV_DICT_AFTER_KEY(tv, dict) + +#define TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS(tv, dict) \ + lua_rawset(lstate, -3) + +#define TYPVAL_ENCODE_CONV_DICT_END(tv, dict) \ + TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS(tv, dict) + +#define TYPVAL_ENCODE_CONV_RECURSE(val, conv_type) \ + do { \ + for (size_t backref = kv_size(*mpstack); backref; backref--) { \ + const MPConvStackVal mpval = kv_A(*mpstack, backref - 1); \ + if (mpval.type == conv_type) { \ + if (conv_type == kMPConvDict \ + ? (void *) mpval.data.d.dict == (void *) (val) \ + : (void *) mpval.data.l.list == (void *) (val)) { \ + lua_pushvalue(lstate, \ + 1 - ((int)((kv_size(*mpstack) - backref + 1) * 2))); \ + break; \ + } \ + } \ + } \ + } while (0) + +#define TYPVAL_ENCODE_SCOPE static +#define TYPVAL_ENCODE_NAME lua +#define TYPVAL_ENCODE_FIRST_ARG_TYPE lua_State *const +#define TYPVAL_ENCODE_FIRST_ARG_NAME lstate +#include "nvim/eval/typval_encode.c.h" +#undef TYPVAL_ENCODE_SCOPE +#undef TYPVAL_ENCODE_NAME +#undef TYPVAL_ENCODE_FIRST_ARG_TYPE +#undef TYPVAL_ENCODE_FIRST_ARG_NAME + +#undef TYPVAL_ENCODE_CONV_STRING +#undef TYPVAL_ENCODE_CONV_STR_STRING +#undef TYPVAL_ENCODE_CONV_EXT_STRING +#undef TYPVAL_ENCODE_CONV_NUMBER +#undef TYPVAL_ENCODE_CONV_FLOAT +#undef TYPVAL_ENCODE_CONV_FUNC_START +#undef TYPVAL_ENCODE_CONV_FUNC_BEFORE_ARGS +#undef TYPVAL_ENCODE_CONV_FUNC_BEFORE_SELF +#undef TYPVAL_ENCODE_CONV_FUNC_END +#undef TYPVAL_ENCODE_CONV_EMPTY_LIST +#undef TYPVAL_ENCODE_CONV_LIST_START +#undef TYPVAL_ENCODE_CONV_REAL_LIST_AFTER_START +#undef TYPVAL_ENCODE_CONV_EMPTY_DICT +#undef TYPVAL_ENCODE_CONV_NIL +#undef TYPVAL_ENCODE_CONV_BOOL +#undef TYPVAL_ENCODE_CONV_UNSIGNED_NUMBER +#undef TYPVAL_ENCODE_CONV_DICT_START +#undef TYPVAL_ENCODE_CONV_REAL_DICT_AFTER_START +#undef TYPVAL_ENCODE_CONV_DICT_END +#undef TYPVAL_ENCODE_CONV_DICT_AFTER_KEY +#undef TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS +#undef TYPVAL_ENCODE_SPECIAL_DICT_KEY_CHECK +#undef TYPVAL_ENCODE_CONV_LIST_END +#undef TYPVAL_ENCODE_CONV_LIST_BETWEEN_ITEMS +#undef TYPVAL_ENCODE_CONV_RECURSE +#undef TYPVAL_ENCODE_ALLOW_SPECIALS + +/// Convert VimL typval_T to lua value +/// +/// Should leave single value in lua stack. May only fail if lua failed to grow +/// stack. +/// +/// @param lstate Lua interpreter state. +/// @param[in] tv typval_T to convert. +/// +/// @return true in case of success, false otherwise. +bool nlua_push_typval(lua_State *lstate, typval_T *const tv) +{ + const int initial_size = lua_gettop(lstate); + if (!lua_checkstack(lstate, initial_size + 1)) { + emsgf(_("E1502: Lua failed to grow stack to %i"), initial_size + 4); + return false; + } + if (encode_vim_to_lua(lstate, tv, "nlua_push_typval argument") == FAIL) { + return false; + } + assert(lua_gettop(lstate) == initial_size + 1); + return true; +} + #define NLUA_PUSH_IDX(lstate, type, idx) \ do { \ STATIC_ASSERT(sizeof(type) <= sizeof(lua_Number), \ diff --git a/src/nvim/viml/executor/converter.h b/src/nvim/viml/executor/converter.h index e11d0cef19..dbbaaebf6b 100644 --- a/src/nvim/viml/executor/converter.h +++ b/src/nvim/viml/executor/converter.h @@ -3,8 +3,11 @@ #include #include +#include + #include "nvim/api/private/defs.h" #include "nvim/func_attr.h" +#include "nvim/eval.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "viml/executor/converter.h.generated.h" diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index 6f1e847649..a9d05bcd31 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -36,7 +36,19 @@ typedef struct { lua_pushcfunction(lstate, &function); \ lua_call(lstate, 0, numret); \ } while (0) -/// Call C function which expects four arguments +/// Call C function which expects two arguments +/// +/// @param function Called function +/// @param numret Number of returned arguments +/// @param a… Supplied argument (should be a void* pointer) +#define NLUA_CALL_C_FUNCTION_2(lstate, function, numret, a1, a2) \ + do { \ + lua_pushcfunction(lstate, &function); \ + lua_pushlightuserdata(lstate, a1); \ + lua_pushlightuserdata(lstate, a2); \ + lua_call(lstate, 2, numret); \ + } while (0) +/// Call C function which expects three arguments /// /// @param function Called function /// @param numret Number of returned arguments @@ -64,15 +76,19 @@ typedef struct { lua_call(lstate, 4, numret); \ } while (0) -static void set_lua_error(lua_State *lstate, LuaError *lerr) +/// Convert lua error into a Vim error message +/// +/// @param lstate Lua interpreter state. +/// @param[in] msg Message base, must contain one `%s`. +static void nlua_error(lua_State *const lstate, const char *const msg) FUNC_ATTR_NONNULL_ALL { - const char *const str = lua_tolstring(lstate, -1, &lerr->lua_err_str.size); - lerr->lua_err_str.data = xmemdupz(str, lerr->lua_err_str.size); - lua_pop(lstate, 1); + size_t len; + const char *const str = lua_tolstring(lstate, -1, &len); + + EMSG2(msg, str); - // FIXME? More specific error? - set_api_error("Error while executing lua code", &lerr->err); + lua_pop(lstate, 1); } /// Compare two strings, ignoring case @@ -94,25 +110,26 @@ static int nlua_stricmp(lua_State *lstate) FUNC_ATTR_NONNULL_ALL /// Evaluate lua string /// -/// Expects three values on the stack: string to evaluate, pointer to the -/// location where result is saved, pointer to the location where error is -/// saved. Always returns nothing (from the lua point of view). +/// Expects two values on the stack: string to evaluate, pointer to the +/// location where result is saved. Always returns nothing (from the lua point +/// of view). static int nlua_exec_lua_string(lua_State *lstate) FUNC_ATTR_NONNULL_ALL { - String *str = (String *) lua_touserdata(lstate, 1); - Object *obj = (Object *) lua_touserdata(lstate, 2); - LuaError *lerr = (LuaError *) lua_touserdata(lstate, 3); - lua_pop(lstate, 3); + String *str = (String *)lua_touserdata(lstate, 1); + typval_T *ret_tv = (typval_T *)lua_touserdata(lstate, 2); + lua_pop(lstate, 2); if (luaL_loadbuffer(lstate, str->data, str->size, NLUA_EVAL_NAME)) { - set_lua_error(lstate, lerr); + nlua_error(lstate, _("E5104: Error while creating lua chunk: %s")); return 0; } if (lua_pcall(lstate, 0, 1, 0)) { - set_lua_error(lstate, lerr); + nlua_error(lstate, _("E5105: Error while calling lua chunk: %s")); + return 0; + } + if (!nlua_pop_typval(lstate, ret_tv)) { return 0; } - *obj = nlua_pop_Object(lstate, &lerr->err); return 0; } @@ -124,8 +141,7 @@ static int nlua_state_init(lua_State *lstate) FUNC_ATTR_NONNULL_ALL lua_pushcfunction(lstate, &nlua_stricmp); lua_setglobal(lstate, "stricmp"); if (luaL_dostring(lstate, (char *) &vim_module[0])) { - LuaError lerr; - set_lua_error(lstate, &lerr); + nlua_error(lstate, _("E5106: Error while creating vim module: %s")); return 1; } nlua_add_api_functions(lstate); @@ -150,14 +166,6 @@ static lua_State *init_lua(void) return lstate; } -static Object exec_lua_string(lua_State *lstate, String str, LuaError *lerr) - FUNC_ATTR_NONNULL_ALL -{ - Object ret = { kObjectTypeNil, { false } }; - NLUA_CALL_C_FUNCTION_3(lstate, nlua_exec_lua_string, 0, &str, &ret, lerr); - return ret; -} - static lua_State *global_lstate = NULL; /// Execute lua string @@ -165,28 +173,17 @@ static lua_State *global_lstate = NULL; /// Used for :lua. /// /// @param[in] str String to execute. -/// @param[out] err Location where error will be saved. -/// @param[out] err_str Location where lua error string will be saved, if any. +/// @param[out] ret_tv Location where result will be saved. /// /// @return Result of the execution. -Object executor_exec_lua(String str, Error *err, String *err_str) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +void executor_exec_lua(String str, typval_T *ret_tv) + FUNC_ATTR_NONNULL_ALL { if (global_lstate == NULL) { global_lstate = init_lua(); } - LuaError lerr = { - .err = { .set = false }, - .lua_err_str = STRING_INIT, - }; - - Object ret = exec_lua_string(global_lstate, str, &lerr); - - *err = lerr.err; - *err_str = lerr.lua_err_str; - - return ret; + NLUA_CALL_C_FUNCTION_2(global_lstate, nlua_exec_lua_string, 0, &str, ret_tv); } /// Evaluate lua string @@ -196,75 +193,73 @@ Object executor_exec_lua(String str, Error *err, String *err_str) /// 1. String to evaluate. /// 2. _A value. /// 3. Pointer to location where result is saved. -/// 4. Pointer to location where error will be saved. /// /// @param[in,out] lstate Lua interpreter state. static int nlua_eval_lua_string(lua_State *lstate) FUNC_ATTR_NONNULL_ALL { - String *str = (String *) lua_touserdata(lstate, 1); - Object *arg = (Object *) lua_touserdata(lstate, 2); - Object *ret = (Object *) lua_touserdata(lstate, 3); - LuaError *lerr = (LuaError *) lua_touserdata(lstate, 4); + String *str = (String *)lua_touserdata(lstate, 1); + typval_T *arg = (typval_T *)lua_touserdata(lstate, 2); + typval_T *ret_tv = (typval_T *)lua_touserdata(lstate, 3); + lua_pop(lstate, 3); garray_T str_ga; ga_init(&str_ga, 1, 80); -#define EVALHEADER "local _A=select(1,...) return " - ga_concat_len(&str_ga, EVALHEADER, sizeof(EVALHEADER) - 1); +#define EVALHEADER "local _A=select(1,...) return (" + const size_t lcmd_len = sizeof(EVALHEADER) - 1 + str->size + 1; + char *lcmd; + if (lcmd_len < IOSIZE) { + lcmd = (char *)IObuff; + } else { + lcmd = xmalloc(lcmd_len); + } + memcpy(lcmd, EVALHEADER, sizeof(EVALHEADER) - 1); + memcpy(lcmd + sizeof(EVALHEADER) - 1, str->data, str->size); + lcmd[lcmd_len - 1] = ')'; #undef EVALHEADER - ga_concat_len(&str_ga, str->data, str->size); - if (luaL_loadbuffer(lstate, str_ga.ga_data, (size_t) str_ga.ga_len, - NLUA_EVAL_NAME)) { - set_lua_error(lstate, lerr); + if (luaL_loadbuffer(lstate, lcmd, lcmd_len, NLUA_EVAL_NAME)) { + nlua_error(lstate, + _("E5107: Error while creating lua chunk for luaeval(): %s")); return 0; } - ga_clear(&str_ga); + if (lcmd != (char *)IObuff) { + xfree(lcmd); + } - nlua_push_Object(lstate, *arg); + if (arg == NULL || arg->v_type == VAR_UNKNOWN) { + lua_pushnil(lstate); + } else { + nlua_push_typval(lstate, arg); + } if (lua_pcall(lstate, 1, 1, 0)) { - set_lua_error(lstate, lerr); + nlua_error(lstate, + _("E5108: Error while calling lua chunk for luaeval(): %s")); + return 0; + } + if (!nlua_pop_typval(lstate, ret_tv)) { return 0; } - *ret = nlua_pop_Object(lstate, &lerr->err); return 0; } -static Object eval_lua_string(lua_State *lstate, String str, Object arg, - LuaError *lerr) - FUNC_ATTR_NONNULL_ALL -{ - Object ret = { kObjectTypeNil, { false } }; - NLUA_CALL_C_FUNCTION_4(lstate, nlua_eval_lua_string, 0, - &str, &arg, &ret, lerr); - return ret; -} - /// Evaluate lua string /// /// Used for luaeval(). /// /// @param[in] str String to execute. -/// @param[out] err Location where error will be saved. -/// @param[out] err_str Location where lua error string will be saved, if any. +/// @param[in] arg Second argument to `luaeval()`. +/// @param[out] ret_tv Location where result will be saved. /// /// @return Result of the execution. -Object executor_eval_lua(String str, Object arg, Error *err, String *err_str) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +void executor_eval_lua(const String str, typval_T *const arg, + typval_T *const ret_tv) + FUNC_ATTR_NONNULL_ALL { if (global_lstate == NULL) { global_lstate = init_lua(); } - LuaError lerr = { - .err = { .set = false }, - .lua_err_str = STRING_INIT, - }; - - Object ret = eval_lua_string(global_lstate, str, arg, &lerr); - - *err = lerr.err; - *err_str = lerr.lua_err_str; - - return ret; + NLUA_CALL_C_FUNCTION_3(global_lstate, nlua_eval_lua_string, 0, + (void *)&str, arg, ret_tv); } -- cgit From a4dc8de0739d8e9e910d786a9b6fbfbc162aee9c Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 10 Jul 2016 21:49:59 +0300 Subject: *: Silence linter --- src/nvim/eval.c | 2 +- src/nvim/viml/executor/converter.c | 20 ++++++++++---------- src/nvim/viml/executor/executor.c | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 248383d2e1..c349a601c6 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -13397,7 +13397,7 @@ static void get_maparg(typval_T *argvars, typval_T *rettv, int exact) static void f_luaeval(typval_T *argvars, typval_T *rettv, FunPtr fptr) FUNC_ATTR_NONNULL_ALL { - char *const str = (char *) get_tv_string(&argvars[0]); + const char *const str = (const char *)get_tv_string(&argvars[0]); if (str == NULL) { return; } diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c index 123659aa5c..fb7bbd51eb 100644 --- a/src/nvim/viml/executor/converter.c +++ b/src/nvim/viml/executor/converter.c @@ -334,8 +334,8 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) const MPConvStackVal mpval = kv_A(*mpstack, backref - 1); \ if (mpval.type == conv_type) { \ if (conv_type == kMPConvDict \ - ? (void *) mpval.data.d.dict == (void *) (val) \ - : (void *) mpval.data.l.list == (void *) (val)) { \ + ? (void *)mpval.data.d.dict == (void *)(val) \ + : (void *)mpval.data.l.list == (void *)(val)) { \ lua_pushvalue(lstate, \ 1 - ((int)((kv_size(*mpstack) - backref + 1) * 2))); \ break; \ @@ -450,7 +450,7 @@ static inline void nlua_push_locks_idx(lua_State *lstate) static inline void nlua_push_val_idx(lua_State *lstate) FUNC_ATTR_NONNULL_ALL { - lua_pushnumber(lstate, (lua_Number) 0); + lua_pushnumber(lstate, (lua_Number)0); } /// Push type @@ -480,7 +480,7 @@ static inline void nlua_create_typed_table(lua_State *lstate, const char *const type) FUNC_ATTR_NONNULL_ALL { - lua_createtable(lstate, (int) narr, (int) (1 + nrec)); + lua_createtable(lstate, (int)narr, (int)(1 + nrec)); nlua_push_type_idx(lstate); nlua_push_type(lstate, type); lua_rawset(lstate, -3); @@ -502,7 +502,7 @@ void nlua_push_String(lua_State *lstate, const String s) void nlua_push_Integer(lua_State *lstate, const Integer n) FUNC_ATTR_NONNULL_ALL { - lua_pushnumber(lstate, (lua_Number) n); + lua_pushnumber(lstate, (lua_Number)n); } /// Convert given Float to lua table @@ -513,7 +513,7 @@ void nlua_push_Float(lua_State *lstate, const Float f) { nlua_create_typed_table(lstate, 0, 1, "float"); nlua_push_val_idx(lstate); - lua_pushnumber(lstate, (lua_Number) f); + lua_pushnumber(lstate, (lua_Number)f); lua_rawset(lstate, -3); } @@ -558,7 +558,7 @@ void nlua_push_Array(lua_State *lstate, const Array array) nlua_add_locks_table(lstate); for (size_t i = 0; i < array.size; i++) { nlua_push_Object(lstate, array.items[i]); - lua_rawseti(lstate, -3, (int) i + 1); + lua_rawseti(lstate, -3, (int)i + 1); } } @@ -619,7 +619,7 @@ String nlua_pop_String(lua_State *lstate, Error *err) { String ret; - ret.data = (char *) lua_tolstring(lstate, -1, &(ret.size)); + ret.data = (char *)lua_tolstring(lstate, -1, &(ret.size)); if (ret.data == NULL) { lua_pop(lstate, 1); @@ -646,7 +646,7 @@ Integer nlua_pop_Integer(lua_State *lstate, Error *err) set_api_error("Expected lua integer", err); return ret; } - ret = (Integer) lua_tonumber(lstate, -1); + ret = (Integer)lua_tonumber(lstate, -1); lua_pop(lstate, 1); return ret; @@ -744,7 +744,7 @@ Array nlua_pop_Array(lua_State *lstate, Error *err) for (size_t i = 1; i <= ret.size; i++) { Object val; - lua_rawgeti(lstate, -1, (int) i); + lua_rawgeti(lstate, -1, (int)i); val = nlua_pop_Object(lstate, err); if (err->set) { diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index a9d05bcd31..1a7b5f8915 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -104,7 +104,7 @@ static int nlua_stricmp(lua_State *lstate) FUNC_ATTR_NONNULL_ALL const char *s2 = luaL_checklstring(lstate, 2, NULL); const int ret = STRICMP(s1, s2); lua_pop(lstate, 2); - lua_pushnumber(lstate, (lua_Number) ((ret > 0) - (ret < 0))); + lua_pushnumber(lstate, (lua_Number)((ret > 0) - (ret < 0))); return 1; } @@ -140,7 +140,7 @@ static int nlua_state_init(lua_State *lstate) FUNC_ATTR_NONNULL_ALL { lua_pushcfunction(lstate, &nlua_stricmp); lua_setglobal(lstate, "stricmp"); - if (luaL_dostring(lstate, (char *) &vim_module[0])) { + if (luaL_dostring(lstate, (char *)&vim_module[0])) { nlua_error(lstate, _("E5106: Error while creating vim module: %s")); return 1; } -- cgit From ed3115bd26047c9b125798d9cb56d09b155a243b Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 11 Jul 2016 20:42:27 +0300 Subject: executor: Make sure it works with API values --- src/nvim/api/vim.c | 16 +- src/nvim/eval.c | 2 +- src/nvim/viml/executor/converter.c | 547 +++++++++++++++++++++++-------------- src/nvim/viml/executor/executor.c | 1 + 4 files changed, 362 insertions(+), 204 deletions(-) (limited to 'src') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 413456c615..24959e9a59 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -197,7 +197,21 @@ Object nvim_eval(String expr, Error *err) return rv; } -/// Calls a VimL function with the given arguments. +/// Returns object given as argument +/// +/// This API function is used for testing. One should not rely on its presence +/// in plugins. +/// +/// @param[in] obj Object to return. +/// +/// @return its argument. +Object _vim_id(Object obj) +{ + return obj; +} + +/// Calls a VimL function with the given arguments +/// /// On VimL error: Returns a generic error; v:errmsg is not updated. /// /// @param fname Function to call diff --git a/src/nvim/eval.c b/src/nvim/eval.c index c349a601c6..de82f8a145 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -13402,7 +13402,7 @@ static void f_luaeval(typval_T *argvars, typval_T *rettv, FunPtr fptr) return; } - executor_eval_lua(cstr_as_string(str), &argvars[1], rettv); + executor_eval_lua(cstr_as_string((char *)str), &argvars[1], rettv); } /* diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c index fb7bbd51eb..c127b87738 100644 --- a/src/nvim/viml/executor/converter.c +++ b/src/nvim/viml/executor/converter.c @@ -24,10 +24,121 @@ #include "nvim/viml/executor/converter.h" #include "nvim/viml/executor/executor.h" +/// Determine, which keys lua table contains +typedef struct { + size_t maxidx; ///< Maximum positive integral value found. + size_t string_keys_num; ///< Number of string keys. + bool has_string_with_nul; ///< True if there is string key with NUL byte. + ObjectType type; ///< If has_type_key is true then attached value. Otherwise + ///< either kObjectTypeNil, kObjectTypeDictionary or + ///< kObjectTypeArray, depending on other properties. + lua_Number val; ///< If has_val_key and val_type == LUA_TNUMBER: value. +} LuaTableProps; + #ifdef INCLUDE_GENERATED_DECLARATIONS # include "viml/executor/converter.c.generated.h" #endif +#define TYPE_IDX_VALUE true +#define VAL_IDX_VALUE false + +#define LUA_PUSH_STATIC_STRING(lstate, s) \ + lua_pushlstring(lstate, s, sizeof(s) - 1) + +static LuaTableProps nlua_traverse_table(lua_State *const lstate) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + bool has_type_key = false; // True if type key was found, + // @see nlua_push_type_idx(). + size_t tsize = 0; // Total number of keys. + int val_type = 0; // If has_val_key: lua type of the value. + bool has_val_key = false; // True if val key was found, + // @see nlua_push_val_idx(). + bool has_other = false; // True if there are keys that are not strings + // or positive integral values. + LuaTableProps ret; + memset(&ret, 0, sizeof(ret)); + if (!lua_checkstack(lstate, lua_gettop(lstate) + 2)) { + emsgf(_("E1502: Lua failed to grow stack to %i"), lua_gettop(lstate) + 2); + ret.type = kObjectTypeNil; + return ret; + } + lua_pushnil(lstate); + while (lua_next(lstate, -2)) { + switch (lua_type(lstate, -2)) { + case LUA_TSTRING: { + size_t len; + const char *s = lua_tolstring(lstate, -2, &len); + if (memchr(s, NUL, len) != NULL) { + ret.has_string_with_nul = true; + } + ret.string_keys_num++; + break; + } + case LUA_TNUMBER: { + const lua_Number n = lua_tonumber(lstate, -2); + if (n > (lua_Number)SIZE_MAX || n <= 0 + || ((lua_Number)((size_t)n)) != n) { + has_other = true; + } else { + const size_t idx = (size_t)n; + if (idx > ret.maxidx) { + ret.maxidx = idx; + } + } + break; + } + case LUA_TBOOLEAN: { + const bool b = lua_toboolean(lstate, -2); + if (b == TYPE_IDX_VALUE) { + if (lua_type(lstate, -1) == LUA_TNUMBER) { + lua_Number n = lua_tonumber(lstate, -1); + if (n == (lua_Number)kObjectTypeFloat + || n == (lua_Number)kObjectTypeArray + || n == (lua_Number)kObjectTypeDictionary) { + has_type_key = true; + ret.type = (ObjectType)n; + } else { + has_other = true; + } + } else { + has_other = true; + } + } else { + has_val_key = true; + val_type = lua_type(lstate, -1); + if (val_type == LUA_TNUMBER) { + ret.val = lua_tonumber(lstate, -1); + } + } + break; + } + default: { + has_other = true; + break; + } + } + tsize++; + lua_pop(lstate, 1); + } + if (has_type_key) { + if (ret.type == kObjectTypeFloat + && (!has_val_key || val_type != LUA_TNUMBER)) { + ret.type = kObjectTypeNil; + } + } else { + if (tsize == 0 + || (tsize == ret.maxidx && !has_other && ret.string_keys_num == 0)) { + ret.type = kObjectTypeArray; + } else if (ret.string_keys_num == tsize) { + ret.type = kObjectTypeDictionary; + } else { + ret.type = kObjectTypeNil; + } + } + return ret; +} + /// Helper structure for nlua_pop_typval typedef struct { typval_T *tv; ///< Location where conversion result is saved. @@ -63,8 +174,15 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) if (cur.container) { if (cur.special || cur.tv->v_type == VAR_DICT) { assert(cur.tv->v_type == (cur.special ? VAR_LIST : VAR_DICT)); - if (lua_next(lstate, -2)) { - assert(lua_type(lstate, -2) == LUA_TSTRING); + bool next_key_found = false; + while (lua_next(lstate, -2)) { + if (lua_type(lstate, -2) == LUA_TSTRING) { + next_key_found = true; + break; + } + lua_pop(lstate, 1); + } + if (next_key_found) { size_t len; const char *s = lua_tolstring(lstate, -2, &len); if (cur.special) { @@ -109,7 +227,11 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) } } assert(!cur.container); - memset(cur.tv, 0, sizeof(*cur.tv)); + *cur.tv = (typval_T) { + .v_type = VAR_NUMBER, + .v_lock = VAR_UNLOCKED, + .vval = { .v_number = 0 }, + }; switch (lua_type(lstate, -1)) { case LUA_TNIL: { cur.tv->v_type = VAR_SPECIAL; @@ -145,81 +267,64 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) break; } case LUA_TTABLE: { - bool has_string = false; - bool has_string_with_nul = false; - bool has_other = false; - size_t maxidx = 0; - size_t tsize = 0; - lua_pushnil(lstate); - while (lua_next(lstate, -2)) { - switch (lua_type(lstate, -2)) { - case LUA_TSTRING: { - size_t len; - const char *s = lua_tolstring(lstate, -2, &len); - if (memchr(s, NUL, len) != NULL) { - has_string_with_nul = true; - } - has_string = true; - break; + const LuaTableProps table_props = nlua_traverse_table(lstate); + + switch (table_props.type) { + case kObjectTypeArray: { + if (table_props.maxidx == 0) { + cur.tv->v_type = VAR_LIST; + cur.tv->vval.v_list = list_alloc(); + cur.tv->vval.v_list->lv_refcount++; + } else { + cur.tv->v_type = VAR_LIST; + cur.tv->vval.v_list = list_alloc(); + cur.tv->vval.v_list->lv_refcount++; + cur.container = true; + kv_push(stack, cur); } - case LUA_TNUMBER: { - const lua_Number n = lua_tonumber(lstate, -2); - if (n > (lua_Number)SIZE_MAX || n <= 0 - || ((lua_Number)((size_t)n)) != n) { - has_other = true; + break; + } + case kObjectTypeDictionary: { + if (table_props.string_keys_num == 0) { + cur.tv->v_type = VAR_DICT; + cur.tv->vval.v_dict = dict_alloc(); + cur.tv->vval.v_dict->dv_refcount++; + } else { + cur.special = table_props.has_string_with_nul; + if (table_props.has_string_with_nul) { + decode_create_map_special_dict(cur.tv); + assert(cur.tv->v_type = VAR_DICT); + dictitem_T *const val_di = dict_find(cur.tv->vval.v_dict, + (char_u *)"_VAL", 4); + assert(val_di != NULL); + cur.tv = &val_di->di_tv; + assert(cur.tv->v_type == VAR_LIST); } else { - const size_t idx = (size_t)n; - if (idx > maxidx) { - maxidx = idx; - } + cur.tv->v_type = VAR_DICT; + cur.tv->vval.v_dict = dict_alloc(); + cur.tv->vval.v_dict->dv_refcount++; } - break; - } - default: { - has_other = true; - break; + cur.container = true; + kv_push(stack, cur); + lua_pushnil(lstate); } + break; } - tsize++; - lua_pop(lstate, 1); - } - - if (tsize == 0) { - // Assuming empty list - cur.tv->v_type = VAR_LIST; - cur.tv->vval.v_list = list_alloc(); - cur.tv->vval.v_list->lv_refcount++; - } else if (tsize == maxidx && !has_other && !has_string) { - // Assuming array - cur.tv->v_type = VAR_LIST; - cur.tv->vval.v_list = list_alloc(); - cur.tv->vval.v_list->lv_refcount++; - cur.container = true; - kv_push(stack, cur); - } else if (has_string && !has_other && maxidx == 0) { - // Assuming dictionary - cur.special = has_string_with_nul; - if (has_string_with_nul) { - decode_create_map_special_dict(cur.tv); - assert(cur.tv->v_type = VAR_DICT); - dictitem_T *const val_di = dict_find(cur.tv->vval.v_dict, - (char_u *)"_VAL", 4); - assert(val_di != NULL); - cur.tv = &val_di->di_tv; - assert(cur.tv->v_type == VAR_LIST); - } else { - cur.tv->v_type = VAR_DICT; - cur.tv->vval.v_dict = dict_alloc(); - cur.tv->vval.v_dict->dv_refcount++; + case kObjectTypeFloat: { + cur.tv->v_type = VAR_FLOAT; + cur.tv->vval.v_float = (float_T)table_props.val; + break; + } + case kObjectTypeNil: { + EMSG(_("E5100: Cannot convert given lua table: table " + "should either have a sequence of positive integer keys " + "or contain only string keys")); + ret = false; + break; + } + default: { + assert(false); } - cur.container = true; - kv_push(stack, cur); - lua_pushnil(lstate); - } else { - EMSG(_("E5100: Cannot convert given lua table: table " - "should either have a sequence of positive integer keys " - "or contain only string keys")); - ret = false; } break; } @@ -236,7 +341,11 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) kv_destroy(stack); if (!ret) { clear_tv(ret_tv); - memset(ret_tv, 0, sizeof(*ret_tv)); + *ret_tv = (typval_T) { + .v_type = VAR_NUMBER, + .v_lock = VAR_UNLOCKED, + .vval = { .v_number = 0 }, + }; lua_pop(lstate, lua_gettop(lstate) - initial_size + 1); } assert(lua_gettop(lstate) == initial_size - 1); @@ -281,7 +390,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) lua_createtable(lstate, 0, 0) #define TYPVAL_ENCODE_CONV_EMPTY_DICT(tv, dict) \ - TYPVAL_ENCODE_CONV_EMPTY_LIST() + nlua_create_typed_table(lstate, 0, 0, kObjectTypeDictionary) #define TYPVAL_ENCODE_CONV_LIST_START(tv, len) \ do { \ @@ -432,16 +541,7 @@ bool nlua_push_typval(lua_State *lstate, typval_T *const tv) static inline void nlua_push_type_idx(lua_State *lstate) FUNC_ATTR_NONNULL_ALL { - lua_pushboolean(lstate, true); -} - -/// Push value which is a locks index -/// -/// Used for containers tables. -static inline void nlua_push_locks_idx(lua_State *lstate) - FUNC_ATTR_NONNULL_ALL -{ - lua_pushboolean(lstate, false); + lua_pushboolean(lstate, TYPE_IDX_VALUE); } /// Push value which is a value index @@ -450,7 +550,7 @@ static inline void nlua_push_locks_idx(lua_State *lstate) static inline void nlua_push_val_idx(lua_State *lstate) FUNC_ATTR_NONNULL_ALL { - lua_pushnumber(lstate, (lua_Number)0); + lua_pushboolean(lstate, VAL_IDX_VALUE); } /// Push type @@ -458,14 +558,11 @@ static inline void nlua_push_val_idx(lua_State *lstate) /// Type is a value in vim.types table. /// /// @param[out] lstate Lua state. -/// @param[in] type Type to push (key in vim.types table). -static inline void nlua_push_type(lua_State *lstate, const char *const type) +/// @param[in] type Type to push. +static inline void nlua_push_type(lua_State *lstate, ObjectType type) + FUNC_ATTR_NONNULL_ALL { - lua_getglobal(lstate, "vim"); - lua_getfield(lstate, -1, "types"); - lua_remove(lstate, -2); - lua_getfield(lstate, -1, type); - lua_remove(lstate, -2); + lua_pushnumber(lstate, (lua_Number)type); } /// Create lua table which has an entry that determines its VimL type @@ -477,7 +574,7 @@ static inline void nlua_push_type(lua_State *lstate, const char *const type) static inline void nlua_create_typed_table(lua_State *lstate, const size_t narr, const size_t nrec, - const char *const type) + const ObjectType type) FUNC_ATTR_NONNULL_ALL { lua_createtable(lstate, (int)narr, (int)(1 + nrec)); @@ -511,7 +608,7 @@ void nlua_push_Integer(lua_State *lstate, const Integer n) void nlua_push_Float(lua_State *lstate, const Float f) FUNC_ATTR_NONNULL_ALL { - nlua_create_typed_table(lstate, 0, 1, "float"); + nlua_create_typed_table(lstate, 0, 1, kObjectTypeFloat); nlua_push_val_idx(lstate); lua_pushnumber(lstate, (lua_Number)f); lua_rawset(lstate, -3); @@ -526,21 +623,17 @@ void nlua_push_Boolean(lua_State *lstate, const Boolean b) lua_pushboolean(lstate, b); } -static inline void nlua_add_locks_table(lua_State *lstate) -{ - nlua_push_locks_idx(lstate); - lua_newtable(lstate); - lua_rawset(lstate, -3); -} - /// Convert given Dictionary to lua table /// /// Leaves converted table on top of the stack. void nlua_push_Dictionary(lua_State *lstate, const Dictionary dict) FUNC_ATTR_NONNULL_ALL { - nlua_create_typed_table(lstate, 0, 1 + dict.size, "dict"); - nlua_add_locks_table(lstate); + if (dict.size == 0) { + nlua_create_typed_table(lstate, 0, 0, kObjectTypeDictionary); + } else { + lua_createtable(lstate, 0, (int)dict.size); + } for (size_t i = 0; i < dict.size; i++) { nlua_push_String(lstate, dict.items[i].key); nlua_push_Object(lstate, dict.items[i].value); @@ -554,11 +647,10 @@ void nlua_push_Dictionary(lua_State *lstate, const Dictionary dict) void nlua_push_Array(lua_State *lstate, const Array array) FUNC_ATTR_NONNULL_ALL { - nlua_create_typed_table(lstate, array.size, 1, "float"); - nlua_add_locks_table(lstate); + lua_createtable(lstate, (int)array.size, 0); for (size_t i = 0; i < array.size; i++) { nlua_push_Object(lstate, array.items[i]); - lua_rawseti(lstate, -3, (int)i + 1); + lua_rawseti(lstate, -2, (int)i + 1); } } @@ -663,26 +755,33 @@ Boolean nlua_pop_Boolean(lua_State *lstate, Error *err) return ret; } -static inline bool nlua_check_type(lua_State *lstate, Error *err, - const char *const type) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +/// Check whether typed table on top of the stack has given type +/// +/// @param[in] lstate Lua state. +/// @param[out] err Location where error will be saved. May be NULL. +/// @param[in] type Type to check. +/// +/// @return @see nlua_traverse_table(). +static inline LuaTableProps nlua_check_type(lua_State *const lstate, + Error *const err, + const ObjectType type) + FUNC_ATTR_NONNULL_ARG(1) FUNC_ATTR_WARN_UNUSED_RESULT { if (lua_type(lstate, -1) != LUA_TTABLE) { - set_api_error("Expected lua table", err); - return true; + if (err) { + set_api_error("Expected lua table", err); + } + return (LuaTableProps) { .type = kObjectTypeNil }; } + const LuaTableProps table_props = nlua_traverse_table(lstate); - nlua_push_type_idx(lstate); - lua_rawget(lstate, -2); - nlua_push_type(lstate, type); - if (!lua_rawequal(lstate, -2, -1)) { - lua_pop(lstate, 2); - set_api_error("Expected lua table with float type", err); - return true; + if (table_props.type != type) { + if (err) { + set_api_error("Unexpected type", err); + } } - lua_pop(lstate, 2); - return false; + return table_props; } /// Convert lua table to float @@ -691,49 +790,32 @@ static inline bool nlua_check_type(lua_State *lstate, Error *err, Float nlua_pop_Float(lua_State *lstate, Error *err) FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT { - Float ret = 0; - - if (nlua_check_type(lstate, err, "float")) { + if (lua_type(lstate, -1) == LUA_TNUMBER) { + const Float ret = (Float)lua_tonumber(lstate, -1); lua_pop(lstate, 1); - return 0; - } - - nlua_push_val_idx(lstate); - lua_rawget(lstate, -2); - - if (!lua_isnumber(lstate, -1)) { - lua_pop(lstate, 2); - set_api_error("Value field should be lua number", err); return ret; } - ret = lua_tonumber(lstate, -1); - lua_pop(lstate, 2); - return ret; + const LuaTableProps table_props = nlua_check_type(lstate, err, + kObjectTypeFloat); + lua_pop(lstate, 1); + if (table_props.type != kObjectTypeFloat) { + return 0; + } else { + return (Float)table_props.val; + } } -/// Convert lua table to array +/// Convert lua table to array without determining whether it is array /// -/// Always pops one value from the stack. -Array nlua_pop_Array(lua_State *lstate, Error *err) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +/// @param lstate Lua state. +/// @param[in] table_props nlua_traverse_table() output. +/// @param[out] err Location where error will be saved. +static Array nlua_pop_Array_unchecked(lua_State *const lstate, + const LuaTableProps table_props, + Error *const err) { - Array ret = { .size = 0, .items = NULL }; - - if (nlua_check_type(lstate, err, "list")) { - lua_pop(lstate, 1); - return ret; - } - - for (int i = 1; ; i++, ret.size++) { - lua_rawgeti(lstate, -1, i); - - if (lua_isnil(lstate, -1)) { - lua_pop(lstate, 1); - break; - } - lua_pop(lstate, 1); - } + Array ret = { .size = table_props.maxidx, .items = NULL }; if (ret.size == 0) { lua_pop(lstate, 1); @@ -748,7 +830,7 @@ Array nlua_pop_Array(lua_State *lstate, Error *err) val = nlua_pop_Object(lstate, err); if (err->set) { - ret.size = i; + ret.size = i - 1; lua_pop(lstate, 1); api_free_array(ret); return (Array) { .size = 0, .items = NULL }; @@ -760,24 +842,35 @@ Array nlua_pop_Array(lua_State *lstate, Error *err) return ret; } -/// Convert lua table to dictionary +/// Convert lua table to array /// -/// Always pops one value from the stack. Does not check whether -/// `vim.is_dict(table[type_idx])` or whether topmost value on the stack is -/// a table. -Dictionary nlua_pop_Dictionary_unchecked(lua_State *lstate, Error *err) +/// Always pops one value from the stack. +Array nlua_pop_Array(lua_State *lstate, Error *err) FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT { - Dictionary ret = { .size = 0, .items = NULL }; - - lua_pushnil(lstate); - - while (lua_next(lstate, -2)) { - if (lua_type(lstate, -2) == LUA_TSTRING) { - ret.size++; - } - lua_pop(lstate, 1); + const LuaTableProps table_props = nlua_check_type(lstate, err, + kObjectTypeArray); + lua_pop(lstate, 1); + if (table_props.type != kObjectTypeArray) { + return (Array) { .size = 0, .items = NULL }; } + return nlua_pop_Array_unchecked(lstate, table_props, err); +} + +/// Convert lua table to dictionary +/// +/// Always pops one value from the stack. Does not check whether whether topmost +/// value on the stack is a table. +/// +/// @param lstate Lua interpreter state. +/// @param[in] table_props nlua_traverse_table() output. +/// @param[out] err Location where error will be saved. +static Dictionary nlua_pop_Dictionary_unchecked(lua_State *lstate, + const LuaTableProps table_props, + Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + Dictionary ret = { .size = table_props.string_keys_num, .items = NULL }; if (ret.size == 0) { lua_pop(lstate, 1); @@ -786,7 +879,7 @@ Dictionary nlua_pop_Dictionary_unchecked(lua_State *lstate, Error *err) ret.items = xcalloc(ret.size, sizeof(*ret.items)); lua_pushnil(lstate); - for (size_t i = 0; lua_next(lstate, -2);) { + for (size_t i = 0; lua_next(lstate, -2) && i < ret.size;) { // stack: dict, key, value if (lua_type(lstate, -2) == LUA_TSTRING) { @@ -828,12 +921,14 @@ Dictionary nlua_pop_Dictionary_unchecked(lua_State *lstate, Error *err) Dictionary nlua_pop_Dictionary(lua_State *lstate, Error *err) FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT { - if (nlua_check_type(lstate, err, "dict")) { + const LuaTableProps table_props = nlua_check_type(lstate, err, + kObjectTypeDictionary); + if (table_props.type != kObjectTypeDictionary) { lua_pop(lstate, 1); return (Dictionary) { .size = 0, .items = NULL }; } - return nlua_pop_Dictionary_unchecked(lstate, err); + return nlua_pop_Dictionary_unchecked(lstate, table_props, err); } /// Convert lua table to object @@ -856,8 +951,16 @@ Object nlua_pop_Object(lua_State *lstate, Error *err) break; } case LUA_TNUMBER: { - ret.type = kObjectTypeInteger; - ret.data.integer = nlua_pop_Integer(lstate, err); + const lua_Number n = lua_tonumber(lstate, -1); + if (n > (lua_Number)API_INTEGER_MAX || n < (lua_Number)API_INTEGER_MIN + || ((lua_Number)((Integer)n)) != n) { + ret.type = kObjectTypeFloat; + ret.data.floating = (Float)n; + } else { + ret.type = kObjectTypeInteger; + ret.data.integer = (Integer)n; + } + lua_pop(lstate, 1); break; } case LUA_TBOOLEAN: { @@ -866,33 +969,26 @@ Object nlua_pop_Object(lua_State *lstate, Error *err) break; } case LUA_TTABLE: { - lua_getglobal(lstate, "vim"); - // stack: obj, vim -#define CHECK_TYPE(Type, key, vim_type) \ - lua_getfield(lstate, -1, "is_" #vim_type); \ - /* stack: obj, vim, checker */ \ - lua_pushvalue(lstate, -3); \ - /* stack: obj, vim, checker, obj */ \ - lua_call(lstate, 1, 1); \ - /* stack: obj, vim, result */ \ - if (lua_toboolean(lstate, -1)) { \ - lua_pop(lstate, 2); \ - /* stack: obj */ \ - ret.type = kObjectType##Type; \ - ret.data.key = nlua_pop_##Type(lstate, err); \ - /* stack: */ \ - break; \ - } \ - lua_pop(lstate, 1); \ - // stack: obj, vim - CHECK_TYPE(Float, floating, float) - CHECK_TYPE(Array, array, list) - CHECK_TYPE(Dictionary, dictionary, dict) -#undef CHECK_TYPE - lua_pop(lstate, 1); - // stack: obj - ret.type = kObjectTypeDictionary; - ret.data.dictionary = nlua_pop_Dictionary_unchecked(lstate, err); + const LuaTableProps table_props = nlua_traverse_table(lstate); + ret.type = table_props.type; + switch (table_props.type) { + case kObjectTypeArray: { + ret.data.array = nlua_pop_Array_unchecked(lstate, table_props, err); + break; + } + case kObjectTypeDictionary: { + ret.data.dictionary = nlua_pop_Dictionary_unchecked(lstate, + table_props, err); + break; + } + case kObjectTypeFloat: { + ret.data.floating = (Float)table_props.val; + break; + } + default: { + assert(false); + } + } break; } default: { @@ -923,3 +1019,50 @@ GENERATE_INDEX_FUNCTION(Window) GENERATE_INDEX_FUNCTION(Tabpage) #undef GENERATE_INDEX_FUNCTION + +/// Record some auxilary values in vim module +/// +/// Assumes that module table is on top of the stack. +/// +/// Recorded values: +/// +/// `vim.type_idx`: @see nlua_push_type_idx() +/// `vim.val_idx`: @see nlua_push_val_idx() +/// `vim.types`: table mapping possible values of `vim.type_idx` to string +/// names (i.e. `array`, `float`, `dictionary`) and back. +void nlua_init_types(lua_State *const lstate) +{ + LUA_PUSH_STATIC_STRING(lstate, "type_idx"); + nlua_push_type_idx(lstate); + lua_rawset(lstate, -3); + + LUA_PUSH_STATIC_STRING(lstate, "val_idx"); + nlua_push_val_idx(lstate); + lua_rawset(lstate, -3); + + LUA_PUSH_STATIC_STRING(lstate, "types"); + lua_createtable(lstate, 0, 3); + + LUA_PUSH_STATIC_STRING(lstate, "float"); + lua_pushnumber(lstate, (lua_Number)kObjectTypeFloat); + lua_rawset(lstate, -3); + lua_pushnumber(lstate, (lua_Number)kObjectTypeFloat); + LUA_PUSH_STATIC_STRING(lstate, "float"); + lua_rawset(lstate, -3); + + LUA_PUSH_STATIC_STRING(lstate, "array"); + lua_pushnumber(lstate, (lua_Number)kObjectTypeArray); + lua_rawset(lstate, -3); + lua_pushnumber(lstate, (lua_Number)kObjectTypeArray); + LUA_PUSH_STATIC_STRING(lstate, "array"); + lua_rawset(lstate, -3); + + LUA_PUSH_STATIC_STRING(lstate, "dictionary"); + lua_pushnumber(lstate, (lua_Number)kObjectTypeDictionary); + lua_rawset(lstate, -3); + lua_pushnumber(lstate, (lua_Number)kObjectTypeDictionary); + LUA_PUSH_STATIC_STRING(lstate, "dictionary"); + lua_rawset(lstate, -3); + + lua_rawset(lstate, -3); +} diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index 1a7b5f8915..33b6870ea0 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -145,6 +145,7 @@ static int nlua_state_init(lua_State *lstate) FUNC_ATTR_NONNULL_ALL return 1; } nlua_add_api_functions(lstate); + nlua_init_types(lstate); lua_setglobal(lstate, "vim"); return 0; } -- cgit From 3fa4ca81880bc5113c32a89de965ce593e9b001f Mon Sep 17 00:00:00 2001 From: ZyX Date: Tue, 12 Jul 2016 19:04:12 +0300 Subject: executor/converter: Fix conversion of self-containing containers --- src/nvim/viml/executor/converter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c index c127b87738..319e07bdbc 100644 --- a/src/nvim/viml/executor/converter.c +++ b/src/nvim/viml/executor/converter.c @@ -446,7 +446,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) ? (void *)mpval.data.d.dict == (void *)(val) \ : (void *)mpval.data.l.list == (void *)(val)) { \ lua_pushvalue(lstate, \ - 1 - ((int)((kv_size(*mpstack) - backref + 1) * 2))); \ + -((int)((kv_size(*mpstack) - backref + 1) * 2))); \ break; \ } \ } \ -- cgit From 9297d941e2f1576006d77bfd6391cecc3bea37b0 Mon Sep 17 00:00:00 2001 From: ZyX Date: Tue, 12 Jul 2016 19:20:57 +0300 Subject: executor/converter: Fix how maxidx is determined --- src/nvim/viml/executor/converter.c | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c index 319e07bdbc..c8d6848006 100644 --- a/src/nvim/viml/executor/converter.c +++ b/src/nvim/viml/executor/converter.c @@ -54,8 +54,8 @@ static LuaTableProps nlua_traverse_table(lua_State *const lstate) int val_type = 0; // If has_val_key: lua type of the value. bool has_val_key = false; // True if val key was found, // @see nlua_push_val_idx(). - bool has_other = false; // True if there are keys that are not strings - // or positive integral values. + size_t other_keys_num = 0; // Number of keys that are not string, integral + // or type keys. LuaTableProps ret; memset(&ret, 0, sizeof(ret)); if (!lua_checkstack(lstate, lua_gettop(lstate) + 2)) { @@ -79,7 +79,7 @@ static LuaTableProps nlua_traverse_table(lua_State *const lstate) const lua_Number n = lua_tonumber(lstate, -2); if (n > (lua_Number)SIZE_MAX || n <= 0 || ((lua_Number)((size_t)n)) != n) { - has_other = true; + other_keys_num++; } else { const size_t idx = (size_t)n; if (idx > ret.maxidx) { @@ -99,10 +99,10 @@ static LuaTableProps nlua_traverse_table(lua_State *const lstate) has_type_key = true; ret.type = (ObjectType)n; } else { - has_other = true; + other_keys_num++; } } else { - has_other = true; + other_keys_num++; } } else { has_val_key = true; @@ -114,7 +114,7 @@ static LuaTableProps nlua_traverse_table(lua_State *const lstate) break; } default: { - has_other = true; + other_keys_num++; break; } } @@ -125,10 +125,33 @@ static LuaTableProps nlua_traverse_table(lua_State *const lstate) if (ret.type == kObjectTypeFloat && (!has_val_key || val_type != LUA_TNUMBER)) { ret.type = kObjectTypeNil; + } else if (ret.type == kObjectTypeArray) { + // Determine what is the last number in a *sequence* of keys. + // This condition makes sure that Neovim will not crash when it gets table + // {[vim.type_idx]=vim.types.array, [SIZE_MAX]=1}: without it maxidx will + // be SIZE_MAX, with this condition it should be zero and [SIZE_MAX] key + // should be ignored. + if (ret.maxidx != 0 + && ret.maxidx != (tsize + - has_type_key + - other_keys_num + - has_val_key + - ret.string_keys_num)) { + for (ret.maxidx = 0;; ret.maxidx++) { + lua_rawgeti(lstate, -1, (int)ret.maxidx + 1); + if (lua_isnil(lstate, -1)) { + lua_pop(lstate, 1); + break; + } + lua_pop(lstate, 1); + } + } } } else { if (tsize == 0 - || (tsize == ret.maxidx && !has_other && ret.string_keys_num == 0)) { + || (tsize == ret.maxidx + && other_keys_num == 0 + && ret.string_keys_num == 0)) { ret.type = kObjectTypeArray; } else if (ret.string_keys_num == tsize) { ret.type = kObjectTypeDictionary; -- cgit From 425d348f0f9f680a44af31fc3cecd20a07374bb5 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 16 Jul 2016 00:34:24 +0300 Subject: executor/converter: Make nlua_pop_Object not recursive --- src/nvim/api/private/defs.h | 2 +- src/nvim/api/vim.c | 54 +++++++-- src/nvim/viml/executor/converter.c | 243 ++++++++++++++++++++++++++----------- 3 files changed, 211 insertions(+), 88 deletions(-) (limited to 'src') diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h index 223aab09dc..86b549cb44 100644 --- a/src/nvim/api/private/defs.h +++ b/src/nvim/api/private/defs.h @@ -76,10 +76,10 @@ typedef struct { } Dictionary; typedef enum { + kObjectTypeNil = 0, kObjectTypeBuffer, kObjectTypeWindow, kObjectTypeTabpage, - kObjectTypeNil, kObjectTypeBoolean, kObjectTypeInteger, kObjectTypeFloat, diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 24959e9a59..5d862628cb 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -197,19 +197,6 @@ Object nvim_eval(String expr, Error *err) return rv; } -/// Returns object given as argument -/// -/// This API function is used for testing. One should not rely on its presence -/// in plugins. -/// -/// @param[in] obj Object to return. -/// -/// @return its argument. -Object _vim_id(Object obj) -{ - return obj; -} - /// Calls a VimL function with the given arguments /// /// On VimL error: Returns a generic error; v:errmsg is not updated. @@ -843,3 +830,44 @@ static void write_msg(String message, bool to_err) --no_wait_return; msg_end(); } + +// Functions used for testing purposes + +/// Returns object given as argument +/// +/// This API function is used for testing. One should not rely on its presence +/// in plugins. +/// +/// @param[in] obj Object to return. +/// +/// @return its argument. +Object _vim_id(Object obj) +{ + return obj; +} + +/// Returns array given as argument +/// +/// This API function is used for testing. One should not rely on its presence +/// in plugins. +/// +/// @param[in] arr Array to return. +/// +/// @return its argument. +Array _vim_id_array(Array arr) +{ + return arr; +} + +/// Returns dictionary given as argument +/// +/// This API function is used for testing. One should not rely on its presence +/// in plugins. +/// +/// @param[in] dct Dictionary to return. +/// +/// @return its argument. +Dictionary _vim_id_dictionary(Dictionary dct) +{ + return dct; +} diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c index c8d6848006..6c9b42b38c 100644 --- a/src/nvim/viml/executor/converter.c +++ b/src/nvim/viml/executor/converter.c @@ -58,7 +58,7 @@ static LuaTableProps nlua_traverse_table(lua_State *const lstate) // or type keys. LuaTableProps ret; memset(&ret, 0, sizeof(ret)); - if (!lua_checkstack(lstate, lua_gettop(lstate) + 2)) { + if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { emsgf(_("E1502: Lua failed to grow stack to %i"), lua_gettop(lstate) + 2); ret.type = kObjectTypeNil; return ret; @@ -168,7 +168,7 @@ typedef struct { bool container; ///< True if tv is a container. bool special; ///< If true then tv is a _VAL part of special dictionary ///< that represents mapping. -} PopStackItem; +} TVPopStackItem; /// Convert lua object to VimL typval_T /// @@ -182,18 +182,16 @@ typedef struct { bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) { bool ret = true; -#ifndef NDEBUG const int initial_size = lua_gettop(lstate); -#endif - kvec_t(PopStackItem) stack = KV_INITIAL_VALUE; - kv_push(stack, ((PopStackItem) { ret_tv, false, false })); + kvec_t(TVPopStackItem) stack = KV_INITIAL_VALUE; + kv_push(stack, ((TVPopStackItem) { ret_tv, false, false })); while (ret && kv_size(stack)) { if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { emsgf(_("E1502: Lua failed to grow stack to %i"), lua_gettop(lstate) + 3); ret = false; break; } - PopStackItem cur = kv_pop(stack); + TVPopStackItem cur = kv_pop(stack); if (cur.container) { if (cur.special || cur.tv->v_type == VAR_DICT) { assert(cur.tv->v_type == (cur.special ? VAR_LIST : VAR_DICT)); @@ -222,14 +220,14 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) listitem_T *const val = listitem_alloc(); list_append(kv_pair, val); kv_push(stack, cur); - cur = (PopStackItem) { &val->li_tv, false, false }; + cur = (TVPopStackItem) { &val->li_tv, false, false }; } else { dictitem_T *const di = dictitem_alloc_len(s, len); if (dict_add(cur.tv->vval.v_dict, di) == FAIL) { assert(false); } kv_push(stack, cur); - cur = (PopStackItem) { &di->di_tv, false, false }; + cur = (TVPopStackItem) { &di->di_tv, false, false }; } } else { lua_pop(lstate, 1); @@ -239,14 +237,13 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) assert(cur.tv->v_type == VAR_LIST); lua_rawgeti(lstate, -1, cur.tv->vval.v_list->lv_len + 1); if (lua_isnil(lstate, -1)) { - lua_pop(lstate, 1); - lua_pop(lstate, 1); + lua_pop(lstate, 2); continue; } listitem_T *li = listitem_alloc(); list_append(cur.tv->vval.v_list, li); kv_push(stack, cur); - cur = (PopStackItem) { &li->li_tv, false, false }; + cur = (TVPopStackItem) { &li->li_tv, false, false }; } } assert(!cur.container); @@ -294,14 +291,10 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) switch (table_props.type) { case kObjectTypeArray: { - if (table_props.maxidx == 0) { - cur.tv->v_type = VAR_LIST; - cur.tv->vval.v_list = list_alloc(); - cur.tv->vval.v_list->lv_refcount++; - } else { - cur.tv->v_type = VAR_LIST; - cur.tv->vval.v_list = list_alloc(); - cur.tv->vval.v_list->lv_refcount++; + cur.tv->v_type = VAR_LIST; + cur.tv->vval.v_list = list_alloc(); + cur.tv->vval.v_list->lv_refcount++; + if (table_props.maxidx != 0) { cur.container = true; kv_push(stack, cur); } @@ -525,7 +518,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) bool nlua_push_typval(lua_State *lstate, typval_T *const tv) { const int initial_size = lua_gettop(lstate); - if (!lua_checkstack(lstate, initial_size + 1)) { + if (!lua_checkstack(lstate, initial_size + 2)) { emsgf(_("E1502: Lua failed to grow stack to %i"), initial_size + 4); return false; } @@ -873,7 +866,6 @@ Array nlua_pop_Array(lua_State *lstate, Error *err) { const LuaTableProps table_props = nlua_check_type(lstate, err, kObjectTypeArray); - lua_pop(lstate, 1); if (table_props.type != kObjectTypeArray) { return (Array) { .size = 0, .items = NULL }; } @@ -954,76 +946,179 @@ Dictionary nlua_pop_Dictionary(lua_State *lstate, Error *err) return nlua_pop_Dictionary_unchecked(lstate, table_props, err); } +/// Helper structure for nlua_pop_Object +typedef struct { + Object *obj; ///< Location where conversion result is saved. + bool container; ///< True if tv is a container. +} ObjPopStackItem; + /// Convert lua table to object /// /// Always pops one value from the stack. -Object nlua_pop_Object(lua_State *lstate, Error *err) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +Object nlua_pop_Object(lua_State *const lstate, Error *const err) { - Object ret = { .type = kObjectTypeNil }; - - switch (lua_type(lstate, -1)) { - case LUA_TNIL: { - ret.type = kObjectTypeNil; - lua_pop(lstate, 1); - break; - } - case LUA_TSTRING: { - ret.type = kObjectTypeString; - ret.data.string = nlua_pop_String(lstate, err); + Object ret = NIL; + const int initial_size = lua_gettop(lstate); + kvec_t(ObjPopStackItem) stack = KV_INITIAL_VALUE; + kv_push(stack, ((ObjPopStackItem) { &ret, false })); + while (!err->set && kv_size(stack)) { + if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { + api_set_error(err, Exception, "Lua failed to grow stack"); break; } - case LUA_TNUMBER: { - const lua_Number n = lua_tonumber(lstate, -1); - if (n > (lua_Number)API_INTEGER_MAX || n < (lua_Number)API_INTEGER_MIN - || ((lua_Number)((Integer)n)) != n) { - ret.type = kObjectTypeFloat; - ret.data.floating = (Float)n; + ObjPopStackItem cur = kv_pop(stack); + if (cur.container) { + if (cur.obj->type == kObjectTypeDictionary) { + // stack: …, dict, key + if (cur.obj->data.dictionary.size + == cur.obj->data.dictionary.capacity) { + lua_pop(lstate, 2); + continue; + } + bool next_key_found = false; + while (lua_next(lstate, -2)) { + // stack: …, dict, new key, val + if (lua_type(lstate, -2) == LUA_TSTRING) { + next_key_found = true; + break; + } + lua_pop(lstate, 1); + // stack: …, dict, new key + } + if (next_key_found) { + // stack: …, dict, new key, val + size_t len; + const char *s = lua_tolstring(lstate, -2, &len); + const size_t idx = cur.obj->data.dictionary.size++; + cur.obj->data.dictionary.items[idx].key = (String) { + .data = xmemdupz(s, len), + .size = len, + }; + kv_push(stack, cur); + cur = (ObjPopStackItem) { + .obj = &cur.obj->data.dictionary.items[idx].value, + .container = false, + }; + } else { + // stack: …, dict + lua_pop(lstate, 1); + // stack: … + continue; + } } else { - ret.type = kObjectTypeInteger; - ret.data.integer = (Integer)n; - } - lua_pop(lstate, 1); - break; - } - case LUA_TBOOLEAN: { - ret.type = kObjectTypeBoolean; - ret.data.boolean = nlua_pop_Boolean(lstate, err); - break; - } - case LUA_TTABLE: { - const LuaTableProps table_props = nlua_traverse_table(lstate); - ret.type = table_props.type; - switch (table_props.type) { - case kObjectTypeArray: { - ret.data.array = nlua_pop_Array_unchecked(lstate, table_props, err); - break; + if (cur.obj->data.array.size == cur.obj->data.array.capacity) { + lua_pop(lstate, 1); + continue; } - case kObjectTypeDictionary: { - ret.data.dictionary = nlua_pop_Dictionary_unchecked(lstate, - table_props, err); - break; + const size_t idx = cur.obj->data.array.size++; + lua_rawgeti(lstate, -1, (int)idx + 1); + if (lua_isnil(lstate, -1)) { + lua_pop(lstate, 2); + continue; } - case kObjectTypeFloat: { - ret.data.floating = (Float)table_props.val; - break; + kv_push(stack, cur); + cur = (ObjPopStackItem) { + .obj = &cur.obj->data.array.items[idx], + .container = false, + }; + } + } + assert(!cur.container); + *cur.obj = NIL; + switch (lua_type(lstate, -1)) { + case LUA_TNIL: { + break; + } + case LUA_TBOOLEAN: { + *cur.obj = BOOLEAN_OBJ(lua_toboolean(lstate, -1)); + break; + } + case LUA_TSTRING: { + size_t len; + const char *s = lua_tolstring(lstate, -1, &len); + *cur.obj = STRING_OBJ(((String) { + .data = xmemdupz(s, len), + .size = len, + })); + break; + } + case LUA_TNUMBER: { + const lua_Number n = lua_tonumber(lstate, -1); + if (n > (lua_Number)API_INTEGER_MAX || n < (lua_Number)API_INTEGER_MIN + || ((lua_Number)((Integer)n)) != n) { + *cur.obj = FLOATING_OBJ((Float)n); + } else { + *cur.obj = INTEGER_OBJ((Integer)n); } - default: { - assert(false); + break; + } + case LUA_TTABLE: { + const LuaTableProps table_props = nlua_traverse_table(lstate); + + switch (table_props.type) { + case kObjectTypeArray: { + *cur.obj = ARRAY_OBJ(((Array) { + .items = NULL, + .size = 0, + .capacity = 0, + })); + if (table_props.maxidx != 0) { + cur.obj->data.array.items = + xcalloc(table_props.maxidx, + sizeof(cur.obj->data.array.items[0])); + cur.obj->data.array.capacity = table_props.maxidx; + cur.container = true; + kv_push(stack, cur); + } + break; + } + case kObjectTypeDictionary: { + *cur.obj = DICTIONARY_OBJ(((Dictionary) { + .items = NULL, + .size = 0, + .capacity = 0, + })); + if (table_props.string_keys_num != 0) { + cur.obj->data.dictionary.items = + xcalloc(table_props.string_keys_num, + sizeof(cur.obj->data.dictionary.items[0])); + cur.obj->data.dictionary.capacity = table_props.string_keys_num; + cur.container = true; + kv_push(stack, cur); + lua_pushnil(lstate); + } + break; + } + case kObjectTypeFloat: { + *cur.obj = FLOATING_OBJ((Float)table_props.val); + break; + } + case kObjectTypeNil: { + api_set_error(err, Validation, "Cannot convert given lua table"); + break; + } + default: { + assert(false); + } } + break; + } + default: { + api_set_error(err, Validation, "Cannot convert given lua type"); + break; } - break; } - default: { + if (!cur.container) { lua_pop(lstate, 1); - set_api_error("Cannot convert given lua type", err); - break; } } + kv_destroy(stack); if (err->set) { - ret.type = kObjectTypeNil; + api_free_object(ret); + ret = NIL; + lua_pop(lstate, lua_gettop(lstate) - initial_size + 1); } - + assert(lua_gettop(lstate) == initial_size - 1); return ret; } -- cgit From 7a013e93e0364f78a2bc04eadaaeeaa689d0258a Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 16 Jul 2016 00:48:25 +0300 Subject: executor/converter: Make it possible to supply `{}` to Dictionary arg --- src/nvim/viml/executor/converter.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c index 6c9b42b38c..a6399500f2 100644 --- a/src/nvim/viml/executor/converter.c +++ b/src/nvim/viml/executor/converter.c @@ -33,6 +33,7 @@ typedef struct { ///< either kObjectTypeNil, kObjectTypeDictionary or ///< kObjectTypeArray, depending on other properties. lua_Number val; ///< If has_val_key and val_type == LUA_TNUMBER: value. + bool has_type_key; ///< True if type key is present. } LuaTableProps; #ifdef INCLUDE_GENERATED_DECLARATIONS @@ -48,8 +49,6 @@ typedef struct { static LuaTableProps nlua_traverse_table(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT { - bool has_type_key = false; // True if type key was found, - // @see nlua_push_type_idx(). size_t tsize = 0; // Total number of keys. int val_type = 0; // If has_val_key: lua type of the value. bool has_val_key = false; // True if val key was found, @@ -96,7 +95,7 @@ static LuaTableProps nlua_traverse_table(lua_State *const lstate) if (n == (lua_Number)kObjectTypeFloat || n == (lua_Number)kObjectTypeArray || n == (lua_Number)kObjectTypeDictionary) { - has_type_key = true; + ret.has_type_key = true; ret.type = (ObjectType)n; } else { other_keys_num++; @@ -121,7 +120,7 @@ static LuaTableProps nlua_traverse_table(lua_State *const lstate) tsize++; lua_pop(lstate, 1); } - if (has_type_key) { + if (ret.has_type_key) { if (ret.type == kObjectTypeFloat && (!has_val_key || val_type != LUA_TNUMBER)) { ret.type = kObjectTypeNil; @@ -133,7 +132,7 @@ static LuaTableProps nlua_traverse_table(lua_State *const lstate) // should be ignored. if (ret.maxidx != 0 && ret.maxidx != (tsize - - has_type_key + - ret.has_type_key - other_keys_num - has_val_key - ret.string_keys_num)) { @@ -789,7 +788,12 @@ static inline LuaTableProps nlua_check_type(lua_State *const lstate, } return (LuaTableProps) { .type = kObjectTypeNil }; } - const LuaTableProps table_props = nlua_traverse_table(lstate); + LuaTableProps table_props = nlua_traverse_table(lstate); + + if (type == kObjectTypeDictionary && table_props.type == kObjectTypeArray + && table_props.maxidx == 0 && !table_props.has_type_key) { + table_props.type = kObjectTypeDictionary; + } if (table_props.type != type) { if (err) { -- cgit From ba2f615cd40d5d809d1a141c7b098e3bd22ff7bb Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 16 Jul 2016 02:26:04 +0300 Subject: functests: Test for error conditions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit During testing found the following bugs: 1. msgpack-gen.lua script is completely unprepared for Float values either in return type or in arguments. Specifically: 1. At the time of writing relevant code FLOAT_OBJ did not exist as well as FLOATING_OBJ, but it would be used by msgpack-gen.lua should return type be Float. I added FLOATING_OBJ macros later because did not know that msgpack-gen.lua uses these _OBJ macros, otherwise it would be FLOAT_OBJ. 2. msgpack-gen.lua should use .data.floating in place of .data.float. But it did not expect that .data subattribute may have name different from lowercased type name. 2. vim_replace_termcodes returned its argument as-is if it receives an empty string (as well as _vim_id*() functions did). But if something in returned argument lives in an allocated memory such action will cause double free: once when freeing arguments, then when freeing return value. It did not cause problems yet because msgpack bindings return empty string as {NULL, 0} and nothing was actually allocated. 3. New code in msgpack-gen.lua popped arguments in reversed order, making lua bindings’ signatures be different from API ones. --- src/nvim/api/private/helpers.c | 2 +- src/nvim/api/private/helpers.h | 2 +- src/nvim/api/vim.c | 21 ++++++++++++++++---- src/nvim/msgpack_rpc/helpers.c | 2 +- src/nvim/viml/executor/converter.c | 39 +++++++++++++++++++------------------- 5 files changed, 40 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c index 7efa086af2..23d1540e2f 100644 --- a/src/nvim/api/private/helpers.c +++ b/src/nvim/api/private/helpers.c @@ -351,7 +351,7 @@ void set_option_to(void *to, int type, String name, Object value, Error *err) #define TYPVAL_ENCODE_CONV_UNSIGNED_NUMBER TYPVAL_ENCODE_CONV_NUMBER #define TYPVAL_ENCODE_CONV_FLOAT(tv, flt) \ - kv_push(edata->stack, FLOATING_OBJ((Float)(flt))) + kv_push(edata->stack, FLOAT_OBJ((Float)(flt))) #define TYPVAL_ENCODE_CONV_STRING(tv, str, len) \ do { \ diff --git a/src/nvim/api/private/helpers.h b/src/nvim/api/private/helpers.h index 9fe8c351cf..640e901fa1 100644 --- a/src/nvim/api/private/helpers.h +++ b/src/nvim/api/private/helpers.h @@ -27,7 +27,7 @@ .type = kObjectTypeInteger, \ .data.integer = i }) -#define FLOATING_OBJ(f) ((Object) { \ +#define FLOAT_OBJ(f) ((Object) { \ .type = kObjectTypeFloat, \ .data.floating = f }) diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 5d862628cb..3fd1f57ace 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -139,7 +139,7 @@ String nvim_replace_termcodes(String str, Boolean from_part, Boolean do_lt, { if (str.size == 0) { // Empty string - return str; + return (String) { .data = NULL, .size = 0 }; } char *ptr = NULL; @@ -843,7 +843,7 @@ static void write_msg(String message, bool to_err) /// @return its argument. Object _vim_id(Object obj) { - return obj; + return copy_object(obj); } /// Returns array given as argument @@ -856,7 +856,7 @@ Object _vim_id(Object obj) /// @return its argument. Array _vim_id_array(Array arr) { - return arr; + return copy_object(ARRAY_OBJ(arr)).data.array; } /// Returns dictionary given as argument @@ -869,5 +869,18 @@ Array _vim_id_array(Array arr) /// @return its argument. Dictionary _vim_id_dictionary(Dictionary dct) { - return dct; + return copy_object(DICTIONARY_OBJ(dct)).data.dictionary; +} + +/// Returns floating-point value given as argument +/// +/// This API function is used for testing. One should not rely on its presence +/// in plugins. +/// +/// @param[in] flt Value to return. +/// +/// @return its argument. +Float _vim_id_float(Float flt) +{ + return flt; } diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c index 5137b375f0..64a018f5c3 100644 --- a/src/nvim/msgpack_rpc/helpers.c +++ b/src/nvim/msgpack_rpc/helpers.c @@ -117,7 +117,7 @@ bool msgpack_rpc_to_object(const msgpack_object *const obj, Object *const arg) case MSGPACK_OBJECT_FLOAT: { STATIC_ASSERT(sizeof(Float) == sizeof(cur.mobj->via.f64), "Msgpack floating-point size does not match API integer"); - *cur.aobj = FLOATING_OBJ(cur.mobj->via.f64); + *cur.aobj = FLOAT_OBJ(cur.mobj->via.f64); break; } #define STR_CASE(type, attr, obj, dest, conv) \ diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c index a6399500f2..a741d3a752 100644 --- a/src/nvim/viml/executor/converter.c +++ b/src/nvim/viml/executor/converter.c @@ -724,16 +724,15 @@ void nlua_push_Object(lua_State *lstate, const Object obj) String nlua_pop_String(lua_State *lstate, Error *err) FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT { - String ret; - - ret.data = (char *)lua_tolstring(lstate, -1, &(ret.size)); - - if (ret.data == NULL) { + if (lua_type(lstate, -1) != LUA_TSTRING) { lua_pop(lstate, 1); - set_api_error("Expected lua string", err); + api_set_error(err, Validation, "Expected lua string"); return (String) { .size = 0, .data = NULL }; } + String ret; + ret.data = (char *)lua_tolstring(lstate, -1, &(ret.size)); + assert(ret.data != NULL); ret.data = xmemdupz(ret.data, ret.size); lua_pop(lstate, 1); @@ -746,17 +745,19 @@ String nlua_pop_String(lua_State *lstate, Error *err) Integer nlua_pop_Integer(lua_State *lstate, Error *err) FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT { - Integer ret = 0; - - if (!lua_isnumber(lstate, -1)) { + if (lua_type(lstate, -1) != LUA_TNUMBER) { lua_pop(lstate, 1); - set_api_error("Expected lua integer", err); - return ret; + api_set_error(err, Validation, "Expected lua number"); + return 0; } - ret = (Integer)lua_tonumber(lstate, -1); + const lua_Number n = lua_tonumber(lstate, -1); lua_pop(lstate, 1); - - return ret; + if (n > (lua_Number)API_INTEGER_MAX || n < (lua_Number)API_INTEGER_MIN + || ((lua_Number)((Integer)n)) != n) { + api_set_error(err, Exception, "Number is not integral"); + return 0; + } + return (Integer)n; } /// Convert lua value to boolean @@ -765,7 +766,7 @@ Integer nlua_pop_Integer(lua_State *lstate, Error *err) Boolean nlua_pop_Boolean(lua_State *lstate, Error *err) FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT { - Boolean ret = lua_toboolean(lstate, -1); + const Boolean ret = lua_toboolean(lstate, -1); lua_pop(lstate, 1); return ret; } @@ -784,7 +785,7 @@ static inline LuaTableProps nlua_check_type(lua_State *const lstate, { if (lua_type(lstate, -1) != LUA_TTABLE) { if (err) { - set_api_error("Expected lua table", err); + api_set_error(err, Validation, "Expected lua table"); } return (LuaTableProps) { .type = kObjectTypeNil }; } @@ -797,7 +798,7 @@ static inline LuaTableProps nlua_check_type(lua_State *const lstate, if (table_props.type != type) { if (err) { - set_api_error("Unexpected type", err); + api_set_error(err, Validation, "Unexpected type"); } } @@ -1050,7 +1051,7 @@ Object nlua_pop_Object(lua_State *const lstate, Error *const err) const lua_Number n = lua_tonumber(lstate, -1); if (n > (lua_Number)API_INTEGER_MAX || n < (lua_Number)API_INTEGER_MIN || ((lua_Number)((Integer)n)) != n) { - *cur.obj = FLOATING_OBJ((Float)n); + *cur.obj = FLOAT_OBJ((Float)n); } else { *cur.obj = INTEGER_OBJ((Integer)n); } @@ -1094,7 +1095,7 @@ Object nlua_pop_Object(lua_State *const lstate, Error *const err) break; } case kObjectTypeFloat: { - *cur.obj = FLOATING_OBJ((Float)table_props.val); + *cur.obj = FLOAT_OBJ((Float)table_props.val); break; } case kObjectTypeNil: { -- cgit From d932693d5147ac12d181e0810a20bdcbffab2818 Mon Sep 17 00:00:00 2001 From: ZyX Date: Fri, 20 Jan 2017 23:00:36 +0300 Subject: executor/converter: Allow converting self-referencing lua objects --- src/nvim/viml/executor/converter.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c index a741d3a752..b7bacc8ed9 100644 --- a/src/nvim/viml/executor/converter.c +++ b/src/nvim/viml/executor/converter.c @@ -167,6 +167,7 @@ typedef struct { bool container; ///< True if tv is a container. bool special; ///< If true then tv is a _VAL part of special dictionary ///< that represents mapping. + int idx; ///< Container index (used to detect self-referencing structures). } TVPopStackItem; /// Convert lua object to VimL typval_T @@ -183,7 +184,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) bool ret = true; const int initial_size = lua_gettop(lstate); kvec_t(TVPopStackItem) stack = KV_INITIAL_VALUE; - kv_push(stack, ((TVPopStackItem) { ret_tv, false, false })); + kv_push(stack, ((TVPopStackItem) { ret_tv, false, false, 0 })); while (ret && kv_size(stack)) { if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { emsgf(_("E1502: Lua failed to grow stack to %i"), lua_gettop(lstate) + 3); @@ -219,14 +220,14 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) listitem_T *const val = listitem_alloc(); list_append(kv_pair, val); kv_push(stack, cur); - cur = (TVPopStackItem) { &val->li_tv, false, false }; + cur = (TVPopStackItem) { &val->li_tv, false, false, 0 }; } else { dictitem_T *const di = dictitem_alloc_len(s, len); if (dict_add(cur.tv->vval.v_dict, di) == FAIL) { assert(false); } kv_push(stack, cur); - cur = (TVPopStackItem) { &di->di_tv, false, false }; + cur = (TVPopStackItem) { &di->di_tv, false, false, 0 }; } } else { lua_pop(lstate, 1); @@ -242,7 +243,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) listitem_T *li = listitem_alloc(); list_append(cur.tv->vval.v_list, li); kv_push(stack, cur); - cur = (TVPopStackItem) { &li->li_tv, false, false }; + cur = (TVPopStackItem) { &li->li_tv, false, false, 0 }; } } assert(!cur.container); @@ -288,6 +289,14 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) case LUA_TTABLE: { const LuaTableProps table_props = nlua_traverse_table(lstate); + for (size_t i = 0; i < kv_size(stack); i++) { + const TVPopStackItem item = kv_A(stack, i); + if (item.container && lua_rawequal(lstate, -1, item.idx)) { + copy_tv(item.tv, cur.tv); + goto nlua_pop_typval_table_processing_end; + } + } + switch (table_props.type) { case kObjectTypeArray: { cur.tv->v_type = VAR_LIST; @@ -295,6 +304,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) cur.tv->vval.v_list->lv_refcount++; if (table_props.maxidx != 0) { cur.container = true; + cur.idx = lua_gettop(lstate); kv_push(stack, cur); } break; @@ -320,6 +330,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) cur.tv->vval.v_dict->dv_refcount++; } cur.container = true; + cur.idx = lua_gettop(lstate); kv_push(stack, cur); lua_pushnil(lstate); } @@ -341,6 +352,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) assert(false); } } +nlua_pop_typval_table_processing_end: break; } default: { -- cgit From 5c1b9a0d2af86461f56f0d27ed275456921f6187 Mon Sep 17 00:00:00 2001 From: ZyX Date: Fri, 20 Jan 2017 23:06:22 +0300 Subject: api: Reserve more numbers for internal calls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reasoning; currently INTERNAL_CALL is mostly used to determine whether it is needed to deal with NL-used-as-NUL problem. This code is useful for nvim_… API calls done from VimL, but not for API calls done from lua, yet lua needs to supply something as channel_id. --- src/nvim/api/buffer.c | 4 ++-- src/nvim/api/private/defs.h | 27 +++++++++++++++++++++++++-- src/nvim/eval.c | 2 +- 3 files changed, 28 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c index b75a2c7211..5eda88025f 100644 --- a/src/nvim/api/buffer.c +++ b/src/nvim/api/buffer.c @@ -192,7 +192,7 @@ ArrayOf(String) nvim_buf_get_lines(uint64_t channel_id, Object str = STRING_OBJ(cstr_to_string(bufstr)); // Vim represents NULs as NLs, but this may confuse clients. - if (channel_id != INTERNAL_CALL) { + if (channel_id != VIML_INTERNAL_CALL) { strchrsub(str.data.string.data, '\n', '\0'); } @@ -313,7 +313,7 @@ void nvim_buf_set_lines(uint64_t channel_id, // line and convert NULs to newlines to avoid truncation. lines[i] = xmallocz(l.size); for (size_t j = 0; j < l.size; j++) { - if (l.data[j] == '\n' && channel_id != INTERNAL_CALL) { + if (l.data[j] == '\n' && channel_id != VIML_INTERNAL_CALL) { api_set_error(err, Exception, _("string cannot contain newlines")); new_len = i + 1; goto end; diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h index 86b549cb44..cb7ee8eb4c 100644 --- a/src/nvim/api/private/defs.h +++ b/src/nvim/api/private/defs.h @@ -5,6 +5,8 @@ #include #include +#include "nvim/func_attr.h" + #define ARRAY_DICT_INIT {.size = 0, .capacity = 0, .items = NULL} #define STRING_INIT {.data = NULL, .size = 0} #define OBJECT_INIT { .type = kObjectTypeNil } @@ -33,8 +35,29 @@ typedef enum { /// Used as the message ID of notifications. #define NO_RESPONSE UINT64_MAX -/// Used as channel_id when the call is local. -#define INTERNAL_CALL UINT64_MAX +/// Mask for all internal calls +#define INTERNAL_CALL_MASK (UINT64_MAX ^ (UINT64_MAX >> 1)) +// (1 << 63) in all forms produces “warning: shift count >= width of type +// [-Wshift-count-overflow]” + +/// Internal call from VimL code +#define VIML_INTERNAL_CALL INTERNAL_CALL_MASK + +/// Internal call from lua code +#define LUA_INTERNAL_CALL (VIML_INTERNAL_CALL + 1) + +static inline bool is_internal_call(uint64_t channel_id) + REAL_FATTR_ALWAYS_INLINE REAL_FATTR_CONST; + +/// Check whether call is internal +/// +/// @param[in] channel_id Channel id. +/// +/// @return true if channel_id refers to internal channel. +static inline bool is_internal_call(const uint64_t channel_id) +{ + return !!(channel_id & INTERNAL_CALL_MASK); +} typedef struct { ErrorType type; diff --git a/src/nvim/eval.c b/src/nvim/eval.c index de82f8a145..8b6638f1d7 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -7796,7 +7796,7 @@ static void api_wrapper(typval_T *argvars, typval_T *rettv, FunPtr fptr) } Error err = ERROR_INIT; - Object result = fn(INTERNAL_CALL, args, &err); + Object result = fn(VIML_INTERNAL_CALL, args, &err); if (err.set) { nvim_err_writeln(cstr_as_string(err.msg)); -- cgit From 8679feb3cbffd6b175be6a2868e980ca971125f7 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 21 Jan 2017 00:00:09 +0300 Subject: executor/converter: Use readable lua numbers for handles --- src/nvim/viml/executor/converter.c | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c index b7bacc8ed9..316a5aa93f 100644 --- a/src/nvim/viml/executor/converter.c +++ b/src/nvim/viml/executor/converter.c @@ -217,7 +217,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) list_unref(kv_pair); continue; } - listitem_T *const val = listitem_alloc(); + listitem_T *const val = listitem_alloc(); list_append(kv_pair, val); kv_push(stack, cur); cur = (TVPopStackItem) { &val->li_tv, false, false, 0 }; @@ -240,7 +240,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) lua_pop(lstate, 2); continue; } - listitem_T *li = listitem_alloc(); + listitem_T *const li = listitem_alloc(); list_append(cur.tv->vval.v_list, li); kv_push(stack, cur); cur = (TVPopStackItem) { &li->li_tv, false, false, 0 }; @@ -293,6 +293,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) const TVPopStackItem item = kv_A(stack, i); if (item.container && lua_rawequal(lstate, -1, item.idx)) { copy_tv(item.tv, cur.tv); + cur.container = false; goto nlua_pop_typval_table_processing_end; } } @@ -540,25 +541,14 @@ bool nlua_push_typval(lua_State *lstate, typval_T *const tv) return true; } -#define NLUA_PUSH_IDX(lstate, type, idx) \ +#define NLUA_PUSH_HANDLE(lstate, type, idx) \ do { \ - STATIC_ASSERT(sizeof(type) <= sizeof(lua_Number), \ - "Number sizes do not match"); \ - const type src = idx; \ - lua_Number tgt; \ - memset(&tgt, 0, sizeof(tgt)); \ - memcpy(&tgt, &src, sizeof(src)); \ - lua_pushnumber(lstate, tgt); \ + lua_pushnumber(lstate, (lua_Number)(idx)); \ } while (0) -#define NLUA_POP_IDX(lstate, type, stack_idx, idx) \ +#define NLUA_POP_HANDLE(lstate, type, stack_idx, idx) \ do { \ - STATIC_ASSERT(sizeof(type) <= sizeof(lua_Number), \ - "Number sizes do not match"); \ - const lua_Number src = lua_tonumber(lstate, stack_idx); \ - type tgt; \ - memcpy(&tgt, &src, sizeof(tgt)); \ - idx = tgt; \ + idx = (type)lua_tonumber(lstate, stack_idx); \ } while (0) /// Push value which is a type index @@ -685,7 +675,7 @@ void nlua_push_Array(lua_State *lstate, const Array array) void nlua_push_##type(lua_State *lstate, const type item) \ FUNC_ATTR_NONNULL_ALL \ { \ - NLUA_PUSH_IDX(lstate, type, item); \ + NLUA_PUSH_HANDLE(lstate, type, item); \ } GENERATE_INDEX_FUNCTION(Buffer) @@ -1144,7 +1134,7 @@ type nlua_pop_##type(lua_State *lstate, Error *err) \ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT \ { \ type ret; \ - NLUA_POP_IDX(lstate, type, -1, ret); \ + NLUA_POP_HANDLE(lstate, type, -1, ret); \ lua_pop(lstate, 1); \ return ret; \ } -- cgit From 45feaa73d0759858a9a4454037fe4a41ea97e5b9 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 21 Jan 2017 00:16:25 +0300 Subject: eval/decode: Fix memory leak in JSON functions --- src/nvim/eval/decode.c | 24 ++++++++++++++++++------ src/nvim/viml/executor/converter.c | 4 ++-- 2 files changed, 20 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/nvim/eval/decode.c b/src/nvim/eval/decode.c index cb5a624f7b..d95e75170a 100644 --- a/src/nvim/eval/decode.c +++ b/src/nvim/eval/decode.c @@ -249,10 +249,14 @@ list_T *decode_create_map_special_dict(typval_T *const ret_tv) /// determined. /// @param[in] binary If true, save special string type as kMPBinary, /// otherwise kMPString. +/// @param[in] s_allocated If true, then `s` was allocated and can be saved in +/// a returned structure. If it is not saved there, it +/// will be freed. /// /// @return Decoded string. typval_T decode_string(const char *const s, const size_t len, - const TriState hasnul, const bool binary) + const TriState hasnul, const bool binary, + const bool s_allocated) FUNC_ATTR_WARN_UNUSED_RESULT { assert(s != NULL || len == 0); @@ -268,7 +272,11 @@ typval_T decode_string(const char *const s, const size_t len, .v_lock = VAR_UNLOCKED, .vval = { .v_list = list }, })); - if (encode_list_write((void *)list, s, len) == -1) { + const int elw_ret = encode_list_write((void *)list, s, len); + if (s_allocated) { + xfree((void *)s); + } + if (elw_ret == -1) { clear_tv(&tv); return (typval_T) { .v_type = VAR_UNKNOWN, .v_lock = VAR_UNLOCKED }; } @@ -277,7 +285,8 @@ typval_T decode_string(const char *const s, const size_t len, return (typval_T) { .v_type = VAR_STRING, .v_lock = VAR_UNLOCKED, - .vval = { .v_string = xmemdupz(s, len) }, + .vval = { .v_string = (char_u *)( + s_allocated ? (char *)s : xmemdupz(s, len)) }, }; } } @@ -492,9 +501,10 @@ static inline int parse_json_string(vimconv_T *const conv, str = new_str; str_end = new_str + str_len; } + *str_end = NUL; typval_T obj; obj = decode_string(str, (size_t)(str_end - str), hasnul ? kTrue : kFalse, - false); + false, true); if (obj.v_type == VAR_UNKNOWN) { goto parse_json_string_fail; } @@ -1022,14 +1032,16 @@ int msgpack_to_vim(const msgpack_object mobj, typval_T *const rettv) break; } case MSGPACK_OBJECT_STR: { - *rettv = decode_string(mobj.via.bin.ptr, mobj.via.bin.size, kTrue, false); + *rettv = decode_string(mobj.via.bin.ptr, mobj.via.bin.size, kTrue, false, + false); if (rettv->v_type == VAR_UNKNOWN) { return FAIL; } break; } case MSGPACK_OBJECT_BIN: { - *rettv = decode_string(mobj.via.bin.ptr, mobj.via.bin.size, kNone, true); + *rettv = decode_string(mobj.via.bin.ptr, mobj.via.bin.size, kNone, true, + false); if (rettv->v_type == VAR_UNKNOWN) { return FAIL; } diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c index 316a5aa93f..a39f573036 100644 --- a/src/nvim/viml/executor/converter.c +++ b/src/nvim/viml/executor/converter.c @@ -210,7 +210,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) list_T *const kv_pair = list_alloc(); list_append_list(cur.tv->vval.v_list, kv_pair); listitem_T *const key = listitem_alloc(); - key->li_tv = decode_string(s, len, kTrue, false); + key->li_tv = decode_string(s, len, kTrue, false, false); list_append(kv_pair, key); if (key->li_tv.v_type == VAR_UNKNOWN) { ret = false; @@ -268,7 +268,7 @@ bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) case LUA_TSTRING: { size_t len; const char *s = lua_tolstring(lstate, -1, &len); - *cur.tv = decode_string(s, len, kNone, true); + *cur.tv = decode_string(s, len, kNone, true, false); if (cur.tv->v_type == VAR_UNKNOWN) { ret = false; } -- cgit From f8d55266e461a0a85e17e5adfd33e8429e45d9a5 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 21 Jan 2017 01:02:15 +0300 Subject: executor/executor: When reporting errors use lua string length --- src/nvim/viml/executor/executor.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index 33b6870ea0..29ec8dc927 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -86,7 +86,7 @@ static void nlua_error(lua_State *const lstate, const char *const msg) size_t len; const char *const str = lua_tolstring(lstate, -1, &len); - EMSG2(msg, str); + emsgf(msg, (int)len, str); lua_pop(lstate, 1); } @@ -120,11 +120,11 @@ static int nlua_exec_lua_string(lua_State *lstate) FUNC_ATTR_NONNULL_ALL lua_pop(lstate, 2); if (luaL_loadbuffer(lstate, str->data, str->size, NLUA_EVAL_NAME)) { - nlua_error(lstate, _("E5104: Error while creating lua chunk: %s")); + nlua_error(lstate, _("E5104: Error while creating lua chunk: %.*s")); return 0; } if (lua_pcall(lstate, 0, 1, 0)) { - nlua_error(lstate, _("E5105: Error while calling lua chunk: %s")); + nlua_error(lstate, _("E5105: Error while calling lua chunk: %.*s")); return 0; } if (!nlua_pop_typval(lstate, ret_tv)) { @@ -141,7 +141,7 @@ static int nlua_state_init(lua_State *lstate) FUNC_ATTR_NONNULL_ALL lua_pushcfunction(lstate, &nlua_stricmp); lua_setglobal(lstate, "stricmp"); if (luaL_dostring(lstate, (char *)&vim_module[0])) { - nlua_error(lstate, _("E5106: Error while creating vim module: %s")); + nlua_error(lstate, _("E5106: Error while creating vim module: %.*s")); return 1; } nlua_add_api_functions(lstate); @@ -220,7 +220,7 @@ static int nlua_eval_lua_string(lua_State *lstate) #undef EVALHEADER if (luaL_loadbuffer(lstate, lcmd, lcmd_len, NLUA_EVAL_NAME)) { nlua_error(lstate, - _("E5107: Error while creating lua chunk for luaeval(): %s")); + _("E5107: Error while creating lua chunk for luaeval(): %.*s")); return 0; } if (lcmd != (char *)IObuff) { @@ -234,7 +234,7 @@ static int nlua_eval_lua_string(lua_State *lstate) } if (lua_pcall(lstate, 1, 1, 0)) { nlua_error(lstate, - _("E5108: Error while calling lua chunk for luaeval(): %s")); + _("E5108: Error while calling lua chunk for luaeval(): %.*s")); return 0; } if (!nlua_pop_typval(lstate, ret_tv)) { -- cgit From 53b89c1dcf44c95827cc85a9657faee451c573c5 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 21 Jan 2017 01:42:50 +0300 Subject: executor/executor: Free lcmd on error --- src/nvim/viml/executor/executor.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index 29ec8dc927..acc375881c 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -221,6 +221,9 @@ static int nlua_eval_lua_string(lua_State *lstate) if (luaL_loadbuffer(lstate, lcmd, lcmd_len, NLUA_EVAL_NAME)) { nlua_error(lstate, _("E5107: Error while creating lua chunk for luaeval(): %.*s")); + if (lcmd != (char *)IObuff) { + xfree(lcmd); + } return 0; } if (lcmd != (char *)IObuff) { -- cgit From 1646a28173d1b7c8309188ebe7b6fb38a6ca8315 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 21 Jan 2017 02:33:09 +0300 Subject: cmake: Allow switching from luajit to lua --- src/nvim/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index a47a8e49c7..7a7dbbcce6 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -291,8 +291,12 @@ list(APPEND NVIM_LINK_LIBRARIES ${LIBTERMKEY_LIBRARIES} ${UNIBILIUM_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} - ${LUAJIT_LIBRARIES} ) +if(PREFER_LUAJIT) + list(APPEND NVIM_LINK_LIBRARIES ${LUAJIT_LIBRARIES}) +else() + list(APPEND NVIM_LINK_LIBRARIES ${LUA_LIBRARIES}) +endif() if(UNIX) list(APPEND NVIM_LINK_LIBRARIES -- cgit From 6b4a51f7ea49a6ef8305831e8d96b2a7cc4ba5f3 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 22 Jan 2017 04:34:26 +0300 Subject: scripts: Make generate_vim_module more generic --- src/nvim/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 7a7dbbcce6..21a39b950f 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -39,7 +39,7 @@ set(UNICODE_DIR ${PROJECT_SOURCE_DIR}/unicode) set(GENERATED_UNICODE_TABLES ${GENERATED_DIR}/unicode_tables.generated.h) set(VIM_MODULE_FILE ${GENERATED_DIR}/viml/executor/vim_module.generated.h) set(VIM_MODULE_SOURCE ${PROJECT_SOURCE_DIR}/src/nvim/viml/executor/vim.lua) -set(VIM_MODULE_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/generate_vim_module.lua) +set(CHAR_BLOB_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/gencharblob.lua) file(GLOB API_HEADERS api/*.h) file(GLOB MSGPACK_RPC_HEADERS msgpack_rpc/*.h) @@ -222,10 +222,10 @@ add_custom_command( add_custom_command( OUTPUT ${VIM_MODULE_FILE} - COMMAND ${LUA_PRG} ${VIM_MODULE_GENERATOR} ${VIM_MODULE_SOURCE} - ${VIM_MODULE_FILE} + COMMAND ${LUA_PRG} ${CHAR_BLOB_GENERATOR} ${VIM_MODULE_SOURCE} + ${VIM_MODULE_FILE} vim_module DEPENDS - ${VIM_MODULE_GENERATOR} + ${CHAR_BLOB_GENERATOR} ${VIM_MODULE_SOURCE} ) -- cgit From ca4c8b7f8a7b9543ef01157cb5ab94783f624ac6 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 22 Jan 2017 04:55:26 +0300 Subject: api: Allow kObjectTypeNil to be zero without breaking compatibility --- src/nvim/api/private/defs.h | 7 ++++--- src/nvim/msgpack_rpc/helpers.c | 26 +++++++++++++++++++++++--- 2 files changed, 27 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h index cb7ee8eb4c..432ab347bc 100644 --- a/src/nvim/api/private/defs.h +++ b/src/nvim/api/private/defs.h @@ -100,15 +100,16 @@ typedef struct { typedef enum { kObjectTypeNil = 0, - kObjectTypeBuffer, - kObjectTypeWindow, - kObjectTypeTabpage, kObjectTypeBoolean, kObjectTypeInteger, kObjectTypeFloat, kObjectTypeString, kObjectTypeArray, kObjectTypeDictionary, + // EXT types, cannot be split or reordered, see #EXT_OBJECT_TYPE_SHIFT + kObjectTypeBuffer, + kObjectTypeWindow, + kObjectTypeTabpage, } ObjectType; struct object { diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c index 64a018f5c3..972d5b3441 100644 --- a/src/nvim/msgpack_rpc/helpers.c +++ b/src/nvim/msgpack_rpc/helpers.c @@ -20,13 +20,20 @@ static msgpack_zone zone; static msgpack_sbuffer sbuffer; +/// Value by which objects represented as EXT type are shifted +/// +/// Subtracted when packing, added when unpacking. Used to allow moving +/// buffer/window/tabpage block inside ObjectType enum. This block yet cannot be +/// split or reordered. +#define EXT_OBJECT_TYPE_SHIFT kObjectTypeBuffer + #define HANDLE_TYPE_CONVERSION_IMPL(t, lt) \ bool msgpack_rpc_to_##lt(const msgpack_object *const obj, \ Integer *const arg) \ FUNC_ATTR_NONNULL_ALL \ { \ if (obj->type != MSGPACK_OBJECT_EXT \ - || obj->via.ext.type != kObjectType##t) { \ + || obj->via.ext.type + EXT_OBJECT_TYPE_SHIFT != kObjectType##t) { \ return false; \ } \ \ @@ -51,7 +58,8 @@ static msgpack_sbuffer sbuffer; msgpack_packer pac; \ msgpack_packer_init(&pac, &sbuffer, msgpack_sbuffer_write); \ msgpack_pack_int64(&pac, (handle_T)o); \ - msgpack_pack_ext(res, sbuffer.size, kObjectType##t); \ + msgpack_pack_ext(res, sbuffer.size, \ + kObjectType##t - EXT_OBJECT_TYPE_SHIFT); \ msgpack_pack_ext_body(res, sbuffer.data, sbuffer.size); \ msgpack_sbuffer_clear(&sbuffer); \ } @@ -211,7 +219,7 @@ bool msgpack_rpc_to_object(const msgpack_object *const obj, Object *const arg) break; } case MSGPACK_OBJECT_EXT: { - switch (cur.mobj->via.ext.type) { + switch ((ObjectType)(cur.mobj->via.ext.type + EXT_OBJECT_TYPE_SHIFT)) { case kObjectTypeBuffer: { cur.aobj->type = kObjectTypeBuffer; ret = msgpack_rpc_to_buffer(cur.mobj, &cur.aobj->data.integer); @@ -227,6 +235,15 @@ bool msgpack_rpc_to_object(const msgpack_object *const obj, Object *const arg) ret = msgpack_rpc_to_tabpage(cur.mobj, &cur.aobj->data.integer); break; } + case kObjectTypeNil: + case kObjectTypeBoolean: + case kObjectTypeInteger: + case kObjectTypeFloat: + case kObjectTypeString: + case kObjectTypeArray: + case kObjectTypeDictionary: { + break; + } } break; } @@ -350,6 +367,9 @@ void msgpack_rpc_from_object(const Object result, msgpack_packer *const res) kv_push(stack, ((APIToMPObjectStackItem) { &result, false, 0 })); while (kv_size(stack)) { APIToMPObjectStackItem cur = kv_last(stack); + STATIC_ASSERT(kObjectTypeWindow == kObjectTypeBuffer + 1 + && kObjectTypeTabpage == kObjectTypeWindow + 1, + "Buffer, window and tabpage enum items are in order"); switch (cur.aobj->type) { case kObjectTypeNil: { msgpack_pack_nil(res); -- cgit From 927e6efc3d93ff9d34c532180591dc3ca326edf5 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 22 Jan 2017 05:16:05 +0300 Subject: clint: Allow omitting include guards in .c.h file and func_attr.h file --- src/clint.py | 5 +++++ src/nvim/eval/typval_encode.c.h | 5 ----- src/nvim/func_attr.h | 5 ----- 3 files changed, 5 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/clint.py b/src/clint.py index ce31822ada..ca4dbdb1bc 100755 --- a/src/clint.py +++ b/src/clint.py @@ -182,6 +182,7 @@ _ERROR_CATEGORIES = [ 'build/include_order', 'build/printf_format', 'build/storage_class', + 'build/useless_fattr', 'readability/alt_tokens', 'readability/bool', 'readability/braces', @@ -1224,6 +1225,10 @@ def CheckForHeaderGuard(filename, lines, error): lines: An array of strings, each representing a line of the file. error: The function to call with any errors found. """ + if filename.endswith('.c.h') or FileInfo(filename).RelativePath() in set(( + 'func_attr.h', + )): + return cppvar = GetHeaderGuardCPPVariable(filename) diff --git a/src/nvim/eval/typval_encode.c.h b/src/nvim/eval/typval_encode.c.h index 4ff5589887..812340b9c3 100644 --- a/src/nvim/eval/typval_encode.c.h +++ b/src/nvim/eval/typval_encode.c.h @@ -233,10 +233,6 @@ /// /// This name will only be used by one of the above macros which are defined by /// the caller. Functions defined here do not use first argument directly. -#ifndef NVIM_EVAL_TYPVAL_ENCODE_C_H -#define NVIM_EVAL_TYPVAL_ENCODE_C_H -#undef NVIM_EVAL_TYPVAL_ENCODE_C_H - #include #include #include @@ -816,4 +812,3 @@ encode_vim_to__error_ret: // Prevent “unused label” warnings. goto typval_encode_stop_converting_one_item; } -#endif // NVIM_EVAL_TYPVAL_ENCODE_C_H diff --git a/src/nvim/func_attr.h b/src/nvim/func_attr.h index 18410445e1..7b8fcc4343 100644 --- a/src/nvim/func_attr.h +++ b/src/nvim/func_attr.h @@ -41,10 +41,6 @@ // $ gcc -E -dM - Date: Sun, 22 Jan 2017 05:35:48 +0300 Subject: msgpack_rpc: Fix #HANDLE_TYPE_CONVERSION_IMPL Function declarations generator is able to handle properly only the *first* function definition that is in macros, and only if it is the first entity in the macros. So msgpack_rpc_from_* was already really a static function, additionally its attributes were useless. This commit switches to explicit declarations and makes generated functions static. --- src/nvim/msgpack_rpc/helpers.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c index 972d5b3441..94a4f5ce3e 100644 --- a/src/nvim/msgpack_rpc/helpers.c +++ b/src/nvim/msgpack_rpc/helpers.c @@ -28,9 +28,11 @@ static msgpack_sbuffer sbuffer; #define EXT_OBJECT_TYPE_SHIFT kObjectTypeBuffer #define HANDLE_TYPE_CONVERSION_IMPL(t, lt) \ - bool msgpack_rpc_to_##lt(const msgpack_object *const obj, \ - Integer *const arg) \ - FUNC_ATTR_NONNULL_ALL \ + static bool msgpack_rpc_to_##lt(const msgpack_object *const obj, \ + Integer *const arg) \ + REAL_FATTR_NONNULL_ALL REAL_FATTR_WARN_UNUSED_RESULT; \ + static bool msgpack_rpc_to_##lt(const msgpack_object *const obj, \ + Integer *const arg) \ { \ if (obj->type != MSGPACK_OBJECT_EXT \ || obj->via.ext.type + EXT_OBJECT_TYPE_SHIFT != kObjectType##t) { \ @@ -52,8 +54,9 @@ static msgpack_sbuffer sbuffer; return true; \ } \ \ - void msgpack_rpc_from_##lt(Integer o, msgpack_packer *res) \ - FUNC_ATTR_NONNULL_ARG(2) \ + static void msgpack_rpc_from_##lt(Integer o, msgpack_packer *res) \ + REAL_FATTR_NONNULL_ARG(2); \ + static void msgpack_rpc_from_##lt(Integer o, msgpack_packer *res) \ { \ msgpack_packer pac; \ msgpack_packer_init(&pac, &sbuffer, msgpack_sbuffer_write); \ -- cgit From d33b13dd6ba5fddbb0903c28fd78a69b5f0a11bd Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 22 Jan 2017 22:02:39 +0300 Subject: cmake: Try fixing ASAN nvim-test compilation --- src/nvim/CMakeLists.txt | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 21a39b950f..918a64c2b4 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -363,6 +363,23 @@ if(WIN32) add_dependencies(nvim_runtime_deps external_blobs) endif() +add_library(libnvim STATIC EXCLUDE_FROM_ALL ${NEOVIM_GENERATED_SOURCES} + ${NEOVIM_SOURCES} ${NEOVIM_HEADERS}) +target_link_libraries(libnvim ${NVIM_LINK_LIBRARIES}) +set_target_properties(libnvim PROPERTIES + POSITION_INDEPENDENT_CODE ON + OUTPUT_NAME nvim) +set_property(TARGET libnvim + APPEND_STRING PROPERTY COMPILE_FLAGS " -DMAKE_LIB ") + +add_library(nvim-test MODULE EXCLUDE_FROM_ALL ${NEOVIM_GENERATED_SOURCES} + ${NEOVIM_SOURCES} ${UNIT_TEST_FIXTURES} ${NEOVIM_HEADERS}) +target_link_libraries(nvim-test ${NVIM_LINK_LIBRARIES}) +set_target_properties(nvim-test PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_property(TARGET nvim-test + APPEND_STRING PROPERTY COMPILE_FLAGS " -DUNIT_TESTING ") + if(CLANG_ASAN_UBSAN) message(STATUS "Enabling Clang address sanitizer and undefined behavior sanitizer for nvim.") check_c_compiler_flag(-fno-sanitize-recover=all SANITIZE_RECOVER_ALL) @@ -374,6 +391,9 @@ if(CLANG_ASAN_UBSAN) set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-DEXITFREE ") set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "${SANITIZE_RECOVER} -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -fsanitize=undefined -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/src/.asan-blacklist") set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=address -fsanitize=undefined ") + + set_property(TARGET nvim-test APPEND_STRING PROPERTY COMPILE_FLAGS "${SANITIZE_RECOVER} -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/src/.asan-blacklist") + set_property(TARGET nvim-test APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=address ") elseif(CLANG_MSAN) message(STATUS "Enabling Clang memory sanitizer for nvim.") set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-DEXITFREE ") @@ -387,17 +407,4 @@ elseif(CLANG_TSAN) set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=thread ") endif() -add_library(libnvim STATIC EXCLUDE_FROM_ALL ${NEOVIM_GENERATED_SOURCES} - ${NEOVIM_SOURCES} ${NEOVIM_HEADERS}) -target_link_libraries(libnvim ${NVIM_LINK_LIBRARIES}) -set_target_properties(libnvim PROPERTIES - POSITION_INDEPENDENT_CODE ON - OUTPUT_NAME nvim) -set_property(TARGET libnvim APPEND_STRING PROPERTY COMPILE_FLAGS " -DMAKE_LIB ") - -add_library(nvim-test MODULE EXCLUDE_FROM_ALL ${NEOVIM_GENERATED_SOURCES} - ${NEOVIM_SOURCES} ${UNIT_TEST_FIXTURES} ${NEOVIM_HEADERS}) -target_link_libraries(nvim-test ${NVIM_LINK_LIBRARIES}) -set_property(TARGET nvim-test APPEND_STRING PROPERTY COMPILE_FLAGS -DUNIT_TESTING) - add_subdirectory(po) -- cgit From d60302d5177e2ba99e84588c8ddd70dad0cbc64a Mon Sep 17 00:00:00 2001 From: ZyX Date: Fri, 27 Jan 2017 02:55:34 +0300 Subject: cmake: Link libnvim-test with luajit in place of lua, disable ASAN Reasoning: luajit is not being compiled with sanitizers, lua is. Given that linking with sanitized libraries requires sanitizers enabled, it is needed to either compile libnvim-test with sanitizers or link it with lua compiled without sanitizers. Most easy way to do the latter is just use luajit which is compiled without sanitizers (as they do not work well with luajit). --- src/nvim/CMakeLists.txt | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 918a64c2b4..467af5bc00 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -292,11 +292,6 @@ list(APPEND NVIM_LINK_LIBRARIES ${UNIBILIUM_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) -if(PREFER_LUAJIT) - list(APPEND NVIM_LINK_LIBRARIES ${LUAJIT_LIBRARIES}) -else() - list(APPEND NVIM_LINK_LIBRARIES ${LUA_LIBRARIES}) -endif() if(UNIX) list(APPEND NVIM_LINK_LIBRARIES @@ -306,6 +301,14 @@ if(UNIX) endif() set(NVIM_EXEC_LINK_LIBRARIES ${NVIM_LINK_LIBRARIES}) +set(NVIM_TEST_LINK_LIBRARIES ${NVIM_LINK_LIBRARIES}) + +if(PREFER_LUAJIT) + list(APPEND NVIM_EXEC_LINK_LIBRARIES ${LUAJIT_LIBRARIES}) +else() + list(APPEND NVIM_EXEC_LINK_LIBRARIES ${LUA_LIBRARIES}) +endif() +list(APPEND NVIM_TEST_LINK_LIBRARIES ${LUAJIT_LIBRARIES}) # Don't use jemalloc in the unit test library. if(JEMALLOC_FOUND) @@ -317,6 +320,12 @@ add_executable(nvim ${NEOVIM_GENERATED_SOURCES} ${NEOVIM_SOURCES} target_link_libraries(nvim ${NVIM_EXEC_LINK_LIBRARIES}) install_helper(TARGETS nvim) +if(PREFER_LUAJIT) + target_include_directories(nvim SYSTEM PRIVATE ${LUAJIT_INCLUDE_DIRS}) +else() + target_include_directories(nvim SYSTEM PRIVATE ${LUA_INCLUDE_DIRS}) +endif() + if(WIN32) # Copy DLLs and third-party tools to bin/ and install them along with nvim add_custom_target(nvim_runtime_deps ALL @@ -365,7 +374,7 @@ endif() add_library(libnvim STATIC EXCLUDE_FROM_ALL ${NEOVIM_GENERATED_SOURCES} ${NEOVIM_SOURCES} ${NEOVIM_HEADERS}) -target_link_libraries(libnvim ${NVIM_LINK_LIBRARIES}) +target_link_libraries(libnvim ${NVIM_TEST_LINK_LIBRARIES}) set_target_properties(libnvim PROPERTIES POSITION_INDEPENDENT_CODE ON OUTPUT_NAME nvim) @@ -374,7 +383,8 @@ set_property(TARGET libnvim add_library(nvim-test MODULE EXCLUDE_FROM_ALL ${NEOVIM_GENERATED_SOURCES} ${NEOVIM_SOURCES} ${UNIT_TEST_FIXTURES} ${NEOVIM_HEADERS}) -target_link_libraries(nvim-test ${NVIM_LINK_LIBRARIES}) +target_link_libraries(nvim-test ${NVIM_TEST_LINK_LIBRARIES}) +target_include_directories(nvim-test SYSTEM PRIVATE ${LUAJIT_INCLUDE_DIRS}) set_target_properties(nvim-test PROPERTIES POSITION_INDEPENDENT_CODE ON) set_property(TARGET nvim-test @@ -391,9 +401,6 @@ if(CLANG_ASAN_UBSAN) set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-DEXITFREE ") set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "${SANITIZE_RECOVER} -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -fsanitize=undefined -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/src/.asan-blacklist") set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=address -fsanitize=undefined ") - - set_property(TARGET nvim-test APPEND_STRING PROPERTY COMPILE_FLAGS "${SANITIZE_RECOVER} -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/src/.asan-blacklist") - set_property(TARGET nvim-test APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=address ") elseif(CLANG_MSAN) message(STATUS "Enabling Clang memory sanitizer for nvim.") set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-DEXITFREE ") -- cgit From 9c743df2d532b3adc04b532fa6fc9c7838b31353 Mon Sep 17 00:00:00 2001 From: ZyX Date: Fri, 27 Jan 2017 03:12:53 +0300 Subject: cmake: Use LuaJIT include directory for declarations generator --- src/nvim/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 467af5bc00..be3c8d1b07 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -151,7 +151,7 @@ if(CLANG_ASAN_UBSAN OR CLANG_MSAN OR CLANG_TSAN) endif() get_directory_property(gen_includes INCLUDE_DIRECTORIES) -foreach(gen_include ${gen_includes}) +foreach(gen_include ${gen_includes} ${LUAJIT_INCLUDE_DIRS}) list(APPEND gen_cflags "-I${gen_include}") endforeach() string(TOUPPER "${CMAKE_BUILD_TYPE}" build_type) -- cgit From ae4adcc70735a89bffb110bcf9d5a993b0786c4d Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 28 Jan 2017 03:47:15 +0300 Subject: gendeclarations: Make declarations generator work with macros funcs Now it checks functions also after every semicolon and closing figure brace, possibly preceded by whitespaces (tabs and spaces). This should make messing with declarations in macros not needed. --- src/nvim/msgpack_rpc/helpers.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c index 94a4f5ce3e..ec35d56978 100644 --- a/src/nvim/msgpack_rpc/helpers.c +++ b/src/nvim/msgpack_rpc/helpers.c @@ -30,9 +30,7 @@ static msgpack_sbuffer sbuffer; #define HANDLE_TYPE_CONVERSION_IMPL(t, lt) \ static bool msgpack_rpc_to_##lt(const msgpack_object *const obj, \ Integer *const arg) \ - REAL_FATTR_NONNULL_ALL REAL_FATTR_WARN_UNUSED_RESULT; \ - static bool msgpack_rpc_to_##lt(const msgpack_object *const obj, \ - Integer *const arg) \ + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT \ { \ if (obj->type != MSGPACK_OBJECT_EXT \ || obj->via.ext.type + EXT_OBJECT_TYPE_SHIFT != kObjectType##t) { \ @@ -55,8 +53,7 @@ static msgpack_sbuffer sbuffer; } \ \ static void msgpack_rpc_from_##lt(Integer o, msgpack_packer *res) \ - REAL_FATTR_NONNULL_ARG(2); \ - static void msgpack_rpc_from_##lt(Integer o, msgpack_packer *res) \ + FUNC_ATTR_NONNULL_ARG(2) \ { \ msgpack_packer pac; \ msgpack_packer_init(&pac, &sbuffer, msgpack_sbuffer_write); \ -- cgit From d836464cd2a6cdb4f4b797677794a376d5a12a45 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 28 Jan 2017 22:16:24 +0300 Subject: cmake: Also include luajit directories for libnvim target --- src/nvim/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index be3c8d1b07..0cf331206e 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -374,6 +374,7 @@ endif() add_library(libnvim STATIC EXCLUDE_FROM_ALL ${NEOVIM_GENERATED_SOURCES} ${NEOVIM_SOURCES} ${NEOVIM_HEADERS}) +target_include_directories(libnvim SYSTEM PRIVATE ${LUAJIT_INCLUDE_DIRS}) target_link_libraries(libnvim ${NVIM_TEST_LINK_LIBRARIES}) set_target_properties(libnvim PROPERTIES POSITION_INDEPENDENT_CODE ON -- cgit From 62fde319360e27a86c0deba0053ff230f80ca772 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 01:29:51 +0300 Subject: api: Also shift numbers in api_metadata output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes problem introduced by “api: Allow kObjectTypeNil to be zero without breaking compatibility”: apparently there are clients which use metadata and there are which aren’t. For the first that commit would not be needed, for the second that commit misses this critical piece. --- src/nvim/api/private/helpers.c | 9 ++++++--- src/nvim/msgpack_rpc/helpers.c | 7 ------- src/nvim/msgpack_rpc/helpers.h | 7 +++++++ 3 files changed, 13 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c index 23d1540e2f..373e509120 100644 --- a/src/nvim/api/private/helpers.c +++ b/src/nvim/api/private/helpers.c @@ -851,15 +851,18 @@ static void init_type_metadata(Dictionary *metadata) Dictionary types = ARRAY_DICT_INIT; Dictionary buffer_metadata = ARRAY_DICT_INIT; - PUT(buffer_metadata, "id", INTEGER_OBJ(kObjectTypeBuffer)); + PUT(buffer_metadata, "id", + INTEGER_OBJ(kObjectTypeBuffer - EXT_OBJECT_TYPE_SHIFT)); PUT(buffer_metadata, "prefix", STRING_OBJ(cstr_to_string("nvim_buf_"))); Dictionary window_metadata = ARRAY_DICT_INIT; - PUT(window_metadata, "id", INTEGER_OBJ(kObjectTypeWindow)); + PUT(window_metadata, "id", + INTEGER_OBJ(kObjectTypeWindow - EXT_OBJECT_TYPE_SHIFT)); PUT(window_metadata, "prefix", STRING_OBJ(cstr_to_string("nvim_win_"))); Dictionary tabpage_metadata = ARRAY_DICT_INIT; - PUT(tabpage_metadata, "id", INTEGER_OBJ(kObjectTypeTabpage)); + PUT(tabpage_metadata, "id", + INTEGER_OBJ(kObjectTypeTabpage - EXT_OBJECT_TYPE_SHIFT)); PUT(tabpage_metadata, "prefix", STRING_OBJ(cstr_to_string("nvim_tabpage_"))); PUT(types, "Buffer", DICTIONARY_OBJ(buffer_metadata)); diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c index ec35d56978..21acd6a394 100644 --- a/src/nvim/msgpack_rpc/helpers.c +++ b/src/nvim/msgpack_rpc/helpers.c @@ -20,13 +20,6 @@ static msgpack_zone zone; static msgpack_sbuffer sbuffer; -/// Value by which objects represented as EXT type are shifted -/// -/// Subtracted when packing, added when unpacking. Used to allow moving -/// buffer/window/tabpage block inside ObjectType enum. This block yet cannot be -/// split or reordered. -#define EXT_OBJECT_TYPE_SHIFT kObjectTypeBuffer - #define HANDLE_TYPE_CONVERSION_IMPL(t, lt) \ static bool msgpack_rpc_to_##lt(const msgpack_object *const obj, \ Integer *const arg) \ diff --git a/src/nvim/msgpack_rpc/helpers.h b/src/nvim/msgpack_rpc/helpers.h index 7d9f114140..0e4cd1be6d 100644 --- a/src/nvim/msgpack_rpc/helpers.h +++ b/src/nvim/msgpack_rpc/helpers.h @@ -9,6 +9,13 @@ #include "nvim/event/wstream.h" #include "nvim/api/private/defs.h" +/// Value by which objects represented as EXT type are shifted +/// +/// Subtracted when packing, added when unpacking. Used to allow moving +/// buffer/window/tabpage block inside ObjectType enum. This block yet cannot be +/// split or reordered. +#define EXT_OBJECT_TYPE_SHIFT kObjectTypeBuffer + #ifdef INCLUDE_GENERATED_DECLARATIONS # include "msgpack_rpc/helpers.h.generated.h" #endif -- cgit From 872a909150506828f72a63636e1cfd6b72f1b306 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 02:41:37 +0300 Subject: executor: Add :lua command Does not work currently. --- src/nvim/ex_cmds.lua | 2 +- src/nvim/ex_docmd.c | 1 + src/nvim/viml/executor/executor.c | 19 +++++++++++++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua index 92f0669422..b34975f00e 100644 --- a/src/nvim/ex_cmds.lua +++ b/src/nvim/ex_cmds.lua @@ -1542,7 +1542,7 @@ return { command='lua', flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN), addr_type=ADDR_LINES, - func='ex_script_ni', + func='ex_lua', }, { command='luado', diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 486baaad47..aa43b71a0d 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -67,6 +67,7 @@ #include "nvim/event/rstream.h" #include "nvim/event/wstream.h" #include "nvim/shada.h" +#include "nvim/viml/executor/executor.h" static int quitmore = 0; static int ex_pressedreturn = FALSE; diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index acc375881c..8da218270a 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -7,8 +7,10 @@ #include "nvim/garray.h" #include "nvim/func_attr.h" #include "nvim/api/private/defs.h" +#include "nvim/api/private/helpers.h" #include "nvim/api/vim.h" #include "nvim/vim.h" +#include "nvim/ex_getln.h" #include "nvim/message.h" #include "nvim/viml/executor/executor.h" @@ -171,8 +173,6 @@ static lua_State *global_lstate = NULL; /// Execute lua string /// -/// Used for :lua. -/// /// @param[in] str String to execute. /// @param[out] ret_tv Location where result will be saved. /// @@ -267,3 +267,18 @@ void executor_eval_lua(const String str, typval_T *const arg, NLUA_CALL_C_FUNCTION_3(global_lstate, nlua_eval_lua_string, 0, (void *)&str, arg, ret_tv); } + +/// Run lua string +/// +/// Used for :lua. +/// +/// @param eap VimL command being run. +void ex_lua(exarg_T *const eap) + FUNC_ATTR_NONNULL_ALL +{ + char *const code = (char *)script_get(eap, eap->arg); + typval_T tv = { .v_type = VAR_UNKNOWN }; + executor_exec_lua(cstr_as_string(code), &tv); + clear_tv(&tv); + xfree(code); +} -- cgit From 3531d8c8eaa6783637f510dbc5dbd58c9d435b61 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 03:08:56 +0300 Subject: executor: Add some const qualifiers --- src/nvim/viml/executor/executor.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index 8da218270a..38e3cf1c6d 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -100,7 +100,7 @@ static void nlua_error(lua_State *const lstate, const char *const msg) /// /// Does no error handling: never call it with non-string or with some arguments /// omitted. -static int nlua_stricmp(lua_State *lstate) FUNC_ATTR_NONNULL_ALL +static int nlua_stricmp(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL { const char *s1 = luaL_checklstring(lstate, 1, NULL); const char *s2 = luaL_checklstring(lstate, 2, NULL); @@ -115,10 +115,10 @@ static int nlua_stricmp(lua_State *lstate) FUNC_ATTR_NONNULL_ALL /// Expects two values on the stack: string to evaluate, pointer to the /// location where result is saved. Always returns nothing (from the lua point /// of view). -static int nlua_exec_lua_string(lua_State *lstate) FUNC_ATTR_NONNULL_ALL +static int nlua_exec_lua_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL { - String *str = (String *)lua_touserdata(lstate, 1); - typval_T *ret_tv = (typval_T *)lua_touserdata(lstate, 2); + const String *const str = (String *)lua_touserdata(lstate, 1); + typval_T *const ret_tv = (typval_T *)lua_touserdata(lstate, 2); lua_pop(lstate, 2); if (luaL_loadbuffer(lstate, str->data, str->size, NLUA_EVAL_NAME)) { @@ -138,7 +138,7 @@ static int nlua_exec_lua_string(lua_State *lstate) FUNC_ATTR_NONNULL_ALL /// Initialize lua interpreter state /// /// Called by lua interpreter itself to initialize state. -static int nlua_state_init(lua_State *lstate) FUNC_ATTR_NONNULL_ALL +static int nlua_state_init(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL { lua_pushcfunction(lstate, &nlua_stricmp); lua_setglobal(lstate, "stricmp"); @@ -177,14 +177,15 @@ static lua_State *global_lstate = NULL; /// @param[out] ret_tv Location where result will be saved. /// /// @return Result of the execution. -void executor_exec_lua(String str, typval_T *ret_tv) +void executor_exec_lua(const String str, typval_T *const ret_tv) FUNC_ATTR_NONNULL_ALL { if (global_lstate == NULL) { global_lstate = init_lua(); } - NLUA_CALL_C_FUNCTION_2(global_lstate, nlua_exec_lua_string, 0, &str, ret_tv); + NLUA_CALL_C_FUNCTION_2(global_lstate, nlua_exec_lua_string, 0, + (void *)&str, ret_tv); } /// Evaluate lua string @@ -196,12 +197,12 @@ void executor_exec_lua(String str, typval_T *ret_tv) /// 3. Pointer to location where result is saved. /// /// @param[in,out] lstate Lua interpreter state. -static int nlua_eval_lua_string(lua_State *lstate) +static int nlua_eval_lua_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL { - String *str = (String *)lua_touserdata(lstate, 1); - typval_T *arg = (typval_T *)lua_touserdata(lstate, 2); - typval_T *ret_tv = (typval_T *)lua_touserdata(lstate, 3); + const String *const str = (String *)lua_touserdata(lstate, 1); + typval_T *const arg = (typval_T *)lua_touserdata(lstate, 2); + typval_T *const ret_tv = (typval_T *)lua_touserdata(lstate, 3); lua_pop(lstate, 3); garray_T str_ga; -- cgit From 3d48c35d6bfa83ba3ae621fa9ec3f512da199f59 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 03:36:47 +0300 Subject: ex_getln: Refactor script_get() 1. Use `char *` for strings. 2. Add `const` qualifiers. 3. Add attributes and documentation. 4. Handle skipping *inside*. 5. Handle non-heredoc argument also inside: deferring this to the caller is pointless because all callers need the same thing. Though new ex_lua caller may live without allocations in this case, allocating nevertheless produces cleaner code. 6. Note that all callers call script_get with `eap` and `eap->arg`. Thus second argument is useless in practice: it is one and the same always and can be reached through the first argument. --- src/nvim/ex_cmds2.c | 11 +++---- src/nvim/ex_docmd.c | 8 +++-- src/nvim/ex_getln.c | 68 +++++++++++++++++++++++---------------- src/nvim/viml/executor/executor.c | 9 ++++-- 4 files changed, 58 insertions(+), 38 deletions(-) (limited to 'src') diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index 9fc4ef2a02..092bb38dd0 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -3695,19 +3695,18 @@ char_u *get_locales(expand_T *xp, int idx) static void script_host_execute(char *name, exarg_T *eap) { - uint8_t *script = script_get(eap, eap->arg); + size_t len; + char *const script = script_get(eap, &len); - if (!eap->skip) { - list_T *args = list_alloc(); + if (script != NULL) { + list_T *const args = list_alloc(); // script - list_append_string(args, script ? script : eap->arg, -1); + list_append_allocated_string(args, script); // current range list_append_number(args, (int)eap->line1); list_append_number(args, (int)eap->line2); (void)eval_call_provider(name, "execute", args); } - - xfree(script); } static void script_host_execute_file(char *name, exarg_T *eap) diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index aa43b71a0d..74bb6177c6 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -3734,10 +3734,12 @@ void ex_ni(exarg_T *eap) /// Skips over ":perl <skip) + if (!eap->skip) { ex_ni(eap); - else - xfree(script_get(eap, eap->arg)); + } else { + size_t len; + xfree(script_get(eap, &len)); + } } /* diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 58979c0e43..f7e10f3787 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -5343,47 +5343,61 @@ static int ex_window(void) return cmdwin_result; } -/* - * Used for commands that either take a simple command string argument, or: - * cmd << endmarker - * {script} - * endmarker - * Returns a pointer to allocated memory with {script} or NULL. - */ -char_u *script_get(exarg_T *eap, char_u *cmd) +/// Get script string +/// +/// Used for commands which accept either `:command script` or +/// +/// :command << endmarker +/// script +/// endmarker +/// +/// @param eap Command being run. +/// @param[out] lenp Location where length of resulting string is saved. Will +/// be set to zero when skipping. +/// +/// @return [allocated] NULL or script. Does not show any error messages. +/// NULL is returned when skipping and on error. +char *script_get(exarg_T *const eap, size_t *const lenp) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_MALLOC { - char_u *theline; - char *end_pattern = NULL; - char dot[] = "."; - garray_T ga; + const char *const cmd = (const char *)eap->arg; - if (cmd[0] != '<' || cmd[1] != '<' || eap->getline == NULL) - return NULL; - - ga_init(&ga, 1, 0x400); + if (cmd[0] != '<' || cmd[1] != '<' || eap->getline == NULL) { + *lenp = STRLEN(eap->arg); + return xmemdupz(eap->arg, *lenp); + } - if (cmd[2] != NUL) - end_pattern = (char *)skipwhite(cmd + 2); - else - end_pattern = dot; + garray_T ga = { .ga_data = NULL, .ga_len = 0 }; + if (!eap->skip) { + ga_init(&ga, 1, 0x400); + } - for (;; ) { - theline = eap->getline( + const char *const end_pattern = ( + cmd[2] != NUL + ? (const char *)skipwhite((const char_u *)cmd + 2) + : "."); + for (;;) { + char *const theline = (char *)eap->getline( eap->cstack->cs_looplevel > 0 ? -1 : NUL, eap->cookie, 0); - if (theline == NULL || STRCMP(end_pattern, theline) == 0) { + if (theline == NULL || strcmp(end_pattern, theline) == 0) { xfree(theline); break; } - ga_concat(&ga, theline); - ga_append(&ga, '\n'); + if (!eap->skip) { + ga_concat(&ga, (const char_u *)theline); + ga_append(&ga, '\n'); + } xfree(theline); } - ga_append(&ga, NUL); + *lenp = (size_t)ga.ga_len; // Set length without trailing NUL. + if (!eap->skip) { + ga_append(&ga, NUL); + } - return (char_u *)ga.ga_data; + return (char *)ga.ga_data; } /// Iterate over history items diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index 38e3cf1c6d..fb39716f5c 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -277,9 +277,14 @@ void executor_eval_lua(const String str, typval_T *const arg, void ex_lua(exarg_T *const eap) FUNC_ATTR_NONNULL_ALL { - char *const code = (char *)script_get(eap, eap->arg); + size_t len; + char *const code = script_get(eap, &len); + if (eap->skip) { + xfree(code); + return; + } typval_T tv = { .v_type = VAR_UNKNOWN }; - executor_exec_lua(cstr_as_string(code), &tv); + executor_exec_lua((String) { .data = code, .size = len }, &tv); clear_tv(&tv); xfree(code); } -- cgit From 9114d9be778b07f4a49edc078f1c159aa51320d8 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 18:40:39 +0300 Subject: executor: Add :luado command --- src/nvim/ex_cmds.lua | 2 +- src/nvim/macros.h | 9 +++ src/nvim/viml/executor/executor.c | 121 +++++++++++++++++++++++++++++++++++++- 3 files changed, 128 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua index b34975f00e..25e74ebf9b 100644 --- a/src/nvim/ex_cmds.lua +++ b/src/nvim/ex_cmds.lua @@ -1548,7 +1548,7 @@ return { command='luado', flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN), addr_type=ADDR_LINES, - func='ex_ni', + func='ex_luado', }, { command='luafile', diff --git a/src/nvim/macros.h b/src/nvim/macros.h index 650bf76156..5042663041 100644 --- a/src/nvim/macros.h +++ b/src/nvim/macros.h @@ -19,6 +19,15 @@ # define MAX(X, Y) ((X) > (Y) ? (X) : (Y)) #endif +/// String with length +/// +/// For use in functions which accept (char *s, size_t len) pair in arguments. +/// +/// @param[in] s Static string. +/// +/// @return `s, sizeof(s) - 1` +#define S_LEN(s) (s), (sizeof(s) - 1) + /* * Position comparisons */ diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index fb39716f5c..80f2651afc 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -12,6 +12,13 @@ #include "nvim/vim.h" #include "nvim/ex_getln.h" #include "nvim/message.h" +#include "nvim/memline.h" +#include "nvim/buffer_defs.h" +#include "nvim/macros.h" +#include "nvim/screen.h" +#include "nvim/cursor.h" +#include "nvim/undo.h" +#include "nvim/ascii.h" #include "nvim/viml/executor/executor.h" #include "nvim/viml/executor/converter.h" @@ -38,6 +45,17 @@ typedef struct { lua_pushcfunction(lstate, &function); \ lua_call(lstate, 0, numret); \ } while (0) +/// Call C function which expects one argument +/// +/// @param function Called function +/// @param numret Number of returned arguments +/// @param a… Supplied argument (should be a void* pointer) +#define NLUA_CALL_C_FUNCTION_1(lstate, function, numret, a1) \ + do { \ + lua_pushcfunction(lstate, &function); \ + lua_pushlightuserdata(lstate, a1); \ + lua_call(lstate, 1, numret); \ + } while (0) /// Call C function which expects two arguments /// /// @param function Called function @@ -117,7 +135,7 @@ static int nlua_stricmp(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL /// of view). static int nlua_exec_lua_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL { - const String *const str = (String *)lua_touserdata(lstate, 1); + const String *const str = (const String *)lua_touserdata(lstate, 1); typval_T *const ret_tv = (typval_T *)lua_touserdata(lstate, 2); lua_pop(lstate, 2); @@ -135,6 +153,79 @@ static int nlua_exec_lua_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL return 0; } +/// Evaluate lua string for each line in range +/// +/// Expects two values on the stack: string to evaluate and pointer to integer +/// array with line range. Always returns nothing (from the lua point of view). +static int nlua_exec_luado_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL +{ + const String *const str = (const String *)lua_touserdata(lstate, 1); + const linenr_T *const range = (const linenr_T *)lua_touserdata(lstate, 1); + lua_pop(lstate, 1); + +#define DOSTART "return function(line, linenr) " +#define DOEND " end" + const size_t lcmd_len = str->size + (sizeof(DOSTART) - 1) + (sizeof(DOEND) - 1); + char *lcmd; + if (lcmd_len < IOSIZE) { + lcmd = (char *)IObuff; + } else { + lcmd = xmalloc(lcmd_len); + } + memcpy(lcmd, S_LEN(DOSTART)); + memcpy(lcmd + sizeof(DOSTART) - 1, str->data, str->size); + memcpy(lcmd + sizeof(DOSTART) - 1 + str->size, S_LEN(DOEND)); +#undef DOSTART +#undef DOEND + + if (luaL_loadbuffer(lstate, lcmd, lcmd_len, NLUA_EVAL_NAME)) { + nlua_error(lstate, _("E5109: Error while creating lua chunk: %.*s")); + return 0; + } + if (lua_pcall(lstate, 0, 1, 0)) { + nlua_error(lstate, _("E5110: Error while creating lua function: %.*s")); + return 0; + } + for (linenr_T l = range[0]; l < range[1]; l++) { + if (l > curbuf->b_ml.ml_line_count) { + break; + } + lua_pushvalue(lstate, -1); + lua_pushstring(lstate, (const char *)ml_get_buf(curbuf, l, false)); + lua_pushnumber(lstate, (lua_Number)l); + if (lua_pcall(lstate, 2, 1, 0)) { + nlua_error(lstate, _("E5111: Error while calling lua function: %.*s")); + break; + } + if (lua_isstring(lstate, -1)) { + if (sandbox) { + EMSG(_("E5112: Not allowed in sandbox")); + lua_pop(lstate, 1); + break; + } + size_t new_line_len; + const char *new_line = lua_tolstring(lstate, -1, &new_line_len); + char *const new_line_transformed = ( + new_line_len < IOSIZE + ? memcpy(IObuff, new_line, new_line_len) + : xmemdupz(new_line, new_line_len)); + new_line_transformed[new_line_len] = NUL; + for (size_t i = 0; i < new_line_len; i++) { + if (new_line_transformed[new_line_len] == NUL) { + new_line_transformed[new_line_len] = '\n'; + } + } + ml_replace(l, (char_u *)new_line_transformed, true); + changed_bytes(l, 0); + } + lua_pop(lstate, 1); + } + lua_pop(lstate, 1); + check_cursor(); + update_screen(NOT_VALID); + return 0; +} + /// Initialize lua interpreter state /// /// Called by lua interpreter itself to initialize state. @@ -200,7 +291,7 @@ void executor_exec_lua(const String str, typval_T *const ret_tv) static int nlua_eval_lua_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL { - const String *const str = (String *)lua_touserdata(lstate, 1); + const String *const str = (const String *)lua_touserdata(lstate, 1); typval_T *const arg = (typval_T *)lua_touserdata(lstate, 2); typval_T *const ret_tv = (typval_T *)lua_touserdata(lstate, 3); lua_pop(lstate, 3); @@ -215,7 +306,7 @@ static int nlua_eval_lua_string(lua_State *const lstate) } else { lcmd = xmalloc(lcmd_len); } - memcpy(lcmd, EVALHEADER, sizeof(EVALHEADER) - 1); + memcpy(lcmd, S_LEN(EVALHEADER)); memcpy(lcmd + sizeof(EVALHEADER) - 1, str->data, str->size); lcmd[lcmd_len - 1] = ')'; #undef EVALHEADER @@ -288,3 +379,27 @@ void ex_lua(exarg_T *const eap) clear_tv(&tv); xfree(code); } + +/// Run lua string for each line in range +/// +/// Used for :luado. +/// +/// @param eap VimL command being run. +void ex_luado(exarg_T *const eap) + FUNC_ATTR_NONNULL_ALL +{ + if (global_lstate == NULL) { + global_lstate = init_lua(); + } + if (u_save(eap->line1 - 1, eap->line2 + 1) == FAIL) { + EMSG(_("cannot save undo information")); + return; + } + const String cmd = { + .size = STRLEN(eap->arg), + .data = (char *)eap->arg, + }; + const linenr_T range[] = { eap->line1, eap->line2 }; + NLUA_CALL_C_FUNCTION_2(global_lstate, nlua_exec_luado_string, 0, + (void *)&cmd, (void *)range); +} -- cgit From e1bbaca7acf7fc498da49081d069b00aa05506df Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 19:26:22 +0300 Subject: executor,functests: Add tests for :luado, also some fixes Fixes: 1. Allocate space for the NUL byte. 2. Do not exclude last line from range. 3. Remove code for sandbox: it is handled earlier. 4. Fix index in new_line_transformed when converting NULs to NLs. 5. Always allocate new_line_transformed, but save allocated value. --- src/nvim/viml/executor/executor.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index 80f2651afc..c426806b6f 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -160,17 +160,19 @@ static int nlua_exec_lua_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL static int nlua_exec_luado_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL { const String *const str = (const String *)lua_touserdata(lstate, 1); - const linenr_T *const range = (const linenr_T *)lua_touserdata(lstate, 1); + const linenr_T *const range = (const linenr_T *)lua_touserdata(lstate, 2); lua_pop(lstate, 1); #define DOSTART "return function(line, linenr) " #define DOEND " end" - const size_t lcmd_len = str->size + (sizeof(DOSTART) - 1) + (sizeof(DOEND) - 1); + const size_t lcmd_len = (str->size + + (sizeof(DOSTART) - 1) + + (sizeof(DOEND) - 1)); char *lcmd; if (lcmd_len < IOSIZE) { lcmd = (char *)IObuff; } else { - lcmd = xmalloc(lcmd_len); + lcmd = xmalloc(lcmd_len + 1); } memcpy(lcmd, S_LEN(DOSTART)); memcpy(lcmd + sizeof(DOSTART) - 1, str->data, str->size); @@ -186,7 +188,7 @@ static int nlua_exec_luado_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL nlua_error(lstate, _("E5110: Error while creating lua function: %.*s")); return 0; } - for (linenr_T l = range[0]; l < range[1]; l++) { + for (linenr_T l = range[0]; l <= range[1]; l++) { if (l > curbuf->b_ml.ml_line_count) { break; } @@ -198,24 +200,15 @@ static int nlua_exec_luado_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL break; } if (lua_isstring(lstate, -1)) { - if (sandbox) { - EMSG(_("E5112: Not allowed in sandbox")); - lua_pop(lstate, 1); - break; - } size_t new_line_len; - const char *new_line = lua_tolstring(lstate, -1, &new_line_len); - char *const new_line_transformed = ( - new_line_len < IOSIZE - ? memcpy(IObuff, new_line, new_line_len) - : xmemdupz(new_line, new_line_len)); - new_line_transformed[new_line_len] = NUL; + const char *const new_line = lua_tolstring(lstate, -1, &new_line_len); + char *const new_line_transformed = xmemdupz(new_line, new_line_len); for (size_t i = 0; i < new_line_len; i++) { - if (new_line_transformed[new_line_len] == NUL) { - new_line_transformed[new_line_len] = '\n'; + if (new_line_transformed[i] == NUL) { + new_line_transformed[i] = '\n'; } } - ml_replace(l, (char_u *)new_line_transformed, true); + ml_replace(l, (char_u *)new_line_transformed, false); changed_bytes(l, 0); } lua_pop(lstate, 1); -- cgit From 295e7607c472b49e8c0762977e38c4527b746b6f Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 19:32:01 +0300 Subject: executor: Fix some memory leaks --- src/nvim/viml/executor/executor.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index c426806b6f..df63667102 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -182,8 +182,14 @@ static int nlua_exec_luado_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL if (luaL_loadbuffer(lstate, lcmd, lcmd_len, NLUA_EVAL_NAME)) { nlua_error(lstate, _("E5109: Error while creating lua chunk: %.*s")); + if (lcmd_len >= IOSIZE) { + xfree(lcmd); + } return 0; } + if (lcmd_len >= IOSIZE) { + xfree(lcmd); + } if (lua_pcall(lstate, 0, 1, 0)) { nlua_error(lstate, _("E5110: Error while creating lua function: %.*s")); return 0; -- cgit From dcb992ab3759b604c1824913002714a018be0532 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 19:51:55 +0300 Subject: executor: Add :luafile command --- src/nvim/ex_cmds.lua | 2 +- src/nvim/viml/executor/executor.c | 37 ++++++++++++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua index 25e74ebf9b..ad2fb642d4 100644 --- a/src/nvim/ex_cmds.lua +++ b/src/nvim/ex_cmds.lua @@ -1554,7 +1554,7 @@ return { command='luafile', flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN), addr_type=ADDR_LINES, - func='ex_ni', + func='ex_luafile', }, { command='lvimgrep', diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index df63667102..a01bf9966d 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -161,7 +161,7 @@ static int nlua_exec_luado_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL { const String *const str = (const String *)lua_touserdata(lstate, 1); const linenr_T *const range = (const linenr_T *)lua_touserdata(lstate, 2); - lua_pop(lstate, 1); + lua_pop(lstate, 2); #define DOSTART "return function(line, linenr) " #define DOEND " end" @@ -225,6 +225,26 @@ static int nlua_exec_luado_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL return 0; } +/// Evaluate lua file +/// +/// Expects one value on the stack: file to evaluate. Always returns nothing +/// (from the lua point of view). +static int nlua_exec_lua_file(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL +{ + const char *const filename = (const char *)lua_touserdata(lstate, 1); + lua_pop(lstate, 1); + + if (luaL_loadfile(lstate, filename)) { + nlua_error(lstate, _("E5112: Error while creating lua chunk: %.*s")); + return 0; + } + if (lua_pcall(lstate, 0, 0, 0)) { + nlua_error(lstate, _("E5113: Error while calling lua chunk: %.*s")); + return 0; + } + return 0; +} + /// Initialize lua interpreter state /// /// Called by lua interpreter itself to initialize state. @@ -402,3 +422,18 @@ void ex_luado(exarg_T *const eap) NLUA_CALL_C_FUNCTION_2(global_lstate, nlua_exec_luado_string, 0, (void *)&cmd, (void *)range); } + +/// Run lua file +/// +/// Used for :luafile. +/// +/// @param eap VimL command being run. +void ex_luafile(exarg_T *const eap) + FUNC_ATTR_NONNULL_ALL +{ + if (global_lstate == NULL) { + global_lstate = init_lua(); + } + NLUA_CALL_C_FUNCTION_1(global_lstate, nlua_exec_lua_file, 0, + (void *)eap->arg); +} -- cgit From 1801d44f53e4340f5483902e6f0a2aa0ab4f551a Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 20:20:41 +0300 Subject: executor: Do not use S_LEN for memcpy Sometimes it is implemented as a macro and `S_LEN` is treated as a single argument in this case. --- src/nvim/viml/executor/executor.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index a01bf9966d..ad92b52f3e 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -174,9 +174,9 @@ static int nlua_exec_luado_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL } else { lcmd = xmalloc(lcmd_len + 1); } - memcpy(lcmd, S_LEN(DOSTART)); + memcpy(lcmd, DOSTART, sizeof(DOSTART) - 1); memcpy(lcmd + sizeof(DOSTART) - 1, str->data, str->size); - memcpy(lcmd + sizeof(DOSTART) - 1 + str->size, S_LEN(DOEND)); + memcpy(lcmd + sizeof(DOSTART) - 1 + str->size, DOEND, sizeof(DOEND) - 1); #undef DOSTART #undef DOEND @@ -325,7 +325,7 @@ static int nlua_eval_lua_string(lua_State *const lstate) } else { lcmd = xmalloc(lcmd_len); } - memcpy(lcmd, S_LEN(EVALHEADER)); + memcpy(lcmd, EVALHEADER, sizeof(EVALHEADER) - 1); memcpy(lcmd + sizeof(EVALHEADER) - 1, str->data, str->size); lcmd[lcmd_len - 1] = ')'; #undef EVALHEADER -- cgit From f2ad6201d94fec1e0c98550e55f3b069fa24a68b Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 21:03:36 +0300 Subject: api: Use a form of `1 << 63` for INTERNAL_CALL_MASK --- src/nvim/api/private/defs.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src') diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h index 432ab347bc..8bd1dd5085 100644 --- a/src/nvim/api/private/defs.h +++ b/src/nvim/api/private/defs.h @@ -36,9 +36,7 @@ typedef enum { #define NO_RESPONSE UINT64_MAX /// Mask for all internal calls -#define INTERNAL_CALL_MASK (UINT64_MAX ^ (UINT64_MAX >> 1)) -// (1 << 63) in all forms produces “warning: shift count >= width of type -// [-Wshift-count-overflow]” +#define INTERNAL_CALL_MASK (((uint64_t)1) << (sizeof(uint64_t) * 8 - 1)) /// Internal call from VimL code #define VIML_INTERNAL_CALL INTERNAL_CALL_MASK -- cgit From 90e2a043e3394f83eb5d5e32e13cda00d752f212 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 21:58:55 +0300 Subject: executor: Add print() function --- src/nvim/viml/executor/executor.c | 74 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) (limited to 'src') diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index ad92b52f3e..48149c4420 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -252,6 +252,8 @@ static int nlua_state_init(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL { lua_pushcfunction(lstate, &nlua_stricmp); lua_setglobal(lstate, "stricmp"); + lua_pushcfunction(lstate, &nlua_print); + lua_setglobal(lstate, "print"); if (luaL_dostring(lstate, (char *)&vim_module[0])) { nlua_error(lstate, _("E5106: Error while creating vim module: %.*s")); return 1; @@ -358,6 +360,78 @@ static int nlua_eval_lua_string(lua_State *const lstate) return 0; } +/// Print as a Vim message +/// +/// @param lstate Lua interpreter state. +static int nlua_print(lua_State *const lstate) + FUNC_ATTR_NONNULL_ALL +{ +#define PRINT_ERROR(msg) \ + do { \ + errmsg = msg; \ + errmsg_len = sizeof(msg) - 1; \ + goto nlua_print_error; \ + } while (0) + const int nargs = lua_gettop(lstate); + lua_getglobal(lstate, "tostring"); + const char *errmsg = NULL; + size_t errmsg_len = 0; + garray_T msg_ga; + ga_init(&msg_ga, 1, 80); + int curargidx = 1; + for (; curargidx <= nargs; curargidx++) { + lua_pushvalue(lstate, -1); // tostring + lua_pushvalue(lstate, curargidx); // arg + if (lua_pcall(lstate, 1, 1, 0)) { + errmsg = lua_tolstring(lstate, -1, &errmsg_len); + if (!errmsg) { + PRINT_ERROR(""); + } + goto nlua_print_error; + } + size_t len; + const char *const s = lua_tolstring(lstate, -1, &len); + if (s == NULL) { + PRINT_ERROR( + ""); + } + ga_concat_len(&msg_ga, s, len); + if (curargidx < nargs) { + ga_append(&msg_ga, ' '); + } + lua_pop(lstate, 1); + } +#undef PRINT_ERROR + lua_pop(lstate, nargs + 1); + ga_append(&msg_ga, NUL); + { + const size_t len = (size_t)msg_ga.ga_len - 1; + char *const str = (char *)msg_ga.ga_data; + + for (size_t i = 0; i < len - 1;) { + const size_t start = i; + while (str[i] != NL && i < len - 1) { + if (str[i] == NUL) { + str[i] = NL; + } + i++; + } + if (str[i] == NL) { + str[i] = NUL; + } + msg((char_u *)str + start); + } + } + ga_clear(&msg_ga); + return 0; +nlua_print_error: + emsgf(_("E5114: Error while converting print argument #%i: %.*s"), + curargidx, errmsg_len, errmsg); + ga_clear(&msg_ga); + lua_pop(lstate, lua_gettop(lstate)); + return 0; +} + /// Evaluate lua string /// /// Used for luaeval(). -- cgit From 9fd2bf67aa1db66e3465753d5aaaec342f4ce193 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 29 Jan 2017 23:22:50 +0300 Subject: executor,functests: Add print() tests, some fixes --- src/nvim/viml/executor/executor.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index 48149c4420..4eb63f38ad 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -384,9 +384,6 @@ static int nlua_print(lua_State *const lstate) lua_pushvalue(lstate, curargidx); // arg if (lua_pcall(lstate, 1, 1, 0)) { errmsg = lua_tolstring(lstate, -1, &errmsg_len); - if (!errmsg) { - PRINT_ERROR(""); - } goto nlua_print_error; } size_t len; @@ -408,19 +405,32 @@ static int nlua_print(lua_State *const lstate) const size_t len = (size_t)msg_ga.ga_len - 1; char *const str = (char *)msg_ga.ga_data; - for (size_t i = 0; i < len - 1;) { + for (size_t i = 0; i < len;) { const size_t start = i; - while (str[i] != NL && i < len - 1) { - if (str[i] == NUL) { - str[i] = NL; + while (i < len) { + switch (str[i]) { + case NUL: { + str[i] = NL; + i++; + continue; + } + case NL: { + str[i] = NUL; + i++; + break; + } + default: { + i++; + continue; + } } - i++; - } - if (str[i] == NL) { - str[i] = NUL; + break; } msg((char_u *)str + start); } + if (str[len - 1] == NUL) { // Last was newline + msg((char_u *)""); + } } ga_clear(&msg_ga); return 0; -- cgit From 73d37f8b6e9eba0d2f2c59694ae5a13777a7f1cd Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 30 Jan 2017 00:34:33 +0300 Subject: executor: Add :lua debug.debug mock --- src/nvim/eval.c | 177 ++++++++++++++++++++------------------ src/nvim/ex_docmd.c | 4 +- src/nvim/message.c | 3 +- src/nvim/viml/executor/executor.c | 38 ++++++++ 4 files changed, 136 insertions(+), 86 deletions(-) (limited to 'src') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 8b6638f1d7..fa817bb705 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -12280,93 +12280,70 @@ static void f_index(typval_T *argvars, typval_T *rettv, FunPtr fptr) static int inputsecret_flag = 0; +/// Get user input +/// +/// Used for f_input and f_inputdialog functions. +/// +/// @param[in] prompt Input prompt. +/// @param[in] initval Initial value, may be NULL. +/// @param[in] xp_name Completion, for input(). +/// @param[in] cancelval Value returned when user cancelled dialog, for +/// inputdialog(). +/// +/// @return [allocated] User input or NULL. +char *get_user_input(const char *const prompt, + const char *const initval, + const char *const xp_name, + const char *const cancelval) + FUNC_ATTR_NONNULL_ARG(1, 2) FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_MALLOC +{ + char *ret = NULL; + const int saved_cmd_silent = cmd_silent; + cmd_silent = false; // Want to see the prompt. + // Only the part of the message after the last NL is considered as + // prompt for the command line. + const char *p = strrchr(prompt, NL); + if (p == NULL) { + p = prompt; + } else { + p++; + msg_start(); + msg_clr_eos(); + msg_puts_attr_len(prompt, (int)(p - prompt) + 1, echo_attr); + msg_didout = false; + msg_starthere(); + } + cmdline_row = msg_row; -/* - * This function is used by f_input() and f_inputdialog() functions. The third - * argument to f_input() specifies the type of completion to use at the - * prompt. The third argument to f_inputdialog() specifies the value to return - * when the user cancels the prompt. - */ -static void get_user_input(typval_T *argvars, typval_T *rettv, int inputdialog) -{ - char_u *prompt = get_tv_string_chk(&argvars[0]); - char_u *p = NULL; - int c; - char_u buf[NUMBUFLEN]; - int cmd_silent_save = cmd_silent; - char_u *defstr = (char_u *)""; - int xp_type = EXPAND_NOTHING; - char_u *xp_arg = NULL; - - rettv->v_type = VAR_STRING; - rettv->vval.v_string = NULL; + stuffReadbuffSpec((char_u *)initval); - cmd_silent = FALSE; /* Want to see the prompt. */ - if (prompt != NULL) { - /* Only the part of the message after the last NL is considered as - * prompt for the command line */ - p = vim_strrchr(prompt, '\n'); - if (p == NULL) - p = prompt; - else { - ++p; - c = *p; - *p = NUL; - msg_start(); - msg_clr_eos(); - msg_puts_attr((const char *)prompt, echo_attr); - msg_didout = false; - msg_starthere(); - *p = c; + char *xp_arg = NULL; + int xp_type = EXPAND_NOTHING; + if (xp_name != NULL) { + uint32_t argt; + if (parse_compl_arg((const char_u *)xp_name, (int)strlen(xp_name), + &xp_type, &argt, (char_u **)&xp_arg) == FAIL) { + return NULL; } - cmdline_row = msg_row; - - if (argvars[1].v_type != VAR_UNKNOWN) { - defstr = get_tv_string_buf_chk(&argvars[1], buf); - if (defstr != NULL) - stuffReadbuffSpec(defstr); - - if (!inputdialog && argvars[2].v_type != VAR_UNKNOWN) { - char_u *xp_name; - int xp_namelen; - uint32_t argt; - - /* input() with a third argument: completion */ - rettv->vval.v_string = NULL; - - xp_name = get_tv_string_buf_chk(&argvars[2], buf); - if (xp_name == NULL) - return; + } - xp_namelen = (int)STRLEN(xp_name); + const int saved_ex_normal_busy = ex_normal_busy; + ex_normal_busy = 0; + ret = (char *)getcmdline_prompt(inputsecret_flag ? NUL : '@', (char_u *)p, + echo_attr, xp_type, (char_u *)xp_arg); + ex_normal_busy = saved_ex_normal_busy; - if (parse_compl_arg(xp_name, xp_namelen, &xp_type, &argt, - &xp_arg) == FAIL) - return; - } - } - - if (defstr != NULL) { - int save_ex_normal_busy = ex_normal_busy; - ex_normal_busy = 0; - rettv->vval.v_string = - getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr, - xp_type, xp_arg); - ex_normal_busy = save_ex_normal_busy; - } - if (inputdialog && rettv->vval.v_string == NULL - && argvars[1].v_type != VAR_UNKNOWN - && argvars[2].v_type != VAR_UNKNOWN) - rettv->vval.v_string = vim_strsave(get_tv_string_buf( - &argvars[2], buf)); + if (ret == NULL && cancelval != NULL) { + ret = xstrdup(cancelval); + } - xfree(xp_arg); + xfree(xp_arg); - /* since the user typed this, no need to wait for return */ - need_wait_return = FALSE; - msg_didout = FALSE; - } - cmd_silent = cmd_silent_save; + // Since the user typed this, no need to wait for return. + need_wait_return = false; + msg_didout = false; + cmd_silent = saved_cmd_silent; + return ret; } /* @@ -12375,7 +12352,25 @@ static void get_user_input(typval_T *argvars, typval_T *rettv, int inputdialog) */ static void f_input(typval_T *argvars, typval_T *rettv, FunPtr fptr) { - get_user_input(argvars, rettv, FALSE); + char initval_buf[NUMBUFLEN]; + char xp_name_buf[NUMBUFLEN]; + const char *const prompt = (const char *)get_tv_string_chk(&argvars[0]); + const char *const initval = ( + argvars[1].v_type != VAR_UNKNOWN + ? (const char *)get_tv_string_buf(&argvars[1], (char_u *)initval_buf) + : ""); + const char *const xp_name = ( + argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN + ? (const char *)get_tv_string_buf(&argvars[2], (char_u *)xp_name_buf) + : NULL); + if (prompt == NULL || initval == NULL || ( + argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN + && xp_name == NULL)) { + return; + } + rettv->v_type = VAR_STRING; + rettv->vval.v_string = (char_u *)get_user_input(prompt, initval, xp_name, + NULL); } /* @@ -12383,7 +12378,25 @@ static void f_input(typval_T *argvars, typval_T *rettv, FunPtr fptr) */ static void f_inputdialog(typval_T *argvars, typval_T *rettv, FunPtr fptr) { - get_user_input(argvars, rettv, TRUE); + char initval_buf[NUMBUFLEN]; + char cancelval_buf[NUMBUFLEN]; + const char *const prompt = (const char *)get_tv_string_chk(&argvars[0]); + const char *const initval = ( + argvars[1].v_type != VAR_UNKNOWN + ? (const char *)get_tv_string_buf(&argvars[1], (char_u *)initval_buf) + : ""); + const char *const cancelval = ( + argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN + ? (const char *)get_tv_string_buf(&argvars[2], (char_u *)cancelval_buf) + : NULL); + if (prompt == NULL || initval == NULL || ( + argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN + && cancelval == NULL)) { + return; + } + rettv->v_type = VAR_STRING; + rettv->vval.v_string = (char_u *)get_user_input(prompt, initval, NULL, + cancelval); } /* diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 74bb6177c6..69dab9c18f 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -5757,10 +5757,10 @@ int parse_addr_type_arg(char_u *value, int vallen, uint32_t *argt, * copied to allocated memory and stored in "*compl_arg". * Returns FAIL if something is wrong. */ -int parse_compl_arg(char_u *value, int vallen, int *complp, +int parse_compl_arg(const char_u *value, int vallen, int *complp, uint32_t *argt, char_u **compl_arg) { - char_u *arg = NULL; + const char_u *arg = NULL; size_t arglen = 0; int i; int valend = vallen; diff --git a/src/nvim/message.c b/src/nvim/message.c index bf54284881..4b786c11dd 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -1564,7 +1564,6 @@ void msg_puts_attr(const char *const s, const int attr) /// Like msg_puts_attr(), but with a maximum length "maxlen" (in bytes). /// When "maxlen" is -1 there is no maximum length. -/// When "maxlen" is >= 0 the message is not put in the history. void msg_puts_attr_len(const char *str, const ptrdiff_t maxlen, int attr) { // If redirection is on, also write to the redirection file. @@ -1576,7 +1575,7 @@ void msg_puts_attr_len(const char *str, const ptrdiff_t maxlen, int attr) } // if MSG_HIST flag set, add message to history - if ((attr & MSG_HIST) && maxlen < 0) { + if (attr & MSG_HIST) { add_msg_hist(str, -1, attr); attr &= ~MSG_HIST; } diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c index 4eb63f38ad..d0e269bf6a 100644 --- a/src/nvim/viml/executor/executor.c +++ b/src/nvim/viml/executor/executor.c @@ -250,15 +250,28 @@ static int nlua_exec_lua_file(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL /// Called by lua interpreter itself to initialize state. static int nlua_state_init(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL { + // stricmp lua_pushcfunction(lstate, &nlua_stricmp); lua_setglobal(lstate, "stricmp"); + + // print lua_pushcfunction(lstate, &nlua_print); lua_setglobal(lstate, "print"); + + // debug.debug + lua_getglobal(lstate, "debug"); + lua_pushcfunction(lstate, &nlua_debug); + lua_setfield(lstate, -2, "debug"); + lua_pop(lstate, 1); + + // vim if (luaL_dostring(lstate, (char *)&vim_module[0])) { nlua_error(lstate, _("E5106: Error while creating vim module: %.*s")); return 1; } + // vim.api nlua_add_api_functions(lstate); + // vim.types, vim.type_idx, vim.val_idx nlua_init_types(lstate); lua_setglobal(lstate, "vim"); return 0; @@ -442,6 +455,31 @@ nlua_print_error: return 0; } +/// debug.debug implementation: interaction with user while debugging +/// +/// @param lstate Lua interpreter state. +int nlua_debug(lua_State *lstate) + FUNC_ATTR_NONNULL_ALL +{ + for (;;) { + lua_settop(lstate, 0); + char *const input = get_user_input("lua_debug> ", "", NULL, NULL); + msg_putchar('\n'); // Avoid outputting on input line. + if (input == NULL || *input == NUL || strcmp(input, "cont") == 0) { + xfree(input); + return 0; + } + if (luaL_loadbuffer(lstate, input, strlen(input), "=(debug command)")) { + nlua_error(lstate, _("E5115: Error while loading debug string: %.*s")); + } + xfree(input); + if (lua_pcall(lstate, 0, 0, 0)) { + nlua_error(lstate, _("E5116: Error while calling debug string: %.*s")); + } + } + return 0; +} + /// Evaluate lua string /// /// Used for luaeval(). -- cgit From a24e94215ed0a4bfe55b6741ab2e9477b278dbb7 Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 30 Jan 2017 03:35:45 +0300 Subject: eval,functests: Fix linter errors --- src/nvim/eval.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index fa817bb705..67b755f053 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -12363,8 +12363,8 @@ static void f_input(typval_T *argvars, typval_T *rettv, FunPtr fptr) argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN ? (const char *)get_tv_string_buf(&argvars[2], (char_u *)xp_name_buf) : NULL); - if (prompt == NULL || initval == NULL || ( - argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN + if (prompt == NULL || initval == NULL + || (argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN && xp_name == NULL)) { return; } @@ -12389,8 +12389,8 @@ static void f_inputdialog(typval_T *argvars, typval_T *rettv, FunPtr fptr) argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN ? (const char *)get_tv_string_buf(&argvars[2], (char_u *)cancelval_buf) : NULL); - if (prompt == NULL || initval == NULL || ( - argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN + if (prompt == NULL || initval == NULL + || (argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN && cancelval == NULL)) { return; } -- cgit From 5992cdf3c27ee9c73cea22e288c6ea6d54867394 Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 30 Jan 2017 23:13:06 +0300 Subject: cmake: Use set_property in place of target_include_dirs Should work with cmake-2.8.7. --- src/nvim/CMakeLists.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 0cf331206e..a6ae758a8e 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -321,9 +321,11 @@ target_link_libraries(nvim ${NVIM_EXEC_LINK_LIBRARIES}) install_helper(TARGETS nvim) if(PREFER_LUAJIT) - target_include_directories(nvim SYSTEM PRIVATE ${LUAJIT_INCLUDE_DIRS}) + set_property(TARGET nvim APPEND PROPERTY + INCLUDE_DIRECTORIES ${LUAJIT_INCLUDE_DIRS}) else() - target_include_directories(nvim SYSTEM PRIVATE ${LUA_INCLUDE_DIRS}) + set_property(TARGET nvim APPEND PROPERTY + INCLUDE_DIRECTORIES ${LUA_INCLUDE_DIRS}) endif() if(WIN32) @@ -374,7 +376,8 @@ endif() add_library(libnvim STATIC EXCLUDE_FROM_ALL ${NEOVIM_GENERATED_SOURCES} ${NEOVIM_SOURCES} ${NEOVIM_HEADERS}) -target_include_directories(libnvim SYSTEM PRIVATE ${LUAJIT_INCLUDE_DIRS}) +set_property(TARGET libnvim APPEND PROPERTY + INCLUDE_DIRECTORIES ${LUAJIT_INCLUDE_DIRS}) target_link_libraries(libnvim ${NVIM_TEST_LINK_LIBRARIES}) set_target_properties(libnvim PROPERTIES POSITION_INDEPENDENT_CODE ON @@ -385,7 +388,8 @@ set_property(TARGET libnvim add_library(nvim-test MODULE EXCLUDE_FROM_ALL ${NEOVIM_GENERATED_SOURCES} ${NEOVIM_SOURCES} ${UNIT_TEST_FIXTURES} ${NEOVIM_HEADERS}) target_link_libraries(nvim-test ${NVIM_TEST_LINK_LIBRARIES}) -target_include_directories(nvim-test SYSTEM PRIVATE ${LUAJIT_INCLUDE_DIRS}) +set_property(TARGET nvim-test APPEND PROPERTY + INCLUDE_DIRECTORIES ${LUAJIT_INCLUDE_DIRS}) set_target_properties(nvim-test PROPERTIES POSITION_INDEPENDENT_CODE ON) set_property(TARGET nvim-test -- cgit From 19044a15f9d41a7424e94fb3f0e257537e7afa5e Mon Sep 17 00:00:00 2001 From: ZyX Date: Thu, 6 Apr 2017 21:21:11 +0300 Subject: strings: Replace vim_strchr implementation with a saner one Removes dead code (enc_utf8, enc_dbcs and has_mbyte now have hardcoded values), relies on libc implementation being more optimized. Also where previously negative character just would never be found it is an assertion error now. Ref #1476 --- src/nvim/strings.c | 64 ++++++++++++++++-------------------------------------- 1 file changed, 19 insertions(+), 45 deletions(-) (limited to 'src') diff --git a/src/nvim/strings.c b/src/nvim/strings.c index 5dcffe00e0..c4bc9b204a 100644 --- a/src/nvim/strings.c +++ b/src/nvim/strings.c @@ -401,54 +401,28 @@ int vim_strnicmp(const char *s1, const char *s2, size_t len) } #endif -/* - * Version of strchr() and strrchr() that handle unsigned char strings - * with characters from 128 to 255 correctly. It also doesn't return a - * pointer to the NUL at the end of the string. - */ -char_u *vim_strchr(const char_u *string, int c) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE +/// strchr() version which handles multibyte strings +/// +/// @param[in] string String to search in. +/// @param[in] c Character to search for. Must be a valid character. +/// +/// @return Pointer to the first byte of the found character in string or NULL +/// if it was not found. NUL character is never found, use `strlen()` +/// instead. +char_u *vim_strchr(const char_u *const string, const int c) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT { - int b; - - const char_u *p = string; - if (enc_utf8 && c >= 0x80) { - while (*p != NUL) { - int l = (*mb_ptr2len)(p); - - // Avoid matching an illegal byte here. - if (l > 1 && utf_ptr2char(p) == c) { - return (char_u *) p; - } - p += l; - } + assert(c >= 0); + if (c == 0) { return NULL; + } else if (c < 0x80) { + return (char_u *)strchr((const char *)string, c); + } else { + char u8char[MB_MAXBYTES + 1]; + const int len = utf_char2bytes(c, (char_u *)u8char); + u8char[len] = NUL; + return (char_u *)strstr((const char *)string, u8char); } - if (enc_dbcs != 0 && c > 255) { - int n2 = c & 0xff; - - c = ((unsigned)c >> 8) & 0xff; - while ((b = *p) != NUL) { - if (b == c && p[1] == n2) - return (char_u *) p; - p += (*mb_ptr2len)(p); - } - return NULL; - } - if (has_mbyte) { - while ((b = *p) != NUL) { - if (b == c) - return (char_u *) p; - p += (*mb_ptr2len)(p); - } - return NULL; - } - while ((b = *p) != NUL) { - if (b == c) - return (char_u *) p; - ++p; - } - return NULL; } /* -- cgit From 171baaee93c8e257ef593b30c05405d03ac30c96 Mon Sep 17 00:00:00 2001 From: ZyX Date: Thu, 6 Apr 2017 21:31:37 +0300 Subject: strings: Remove vim_strbyte Ref #1476 --- src/nvim/ex_cmds.c | 13 ++++++------- src/nvim/getchar.c | 4 ++-- src/nvim/mbyte.c | 6 +++--- src/nvim/regexp.c | 42 +++++++++++++++--------------------------- src/nvim/regexp_nfa.c | 13 +++---------- src/nvim/strings.c | 18 ------------------ 6 files changed, 29 insertions(+), 67 deletions(-) (limited to 'src') diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c index 9a847a4c0a..8485a1ca66 100644 --- a/src/nvim/ex_cmds.c +++ b/src/nvim/ex_cmds.c @@ -5087,14 +5087,13 @@ static void helptags_one(char_u *dir, char_u *ext, char_u *tagfname, } p1 = vim_strchr(IObuff, '*'); /* find first '*' */ while (p1 != NULL) { - /* Use vim_strbyte() instead of vim_strchr() so that when - * 'encoding' is dbcs it still works, don't find '*' in the - * second byte. */ - p2 = vim_strbyte(p1 + 1, '*'); /* find second '*' */ - if (p2 != NULL && p2 > p1 + 1) { /* skip "*" and "**" */ - for (s = p1 + 1; s < p2; ++s) - if (*s == ' ' || *s == '\t' || *s == '|') + p2 = (char_u *)strchr((const char *)p1 + 1, '*'); // Find second '*'. + if (p2 != NULL && p2 > p1 + 1) { // Skip "*" and "**". + for (s = p1 + 1; s < p2; s++) { + if (*s == ' ' || *s == '\t' || *s == '|') { break; + } + } /* * Only accept a *tag* when it consists of valid diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c index b83681ad01..56493a300d 100644 --- a/src/nvim/getchar.c +++ b/src/nvim/getchar.c @@ -3588,8 +3588,8 @@ int check_abbr(int c, char_u *ptr, int col, int mincol) char_u *q = mp->m_keys; int match; - if (vim_strbyte(mp->m_keys, K_SPECIAL) != NULL) { - /* might have CSI escaped mp->m_keys */ + if (strchr((const char *)mp->m_keys, K_SPECIAL) != NULL) { + // Might have CSI escaped mp->m_keys. q = vim_strsave(mp->m_keys); vim_unescape_csi(q); qlen = (int)STRLEN(q); diff --git a/src/nvim/mbyte.c b/src/nvim/mbyte.c index d96848754c..c31fee44af 100644 --- a/src/nvim/mbyte.c +++ b/src/nvim/mbyte.c @@ -356,10 +356,10 @@ int bomb_size(void) */ void remove_bom(char_u *s) { - char_u *p = s; + char *p = (char *)s; - while ((p = vim_strbyte(p, 0xef)) != NULL) { - if (p[1] == 0xbb && p[2] == 0xbf) { + while ((p = strchr(p, 0xef)) != NULL) { + if ((uint8_t)p[1] == 0xbb && (uint8_t)p[2] == 0xbf) { STRMOVE(p, p + 3); } else { p++; diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c index 9baa53d2a2..e9c9b491fd 100644 --- a/src/nvim/regexp.c +++ b/src/nvim/regexp.c @@ -3429,32 +3429,26 @@ static long bt_regexec_both(char_u *line, c = *prog->regmust; s = line + col; - /* - * This is used very often, esp. for ":global". Use three versions of - * the loop to avoid overhead of conditions. - */ - if (!ireg_ic - && !has_mbyte - ) - while ((s = vim_strbyte(s, c)) != NULL) { - if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0) - break; /* Found it. */ - ++s; - } - else if (!ireg_ic || (!enc_utf8 && mb_char2len(c) > 1)) + // This is used very often, esp. for ":global". Use two versions of + // the loop to avoid overhead of conditions. + if (!ireg_ic) { while ((s = vim_strchr(s, c)) != NULL) { - if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0) - break; /* Found it. */ + if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0) { + break; // Found it. + } mb_ptr_adv(s); } - else + } else { while ((s = cstrchr(s, c)) != NULL) { - if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0) - break; /* Found it. */ + if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0) { + break; // Found it. + } mb_ptr_adv(s); } - if (s == NULL) /* Not present. */ + } + if (s == NULL) { // Not present. goto theend; + } } regline = line; @@ -3484,14 +3478,8 @@ static long bt_regexec_both(char_u *line, /* Messy cases: unanchored match. */ while (!got_int) { if (prog->regstart != NUL) { - /* Skip until the char we know it must start with. - * Used often, do some work to avoid call overhead. */ - if (!ireg_ic - && !has_mbyte - ) - s = vim_strbyte(regline + col, prog->regstart); - else - s = cstrchr(regline + col, prog->regstart); + // Skip until the char we know it must start with. + s = cstrchr(regline + col, prog->regstart); if (s == NULL) { retval = 0; break; diff --git a/src/nvim/regexp_nfa.c b/src/nvim/regexp_nfa.c index 5b49ab38f0..a77978884e 100644 --- a/src/nvim/regexp_nfa.c +++ b/src/nvim/regexp_nfa.c @@ -4855,17 +4855,10 @@ static int failure_chance(nfa_state_T *state, int depth) */ static int skip_to_start(int c, colnr_T *colp) { - char_u *s; - - /* Used often, do some work to avoid call overhead. */ - if (!ireg_ic - && !has_mbyte - ) - s = vim_strbyte(regline + *colp, c); - else - s = cstrchr(regline + *colp, c); - if (s == NULL) + const char_u *const s = cstrchr(regline + *colp, c); + if (s == NULL) { return FAIL; + } *colp = (int)(s - regline); return OK; } diff --git a/src/nvim/strings.c b/src/nvim/strings.c index c4bc9b204a..ada4c108cf 100644 --- a/src/nvim/strings.c +++ b/src/nvim/strings.c @@ -425,24 +425,6 @@ char_u *vim_strchr(const char_u *const string, const int c) } } -/* - * Version of strchr() that only works for bytes and handles unsigned char - * strings with characters above 128 correctly. It also doesn't return a - * pointer to the NUL at the end of the string. - */ -char_u *vim_strbyte(const char_u *string, int c) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE -{ - const char_u *p = string; - - while (*p != NUL) { - if (*p == c) - return (char_u *) p; - ++p; - } - return NULL; -} - /* * Search for last occurrence of "c" in "string". * Return NULL if not found. -- cgit From ac1cb1c72fa762b39ff457153c7fa6ecf1eaedc3 Mon Sep 17 00:00:00 2001 From: ZyX Date: Thu, 6 Apr 2017 21:56:49 +0300 Subject: regexp: Refactor cstrchr Ref #1476 --- src/nvim/regexp.c | 55 +++++++++++++++++++++++++------------------------------ 1 file changed, 25 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c index e9c9b491fd..175aa1b970 100644 --- a/src/nvim/regexp.c +++ b/src/nvim/regexp.c @@ -6287,43 +6287,38 @@ static int cstrncmp(char_u *s1, char_u *s2, int *n) /* * cstrchr: This function is used a lot for simple searches, keep it fast! */ -static char_u *cstrchr(char_u *s, int c) +static inline char_u *cstrchr(const char_u *const s, const int c) + FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL + FUNC_ATTR_ALWAYS_INLINE { - char_u *p; - int cc; - - if (!ireg_ic - || (!enc_utf8 && mb_char2len(c) > 1) - ) + if (!ireg_ic) { return vim_strchr(s, c); + } + + // tolower() and toupper() can be slow, comparing twice should be a lot + // faster (esp. when using MS Visual C++!). + // For UTF-8 need to use folded case. + if (c > 0x80) { + const int folded_c = utf_fold(c); + for (const char_u *p = s; *p != NUL; p += utfc_ptr2len(p)) { + if (utf_fold(utf_ptr2char(p)) == folded_c) { + return (char_u *)p; + } + } + return NULL; + } - /* tolower() and toupper() can be slow, comparing twice should be a lot - * faster (esp. when using MS Visual C++!). - * For UTF-8 need to use folded case. */ - if (enc_utf8 && c > 0x80) - cc = utf_fold(c); - else if (vim_isupper(c)) + int cc; + if (vim_isupper(c)) { cc = vim_tolower(c); - else if (vim_islower(c)) + } else if (vim_islower(c)) { cc = vim_toupper(c); - else + } else { return vim_strchr(s, c); + } - if (has_mbyte) { - for (p = s; *p != NUL; p += (*mb_ptr2len)(p)) { - if (enc_utf8 && c > 0x80) { - if (utf_fold(utf_ptr2char(p)) == cc) - return p; - } else if (*p == c || *p == cc) - return p; - } - } else - /* Faster version for when there are no multi-byte characters. */ - for (p = s; *p != NUL; ++p) - if (*p == c || *p == cc) - return p; - - return NULL; + char tofind[] = { (char)c, (char)cc, NUL }; + return (char_u *)strpbrk((const char *)s, tofind); } /*************************************************************** -- cgit From caeff6e1aff227bb5826ad575362d2a24adebaa9 Mon Sep 17 00:00:00 2001 From: ZyX Date: Fri, 7 Apr 2017 23:18:36 +0300 Subject: regexp: Do not use locale-dependent functions in cstrchr --- src/nvim/regexp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c index 175aa1b970..893089f06d 100644 --- a/src/nvim/regexp.c +++ b/src/nvim/regexp.c @@ -6309,10 +6309,10 @@ static inline char_u *cstrchr(const char_u *const s, const int c) } int cc; - if (vim_isupper(c)) { - cc = vim_tolower(c); - } else if (vim_islower(c)) { - cc = vim_toupper(c); + if (ASCII_ISUPPER(c)) { + cc = TOLOWER_ASC(c); + } else if (ASCII_ISLOWER(c)) { + cc = TOUPPER_ASC(c); } else { return vim_strchr(s, c); } -- cgit From acc52a953b99f78435c34337b8ca9b6716a057a1 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 8 Apr 2017 02:55:51 +0300 Subject: regexp: Update comment in cstrchr() --- src/nvim/regexp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c index 893089f06d..96884aa87f 100644 --- a/src/nvim/regexp.c +++ b/src/nvim/regexp.c @@ -6295,9 +6295,8 @@ static inline char_u *cstrchr(const char_u *const s, const int c) return vim_strchr(s, c); } - // tolower() and toupper() can be slow, comparing twice should be a lot - // faster (esp. when using MS Visual C++!). - // For UTF-8 need to use folded case. + // Use folded case for UTF-8, slow! For ASCII use libc strpbrk which is + // expected to be highly optimized. if (c > 0x80) { const int folded_c = utf_fold(c); for (const char_u *p = s; *p != NUL; p += utfc_ptr2len(p)) { -- cgit From 7b6b629e1a1e3c9f49f75f3bf2c53bb76f77e209 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 8 Apr 2017 20:30:26 +0300 Subject: api: Add FUNC_API_SINCE(1) to new functions --- src/nvim/api/vim.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 511c87f408..05317b8d69 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -844,6 +844,7 @@ static void write_msg(String message, bool to_err) /// /// @return its argument. Object _vim_id(Object obj) + FUNC_API_SINCE(1) { return copy_object(obj); } @@ -857,6 +858,7 @@ Object _vim_id(Object obj) /// /// @return its argument. Array _vim_id_array(Array arr) + FUNC_API_SINCE(1) { return copy_object(ARRAY_OBJ(arr)).data.array; } @@ -870,6 +872,7 @@ Array _vim_id_array(Array arr) /// /// @return its argument. Dictionary _vim_id_dictionary(Dictionary dct) + FUNC_API_SINCE(1) { return copy_object(DICTIONARY_OBJ(dct)).data.dictionary; } @@ -883,6 +886,7 @@ Dictionary _vim_id_dictionary(Dictionary dct) /// /// @return its argument. Float _vim_id_float(Float flt) + FUNC_API_SINCE(1) { return flt; } -- cgit From a40a969e9a4776f1e274dcf0e59c8f1ec1770ca0 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 8 Apr 2017 20:33:48 +0300 Subject: api: Rename _vim_id functions to nvim__id --- src/nvim/api/vim.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 05317b8d69..9ee3827040 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -843,7 +843,7 @@ static void write_msg(String message, bool to_err) /// @param[in] obj Object to return. /// /// @return its argument. -Object _vim_id(Object obj) +Object nvim__id(Object obj) FUNC_API_SINCE(1) { return copy_object(obj); @@ -857,7 +857,7 @@ Object _vim_id(Object obj) /// @param[in] arr Array to return. /// /// @return its argument. -Array _vim_id_array(Array arr) +Array nvim__id_array(Array arr) FUNC_API_SINCE(1) { return copy_object(ARRAY_OBJ(arr)).data.array; @@ -871,7 +871,7 @@ Array _vim_id_array(Array arr) /// @param[in] dct Dictionary to return. /// /// @return its argument. -Dictionary _vim_id_dictionary(Dictionary dct) +Dictionary nvim__id_dictionary(Dictionary dct) FUNC_API_SINCE(1) { return copy_object(DICTIONARY_OBJ(dct)).data.dictionary; @@ -885,7 +885,7 @@ Dictionary _vim_id_dictionary(Dictionary dct) /// @param[in] flt Value to return. /// /// @return its argument. -Float _vim_id_float(Float flt) +Float nvim__id_float(Float flt) FUNC_API_SINCE(1) { return flt; -- cgit From f3093bc508631930d41e9603b43687f4e51af2b3 Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 10 Apr 2017 23:10:01 +0300 Subject: api: Bump nvim__*id functions since value --- src/nvim/api/vim.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 9ee3827040..0056ea1725 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -844,7 +844,7 @@ static void write_msg(String message, bool to_err) /// /// @return its argument. Object nvim__id(Object obj) - FUNC_API_SINCE(1) + FUNC_API_SINCE(2) { return copy_object(obj); } @@ -858,7 +858,7 @@ Object nvim__id(Object obj) /// /// @return its argument. Array nvim__id_array(Array arr) - FUNC_API_SINCE(1) + FUNC_API_SINCE(2) { return copy_object(ARRAY_OBJ(arr)).data.array; } @@ -872,7 +872,7 @@ Array nvim__id_array(Array arr) /// /// @return its argument. Dictionary nvim__id_dictionary(Dictionary dct) - FUNC_API_SINCE(1) + FUNC_API_SINCE(2) { return copy_object(DICTIONARY_OBJ(dct)).data.dictionary; } @@ -886,7 +886,7 @@ Dictionary nvim__id_dictionary(Dictionary dct) /// /// @return its argument. Float nvim__id_float(Float flt) - FUNC_API_SINCE(1) + FUNC_API_SINCE(2) { return flt; } -- cgit From 57308c4f82aa18b4c6a1af76d224c40e442c9a1e Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 10 Apr 2017 23:22:59 +0300 Subject: eval/decode: Include header needed for TriState --- src/nvim/eval/decode.h | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/nvim/eval/decode.h b/src/nvim/eval/decode.h index c8e7a189e3..77fc4c78c2 100644 --- a/src/nvim/eval/decode.h +++ b/src/nvim/eval/decode.h @@ -6,6 +6,7 @@ #include #include "nvim/eval/typval.h" +#include "nvim/globals.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "eval/decode.h.generated.h" -- cgit From 1751ec192d860f2591d18c4aad4248b5ab786cec Mon Sep 17 00:00:00 2001 From: ZyX Date: Tue, 11 Apr 2017 01:05:56 +0300 Subject: viml/executor: Fix check-single-includes --- src/nvim/viml/executor/executor.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/nvim/viml/executor/executor.h b/src/nvim/viml/executor/executor.h index 85cb3550e7..648bb73785 100644 --- a/src/nvim/viml/executor/executor.h +++ b/src/nvim/viml/executor/executor.h @@ -5,6 +5,8 @@ #include "nvim/api/private/defs.h" #include "nvim/func_attr.h" +#include "nvim/eval/typval.h" +#include "nvim/ex_cmds_defs.h" // Generated by msgpack-gen.lua void nlua_add_api_functions(lua_State *lstate) REAL_FATTR_NONNULL_ALL; -- cgit From f98a3d85ed2f34a62300097fd30b393a3b3be393 Mon Sep 17 00:00:00 2001 From: ZyX Date: Tue, 11 Apr 2017 01:09:36 +0300 Subject: lua: Move files from src/nvim/viml/executor to src/nvim/lua --- src/nvim/CMakeLists.txt | 7 +- src/nvim/eval.c | 2 +- src/nvim/ex_docmd.c | 2 +- src/nvim/lua/converter.c | 1194 ++++++++++++++++++++++++++++++++++++ src/nvim/lua/converter.h | 15 + src/nvim/lua/executor.c | 576 +++++++++++++++++ src/nvim/lua/executor.h | 25 + src/nvim/lua/vim.lua | 2 + src/nvim/viml/executor/converter.c | 1194 ------------------------------------ src/nvim/viml/executor/converter.h | 15 - src/nvim/viml/executor/executor.c | 576 ----------------- src/nvim/viml/executor/executor.h | 25 - src/nvim/viml/executor/vim.lua | 2 - 13 files changed, 1817 insertions(+), 1818 deletions(-) create mode 100644 src/nvim/lua/converter.c create mode 100644 src/nvim/lua/converter.h create mode 100644 src/nvim/lua/executor.c create mode 100644 src/nvim/lua/executor.h create mode 100644 src/nvim/lua/vim.lua delete mode 100644 src/nvim/viml/executor/converter.c delete mode 100644 src/nvim/viml/executor/converter.h delete mode 100644 src/nvim/viml/executor/executor.c delete mode 100644 src/nvim/viml/executor/executor.h delete mode 100644 src/nvim/viml/executor/vim.lua (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index cec9a09141..1401029cf5 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -33,8 +33,8 @@ set(OPTIONS_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/genoptions.lua) set(UNICODE_TABLES_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/genunicodetables.lua) set(UNICODE_DIR ${PROJECT_SOURCE_DIR}/unicode) set(GENERATED_UNICODE_TABLES ${GENERATED_DIR}/unicode_tables.generated.h) -set(VIM_MODULE_FILE ${GENERATED_DIR}/viml/executor/vim_module.generated.h) -set(VIM_MODULE_SOURCE ${PROJECT_SOURCE_DIR}/src/nvim/viml/executor/vim.lua) +set(VIM_MODULE_FILE ${GENERATED_DIR}/lua/vim_module.generated.h) +set(VIM_MODULE_SOURCE ${PROJECT_SOURCE_DIR}/src/nvim/lua/vim.lua) set(CHAR_BLOB_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/gencharblob.lua) set(LINT_SUPPRESS_FILE ${PROJECT_BINARY_DIR}/errors.json) set(LINT_SUPPRESS_URL_BASE "https://raw.githubusercontent.com/neovim/doc/gh-pages/reports/clint") @@ -72,8 +72,7 @@ foreach(subdir tui event eval - viml - viml/executor + lua ) if(${subdir} MATCHES "tui" AND NOT FEAT_TUI) continue() diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 75cd100061..e60cc4e218 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -94,7 +94,7 @@ #include "nvim/lib/kvec.h" #include "nvim/lib/khash.h" #include "nvim/lib/queue.h" -#include "nvim/viml/executor/executor.h" +#include "nvim/lua/executor.h" #include "nvim/eval/typval.h" #include "nvim/eval/executor.h" #include "nvim/eval/gc.h" diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index e44d759e04..b7bf6b4728 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -67,7 +67,7 @@ #include "nvim/event/rstream.h" #include "nvim/event/wstream.h" #include "nvim/shada.h" -#include "nvim/viml/executor/executor.h" +#include "nvim/lua/executor.h" #include "nvim/globals.h" static int quitmore = 0; diff --git a/src/nvim/lua/converter.c b/src/nvim/lua/converter.c new file mode 100644 index 0000000000..348315124b --- /dev/null +++ b/src/nvim/lua/converter.c @@ -0,0 +1,1194 @@ +#include +#include +#include +#include +#include +#include + +#include "nvim/api/private/defs.h" +#include "nvim/api/private/helpers.h" +#include "nvim/func_attr.h" +#include "nvim/memory.h" +#include "nvim/assert.h" +// FIXME: vim.h is not actually needed, but otherwise it states MAXPATHL is +// redefined +#include "nvim/vim.h" +#include "nvim/globals.h" +#include "nvim/message.h" +#include "nvim/eval/typval.h" +#include "nvim/ascii.h" +#include "nvim/macros.h" + +#include "nvim/lib/kvec.h" +#include "nvim/eval/decode.h" + +#include "nvim/lua/converter.h" +#include "nvim/lua/executor.h" + +/// Determine, which keys lua table contains +typedef struct { + size_t maxidx; ///< Maximum positive integral value found. + size_t string_keys_num; ///< Number of string keys. + bool has_string_with_nul; ///< True if there is string key with NUL byte. + ObjectType type; ///< If has_type_key is true then attached value. Otherwise + ///< either kObjectTypeNil, kObjectTypeDictionary or + ///< kObjectTypeArray, depending on other properties. + lua_Number val; ///< If has_val_key and val_type == LUA_TNUMBER: value. + bool has_type_key; ///< True if type key is present. +} LuaTableProps; + +#ifdef INCLUDE_GENERATED_DECLARATIONS +# include "lua/converter.c.generated.h" +#endif + +#define TYPE_IDX_VALUE true +#define VAL_IDX_VALUE false + +#define LUA_PUSH_STATIC_STRING(lstate, s) \ + lua_pushlstring(lstate, s, sizeof(s) - 1) + +static LuaTableProps nlua_traverse_table(lua_State *const lstate) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + size_t tsize = 0; // Total number of keys. + int val_type = 0; // If has_val_key: lua type of the value. + bool has_val_key = false; // True if val key was found, + // @see nlua_push_val_idx(). + size_t other_keys_num = 0; // Number of keys that are not string, integral + // or type keys. + LuaTableProps ret; + memset(&ret, 0, sizeof(ret)); + if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { + emsgf(_("E1502: Lua failed to grow stack to %i"), lua_gettop(lstate) + 2); + ret.type = kObjectTypeNil; + return ret; + } + lua_pushnil(lstate); + while (lua_next(lstate, -2)) { + switch (lua_type(lstate, -2)) { + case LUA_TSTRING: { + size_t len; + const char *s = lua_tolstring(lstate, -2, &len); + if (memchr(s, NUL, len) != NULL) { + ret.has_string_with_nul = true; + } + ret.string_keys_num++; + break; + } + case LUA_TNUMBER: { + const lua_Number n = lua_tonumber(lstate, -2); + if (n > (lua_Number)SIZE_MAX || n <= 0 + || ((lua_Number)((size_t)n)) != n) { + other_keys_num++; + } else { + const size_t idx = (size_t)n; + if (idx > ret.maxidx) { + ret.maxidx = idx; + } + } + break; + } + case LUA_TBOOLEAN: { + const bool b = lua_toboolean(lstate, -2); + if (b == TYPE_IDX_VALUE) { + if (lua_type(lstate, -1) == LUA_TNUMBER) { + lua_Number n = lua_tonumber(lstate, -1); + if (n == (lua_Number)kObjectTypeFloat + || n == (lua_Number)kObjectTypeArray + || n == (lua_Number)kObjectTypeDictionary) { + ret.has_type_key = true; + ret.type = (ObjectType)n; + } else { + other_keys_num++; + } + } else { + other_keys_num++; + } + } else { + has_val_key = true; + val_type = lua_type(lstate, -1); + if (val_type == LUA_TNUMBER) { + ret.val = lua_tonumber(lstate, -1); + } + } + break; + } + default: { + other_keys_num++; + break; + } + } + tsize++; + lua_pop(lstate, 1); + } + if (ret.has_type_key) { + if (ret.type == kObjectTypeFloat + && (!has_val_key || val_type != LUA_TNUMBER)) { + ret.type = kObjectTypeNil; + } else if (ret.type == kObjectTypeArray) { + // Determine what is the last number in a *sequence* of keys. + // This condition makes sure that Neovim will not crash when it gets table + // {[vim.type_idx]=vim.types.array, [SIZE_MAX]=1}: without it maxidx will + // be SIZE_MAX, with this condition it should be zero and [SIZE_MAX] key + // should be ignored. + if (ret.maxidx != 0 + && ret.maxidx != (tsize + - ret.has_type_key + - other_keys_num + - has_val_key + - ret.string_keys_num)) { + for (ret.maxidx = 0;; ret.maxidx++) { + lua_rawgeti(lstate, -1, (int)ret.maxidx + 1); + if (lua_isnil(lstate, -1)) { + lua_pop(lstate, 1); + break; + } + lua_pop(lstate, 1); + } + } + } + } else { + if (tsize == 0 + || (tsize == ret.maxidx + && other_keys_num == 0 + && ret.string_keys_num == 0)) { + ret.type = kObjectTypeArray; + } else if (ret.string_keys_num == tsize) { + ret.type = kObjectTypeDictionary; + } else { + ret.type = kObjectTypeNil; + } + } + return ret; +} + +/// Helper structure for nlua_pop_typval +typedef struct { + typval_T *tv; ///< Location where conversion result is saved. + bool container; ///< True if tv is a container. + bool special; ///< If true then tv is a _VAL part of special dictionary + ///< that represents mapping. + int idx; ///< Container index (used to detect self-referencing structures). +} TVPopStackItem; + +/// Convert lua object to VimL typval_T +/// +/// Should pop exactly one value from lua stack. +/// +/// @param lstate Lua state. +/// @param[out] ret_tv Where to put the result. +/// +/// @return `true` in case of success, `false` in case of failure. Error is +/// reported automatically. +bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) +{ + bool ret = true; + const int initial_size = lua_gettop(lstate); + kvec_t(TVPopStackItem) stack = KV_INITIAL_VALUE; + kv_push(stack, ((TVPopStackItem) { ret_tv, false, false, 0 })); + while (ret && kv_size(stack)) { + if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { + emsgf(_("E1502: Lua failed to grow stack to %i"), lua_gettop(lstate) + 3); + ret = false; + break; + } + TVPopStackItem cur = kv_pop(stack); + if (cur.container) { + if (cur.special || cur.tv->v_type == VAR_DICT) { + assert(cur.tv->v_type == (cur.special ? VAR_LIST : VAR_DICT)); + bool next_key_found = false; + while (lua_next(lstate, -2)) { + if (lua_type(lstate, -2) == LUA_TSTRING) { + next_key_found = true; + break; + } + lua_pop(lstate, 1); + } + if (next_key_found) { + size_t len; + const char *s = lua_tolstring(lstate, -2, &len); + if (cur.special) { + list_T *const kv_pair = tv_list_alloc(); + tv_list_append_list(cur.tv->vval.v_list, kv_pair); + listitem_T *const key = tv_list_item_alloc(); + key->li_tv = decode_string(s, len, kTrue, false, false); + tv_list_append(kv_pair, key); + if (key->li_tv.v_type == VAR_UNKNOWN) { + ret = false; + tv_list_unref(kv_pair); + continue; + } + listitem_T *const val = tv_list_item_alloc(); + tv_list_append(kv_pair, val); + kv_push(stack, cur); + cur = (TVPopStackItem) { &val->li_tv, false, false, 0 }; + } else { + dictitem_T *const di = tv_dict_item_alloc_len(s, len); + if (tv_dict_add(cur.tv->vval.v_dict, di) == FAIL) { + assert(false); + } + kv_push(stack, cur); + cur = (TVPopStackItem) { &di->di_tv, false, false, 0 }; + } + } else { + lua_pop(lstate, 1); + continue; + } + } else { + assert(cur.tv->v_type == VAR_LIST); + lua_rawgeti(lstate, -1, cur.tv->vval.v_list->lv_len + 1); + if (lua_isnil(lstate, -1)) { + lua_pop(lstate, 2); + continue; + } + listitem_T *const li = tv_list_item_alloc(); + tv_list_append(cur.tv->vval.v_list, li); + kv_push(stack, cur); + cur = (TVPopStackItem) { &li->li_tv, false, false, 0 }; + } + } + assert(!cur.container); + *cur.tv = (typval_T) { + .v_type = VAR_NUMBER, + .v_lock = VAR_UNLOCKED, + .vval = { .v_number = 0 }, + }; + switch (lua_type(lstate, -1)) { + case LUA_TNIL: { + cur.tv->v_type = VAR_SPECIAL; + cur.tv->vval.v_special = kSpecialVarNull; + break; + } + case LUA_TBOOLEAN: { + cur.tv->v_type = VAR_SPECIAL; + cur.tv->vval.v_special = (lua_toboolean(lstate, -1) + ? kSpecialVarTrue + : kSpecialVarFalse); + break; + } + case LUA_TSTRING: { + size_t len; + const char *s = lua_tolstring(lstate, -1, &len); + *cur.tv = decode_string(s, len, kNone, true, false); + if (cur.tv->v_type == VAR_UNKNOWN) { + ret = false; + } + break; + } + case LUA_TNUMBER: { + const lua_Number n = lua_tonumber(lstate, -1); + if (n > (lua_Number)VARNUMBER_MAX || n < (lua_Number)VARNUMBER_MIN + || ((lua_Number)((varnumber_T)n)) != n) { + cur.tv->v_type = VAR_FLOAT; + cur.tv->vval.v_float = (float_T)n; + } else { + cur.tv->v_type = VAR_NUMBER; + cur.tv->vval.v_number = (varnumber_T)n; + } + break; + } + case LUA_TTABLE: { + const LuaTableProps table_props = nlua_traverse_table(lstate); + + for (size_t i = 0; i < kv_size(stack); i++) { + const TVPopStackItem item = kv_A(stack, i); + if (item.container && lua_rawequal(lstate, -1, item.idx)) { + tv_copy(item.tv, cur.tv); + cur.container = false; + goto nlua_pop_typval_table_processing_end; + } + } + + switch (table_props.type) { + case kObjectTypeArray: { + cur.tv->v_type = VAR_LIST; + cur.tv->vval.v_list = tv_list_alloc(); + cur.tv->vval.v_list->lv_refcount++; + if (table_props.maxidx != 0) { + cur.container = true; + cur.idx = lua_gettop(lstate); + kv_push(stack, cur); + } + break; + } + case kObjectTypeDictionary: { + if (table_props.string_keys_num == 0) { + cur.tv->v_type = VAR_DICT; + cur.tv->vval.v_dict = tv_dict_alloc(); + cur.tv->vval.v_dict->dv_refcount++; + } else { + cur.special = table_props.has_string_with_nul; + if (table_props.has_string_with_nul) { + decode_create_map_special_dict(cur.tv); + assert(cur.tv->v_type = VAR_DICT); + dictitem_T *const val_di = tv_dict_find(cur.tv->vval.v_dict, + S_LEN("_VAL")); + assert(val_di != NULL); + cur.tv = &val_di->di_tv; + assert(cur.tv->v_type == VAR_LIST); + } else { + cur.tv->v_type = VAR_DICT; + cur.tv->vval.v_dict = tv_dict_alloc(); + cur.tv->vval.v_dict->dv_refcount++; + } + cur.container = true; + cur.idx = lua_gettop(lstate); + kv_push(stack, cur); + lua_pushnil(lstate); + } + break; + } + case kObjectTypeFloat: { + cur.tv->v_type = VAR_FLOAT; + cur.tv->vval.v_float = (float_T)table_props.val; + break; + } + case kObjectTypeNil: { + EMSG(_("E5100: Cannot convert given lua table: table " + "should either have a sequence of positive integer keys " + "or contain only string keys")); + ret = false; + break; + } + default: { + assert(false); + } + } +nlua_pop_typval_table_processing_end: + break; + } + default: { + EMSG(_("E5101: Cannot convert given lua type")); + ret = false; + break; + } + } + if (!cur.container) { + lua_pop(lstate, 1); + } + } + kv_destroy(stack); + if (!ret) { + tv_clear(ret_tv); + *ret_tv = (typval_T) { + .v_type = VAR_NUMBER, + .v_lock = VAR_UNLOCKED, + .vval = { .v_number = 0 }, + }; + lua_pop(lstate, lua_gettop(lstate) - initial_size + 1); + } + assert(lua_gettop(lstate) == initial_size - 1); + return ret; +} + +#define TYPVAL_ENCODE_ALLOW_SPECIALS true + +#define TYPVAL_ENCODE_CONV_NIL(tv) \ + lua_pushnil(lstate) + +#define TYPVAL_ENCODE_CONV_BOOL(tv, num) \ + lua_pushboolean(lstate, (bool)(num)) + +#define TYPVAL_ENCODE_CONV_NUMBER(tv, num) \ + lua_pushnumber(lstate, (lua_Number)(num)) + +#define TYPVAL_ENCODE_CONV_UNSIGNED_NUMBER TYPVAL_ENCODE_CONV_NUMBER + +#define TYPVAL_ENCODE_CONV_FLOAT(tv, flt) \ + TYPVAL_ENCODE_CONV_NUMBER(tv, flt) + +#define TYPVAL_ENCODE_CONV_STRING(tv, str, len) \ + lua_pushlstring(lstate, (const char *)(str), (len)) + +#define TYPVAL_ENCODE_CONV_STR_STRING TYPVAL_ENCODE_CONV_STRING + +#define TYPVAL_ENCODE_CONV_EXT_STRING(tv, str, len, type) \ + TYPVAL_ENCODE_CONV_NIL() + +#define TYPVAL_ENCODE_CONV_FUNC_START(tv, fun) \ + do { \ + TYPVAL_ENCODE_CONV_NIL(tv); \ + goto typval_encode_stop_converting_one_item; \ + } while (0) + +#define TYPVAL_ENCODE_CONV_FUNC_BEFORE_ARGS(tv, len) +#define TYPVAL_ENCODE_CONV_FUNC_BEFORE_SELF(tv, len) +#define TYPVAL_ENCODE_CONV_FUNC_END(tv) + +#define TYPVAL_ENCODE_CONV_EMPTY_LIST(tv) \ + lua_createtable(lstate, 0, 0) + +#define TYPVAL_ENCODE_CONV_EMPTY_DICT(tv, dict) \ + nlua_create_typed_table(lstate, 0, 0, kObjectTypeDictionary) + +#define TYPVAL_ENCODE_CONV_LIST_START(tv, len) \ + do { \ + if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { \ + emsgf(_("E5102: Lua failed to grow stack to %i"), \ + lua_gettop(lstate) + 3); \ + return false; \ + } \ + lua_createtable(lstate, (int)(len), 0); \ + lua_pushnumber(lstate, 1); \ + } while (0) + +#define TYPVAL_ENCODE_CONV_REAL_LIST_AFTER_START(tv, mpsv) + +#define TYPVAL_ENCODE_CONV_LIST_BETWEEN_ITEMS(tv) \ + do { \ + lua_Number idx = lua_tonumber(lstate, -2); \ + lua_rawset(lstate, -3); \ + lua_pushnumber(lstate, idx + 1); \ + } while (0) + +#define TYPVAL_ENCODE_CONV_LIST_END(tv) \ + lua_rawset(lstate, -3) + +#define TYPVAL_ENCODE_CONV_DICT_START(tv, dict, len) \ + do { \ + if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { \ + emsgf(_("E5102: Lua failed to grow stack to %i"), \ + lua_gettop(lstate) + 3); \ + return false; \ + } \ + lua_createtable(lstate, 0, (int)(len)); \ + } while (0) + +#define TYPVAL_ENCODE_SPECIAL_DICT_KEY_CHECK(label, kv_pair) + +#define TYPVAL_ENCODE_CONV_REAL_DICT_AFTER_START(tv, dict, mpsv) + +#define TYPVAL_ENCODE_CONV_DICT_AFTER_KEY(tv, dict) + +#define TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS(tv, dict) \ + lua_rawset(lstate, -3) + +#define TYPVAL_ENCODE_CONV_DICT_END(tv, dict) \ + TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS(tv, dict) + +#define TYPVAL_ENCODE_CONV_RECURSE(val, conv_type) \ + do { \ + for (size_t backref = kv_size(*mpstack); backref; backref--) { \ + const MPConvStackVal mpval = kv_A(*mpstack, backref - 1); \ + if (mpval.type == conv_type) { \ + if (conv_type == kMPConvDict \ + ? (void *)mpval.data.d.dict == (void *)(val) \ + : (void *)mpval.data.l.list == (void *)(val)) { \ + lua_pushvalue(lstate, \ + -((int)((kv_size(*mpstack) - backref + 1) * 2))); \ + break; \ + } \ + } \ + } \ + } while (0) + +#define TYPVAL_ENCODE_SCOPE static +#define TYPVAL_ENCODE_NAME lua +#define TYPVAL_ENCODE_FIRST_ARG_TYPE lua_State *const +#define TYPVAL_ENCODE_FIRST_ARG_NAME lstate +#include "nvim/eval/typval_encode.c.h" +#undef TYPVAL_ENCODE_SCOPE +#undef TYPVAL_ENCODE_NAME +#undef TYPVAL_ENCODE_FIRST_ARG_TYPE +#undef TYPVAL_ENCODE_FIRST_ARG_NAME + +#undef TYPVAL_ENCODE_CONV_STRING +#undef TYPVAL_ENCODE_CONV_STR_STRING +#undef TYPVAL_ENCODE_CONV_EXT_STRING +#undef TYPVAL_ENCODE_CONV_NUMBER +#undef TYPVAL_ENCODE_CONV_FLOAT +#undef TYPVAL_ENCODE_CONV_FUNC_START +#undef TYPVAL_ENCODE_CONV_FUNC_BEFORE_ARGS +#undef TYPVAL_ENCODE_CONV_FUNC_BEFORE_SELF +#undef TYPVAL_ENCODE_CONV_FUNC_END +#undef TYPVAL_ENCODE_CONV_EMPTY_LIST +#undef TYPVAL_ENCODE_CONV_LIST_START +#undef TYPVAL_ENCODE_CONV_REAL_LIST_AFTER_START +#undef TYPVAL_ENCODE_CONV_EMPTY_DICT +#undef TYPVAL_ENCODE_CONV_NIL +#undef TYPVAL_ENCODE_CONV_BOOL +#undef TYPVAL_ENCODE_CONV_UNSIGNED_NUMBER +#undef TYPVAL_ENCODE_CONV_DICT_START +#undef TYPVAL_ENCODE_CONV_REAL_DICT_AFTER_START +#undef TYPVAL_ENCODE_CONV_DICT_END +#undef TYPVAL_ENCODE_CONV_DICT_AFTER_KEY +#undef TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS +#undef TYPVAL_ENCODE_SPECIAL_DICT_KEY_CHECK +#undef TYPVAL_ENCODE_CONV_LIST_END +#undef TYPVAL_ENCODE_CONV_LIST_BETWEEN_ITEMS +#undef TYPVAL_ENCODE_CONV_RECURSE +#undef TYPVAL_ENCODE_ALLOW_SPECIALS + +/// Convert VimL typval_T to lua value +/// +/// Should leave single value in lua stack. May only fail if lua failed to grow +/// stack. +/// +/// @param lstate Lua interpreter state. +/// @param[in] tv typval_T to convert. +/// +/// @return true in case of success, false otherwise. +bool nlua_push_typval(lua_State *lstate, typval_T *const tv) +{ + const int initial_size = lua_gettop(lstate); + if (!lua_checkstack(lstate, initial_size + 2)) { + emsgf(_("E1502: Lua failed to grow stack to %i"), initial_size + 4); + return false; + } + if (encode_vim_to_lua(lstate, tv, "nlua_push_typval argument") == FAIL) { + return false; + } + assert(lua_gettop(lstate) == initial_size + 1); + return true; +} + +#define NLUA_PUSH_HANDLE(lstate, type, idx) \ + do { \ + lua_pushnumber(lstate, (lua_Number)(idx)); \ + } while (0) + +#define NLUA_POP_HANDLE(lstate, type, stack_idx, idx) \ + do { \ + idx = (type)lua_tonumber(lstate, stack_idx); \ + } while (0) + +/// Push value which is a type index +/// +/// Used for all “typed” tables: i.e. for all tables which represent VimL +/// values. +static inline void nlua_push_type_idx(lua_State *lstate) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushboolean(lstate, TYPE_IDX_VALUE); +} + +/// Push value which is a value index +/// +/// Used for tables which represent scalar values, like float value. +static inline void nlua_push_val_idx(lua_State *lstate) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushboolean(lstate, VAL_IDX_VALUE); +} + +/// Push type +/// +/// Type is a value in vim.types table. +/// +/// @param[out] lstate Lua state. +/// @param[in] type Type to push. +static inline void nlua_push_type(lua_State *lstate, ObjectType type) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushnumber(lstate, (lua_Number)type); +} + +/// Create lua table which has an entry that determines its VimL type +/// +/// @param[out] lstate Lua state. +/// @param[in] narr Number of “array” entries to be populated later. +/// @param[in] nrec Number of “dictionary” entries to be populated later. +/// @param[in] type Type of the table. +static inline void nlua_create_typed_table(lua_State *lstate, + const size_t narr, + const size_t nrec, + const ObjectType type) + FUNC_ATTR_NONNULL_ALL +{ + lua_createtable(lstate, (int)narr, (int)(1 + nrec)); + nlua_push_type_idx(lstate); + nlua_push_type(lstate, type); + lua_rawset(lstate, -3); +} + + +/// Convert given String to lua string +/// +/// Leaves converted string on top of the stack. +void nlua_push_String(lua_State *lstate, const String s) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushlstring(lstate, s.data, s.size); +} + +/// Convert given Integer to lua number +/// +/// Leaves converted number on top of the stack. +void nlua_push_Integer(lua_State *lstate, const Integer n) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushnumber(lstate, (lua_Number)n); +} + +/// Convert given Float to lua table +/// +/// Leaves converted table on top of the stack. +void nlua_push_Float(lua_State *lstate, const Float f) + FUNC_ATTR_NONNULL_ALL +{ + nlua_create_typed_table(lstate, 0, 1, kObjectTypeFloat); + nlua_push_val_idx(lstate); + lua_pushnumber(lstate, (lua_Number)f); + lua_rawset(lstate, -3); +} + +/// Convert given Float to lua boolean +/// +/// Leaves converted value on top of the stack. +void nlua_push_Boolean(lua_State *lstate, const Boolean b) + FUNC_ATTR_NONNULL_ALL +{ + lua_pushboolean(lstate, b); +} + +/// Convert given Dictionary to lua table +/// +/// Leaves converted table on top of the stack. +void nlua_push_Dictionary(lua_State *lstate, const Dictionary dict) + FUNC_ATTR_NONNULL_ALL +{ + if (dict.size == 0) { + nlua_create_typed_table(lstate, 0, 0, kObjectTypeDictionary); + } else { + lua_createtable(lstate, 0, (int)dict.size); + } + for (size_t i = 0; i < dict.size; i++) { + nlua_push_String(lstate, dict.items[i].key); + nlua_push_Object(lstate, dict.items[i].value); + lua_rawset(lstate, -3); + } +} + +/// Convert given Array to lua table +/// +/// Leaves converted table on top of the stack. +void nlua_push_Array(lua_State *lstate, const Array array) + FUNC_ATTR_NONNULL_ALL +{ + lua_createtable(lstate, (int)array.size, 0); + for (size_t i = 0; i < array.size; i++) { + nlua_push_Object(lstate, array.items[i]); + lua_rawseti(lstate, -2, (int)i + 1); + } +} + +#define GENERATE_INDEX_FUNCTION(type) \ +void nlua_push_##type(lua_State *lstate, const type item) \ + FUNC_ATTR_NONNULL_ALL \ +{ \ + NLUA_PUSH_HANDLE(lstate, type, item); \ +} + +GENERATE_INDEX_FUNCTION(Buffer) +GENERATE_INDEX_FUNCTION(Window) +GENERATE_INDEX_FUNCTION(Tabpage) + +#undef GENERATE_INDEX_FUNCTION + +/// Convert given Object to lua value +/// +/// Leaves converted value on top of the stack. +void nlua_push_Object(lua_State *lstate, const Object obj) + FUNC_ATTR_NONNULL_ALL +{ + switch (obj.type) { + case kObjectTypeNil: { + lua_pushnil(lstate); + break; + } +#define ADD_TYPE(type, data_key) \ + case kObjectType##type: { \ + nlua_push_##type(lstate, obj.data.data_key); \ + break; \ + } + ADD_TYPE(Boolean, boolean) + ADD_TYPE(Integer, integer) + ADD_TYPE(Float, floating) + ADD_TYPE(String, string) + ADD_TYPE(Array, array) + ADD_TYPE(Dictionary, dictionary) +#undef ADD_TYPE +#define ADD_REMOTE_TYPE(type) \ + case kObjectType##type: { \ + nlua_push_##type(lstate, (type)obj.data.integer); \ + break; \ + } + ADD_REMOTE_TYPE(Buffer) + ADD_REMOTE_TYPE(Window) + ADD_REMOTE_TYPE(Tabpage) +#undef ADD_REMOTE_TYPE + } +} + + +/// Convert lua value to string +/// +/// Always pops one value from the stack. +String nlua_pop_String(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + if (lua_type(lstate, -1) != LUA_TSTRING) { + lua_pop(lstate, 1); + api_set_error(err, Validation, "Expected lua string"); + return (String) { .size = 0, .data = NULL }; + } + String ret; + + ret.data = (char *)lua_tolstring(lstate, -1, &(ret.size)); + assert(ret.data != NULL); + ret.data = xmemdupz(ret.data, ret.size); + lua_pop(lstate, 1); + + return ret; +} + +/// Convert lua value to integer +/// +/// Always pops one value from the stack. +Integer nlua_pop_Integer(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + if (lua_type(lstate, -1) != LUA_TNUMBER) { + lua_pop(lstate, 1); + api_set_error(err, Validation, "Expected lua number"); + return 0; + } + const lua_Number n = lua_tonumber(lstate, -1); + lua_pop(lstate, 1); + if (n > (lua_Number)API_INTEGER_MAX || n < (lua_Number)API_INTEGER_MIN + || ((lua_Number)((Integer)n)) != n) { + api_set_error(err, Exception, "Number is not integral"); + return 0; + } + return (Integer)n; +} + +/// Convert lua value to boolean +/// +/// Always pops one value from the stack. +Boolean nlua_pop_Boolean(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + const Boolean ret = lua_toboolean(lstate, -1); + lua_pop(lstate, 1); + return ret; +} + +/// Check whether typed table on top of the stack has given type +/// +/// @param[in] lstate Lua state. +/// @param[out] err Location where error will be saved. May be NULL. +/// @param[in] type Type to check. +/// +/// @return @see nlua_traverse_table(). +static inline LuaTableProps nlua_check_type(lua_State *const lstate, + Error *const err, + const ObjectType type) + FUNC_ATTR_NONNULL_ARG(1) FUNC_ATTR_WARN_UNUSED_RESULT +{ + if (lua_type(lstate, -1) != LUA_TTABLE) { + if (err) { + api_set_error(err, Validation, "Expected lua table"); + } + return (LuaTableProps) { .type = kObjectTypeNil }; + } + LuaTableProps table_props = nlua_traverse_table(lstate); + + if (type == kObjectTypeDictionary && table_props.type == kObjectTypeArray + && table_props.maxidx == 0 && !table_props.has_type_key) { + table_props.type = kObjectTypeDictionary; + } + + if (table_props.type != type) { + if (err) { + api_set_error(err, Validation, "Unexpected type"); + } + } + + return table_props; +} + +/// Convert lua table to float +/// +/// Always pops one value from the stack. +Float nlua_pop_Float(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + if (lua_type(lstate, -1) == LUA_TNUMBER) { + const Float ret = (Float)lua_tonumber(lstate, -1); + lua_pop(lstate, 1); + return ret; + } + + const LuaTableProps table_props = nlua_check_type(lstate, err, + kObjectTypeFloat); + lua_pop(lstate, 1); + if (table_props.type != kObjectTypeFloat) { + return 0; + } else { + return (Float)table_props.val; + } +} + +/// Convert lua table to array without determining whether it is array +/// +/// @param lstate Lua state. +/// @param[in] table_props nlua_traverse_table() output. +/// @param[out] err Location where error will be saved. +static Array nlua_pop_Array_unchecked(lua_State *const lstate, + const LuaTableProps table_props, + Error *const err) +{ + Array ret = { .size = table_props.maxidx, .items = NULL }; + + if (ret.size == 0) { + lua_pop(lstate, 1); + return ret; + } + + ret.items = xcalloc(ret.size, sizeof(*ret.items)); + for (size_t i = 1; i <= ret.size; i++) { + Object val; + + lua_rawgeti(lstate, -1, (int)i); + + val = nlua_pop_Object(lstate, err); + if (err->set) { + ret.size = i - 1; + lua_pop(lstate, 1); + api_free_array(ret); + return (Array) { .size = 0, .items = NULL }; + } + ret.items[i - 1] = val; + } + lua_pop(lstate, 1); + + return ret; +} + +/// Convert lua table to array +/// +/// Always pops one value from the stack. +Array nlua_pop_Array(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + const LuaTableProps table_props = nlua_check_type(lstate, err, + kObjectTypeArray); + if (table_props.type != kObjectTypeArray) { + return (Array) { .size = 0, .items = NULL }; + } + return nlua_pop_Array_unchecked(lstate, table_props, err); +} + +/// Convert lua table to dictionary +/// +/// Always pops one value from the stack. Does not check whether whether topmost +/// value on the stack is a table. +/// +/// @param lstate Lua interpreter state. +/// @param[in] table_props nlua_traverse_table() output. +/// @param[out] err Location where error will be saved. +static Dictionary nlua_pop_Dictionary_unchecked(lua_State *lstate, + const LuaTableProps table_props, + Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + Dictionary ret = { .size = table_props.string_keys_num, .items = NULL }; + + if (ret.size == 0) { + lua_pop(lstate, 1); + return ret; + } + ret.items = xcalloc(ret.size, sizeof(*ret.items)); + + lua_pushnil(lstate); + for (size_t i = 0; lua_next(lstate, -2) && i < ret.size;) { + // stack: dict, key, value + + if (lua_type(lstate, -2) == LUA_TSTRING) { + lua_pushvalue(lstate, -2); + // stack: dict, key, value, key + + ret.items[i].key = nlua_pop_String(lstate, err); + // stack: dict, key, value + + if (!err->set) { + ret.items[i].value = nlua_pop_Object(lstate, err); + // stack: dict, key + } else { + lua_pop(lstate, 1); + // stack: dict, key + } + + if (err->set) { + ret.size = i; + api_free_dictionary(ret); + lua_pop(lstate, 2); + // stack: + return (Dictionary) { .size = 0, .items = NULL }; + } + i++; + } else { + lua_pop(lstate, 1); + // stack: dict, key + } + } + lua_pop(lstate, 1); + + return ret; +} + +/// Convert lua table to dictionary +/// +/// Always pops one value from the stack. +Dictionary nlua_pop_Dictionary(lua_State *lstate, Error *err) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT +{ + const LuaTableProps table_props = nlua_check_type(lstate, err, + kObjectTypeDictionary); + if (table_props.type != kObjectTypeDictionary) { + lua_pop(lstate, 1); + return (Dictionary) { .size = 0, .items = NULL }; + } + + return nlua_pop_Dictionary_unchecked(lstate, table_props, err); +} + +/// Helper structure for nlua_pop_Object +typedef struct { + Object *obj; ///< Location where conversion result is saved. + bool container; ///< True if tv is a container. +} ObjPopStackItem; + +/// Convert lua table to object +/// +/// Always pops one value from the stack. +Object nlua_pop_Object(lua_State *const lstate, Error *const err) +{ + Object ret = NIL; + const int initial_size = lua_gettop(lstate); + kvec_t(ObjPopStackItem) stack = KV_INITIAL_VALUE; + kv_push(stack, ((ObjPopStackItem) { &ret, false })); + while (!err->set && kv_size(stack)) { + if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { + api_set_error(err, Exception, "Lua failed to grow stack"); + break; + } + ObjPopStackItem cur = kv_pop(stack); + if (cur.container) { + if (cur.obj->type == kObjectTypeDictionary) { + // stack: …, dict, key + if (cur.obj->data.dictionary.size + == cur.obj->data.dictionary.capacity) { + lua_pop(lstate, 2); + continue; + } + bool next_key_found = false; + while (lua_next(lstate, -2)) { + // stack: …, dict, new key, val + if (lua_type(lstate, -2) == LUA_TSTRING) { + next_key_found = true; + break; + } + lua_pop(lstate, 1); + // stack: …, dict, new key + } + if (next_key_found) { + // stack: …, dict, new key, val + size_t len; + const char *s = lua_tolstring(lstate, -2, &len); + const size_t idx = cur.obj->data.dictionary.size++; + cur.obj->data.dictionary.items[idx].key = (String) { + .data = xmemdupz(s, len), + .size = len, + }; + kv_push(stack, cur); + cur = (ObjPopStackItem) { + .obj = &cur.obj->data.dictionary.items[idx].value, + .container = false, + }; + } else { + // stack: …, dict + lua_pop(lstate, 1); + // stack: … + continue; + } + } else { + if (cur.obj->data.array.size == cur.obj->data.array.capacity) { + lua_pop(lstate, 1); + continue; + } + const size_t idx = cur.obj->data.array.size++; + lua_rawgeti(lstate, -1, (int)idx + 1); + if (lua_isnil(lstate, -1)) { + lua_pop(lstate, 2); + continue; + } + kv_push(stack, cur); + cur = (ObjPopStackItem) { + .obj = &cur.obj->data.array.items[idx], + .container = false, + }; + } + } + assert(!cur.container); + *cur.obj = NIL; + switch (lua_type(lstate, -1)) { + case LUA_TNIL: { + break; + } + case LUA_TBOOLEAN: { + *cur.obj = BOOLEAN_OBJ(lua_toboolean(lstate, -1)); + break; + } + case LUA_TSTRING: { + size_t len; + const char *s = lua_tolstring(lstate, -1, &len); + *cur.obj = STRING_OBJ(((String) { + .data = xmemdupz(s, len), + .size = len, + })); + break; + } + case LUA_TNUMBER: { + const lua_Number n = lua_tonumber(lstate, -1); + if (n > (lua_Number)API_INTEGER_MAX || n < (lua_Number)API_INTEGER_MIN + || ((lua_Number)((Integer)n)) != n) { + *cur.obj = FLOAT_OBJ((Float)n); + } else { + *cur.obj = INTEGER_OBJ((Integer)n); + } + break; + } + case LUA_TTABLE: { + const LuaTableProps table_props = nlua_traverse_table(lstate); + + switch (table_props.type) { + case kObjectTypeArray: { + *cur.obj = ARRAY_OBJ(((Array) { + .items = NULL, + .size = 0, + .capacity = 0, + })); + if (table_props.maxidx != 0) { + cur.obj->data.array.items = + xcalloc(table_props.maxidx, + sizeof(cur.obj->data.array.items[0])); + cur.obj->data.array.capacity = table_props.maxidx; + cur.container = true; + kv_push(stack, cur); + } + break; + } + case kObjectTypeDictionary: { + *cur.obj = DICTIONARY_OBJ(((Dictionary) { + .items = NULL, + .size = 0, + .capacity = 0, + })); + if (table_props.string_keys_num != 0) { + cur.obj->data.dictionary.items = + xcalloc(table_props.string_keys_num, + sizeof(cur.obj->data.dictionary.items[0])); + cur.obj->data.dictionary.capacity = table_props.string_keys_num; + cur.container = true; + kv_push(stack, cur); + lua_pushnil(lstate); + } + break; + } + case kObjectTypeFloat: { + *cur.obj = FLOAT_OBJ((Float)table_props.val); + break; + } + case kObjectTypeNil: { + api_set_error(err, Validation, "Cannot convert given lua table"); + break; + } + default: { + assert(false); + } + } + break; + } + default: { + api_set_error(err, Validation, "Cannot convert given lua type"); + break; + } + } + if (!cur.container) { + lua_pop(lstate, 1); + } + } + kv_destroy(stack); + if (err->set) { + api_free_object(ret); + ret = NIL; + lua_pop(lstate, lua_gettop(lstate) - initial_size + 1); + } + assert(lua_gettop(lstate) == initial_size - 1); + return ret; +} + +#define GENERATE_INDEX_FUNCTION(type) \ +type nlua_pop_##type(lua_State *lstate, Error *err) \ + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT \ +{ \ + type ret; \ + NLUA_POP_HANDLE(lstate, type, -1, ret); \ + lua_pop(lstate, 1); \ + return ret; \ +} + +GENERATE_INDEX_FUNCTION(Buffer) +GENERATE_INDEX_FUNCTION(Window) +GENERATE_INDEX_FUNCTION(Tabpage) + +#undef GENERATE_INDEX_FUNCTION + +/// Record some auxilary values in vim module +/// +/// Assumes that module table is on top of the stack. +/// +/// Recorded values: +/// +/// `vim.type_idx`: @see nlua_push_type_idx() +/// `vim.val_idx`: @see nlua_push_val_idx() +/// `vim.types`: table mapping possible values of `vim.type_idx` to string +/// names (i.e. `array`, `float`, `dictionary`) and back. +void nlua_init_types(lua_State *const lstate) +{ + LUA_PUSH_STATIC_STRING(lstate, "type_idx"); + nlua_push_type_idx(lstate); + lua_rawset(lstate, -3); + + LUA_PUSH_STATIC_STRING(lstate, "val_idx"); + nlua_push_val_idx(lstate); + lua_rawset(lstate, -3); + + LUA_PUSH_STATIC_STRING(lstate, "types"); + lua_createtable(lstate, 0, 3); + + LUA_PUSH_STATIC_STRING(lstate, "float"); + lua_pushnumber(lstate, (lua_Number)kObjectTypeFloat); + lua_rawset(lstate, -3); + lua_pushnumber(lstate, (lua_Number)kObjectTypeFloat); + LUA_PUSH_STATIC_STRING(lstate, "float"); + lua_rawset(lstate, -3); + + LUA_PUSH_STATIC_STRING(lstate, "array"); + lua_pushnumber(lstate, (lua_Number)kObjectTypeArray); + lua_rawset(lstate, -3); + lua_pushnumber(lstate, (lua_Number)kObjectTypeArray); + LUA_PUSH_STATIC_STRING(lstate, "array"); + lua_rawset(lstate, -3); + + LUA_PUSH_STATIC_STRING(lstate, "dictionary"); + lua_pushnumber(lstate, (lua_Number)kObjectTypeDictionary); + lua_rawset(lstate, -3); + lua_pushnumber(lstate, (lua_Number)kObjectTypeDictionary); + LUA_PUSH_STATIC_STRING(lstate, "dictionary"); + lua_rawset(lstate, -3); + + lua_rawset(lstate, -3); +} diff --git a/src/nvim/lua/converter.h b/src/nvim/lua/converter.h new file mode 100644 index 0000000000..49f6ac4016 --- /dev/null +++ b/src/nvim/lua/converter.h @@ -0,0 +1,15 @@ +#ifndef NVIM_VIML_EXECUTOR_CONVERTER_H +#define NVIM_VIML_EXECUTOR_CONVERTER_H + +#include +#include +#include + +#include "nvim/api/private/defs.h" +#include "nvim/func_attr.h" +#include "nvim/eval.h" + +#ifdef INCLUDE_GENERATED_DECLARATIONS +# include "lua/converter.h.generated.h" +#endif +#endif // NVIM_VIML_EXECUTOR_CONVERTER_H diff --git a/src/nvim/lua/executor.c b/src/nvim/lua/executor.c new file mode 100644 index 0000000000..7cf326aef5 --- /dev/null +++ b/src/nvim/lua/executor.c @@ -0,0 +1,576 @@ +#include +#include +#include + +#include "nvim/misc1.h" +#include "nvim/getchar.h" +#include "nvim/garray.h" +#include "nvim/func_attr.h" +#include "nvim/api/private/defs.h" +#include "nvim/api/private/helpers.h" +#include "nvim/api/vim.h" +#include "nvim/vim.h" +#include "nvim/ex_getln.h" +#include "nvim/message.h" +#include "nvim/memline.h" +#include "nvim/buffer_defs.h" +#include "nvim/macros.h" +#include "nvim/screen.h" +#include "nvim/cursor.h" +#include "nvim/undo.h" +#include "nvim/ascii.h" + +#include "nvim/lua/executor.h" +#include "nvim/lua/converter.h" + +typedef struct { + Error err; + String lua_err_str; +} LuaError; + +#ifdef INCLUDE_GENERATED_DECLARATIONS +# include "lua/vim_module.generated.h" +# include "lua/executor.c.generated.h" +#endif + +/// Name of the run code for use in messages +#define NLUA_EVAL_NAME "" + +/// Call C function which does not expect any arguments +/// +/// @param function Called function +/// @param numret Number of returned arguments +#define NLUA_CALL_C_FUNCTION_0(lstate, function, numret) \ + do { \ + lua_pushcfunction(lstate, &function); \ + lua_call(lstate, 0, numret); \ + } while (0) +/// Call C function which expects one argument +/// +/// @param function Called function +/// @param numret Number of returned arguments +/// @param a… Supplied argument (should be a void* pointer) +#define NLUA_CALL_C_FUNCTION_1(lstate, function, numret, a1) \ + do { \ + lua_pushcfunction(lstate, &function); \ + lua_pushlightuserdata(lstate, a1); \ + lua_call(lstate, 1, numret); \ + } while (0) +/// Call C function which expects two arguments +/// +/// @param function Called function +/// @param numret Number of returned arguments +/// @param a… Supplied argument (should be a void* pointer) +#define NLUA_CALL_C_FUNCTION_2(lstate, function, numret, a1, a2) \ + do { \ + lua_pushcfunction(lstate, &function); \ + lua_pushlightuserdata(lstate, a1); \ + lua_pushlightuserdata(lstate, a2); \ + lua_call(lstate, 2, numret); \ + } while (0) +/// Call C function which expects three arguments +/// +/// @param function Called function +/// @param numret Number of returned arguments +/// @param a… Supplied argument (should be a void* pointer) +#define NLUA_CALL_C_FUNCTION_3(lstate, function, numret, a1, a2, a3) \ + do { \ + lua_pushcfunction(lstate, &function); \ + lua_pushlightuserdata(lstate, a1); \ + lua_pushlightuserdata(lstate, a2); \ + lua_pushlightuserdata(lstate, a3); \ + lua_call(lstate, 3, numret); \ + } while (0) +/// Call C function which expects five arguments +/// +/// @param function Called function +/// @param numret Number of returned arguments +/// @param a… Supplied argument (should be a void* pointer) +#define NLUA_CALL_C_FUNCTION_4(lstate, function, numret, a1, a2, a3, a4) \ + do { \ + lua_pushcfunction(lstate, &function); \ + lua_pushlightuserdata(lstate, a1); \ + lua_pushlightuserdata(lstate, a2); \ + lua_pushlightuserdata(lstate, a3); \ + lua_pushlightuserdata(lstate, a4); \ + lua_call(lstate, 4, numret); \ + } while (0) + +/// Convert lua error into a Vim error message +/// +/// @param lstate Lua interpreter state. +/// @param[in] msg Message base, must contain one `%s`. +static void nlua_error(lua_State *const lstate, const char *const msg) + FUNC_ATTR_NONNULL_ALL +{ + size_t len; + const char *const str = lua_tolstring(lstate, -1, &len); + + emsgf(msg, (int)len, str); + + lua_pop(lstate, 1); +} + +/// Compare two strings, ignoring case +/// +/// Expects two values on the stack: compared strings. Returns one of the +/// following numbers: 0, -1 or 1. +/// +/// Does no error handling: never call it with non-string or with some arguments +/// omitted. +static int nlua_stricmp(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL +{ + const char *s1 = luaL_checklstring(lstate, 1, NULL); + const char *s2 = luaL_checklstring(lstate, 2, NULL); + const int ret = STRICMP(s1, s2); + lua_pop(lstate, 2); + lua_pushnumber(lstate, (lua_Number)((ret > 0) - (ret < 0))); + return 1; +} + +/// Evaluate lua string +/// +/// Expects two values on the stack: string to evaluate, pointer to the +/// location where result is saved. Always returns nothing (from the lua point +/// of view). +static int nlua_exec_lua_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL +{ + const String *const str = (const String *)lua_touserdata(lstate, 1); + typval_T *const ret_tv = (typval_T *)lua_touserdata(lstate, 2); + lua_pop(lstate, 2); + + if (luaL_loadbuffer(lstate, str->data, str->size, NLUA_EVAL_NAME)) { + nlua_error(lstate, _("E5104: Error while creating lua chunk: %.*s")); + return 0; + } + if (lua_pcall(lstate, 0, 1, 0)) { + nlua_error(lstate, _("E5105: Error while calling lua chunk: %.*s")); + return 0; + } + if (!nlua_pop_typval(lstate, ret_tv)) { + return 0; + } + return 0; +} + +/// Evaluate lua string for each line in range +/// +/// Expects two values on the stack: string to evaluate and pointer to integer +/// array with line range. Always returns nothing (from the lua point of view). +static int nlua_exec_luado_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL +{ + const String *const str = (const String *)lua_touserdata(lstate, 1); + const linenr_T *const range = (const linenr_T *)lua_touserdata(lstate, 2); + lua_pop(lstate, 2); + +#define DOSTART "return function(line, linenr) " +#define DOEND " end" + const size_t lcmd_len = (str->size + + (sizeof(DOSTART) - 1) + + (sizeof(DOEND) - 1)); + char *lcmd; + if (lcmd_len < IOSIZE) { + lcmd = (char *)IObuff; + } else { + lcmd = xmalloc(lcmd_len + 1); + } + memcpy(lcmd, DOSTART, sizeof(DOSTART) - 1); + memcpy(lcmd + sizeof(DOSTART) - 1, str->data, str->size); + memcpy(lcmd + sizeof(DOSTART) - 1 + str->size, DOEND, sizeof(DOEND) - 1); +#undef DOSTART +#undef DOEND + + if (luaL_loadbuffer(lstate, lcmd, lcmd_len, NLUA_EVAL_NAME)) { + nlua_error(lstate, _("E5109: Error while creating lua chunk: %.*s")); + if (lcmd_len >= IOSIZE) { + xfree(lcmd); + } + return 0; + } + if (lcmd_len >= IOSIZE) { + xfree(lcmd); + } + if (lua_pcall(lstate, 0, 1, 0)) { + nlua_error(lstate, _("E5110: Error while creating lua function: %.*s")); + return 0; + } + for (linenr_T l = range[0]; l <= range[1]; l++) { + if (l > curbuf->b_ml.ml_line_count) { + break; + } + lua_pushvalue(lstate, -1); + lua_pushstring(lstate, (const char *)ml_get_buf(curbuf, l, false)); + lua_pushnumber(lstate, (lua_Number)l); + if (lua_pcall(lstate, 2, 1, 0)) { + nlua_error(lstate, _("E5111: Error while calling lua function: %.*s")); + break; + } + if (lua_isstring(lstate, -1)) { + size_t new_line_len; + const char *const new_line = lua_tolstring(lstate, -1, &new_line_len); + char *const new_line_transformed = xmemdupz(new_line, new_line_len); + for (size_t i = 0; i < new_line_len; i++) { + if (new_line_transformed[i] == NUL) { + new_line_transformed[i] = '\n'; + } + } + ml_replace(l, (char_u *)new_line_transformed, false); + changed_bytes(l, 0); + } + lua_pop(lstate, 1); + } + lua_pop(lstate, 1); + check_cursor(); + update_screen(NOT_VALID); + return 0; +} + +/// Evaluate lua file +/// +/// Expects one value on the stack: file to evaluate. Always returns nothing +/// (from the lua point of view). +static int nlua_exec_lua_file(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL +{ + const char *const filename = (const char *)lua_touserdata(lstate, 1); + lua_pop(lstate, 1); + + if (luaL_loadfile(lstate, filename)) { + nlua_error(lstate, _("E5112: Error while creating lua chunk: %.*s")); + return 0; + } + if (lua_pcall(lstate, 0, 0, 0)) { + nlua_error(lstate, _("E5113: Error while calling lua chunk: %.*s")); + return 0; + } + return 0; +} + +/// Initialize lua interpreter state +/// +/// Called by lua interpreter itself to initialize state. +static int nlua_state_init(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL +{ + // stricmp + lua_pushcfunction(lstate, &nlua_stricmp); + lua_setglobal(lstate, "stricmp"); + + // print + lua_pushcfunction(lstate, &nlua_print); + lua_setglobal(lstate, "print"); + + // debug.debug + lua_getglobal(lstate, "debug"); + lua_pushcfunction(lstate, &nlua_debug); + lua_setfield(lstate, -2, "debug"); + lua_pop(lstate, 1); + + // vim + if (luaL_dostring(lstate, (char *)&vim_module[0])) { + nlua_error(lstate, _("E5106: Error while creating vim module: %.*s")); + return 1; + } + // vim.api + nlua_add_api_functions(lstate); + // vim.types, vim.type_idx, vim.val_idx + nlua_init_types(lstate); + lua_setglobal(lstate, "vim"); + return 0; +} + +/// Initialize lua interpreter +/// +/// Crashes NeoVim if initialization fails. Should be called once per lua +/// interpreter instance. +static lua_State *init_lua(void) + FUNC_ATTR_NONNULL_RET FUNC_ATTR_WARN_UNUSED_RESULT +{ + lua_State *lstate = luaL_newstate(); + if (lstate == NULL) { + EMSG(_("E970: Failed to initialize lua interpreter")); + preserve_exit(); + } + luaL_openlibs(lstate); + NLUA_CALL_C_FUNCTION_0(lstate, nlua_state_init, 0); + return lstate; +} + +static lua_State *global_lstate = NULL; + +/// Execute lua string +/// +/// @param[in] str String to execute. +/// @param[out] ret_tv Location where result will be saved. +/// +/// @return Result of the execution. +void executor_exec_lua(const String str, typval_T *const ret_tv) + FUNC_ATTR_NONNULL_ALL +{ + if (global_lstate == NULL) { + global_lstate = init_lua(); + } + + NLUA_CALL_C_FUNCTION_2(global_lstate, nlua_exec_lua_string, 0, + (void *)&str, ret_tv); +} + +/// Evaluate lua string +/// +/// Used for luaeval(). Expects three values on the stack: +/// +/// 1. String to evaluate. +/// 2. _A value. +/// 3. Pointer to location where result is saved. +/// +/// @param[in,out] lstate Lua interpreter state. +static int nlua_eval_lua_string(lua_State *const lstate) + FUNC_ATTR_NONNULL_ALL +{ + const String *const str = (const String *)lua_touserdata(lstate, 1); + typval_T *const arg = (typval_T *)lua_touserdata(lstate, 2); + typval_T *const ret_tv = (typval_T *)lua_touserdata(lstate, 3); + lua_pop(lstate, 3); + + garray_T str_ga; + ga_init(&str_ga, 1, 80); +#define EVALHEADER "local _A=select(1,...) return (" + const size_t lcmd_len = sizeof(EVALHEADER) - 1 + str->size + 1; + char *lcmd; + if (lcmd_len < IOSIZE) { + lcmd = (char *)IObuff; + } else { + lcmd = xmalloc(lcmd_len); + } + memcpy(lcmd, EVALHEADER, sizeof(EVALHEADER) - 1); + memcpy(lcmd + sizeof(EVALHEADER) - 1, str->data, str->size); + lcmd[lcmd_len - 1] = ')'; +#undef EVALHEADER + if (luaL_loadbuffer(lstate, lcmd, lcmd_len, NLUA_EVAL_NAME)) { + nlua_error(lstate, + _("E5107: Error while creating lua chunk for luaeval(): %.*s")); + if (lcmd != (char *)IObuff) { + xfree(lcmd); + } + return 0; + } + if (lcmd != (char *)IObuff) { + xfree(lcmd); + } + + if (arg == NULL || arg->v_type == VAR_UNKNOWN) { + lua_pushnil(lstate); + } else { + nlua_push_typval(lstate, arg); + } + if (lua_pcall(lstate, 1, 1, 0)) { + nlua_error(lstate, + _("E5108: Error while calling lua chunk for luaeval(): %.*s")); + return 0; + } + if (!nlua_pop_typval(lstate, ret_tv)) { + return 0; + } + + return 0; +} + +/// Print as a Vim message +/// +/// @param lstate Lua interpreter state. +static int nlua_print(lua_State *const lstate) + FUNC_ATTR_NONNULL_ALL +{ +#define PRINT_ERROR(msg) \ + do { \ + errmsg = msg; \ + errmsg_len = sizeof(msg) - 1; \ + goto nlua_print_error; \ + } while (0) + const int nargs = lua_gettop(lstate); + lua_getglobal(lstate, "tostring"); + const char *errmsg = NULL; + size_t errmsg_len = 0; + garray_T msg_ga; + ga_init(&msg_ga, 1, 80); + int curargidx = 1; + for (; curargidx <= nargs; curargidx++) { + lua_pushvalue(lstate, -1); // tostring + lua_pushvalue(lstate, curargidx); // arg + if (lua_pcall(lstate, 1, 1, 0)) { + errmsg = lua_tolstring(lstate, -1, &errmsg_len); + goto nlua_print_error; + } + size_t len; + const char *const s = lua_tolstring(lstate, -1, &len); + if (s == NULL) { + PRINT_ERROR( + ""); + } + ga_concat_len(&msg_ga, s, len); + if (curargidx < nargs) { + ga_append(&msg_ga, ' '); + } + lua_pop(lstate, 1); + } +#undef PRINT_ERROR + lua_pop(lstate, nargs + 1); + ga_append(&msg_ga, NUL); + { + const size_t len = (size_t)msg_ga.ga_len - 1; + char *const str = (char *)msg_ga.ga_data; + + for (size_t i = 0; i < len;) { + const size_t start = i; + while (i < len) { + switch (str[i]) { + case NUL: { + str[i] = NL; + i++; + continue; + } + case NL: { + str[i] = NUL; + i++; + break; + } + default: { + i++; + continue; + } + } + break; + } + msg((char_u *)str + start); + } + if (str[len - 1] == NUL) { // Last was newline + msg((char_u *)""); + } + } + ga_clear(&msg_ga); + return 0; +nlua_print_error: + emsgf(_("E5114: Error while converting print argument #%i: %.*s"), + curargidx, errmsg_len, errmsg); + ga_clear(&msg_ga); + lua_pop(lstate, lua_gettop(lstate)); + return 0; +} + +/// debug.debug implementation: interaction with user while debugging +/// +/// @param lstate Lua interpreter state. +int nlua_debug(lua_State *lstate) + FUNC_ATTR_NONNULL_ALL +{ + const typval_T input_args[] = { + { + .v_lock = VAR_FIXED, + .v_type = VAR_STRING, + .vval.v_string = (char_u *)"lua_debug> ", + }, + { + .v_type = VAR_UNKNOWN, + }, + }; + for (;;) { + lua_settop(lstate, 0); + typval_T input; + get_user_input(input_args, &input, false); + msg_putchar('\n'); // Avoid outputting on input line. + if (input.v_type != VAR_STRING + || input.vval.v_string == NULL + || *input.vval.v_string == NUL + || STRCMP(input.vval.v_string, "cont") == 0) { + tv_clear(&input); + return 0; + } + if (luaL_loadbuffer(lstate, (const char *)input.vval.v_string, + STRLEN(input.vval.v_string), "=(debug command)")) { + nlua_error(lstate, _("E5115: Error while loading debug string: %.*s")); + } + tv_clear(&input); + if (lua_pcall(lstate, 0, 0, 0)) { + nlua_error(lstate, _("E5116: Error while calling debug string: %.*s")); + } + } + return 0; +} + +/// Evaluate lua string +/// +/// Used for luaeval(). +/// +/// @param[in] str String to execute. +/// @param[in] arg Second argument to `luaeval()`. +/// @param[out] ret_tv Location where result will be saved. +/// +/// @return Result of the execution. +void executor_eval_lua(const String str, typval_T *const arg, + typval_T *const ret_tv) + FUNC_ATTR_NONNULL_ALL +{ + if (global_lstate == NULL) { + global_lstate = init_lua(); + } + + NLUA_CALL_C_FUNCTION_3(global_lstate, nlua_eval_lua_string, 0, + (void *)&str, arg, ret_tv); +} + +/// Run lua string +/// +/// Used for :lua. +/// +/// @param eap VimL command being run. +void ex_lua(exarg_T *const eap) + FUNC_ATTR_NONNULL_ALL +{ + size_t len; + char *const code = script_get(eap, &len); + if (eap->skip) { + xfree(code); + return; + } + typval_T tv = { .v_type = VAR_UNKNOWN }; + executor_exec_lua((String) { .data = code, .size = len }, &tv); + tv_clear(&tv); + xfree(code); +} + +/// Run lua string for each line in range +/// +/// Used for :luado. +/// +/// @param eap VimL command being run. +void ex_luado(exarg_T *const eap) + FUNC_ATTR_NONNULL_ALL +{ + if (global_lstate == NULL) { + global_lstate = init_lua(); + } + if (u_save(eap->line1 - 1, eap->line2 + 1) == FAIL) { + EMSG(_("cannot save undo information")); + return; + } + const String cmd = { + .size = STRLEN(eap->arg), + .data = (char *)eap->arg, + }; + const linenr_T range[] = { eap->line1, eap->line2 }; + NLUA_CALL_C_FUNCTION_2(global_lstate, nlua_exec_luado_string, 0, + (void *)&cmd, (void *)range); +} + +/// Run lua file +/// +/// Used for :luafile. +/// +/// @param eap VimL command being run. +void ex_luafile(exarg_T *const eap) + FUNC_ATTR_NONNULL_ALL +{ + if (global_lstate == NULL) { + global_lstate = init_lua(); + } + NLUA_CALL_C_FUNCTION_1(global_lstate, nlua_exec_lua_file, 0, + (void *)eap->arg); +} diff --git a/src/nvim/lua/executor.h b/src/nvim/lua/executor.h new file mode 100644 index 0000000000..22e55a56d3 --- /dev/null +++ b/src/nvim/lua/executor.h @@ -0,0 +1,25 @@ +#ifndef NVIM_VIML_EXECUTOR_EXECUTOR_H +#define NVIM_VIML_EXECUTOR_EXECUTOR_H + +#include + +#include "nvim/api/private/defs.h" +#include "nvim/func_attr.h" +#include "nvim/eval/typval.h" +#include "nvim/ex_cmds_defs.h" + +// Generated by msgpack-gen.lua +void nlua_add_api_functions(lua_State *lstate) REAL_FATTR_NONNULL_ALL; + +#define set_api_error(s, err) \ + do { \ + Error *err_ = (err); \ + err_->type = kErrorTypeException; \ + err_->set = true; \ + memcpy(&err_->msg[0], s, sizeof(s)); \ + } while (0) + +#ifdef INCLUDE_GENERATED_DECLARATIONS +# include "lua/executor.h.generated.h" +#endif +#endif // NVIM_VIML_EXECUTOR_EXECUTOR_H diff --git a/src/nvim/lua/vim.lua b/src/nvim/lua/vim.lua new file mode 100644 index 0000000000..8d1c5bdf4f --- /dev/null +++ b/src/nvim/lua/vim.lua @@ -0,0 +1,2 @@ +-- TODO(ZyX-I): Create compatibility layer. +return {} diff --git a/src/nvim/viml/executor/converter.c b/src/nvim/viml/executor/converter.c deleted file mode 100644 index 425a38538d..0000000000 --- a/src/nvim/viml/executor/converter.c +++ /dev/null @@ -1,1194 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "nvim/api/private/defs.h" -#include "nvim/api/private/helpers.h" -#include "nvim/func_attr.h" -#include "nvim/memory.h" -#include "nvim/assert.h" -// FIXME: vim.h is not actually needed, but otherwise it states MAXPATHL is -// redefined -#include "nvim/vim.h" -#include "nvim/globals.h" -#include "nvim/message.h" -#include "nvim/eval/typval.h" -#include "nvim/ascii.h" -#include "nvim/macros.h" - -#include "nvim/lib/kvec.h" -#include "nvim/eval/decode.h" - -#include "nvim/viml/executor/converter.h" -#include "nvim/viml/executor/executor.h" - -/// Determine, which keys lua table contains -typedef struct { - size_t maxidx; ///< Maximum positive integral value found. - size_t string_keys_num; ///< Number of string keys. - bool has_string_with_nul; ///< True if there is string key with NUL byte. - ObjectType type; ///< If has_type_key is true then attached value. Otherwise - ///< either kObjectTypeNil, kObjectTypeDictionary or - ///< kObjectTypeArray, depending on other properties. - lua_Number val; ///< If has_val_key and val_type == LUA_TNUMBER: value. - bool has_type_key; ///< True if type key is present. -} LuaTableProps; - -#ifdef INCLUDE_GENERATED_DECLARATIONS -# include "viml/executor/converter.c.generated.h" -#endif - -#define TYPE_IDX_VALUE true -#define VAL_IDX_VALUE false - -#define LUA_PUSH_STATIC_STRING(lstate, s) \ - lua_pushlstring(lstate, s, sizeof(s) - 1) - -static LuaTableProps nlua_traverse_table(lua_State *const lstate) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT -{ - size_t tsize = 0; // Total number of keys. - int val_type = 0; // If has_val_key: lua type of the value. - bool has_val_key = false; // True if val key was found, - // @see nlua_push_val_idx(). - size_t other_keys_num = 0; // Number of keys that are not string, integral - // or type keys. - LuaTableProps ret; - memset(&ret, 0, sizeof(ret)); - if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { - emsgf(_("E1502: Lua failed to grow stack to %i"), lua_gettop(lstate) + 2); - ret.type = kObjectTypeNil; - return ret; - } - lua_pushnil(lstate); - while (lua_next(lstate, -2)) { - switch (lua_type(lstate, -2)) { - case LUA_TSTRING: { - size_t len; - const char *s = lua_tolstring(lstate, -2, &len); - if (memchr(s, NUL, len) != NULL) { - ret.has_string_with_nul = true; - } - ret.string_keys_num++; - break; - } - case LUA_TNUMBER: { - const lua_Number n = lua_tonumber(lstate, -2); - if (n > (lua_Number)SIZE_MAX || n <= 0 - || ((lua_Number)((size_t)n)) != n) { - other_keys_num++; - } else { - const size_t idx = (size_t)n; - if (idx > ret.maxidx) { - ret.maxidx = idx; - } - } - break; - } - case LUA_TBOOLEAN: { - const bool b = lua_toboolean(lstate, -2); - if (b == TYPE_IDX_VALUE) { - if (lua_type(lstate, -1) == LUA_TNUMBER) { - lua_Number n = lua_tonumber(lstate, -1); - if (n == (lua_Number)kObjectTypeFloat - || n == (lua_Number)kObjectTypeArray - || n == (lua_Number)kObjectTypeDictionary) { - ret.has_type_key = true; - ret.type = (ObjectType)n; - } else { - other_keys_num++; - } - } else { - other_keys_num++; - } - } else { - has_val_key = true; - val_type = lua_type(lstate, -1); - if (val_type == LUA_TNUMBER) { - ret.val = lua_tonumber(lstate, -1); - } - } - break; - } - default: { - other_keys_num++; - break; - } - } - tsize++; - lua_pop(lstate, 1); - } - if (ret.has_type_key) { - if (ret.type == kObjectTypeFloat - && (!has_val_key || val_type != LUA_TNUMBER)) { - ret.type = kObjectTypeNil; - } else if (ret.type == kObjectTypeArray) { - // Determine what is the last number in a *sequence* of keys. - // This condition makes sure that Neovim will not crash when it gets table - // {[vim.type_idx]=vim.types.array, [SIZE_MAX]=1}: without it maxidx will - // be SIZE_MAX, with this condition it should be zero and [SIZE_MAX] key - // should be ignored. - if (ret.maxidx != 0 - && ret.maxidx != (tsize - - ret.has_type_key - - other_keys_num - - has_val_key - - ret.string_keys_num)) { - for (ret.maxidx = 0;; ret.maxidx++) { - lua_rawgeti(lstate, -1, (int)ret.maxidx + 1); - if (lua_isnil(lstate, -1)) { - lua_pop(lstate, 1); - break; - } - lua_pop(lstate, 1); - } - } - } - } else { - if (tsize == 0 - || (tsize == ret.maxidx - && other_keys_num == 0 - && ret.string_keys_num == 0)) { - ret.type = kObjectTypeArray; - } else if (ret.string_keys_num == tsize) { - ret.type = kObjectTypeDictionary; - } else { - ret.type = kObjectTypeNil; - } - } - return ret; -} - -/// Helper structure for nlua_pop_typval -typedef struct { - typval_T *tv; ///< Location where conversion result is saved. - bool container; ///< True if tv is a container. - bool special; ///< If true then tv is a _VAL part of special dictionary - ///< that represents mapping. - int idx; ///< Container index (used to detect self-referencing structures). -} TVPopStackItem; - -/// Convert lua object to VimL typval_T -/// -/// Should pop exactly one value from lua stack. -/// -/// @param lstate Lua state. -/// @param[out] ret_tv Where to put the result. -/// -/// @return `true` in case of success, `false` in case of failure. Error is -/// reported automatically. -bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv) -{ - bool ret = true; - const int initial_size = lua_gettop(lstate); - kvec_t(TVPopStackItem) stack = KV_INITIAL_VALUE; - kv_push(stack, ((TVPopStackItem) { ret_tv, false, false, 0 })); - while (ret && kv_size(stack)) { - if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { - emsgf(_("E1502: Lua failed to grow stack to %i"), lua_gettop(lstate) + 3); - ret = false; - break; - } - TVPopStackItem cur = kv_pop(stack); - if (cur.container) { - if (cur.special || cur.tv->v_type == VAR_DICT) { - assert(cur.tv->v_type == (cur.special ? VAR_LIST : VAR_DICT)); - bool next_key_found = false; - while (lua_next(lstate, -2)) { - if (lua_type(lstate, -2) == LUA_TSTRING) { - next_key_found = true; - break; - } - lua_pop(lstate, 1); - } - if (next_key_found) { - size_t len; - const char *s = lua_tolstring(lstate, -2, &len); - if (cur.special) { - list_T *const kv_pair = tv_list_alloc(); - tv_list_append_list(cur.tv->vval.v_list, kv_pair); - listitem_T *const key = tv_list_item_alloc(); - key->li_tv = decode_string(s, len, kTrue, false, false); - tv_list_append(kv_pair, key); - if (key->li_tv.v_type == VAR_UNKNOWN) { - ret = false; - tv_list_unref(kv_pair); - continue; - } - listitem_T *const val = tv_list_item_alloc(); - tv_list_append(kv_pair, val); - kv_push(stack, cur); - cur = (TVPopStackItem) { &val->li_tv, false, false, 0 }; - } else { - dictitem_T *const di = tv_dict_item_alloc_len(s, len); - if (tv_dict_add(cur.tv->vval.v_dict, di) == FAIL) { - assert(false); - } - kv_push(stack, cur); - cur = (TVPopStackItem) { &di->di_tv, false, false, 0 }; - } - } else { - lua_pop(lstate, 1); - continue; - } - } else { - assert(cur.tv->v_type == VAR_LIST); - lua_rawgeti(lstate, -1, cur.tv->vval.v_list->lv_len + 1); - if (lua_isnil(lstate, -1)) { - lua_pop(lstate, 2); - continue; - } - listitem_T *const li = tv_list_item_alloc(); - tv_list_append(cur.tv->vval.v_list, li); - kv_push(stack, cur); - cur = (TVPopStackItem) { &li->li_tv, false, false, 0 }; - } - } - assert(!cur.container); - *cur.tv = (typval_T) { - .v_type = VAR_NUMBER, - .v_lock = VAR_UNLOCKED, - .vval = { .v_number = 0 }, - }; - switch (lua_type(lstate, -1)) { - case LUA_TNIL: { - cur.tv->v_type = VAR_SPECIAL; - cur.tv->vval.v_special = kSpecialVarNull; - break; - } - case LUA_TBOOLEAN: { - cur.tv->v_type = VAR_SPECIAL; - cur.tv->vval.v_special = (lua_toboolean(lstate, -1) - ? kSpecialVarTrue - : kSpecialVarFalse); - break; - } - case LUA_TSTRING: { - size_t len; - const char *s = lua_tolstring(lstate, -1, &len); - *cur.tv = decode_string(s, len, kNone, true, false); - if (cur.tv->v_type == VAR_UNKNOWN) { - ret = false; - } - break; - } - case LUA_TNUMBER: { - const lua_Number n = lua_tonumber(lstate, -1); - if (n > (lua_Number)VARNUMBER_MAX || n < (lua_Number)VARNUMBER_MIN - || ((lua_Number)((varnumber_T)n)) != n) { - cur.tv->v_type = VAR_FLOAT; - cur.tv->vval.v_float = (float_T)n; - } else { - cur.tv->v_type = VAR_NUMBER; - cur.tv->vval.v_number = (varnumber_T)n; - } - break; - } - case LUA_TTABLE: { - const LuaTableProps table_props = nlua_traverse_table(lstate); - - for (size_t i = 0; i < kv_size(stack); i++) { - const TVPopStackItem item = kv_A(stack, i); - if (item.container && lua_rawequal(lstate, -1, item.idx)) { - tv_copy(item.tv, cur.tv); - cur.container = false; - goto nlua_pop_typval_table_processing_end; - } - } - - switch (table_props.type) { - case kObjectTypeArray: { - cur.tv->v_type = VAR_LIST; - cur.tv->vval.v_list = tv_list_alloc(); - cur.tv->vval.v_list->lv_refcount++; - if (table_props.maxidx != 0) { - cur.container = true; - cur.idx = lua_gettop(lstate); - kv_push(stack, cur); - } - break; - } - case kObjectTypeDictionary: { - if (table_props.string_keys_num == 0) { - cur.tv->v_type = VAR_DICT; - cur.tv->vval.v_dict = tv_dict_alloc(); - cur.tv->vval.v_dict->dv_refcount++; - } else { - cur.special = table_props.has_string_with_nul; - if (table_props.has_string_with_nul) { - decode_create_map_special_dict(cur.tv); - assert(cur.tv->v_type = VAR_DICT); - dictitem_T *const val_di = tv_dict_find(cur.tv->vval.v_dict, - S_LEN("_VAL")); - assert(val_di != NULL); - cur.tv = &val_di->di_tv; - assert(cur.tv->v_type == VAR_LIST); - } else { - cur.tv->v_type = VAR_DICT; - cur.tv->vval.v_dict = tv_dict_alloc(); - cur.tv->vval.v_dict->dv_refcount++; - } - cur.container = true; - cur.idx = lua_gettop(lstate); - kv_push(stack, cur); - lua_pushnil(lstate); - } - break; - } - case kObjectTypeFloat: { - cur.tv->v_type = VAR_FLOAT; - cur.tv->vval.v_float = (float_T)table_props.val; - break; - } - case kObjectTypeNil: { - EMSG(_("E5100: Cannot convert given lua table: table " - "should either have a sequence of positive integer keys " - "or contain only string keys")); - ret = false; - break; - } - default: { - assert(false); - } - } -nlua_pop_typval_table_processing_end: - break; - } - default: { - EMSG(_("E5101: Cannot convert given lua type")); - ret = false; - break; - } - } - if (!cur.container) { - lua_pop(lstate, 1); - } - } - kv_destroy(stack); - if (!ret) { - tv_clear(ret_tv); - *ret_tv = (typval_T) { - .v_type = VAR_NUMBER, - .v_lock = VAR_UNLOCKED, - .vval = { .v_number = 0 }, - }; - lua_pop(lstate, lua_gettop(lstate) - initial_size + 1); - } - assert(lua_gettop(lstate) == initial_size - 1); - return ret; -} - -#define TYPVAL_ENCODE_ALLOW_SPECIALS true - -#define TYPVAL_ENCODE_CONV_NIL(tv) \ - lua_pushnil(lstate) - -#define TYPVAL_ENCODE_CONV_BOOL(tv, num) \ - lua_pushboolean(lstate, (bool)(num)) - -#define TYPVAL_ENCODE_CONV_NUMBER(tv, num) \ - lua_pushnumber(lstate, (lua_Number)(num)) - -#define TYPVAL_ENCODE_CONV_UNSIGNED_NUMBER TYPVAL_ENCODE_CONV_NUMBER - -#define TYPVAL_ENCODE_CONV_FLOAT(tv, flt) \ - TYPVAL_ENCODE_CONV_NUMBER(tv, flt) - -#define TYPVAL_ENCODE_CONV_STRING(tv, str, len) \ - lua_pushlstring(lstate, (const char *)(str), (len)) - -#define TYPVAL_ENCODE_CONV_STR_STRING TYPVAL_ENCODE_CONV_STRING - -#define TYPVAL_ENCODE_CONV_EXT_STRING(tv, str, len, type) \ - TYPVAL_ENCODE_CONV_NIL() - -#define TYPVAL_ENCODE_CONV_FUNC_START(tv, fun) \ - do { \ - TYPVAL_ENCODE_CONV_NIL(tv); \ - goto typval_encode_stop_converting_one_item; \ - } while (0) - -#define TYPVAL_ENCODE_CONV_FUNC_BEFORE_ARGS(tv, len) -#define TYPVAL_ENCODE_CONV_FUNC_BEFORE_SELF(tv, len) -#define TYPVAL_ENCODE_CONV_FUNC_END(tv) - -#define TYPVAL_ENCODE_CONV_EMPTY_LIST(tv) \ - lua_createtable(lstate, 0, 0) - -#define TYPVAL_ENCODE_CONV_EMPTY_DICT(tv, dict) \ - nlua_create_typed_table(lstate, 0, 0, kObjectTypeDictionary) - -#define TYPVAL_ENCODE_CONV_LIST_START(tv, len) \ - do { \ - if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { \ - emsgf(_("E5102: Lua failed to grow stack to %i"), \ - lua_gettop(lstate) + 3); \ - return false; \ - } \ - lua_createtable(lstate, (int)(len), 0); \ - lua_pushnumber(lstate, 1); \ - } while (0) - -#define TYPVAL_ENCODE_CONV_REAL_LIST_AFTER_START(tv, mpsv) - -#define TYPVAL_ENCODE_CONV_LIST_BETWEEN_ITEMS(tv) \ - do { \ - lua_Number idx = lua_tonumber(lstate, -2); \ - lua_rawset(lstate, -3); \ - lua_pushnumber(lstate, idx + 1); \ - } while (0) - -#define TYPVAL_ENCODE_CONV_LIST_END(tv) \ - lua_rawset(lstate, -3) - -#define TYPVAL_ENCODE_CONV_DICT_START(tv, dict, len) \ - do { \ - if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { \ - emsgf(_("E5102: Lua failed to grow stack to %i"), \ - lua_gettop(lstate) + 3); \ - return false; \ - } \ - lua_createtable(lstate, 0, (int)(len)); \ - } while (0) - -#define TYPVAL_ENCODE_SPECIAL_DICT_KEY_CHECK(label, kv_pair) - -#define TYPVAL_ENCODE_CONV_REAL_DICT_AFTER_START(tv, dict, mpsv) - -#define TYPVAL_ENCODE_CONV_DICT_AFTER_KEY(tv, dict) - -#define TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS(tv, dict) \ - lua_rawset(lstate, -3) - -#define TYPVAL_ENCODE_CONV_DICT_END(tv, dict) \ - TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS(tv, dict) - -#define TYPVAL_ENCODE_CONV_RECURSE(val, conv_type) \ - do { \ - for (size_t backref = kv_size(*mpstack); backref; backref--) { \ - const MPConvStackVal mpval = kv_A(*mpstack, backref - 1); \ - if (mpval.type == conv_type) { \ - if (conv_type == kMPConvDict \ - ? (void *)mpval.data.d.dict == (void *)(val) \ - : (void *)mpval.data.l.list == (void *)(val)) { \ - lua_pushvalue(lstate, \ - -((int)((kv_size(*mpstack) - backref + 1) * 2))); \ - break; \ - } \ - } \ - } \ - } while (0) - -#define TYPVAL_ENCODE_SCOPE static -#define TYPVAL_ENCODE_NAME lua -#define TYPVAL_ENCODE_FIRST_ARG_TYPE lua_State *const -#define TYPVAL_ENCODE_FIRST_ARG_NAME lstate -#include "nvim/eval/typval_encode.c.h" -#undef TYPVAL_ENCODE_SCOPE -#undef TYPVAL_ENCODE_NAME -#undef TYPVAL_ENCODE_FIRST_ARG_TYPE -#undef TYPVAL_ENCODE_FIRST_ARG_NAME - -#undef TYPVAL_ENCODE_CONV_STRING -#undef TYPVAL_ENCODE_CONV_STR_STRING -#undef TYPVAL_ENCODE_CONV_EXT_STRING -#undef TYPVAL_ENCODE_CONV_NUMBER -#undef TYPVAL_ENCODE_CONV_FLOAT -#undef TYPVAL_ENCODE_CONV_FUNC_START -#undef TYPVAL_ENCODE_CONV_FUNC_BEFORE_ARGS -#undef TYPVAL_ENCODE_CONV_FUNC_BEFORE_SELF -#undef TYPVAL_ENCODE_CONV_FUNC_END -#undef TYPVAL_ENCODE_CONV_EMPTY_LIST -#undef TYPVAL_ENCODE_CONV_LIST_START -#undef TYPVAL_ENCODE_CONV_REAL_LIST_AFTER_START -#undef TYPVAL_ENCODE_CONV_EMPTY_DICT -#undef TYPVAL_ENCODE_CONV_NIL -#undef TYPVAL_ENCODE_CONV_BOOL -#undef TYPVAL_ENCODE_CONV_UNSIGNED_NUMBER -#undef TYPVAL_ENCODE_CONV_DICT_START -#undef TYPVAL_ENCODE_CONV_REAL_DICT_AFTER_START -#undef TYPVAL_ENCODE_CONV_DICT_END -#undef TYPVAL_ENCODE_CONV_DICT_AFTER_KEY -#undef TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS -#undef TYPVAL_ENCODE_SPECIAL_DICT_KEY_CHECK -#undef TYPVAL_ENCODE_CONV_LIST_END -#undef TYPVAL_ENCODE_CONV_LIST_BETWEEN_ITEMS -#undef TYPVAL_ENCODE_CONV_RECURSE -#undef TYPVAL_ENCODE_ALLOW_SPECIALS - -/// Convert VimL typval_T to lua value -/// -/// Should leave single value in lua stack. May only fail if lua failed to grow -/// stack. -/// -/// @param lstate Lua interpreter state. -/// @param[in] tv typval_T to convert. -/// -/// @return true in case of success, false otherwise. -bool nlua_push_typval(lua_State *lstate, typval_T *const tv) -{ - const int initial_size = lua_gettop(lstate); - if (!lua_checkstack(lstate, initial_size + 2)) { - emsgf(_("E1502: Lua failed to grow stack to %i"), initial_size + 4); - return false; - } - if (encode_vim_to_lua(lstate, tv, "nlua_push_typval argument") == FAIL) { - return false; - } - assert(lua_gettop(lstate) == initial_size + 1); - return true; -} - -#define NLUA_PUSH_HANDLE(lstate, type, idx) \ - do { \ - lua_pushnumber(lstate, (lua_Number)(idx)); \ - } while (0) - -#define NLUA_POP_HANDLE(lstate, type, stack_idx, idx) \ - do { \ - idx = (type)lua_tonumber(lstate, stack_idx); \ - } while (0) - -/// Push value which is a type index -/// -/// Used for all “typed” tables: i.e. for all tables which represent VimL -/// values. -static inline void nlua_push_type_idx(lua_State *lstate) - FUNC_ATTR_NONNULL_ALL -{ - lua_pushboolean(lstate, TYPE_IDX_VALUE); -} - -/// Push value which is a value index -/// -/// Used for tables which represent scalar values, like float value. -static inline void nlua_push_val_idx(lua_State *lstate) - FUNC_ATTR_NONNULL_ALL -{ - lua_pushboolean(lstate, VAL_IDX_VALUE); -} - -/// Push type -/// -/// Type is a value in vim.types table. -/// -/// @param[out] lstate Lua state. -/// @param[in] type Type to push. -static inline void nlua_push_type(lua_State *lstate, ObjectType type) - FUNC_ATTR_NONNULL_ALL -{ - lua_pushnumber(lstate, (lua_Number)type); -} - -/// Create lua table which has an entry that determines its VimL type -/// -/// @param[out] lstate Lua state. -/// @param[in] narr Number of “array” entries to be populated later. -/// @param[in] nrec Number of “dictionary” entries to be populated later. -/// @param[in] type Type of the table. -static inline void nlua_create_typed_table(lua_State *lstate, - const size_t narr, - const size_t nrec, - const ObjectType type) - FUNC_ATTR_NONNULL_ALL -{ - lua_createtable(lstate, (int)narr, (int)(1 + nrec)); - nlua_push_type_idx(lstate); - nlua_push_type(lstate, type); - lua_rawset(lstate, -3); -} - - -/// Convert given String to lua string -/// -/// Leaves converted string on top of the stack. -void nlua_push_String(lua_State *lstate, const String s) - FUNC_ATTR_NONNULL_ALL -{ - lua_pushlstring(lstate, s.data, s.size); -} - -/// Convert given Integer to lua number -/// -/// Leaves converted number on top of the stack. -void nlua_push_Integer(lua_State *lstate, const Integer n) - FUNC_ATTR_NONNULL_ALL -{ - lua_pushnumber(lstate, (lua_Number)n); -} - -/// Convert given Float to lua table -/// -/// Leaves converted table on top of the stack. -void nlua_push_Float(lua_State *lstate, const Float f) - FUNC_ATTR_NONNULL_ALL -{ - nlua_create_typed_table(lstate, 0, 1, kObjectTypeFloat); - nlua_push_val_idx(lstate); - lua_pushnumber(lstate, (lua_Number)f); - lua_rawset(lstate, -3); -} - -/// Convert given Float to lua boolean -/// -/// Leaves converted value on top of the stack. -void nlua_push_Boolean(lua_State *lstate, const Boolean b) - FUNC_ATTR_NONNULL_ALL -{ - lua_pushboolean(lstate, b); -} - -/// Convert given Dictionary to lua table -/// -/// Leaves converted table on top of the stack. -void nlua_push_Dictionary(lua_State *lstate, const Dictionary dict) - FUNC_ATTR_NONNULL_ALL -{ - if (dict.size == 0) { - nlua_create_typed_table(lstate, 0, 0, kObjectTypeDictionary); - } else { - lua_createtable(lstate, 0, (int)dict.size); - } - for (size_t i = 0; i < dict.size; i++) { - nlua_push_String(lstate, dict.items[i].key); - nlua_push_Object(lstate, dict.items[i].value); - lua_rawset(lstate, -3); - } -} - -/// Convert given Array to lua table -/// -/// Leaves converted table on top of the stack. -void nlua_push_Array(lua_State *lstate, const Array array) - FUNC_ATTR_NONNULL_ALL -{ - lua_createtable(lstate, (int)array.size, 0); - for (size_t i = 0; i < array.size; i++) { - nlua_push_Object(lstate, array.items[i]); - lua_rawseti(lstate, -2, (int)i + 1); - } -} - -#define GENERATE_INDEX_FUNCTION(type) \ -void nlua_push_##type(lua_State *lstate, const type item) \ - FUNC_ATTR_NONNULL_ALL \ -{ \ - NLUA_PUSH_HANDLE(lstate, type, item); \ -} - -GENERATE_INDEX_FUNCTION(Buffer) -GENERATE_INDEX_FUNCTION(Window) -GENERATE_INDEX_FUNCTION(Tabpage) - -#undef GENERATE_INDEX_FUNCTION - -/// Convert given Object to lua value -/// -/// Leaves converted value on top of the stack. -void nlua_push_Object(lua_State *lstate, const Object obj) - FUNC_ATTR_NONNULL_ALL -{ - switch (obj.type) { - case kObjectTypeNil: { - lua_pushnil(lstate); - break; - } -#define ADD_TYPE(type, data_key) \ - case kObjectType##type: { \ - nlua_push_##type(lstate, obj.data.data_key); \ - break; \ - } - ADD_TYPE(Boolean, boolean) - ADD_TYPE(Integer, integer) - ADD_TYPE(Float, floating) - ADD_TYPE(String, string) - ADD_TYPE(Array, array) - ADD_TYPE(Dictionary, dictionary) -#undef ADD_TYPE -#define ADD_REMOTE_TYPE(type) \ - case kObjectType##type: { \ - nlua_push_##type(lstate, (type)obj.data.integer); \ - break; \ - } - ADD_REMOTE_TYPE(Buffer) - ADD_REMOTE_TYPE(Window) - ADD_REMOTE_TYPE(Tabpage) -#undef ADD_REMOTE_TYPE - } -} - - -/// Convert lua value to string -/// -/// Always pops one value from the stack. -String nlua_pop_String(lua_State *lstate, Error *err) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT -{ - if (lua_type(lstate, -1) != LUA_TSTRING) { - lua_pop(lstate, 1); - api_set_error(err, Validation, "Expected lua string"); - return (String) { .size = 0, .data = NULL }; - } - String ret; - - ret.data = (char *)lua_tolstring(lstate, -1, &(ret.size)); - assert(ret.data != NULL); - ret.data = xmemdupz(ret.data, ret.size); - lua_pop(lstate, 1); - - return ret; -} - -/// Convert lua value to integer -/// -/// Always pops one value from the stack. -Integer nlua_pop_Integer(lua_State *lstate, Error *err) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT -{ - if (lua_type(lstate, -1) != LUA_TNUMBER) { - lua_pop(lstate, 1); - api_set_error(err, Validation, "Expected lua number"); - return 0; - } - const lua_Number n = lua_tonumber(lstate, -1); - lua_pop(lstate, 1); - if (n > (lua_Number)API_INTEGER_MAX || n < (lua_Number)API_INTEGER_MIN - || ((lua_Number)((Integer)n)) != n) { - api_set_error(err, Exception, "Number is not integral"); - return 0; - } - return (Integer)n; -} - -/// Convert lua value to boolean -/// -/// Always pops one value from the stack. -Boolean nlua_pop_Boolean(lua_State *lstate, Error *err) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT -{ - const Boolean ret = lua_toboolean(lstate, -1); - lua_pop(lstate, 1); - return ret; -} - -/// Check whether typed table on top of the stack has given type -/// -/// @param[in] lstate Lua state. -/// @param[out] err Location where error will be saved. May be NULL. -/// @param[in] type Type to check. -/// -/// @return @see nlua_traverse_table(). -static inline LuaTableProps nlua_check_type(lua_State *const lstate, - Error *const err, - const ObjectType type) - FUNC_ATTR_NONNULL_ARG(1) FUNC_ATTR_WARN_UNUSED_RESULT -{ - if (lua_type(lstate, -1) != LUA_TTABLE) { - if (err) { - api_set_error(err, Validation, "Expected lua table"); - } - return (LuaTableProps) { .type = kObjectTypeNil }; - } - LuaTableProps table_props = nlua_traverse_table(lstate); - - if (type == kObjectTypeDictionary && table_props.type == kObjectTypeArray - && table_props.maxidx == 0 && !table_props.has_type_key) { - table_props.type = kObjectTypeDictionary; - } - - if (table_props.type != type) { - if (err) { - api_set_error(err, Validation, "Unexpected type"); - } - } - - return table_props; -} - -/// Convert lua table to float -/// -/// Always pops one value from the stack. -Float nlua_pop_Float(lua_State *lstate, Error *err) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT -{ - if (lua_type(lstate, -1) == LUA_TNUMBER) { - const Float ret = (Float)lua_tonumber(lstate, -1); - lua_pop(lstate, 1); - return ret; - } - - const LuaTableProps table_props = nlua_check_type(lstate, err, - kObjectTypeFloat); - lua_pop(lstate, 1); - if (table_props.type != kObjectTypeFloat) { - return 0; - } else { - return (Float)table_props.val; - } -} - -/// Convert lua table to array without determining whether it is array -/// -/// @param lstate Lua state. -/// @param[in] table_props nlua_traverse_table() output. -/// @param[out] err Location where error will be saved. -static Array nlua_pop_Array_unchecked(lua_State *const lstate, - const LuaTableProps table_props, - Error *const err) -{ - Array ret = { .size = table_props.maxidx, .items = NULL }; - - if (ret.size == 0) { - lua_pop(lstate, 1); - return ret; - } - - ret.items = xcalloc(ret.size, sizeof(*ret.items)); - for (size_t i = 1; i <= ret.size; i++) { - Object val; - - lua_rawgeti(lstate, -1, (int)i); - - val = nlua_pop_Object(lstate, err); - if (err->set) { - ret.size = i - 1; - lua_pop(lstate, 1); - api_free_array(ret); - return (Array) { .size = 0, .items = NULL }; - } - ret.items[i - 1] = val; - } - lua_pop(lstate, 1); - - return ret; -} - -/// Convert lua table to array -/// -/// Always pops one value from the stack. -Array nlua_pop_Array(lua_State *lstate, Error *err) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT -{ - const LuaTableProps table_props = nlua_check_type(lstate, err, - kObjectTypeArray); - if (table_props.type != kObjectTypeArray) { - return (Array) { .size = 0, .items = NULL }; - } - return nlua_pop_Array_unchecked(lstate, table_props, err); -} - -/// Convert lua table to dictionary -/// -/// Always pops one value from the stack. Does not check whether whether topmost -/// value on the stack is a table. -/// -/// @param lstate Lua interpreter state. -/// @param[in] table_props nlua_traverse_table() output. -/// @param[out] err Location where error will be saved. -static Dictionary nlua_pop_Dictionary_unchecked(lua_State *lstate, - const LuaTableProps table_props, - Error *err) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT -{ - Dictionary ret = { .size = table_props.string_keys_num, .items = NULL }; - - if (ret.size == 0) { - lua_pop(lstate, 1); - return ret; - } - ret.items = xcalloc(ret.size, sizeof(*ret.items)); - - lua_pushnil(lstate); - for (size_t i = 0; lua_next(lstate, -2) && i < ret.size;) { - // stack: dict, key, value - - if (lua_type(lstate, -2) == LUA_TSTRING) { - lua_pushvalue(lstate, -2); - // stack: dict, key, value, key - - ret.items[i].key = nlua_pop_String(lstate, err); - // stack: dict, key, value - - if (!err->set) { - ret.items[i].value = nlua_pop_Object(lstate, err); - // stack: dict, key - } else { - lua_pop(lstate, 1); - // stack: dict, key - } - - if (err->set) { - ret.size = i; - api_free_dictionary(ret); - lua_pop(lstate, 2); - // stack: - return (Dictionary) { .size = 0, .items = NULL }; - } - i++; - } else { - lua_pop(lstate, 1); - // stack: dict, key - } - } - lua_pop(lstate, 1); - - return ret; -} - -/// Convert lua table to dictionary -/// -/// Always pops one value from the stack. -Dictionary nlua_pop_Dictionary(lua_State *lstate, Error *err) - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT -{ - const LuaTableProps table_props = nlua_check_type(lstate, err, - kObjectTypeDictionary); - if (table_props.type != kObjectTypeDictionary) { - lua_pop(lstate, 1); - return (Dictionary) { .size = 0, .items = NULL }; - } - - return nlua_pop_Dictionary_unchecked(lstate, table_props, err); -} - -/// Helper structure for nlua_pop_Object -typedef struct { - Object *obj; ///< Location where conversion result is saved. - bool container; ///< True if tv is a container. -} ObjPopStackItem; - -/// Convert lua table to object -/// -/// Always pops one value from the stack. -Object nlua_pop_Object(lua_State *const lstate, Error *const err) -{ - Object ret = NIL; - const int initial_size = lua_gettop(lstate); - kvec_t(ObjPopStackItem) stack = KV_INITIAL_VALUE; - kv_push(stack, ((ObjPopStackItem) { &ret, false })); - while (!err->set && kv_size(stack)) { - if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { - api_set_error(err, Exception, "Lua failed to grow stack"); - break; - } - ObjPopStackItem cur = kv_pop(stack); - if (cur.container) { - if (cur.obj->type == kObjectTypeDictionary) { - // stack: …, dict, key - if (cur.obj->data.dictionary.size - == cur.obj->data.dictionary.capacity) { - lua_pop(lstate, 2); - continue; - } - bool next_key_found = false; - while (lua_next(lstate, -2)) { - // stack: …, dict, new key, val - if (lua_type(lstate, -2) == LUA_TSTRING) { - next_key_found = true; - break; - } - lua_pop(lstate, 1); - // stack: …, dict, new key - } - if (next_key_found) { - // stack: …, dict, new key, val - size_t len; - const char *s = lua_tolstring(lstate, -2, &len); - const size_t idx = cur.obj->data.dictionary.size++; - cur.obj->data.dictionary.items[idx].key = (String) { - .data = xmemdupz(s, len), - .size = len, - }; - kv_push(stack, cur); - cur = (ObjPopStackItem) { - .obj = &cur.obj->data.dictionary.items[idx].value, - .container = false, - }; - } else { - // stack: …, dict - lua_pop(lstate, 1); - // stack: … - continue; - } - } else { - if (cur.obj->data.array.size == cur.obj->data.array.capacity) { - lua_pop(lstate, 1); - continue; - } - const size_t idx = cur.obj->data.array.size++; - lua_rawgeti(lstate, -1, (int)idx + 1); - if (lua_isnil(lstate, -1)) { - lua_pop(lstate, 2); - continue; - } - kv_push(stack, cur); - cur = (ObjPopStackItem) { - .obj = &cur.obj->data.array.items[idx], - .container = false, - }; - } - } - assert(!cur.container); - *cur.obj = NIL; - switch (lua_type(lstate, -1)) { - case LUA_TNIL: { - break; - } - case LUA_TBOOLEAN: { - *cur.obj = BOOLEAN_OBJ(lua_toboolean(lstate, -1)); - break; - } - case LUA_TSTRING: { - size_t len; - const char *s = lua_tolstring(lstate, -1, &len); - *cur.obj = STRING_OBJ(((String) { - .data = xmemdupz(s, len), - .size = len, - })); - break; - } - case LUA_TNUMBER: { - const lua_Number n = lua_tonumber(lstate, -1); - if (n > (lua_Number)API_INTEGER_MAX || n < (lua_Number)API_INTEGER_MIN - || ((lua_Number)((Integer)n)) != n) { - *cur.obj = FLOAT_OBJ((Float)n); - } else { - *cur.obj = INTEGER_OBJ((Integer)n); - } - break; - } - case LUA_TTABLE: { - const LuaTableProps table_props = nlua_traverse_table(lstate); - - switch (table_props.type) { - case kObjectTypeArray: { - *cur.obj = ARRAY_OBJ(((Array) { - .items = NULL, - .size = 0, - .capacity = 0, - })); - if (table_props.maxidx != 0) { - cur.obj->data.array.items = - xcalloc(table_props.maxidx, - sizeof(cur.obj->data.array.items[0])); - cur.obj->data.array.capacity = table_props.maxidx; - cur.container = true; - kv_push(stack, cur); - } - break; - } - case kObjectTypeDictionary: { - *cur.obj = DICTIONARY_OBJ(((Dictionary) { - .items = NULL, - .size = 0, - .capacity = 0, - })); - if (table_props.string_keys_num != 0) { - cur.obj->data.dictionary.items = - xcalloc(table_props.string_keys_num, - sizeof(cur.obj->data.dictionary.items[0])); - cur.obj->data.dictionary.capacity = table_props.string_keys_num; - cur.container = true; - kv_push(stack, cur); - lua_pushnil(lstate); - } - break; - } - case kObjectTypeFloat: { - *cur.obj = FLOAT_OBJ((Float)table_props.val); - break; - } - case kObjectTypeNil: { - api_set_error(err, Validation, "Cannot convert given lua table"); - break; - } - default: { - assert(false); - } - } - break; - } - default: { - api_set_error(err, Validation, "Cannot convert given lua type"); - break; - } - } - if (!cur.container) { - lua_pop(lstate, 1); - } - } - kv_destroy(stack); - if (err->set) { - api_free_object(ret); - ret = NIL; - lua_pop(lstate, lua_gettop(lstate) - initial_size + 1); - } - assert(lua_gettop(lstate) == initial_size - 1); - return ret; -} - -#define GENERATE_INDEX_FUNCTION(type) \ -type nlua_pop_##type(lua_State *lstate, Error *err) \ - FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT \ -{ \ - type ret; \ - NLUA_POP_HANDLE(lstate, type, -1, ret); \ - lua_pop(lstate, 1); \ - return ret; \ -} - -GENERATE_INDEX_FUNCTION(Buffer) -GENERATE_INDEX_FUNCTION(Window) -GENERATE_INDEX_FUNCTION(Tabpage) - -#undef GENERATE_INDEX_FUNCTION - -/// Record some auxilary values in vim module -/// -/// Assumes that module table is on top of the stack. -/// -/// Recorded values: -/// -/// `vim.type_idx`: @see nlua_push_type_idx() -/// `vim.val_idx`: @see nlua_push_val_idx() -/// `vim.types`: table mapping possible values of `vim.type_idx` to string -/// names (i.e. `array`, `float`, `dictionary`) and back. -void nlua_init_types(lua_State *const lstate) -{ - LUA_PUSH_STATIC_STRING(lstate, "type_idx"); - nlua_push_type_idx(lstate); - lua_rawset(lstate, -3); - - LUA_PUSH_STATIC_STRING(lstate, "val_idx"); - nlua_push_val_idx(lstate); - lua_rawset(lstate, -3); - - LUA_PUSH_STATIC_STRING(lstate, "types"); - lua_createtable(lstate, 0, 3); - - LUA_PUSH_STATIC_STRING(lstate, "float"); - lua_pushnumber(lstate, (lua_Number)kObjectTypeFloat); - lua_rawset(lstate, -3); - lua_pushnumber(lstate, (lua_Number)kObjectTypeFloat); - LUA_PUSH_STATIC_STRING(lstate, "float"); - lua_rawset(lstate, -3); - - LUA_PUSH_STATIC_STRING(lstate, "array"); - lua_pushnumber(lstate, (lua_Number)kObjectTypeArray); - lua_rawset(lstate, -3); - lua_pushnumber(lstate, (lua_Number)kObjectTypeArray); - LUA_PUSH_STATIC_STRING(lstate, "array"); - lua_rawset(lstate, -3); - - LUA_PUSH_STATIC_STRING(lstate, "dictionary"); - lua_pushnumber(lstate, (lua_Number)kObjectTypeDictionary); - lua_rawset(lstate, -3); - lua_pushnumber(lstate, (lua_Number)kObjectTypeDictionary); - LUA_PUSH_STATIC_STRING(lstate, "dictionary"); - lua_rawset(lstate, -3); - - lua_rawset(lstate, -3); -} diff --git a/src/nvim/viml/executor/converter.h b/src/nvim/viml/executor/converter.h deleted file mode 100644 index dbbaaebf6b..0000000000 --- a/src/nvim/viml/executor/converter.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef NVIM_VIML_EXECUTOR_CONVERTER_H -#define NVIM_VIML_EXECUTOR_CONVERTER_H - -#include -#include -#include - -#include "nvim/api/private/defs.h" -#include "nvim/func_attr.h" -#include "nvim/eval.h" - -#ifdef INCLUDE_GENERATED_DECLARATIONS -# include "viml/executor/converter.h.generated.h" -#endif -#endif // NVIM_VIML_EXECUTOR_CONVERTER_H diff --git a/src/nvim/viml/executor/executor.c b/src/nvim/viml/executor/executor.c deleted file mode 100644 index 826460772e..0000000000 --- a/src/nvim/viml/executor/executor.c +++ /dev/null @@ -1,576 +0,0 @@ -#include -#include -#include - -#include "nvim/misc1.h" -#include "nvim/getchar.h" -#include "nvim/garray.h" -#include "nvim/func_attr.h" -#include "nvim/api/private/defs.h" -#include "nvim/api/private/helpers.h" -#include "nvim/api/vim.h" -#include "nvim/vim.h" -#include "nvim/ex_getln.h" -#include "nvim/message.h" -#include "nvim/memline.h" -#include "nvim/buffer_defs.h" -#include "nvim/macros.h" -#include "nvim/screen.h" -#include "nvim/cursor.h" -#include "nvim/undo.h" -#include "nvim/ascii.h" - -#include "nvim/viml/executor/executor.h" -#include "nvim/viml/executor/converter.h" - -typedef struct { - Error err; - String lua_err_str; -} LuaError; - -#ifdef INCLUDE_GENERATED_DECLARATIONS -# include "viml/executor/vim_module.generated.h" -# include "viml/executor/executor.c.generated.h" -#endif - -/// Name of the run code for use in messages -#define NLUA_EVAL_NAME "" - -/// Call C function which does not expect any arguments -/// -/// @param function Called function -/// @param numret Number of returned arguments -#define NLUA_CALL_C_FUNCTION_0(lstate, function, numret) \ - do { \ - lua_pushcfunction(lstate, &function); \ - lua_call(lstate, 0, numret); \ - } while (0) -/// Call C function which expects one argument -/// -/// @param function Called function -/// @param numret Number of returned arguments -/// @param a… Supplied argument (should be a void* pointer) -#define NLUA_CALL_C_FUNCTION_1(lstate, function, numret, a1) \ - do { \ - lua_pushcfunction(lstate, &function); \ - lua_pushlightuserdata(lstate, a1); \ - lua_call(lstate, 1, numret); \ - } while (0) -/// Call C function which expects two arguments -/// -/// @param function Called function -/// @param numret Number of returned arguments -/// @param a… Supplied argument (should be a void* pointer) -#define NLUA_CALL_C_FUNCTION_2(lstate, function, numret, a1, a2) \ - do { \ - lua_pushcfunction(lstate, &function); \ - lua_pushlightuserdata(lstate, a1); \ - lua_pushlightuserdata(lstate, a2); \ - lua_call(lstate, 2, numret); \ - } while (0) -/// Call C function which expects three arguments -/// -/// @param function Called function -/// @param numret Number of returned arguments -/// @param a… Supplied argument (should be a void* pointer) -#define NLUA_CALL_C_FUNCTION_3(lstate, function, numret, a1, a2, a3) \ - do { \ - lua_pushcfunction(lstate, &function); \ - lua_pushlightuserdata(lstate, a1); \ - lua_pushlightuserdata(lstate, a2); \ - lua_pushlightuserdata(lstate, a3); \ - lua_call(lstate, 3, numret); \ - } while (0) -/// Call C function which expects five arguments -/// -/// @param function Called function -/// @param numret Number of returned arguments -/// @param a… Supplied argument (should be a void* pointer) -#define NLUA_CALL_C_FUNCTION_4(lstate, function, numret, a1, a2, a3, a4) \ - do { \ - lua_pushcfunction(lstate, &function); \ - lua_pushlightuserdata(lstate, a1); \ - lua_pushlightuserdata(lstate, a2); \ - lua_pushlightuserdata(lstate, a3); \ - lua_pushlightuserdata(lstate, a4); \ - lua_call(lstate, 4, numret); \ - } while (0) - -/// Convert lua error into a Vim error message -/// -/// @param lstate Lua interpreter state. -/// @param[in] msg Message base, must contain one `%s`. -static void nlua_error(lua_State *const lstate, const char *const msg) - FUNC_ATTR_NONNULL_ALL -{ - size_t len; - const char *const str = lua_tolstring(lstate, -1, &len); - - emsgf(msg, (int)len, str); - - lua_pop(lstate, 1); -} - -/// Compare two strings, ignoring case -/// -/// Expects two values on the stack: compared strings. Returns one of the -/// following numbers: 0, -1 or 1. -/// -/// Does no error handling: never call it with non-string or with some arguments -/// omitted. -static int nlua_stricmp(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL -{ - const char *s1 = luaL_checklstring(lstate, 1, NULL); - const char *s2 = luaL_checklstring(lstate, 2, NULL); - const int ret = STRICMP(s1, s2); - lua_pop(lstate, 2); - lua_pushnumber(lstate, (lua_Number)((ret > 0) - (ret < 0))); - return 1; -} - -/// Evaluate lua string -/// -/// Expects two values on the stack: string to evaluate, pointer to the -/// location where result is saved. Always returns nothing (from the lua point -/// of view). -static int nlua_exec_lua_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL -{ - const String *const str = (const String *)lua_touserdata(lstate, 1); - typval_T *const ret_tv = (typval_T *)lua_touserdata(lstate, 2); - lua_pop(lstate, 2); - - if (luaL_loadbuffer(lstate, str->data, str->size, NLUA_EVAL_NAME)) { - nlua_error(lstate, _("E5104: Error while creating lua chunk: %.*s")); - return 0; - } - if (lua_pcall(lstate, 0, 1, 0)) { - nlua_error(lstate, _("E5105: Error while calling lua chunk: %.*s")); - return 0; - } - if (!nlua_pop_typval(lstate, ret_tv)) { - return 0; - } - return 0; -} - -/// Evaluate lua string for each line in range -/// -/// Expects two values on the stack: string to evaluate and pointer to integer -/// array with line range. Always returns nothing (from the lua point of view). -static int nlua_exec_luado_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL -{ - const String *const str = (const String *)lua_touserdata(lstate, 1); - const linenr_T *const range = (const linenr_T *)lua_touserdata(lstate, 2); - lua_pop(lstate, 2); - -#define DOSTART "return function(line, linenr) " -#define DOEND " end" - const size_t lcmd_len = (str->size - + (sizeof(DOSTART) - 1) - + (sizeof(DOEND) - 1)); - char *lcmd; - if (lcmd_len < IOSIZE) { - lcmd = (char *)IObuff; - } else { - lcmd = xmalloc(lcmd_len + 1); - } - memcpy(lcmd, DOSTART, sizeof(DOSTART) - 1); - memcpy(lcmd + sizeof(DOSTART) - 1, str->data, str->size); - memcpy(lcmd + sizeof(DOSTART) - 1 + str->size, DOEND, sizeof(DOEND) - 1); -#undef DOSTART -#undef DOEND - - if (luaL_loadbuffer(lstate, lcmd, lcmd_len, NLUA_EVAL_NAME)) { - nlua_error(lstate, _("E5109: Error while creating lua chunk: %.*s")); - if (lcmd_len >= IOSIZE) { - xfree(lcmd); - } - return 0; - } - if (lcmd_len >= IOSIZE) { - xfree(lcmd); - } - if (lua_pcall(lstate, 0, 1, 0)) { - nlua_error(lstate, _("E5110: Error while creating lua function: %.*s")); - return 0; - } - for (linenr_T l = range[0]; l <= range[1]; l++) { - if (l > curbuf->b_ml.ml_line_count) { - break; - } - lua_pushvalue(lstate, -1); - lua_pushstring(lstate, (const char *)ml_get_buf(curbuf, l, false)); - lua_pushnumber(lstate, (lua_Number)l); - if (lua_pcall(lstate, 2, 1, 0)) { - nlua_error(lstate, _("E5111: Error while calling lua function: %.*s")); - break; - } - if (lua_isstring(lstate, -1)) { - size_t new_line_len; - const char *const new_line = lua_tolstring(lstate, -1, &new_line_len); - char *const new_line_transformed = xmemdupz(new_line, new_line_len); - for (size_t i = 0; i < new_line_len; i++) { - if (new_line_transformed[i] == NUL) { - new_line_transformed[i] = '\n'; - } - } - ml_replace(l, (char_u *)new_line_transformed, false); - changed_bytes(l, 0); - } - lua_pop(lstate, 1); - } - lua_pop(lstate, 1); - check_cursor(); - update_screen(NOT_VALID); - return 0; -} - -/// Evaluate lua file -/// -/// Expects one value on the stack: file to evaluate. Always returns nothing -/// (from the lua point of view). -static int nlua_exec_lua_file(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL -{ - const char *const filename = (const char *)lua_touserdata(lstate, 1); - lua_pop(lstate, 1); - - if (luaL_loadfile(lstate, filename)) { - nlua_error(lstate, _("E5112: Error while creating lua chunk: %.*s")); - return 0; - } - if (lua_pcall(lstate, 0, 0, 0)) { - nlua_error(lstate, _("E5113: Error while calling lua chunk: %.*s")); - return 0; - } - return 0; -} - -/// Initialize lua interpreter state -/// -/// Called by lua interpreter itself to initialize state. -static int nlua_state_init(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL -{ - // stricmp - lua_pushcfunction(lstate, &nlua_stricmp); - lua_setglobal(lstate, "stricmp"); - - // print - lua_pushcfunction(lstate, &nlua_print); - lua_setglobal(lstate, "print"); - - // debug.debug - lua_getglobal(lstate, "debug"); - lua_pushcfunction(lstate, &nlua_debug); - lua_setfield(lstate, -2, "debug"); - lua_pop(lstate, 1); - - // vim - if (luaL_dostring(lstate, (char *)&vim_module[0])) { - nlua_error(lstate, _("E5106: Error while creating vim module: %.*s")); - return 1; - } - // vim.api - nlua_add_api_functions(lstate); - // vim.types, vim.type_idx, vim.val_idx - nlua_init_types(lstate); - lua_setglobal(lstate, "vim"); - return 0; -} - -/// Initialize lua interpreter -/// -/// Crashes NeoVim if initialization fails. Should be called once per lua -/// interpreter instance. -static lua_State *init_lua(void) - FUNC_ATTR_NONNULL_RET FUNC_ATTR_WARN_UNUSED_RESULT -{ - lua_State *lstate = luaL_newstate(); - if (lstate == NULL) { - EMSG(_("E970: Failed to initialize lua interpreter")); - preserve_exit(); - } - luaL_openlibs(lstate); - NLUA_CALL_C_FUNCTION_0(lstate, nlua_state_init, 0); - return lstate; -} - -static lua_State *global_lstate = NULL; - -/// Execute lua string -/// -/// @param[in] str String to execute. -/// @param[out] ret_tv Location where result will be saved. -/// -/// @return Result of the execution. -void executor_exec_lua(const String str, typval_T *const ret_tv) - FUNC_ATTR_NONNULL_ALL -{ - if (global_lstate == NULL) { - global_lstate = init_lua(); - } - - NLUA_CALL_C_FUNCTION_2(global_lstate, nlua_exec_lua_string, 0, - (void *)&str, ret_tv); -} - -/// Evaluate lua string -/// -/// Used for luaeval(). Expects three values on the stack: -/// -/// 1. String to evaluate. -/// 2. _A value. -/// 3. Pointer to location where result is saved. -/// -/// @param[in,out] lstate Lua interpreter state. -static int nlua_eval_lua_string(lua_State *const lstate) - FUNC_ATTR_NONNULL_ALL -{ - const String *const str = (const String *)lua_touserdata(lstate, 1); - typval_T *const arg = (typval_T *)lua_touserdata(lstate, 2); - typval_T *const ret_tv = (typval_T *)lua_touserdata(lstate, 3); - lua_pop(lstate, 3); - - garray_T str_ga; - ga_init(&str_ga, 1, 80); -#define EVALHEADER "local _A=select(1,...) return (" - const size_t lcmd_len = sizeof(EVALHEADER) - 1 + str->size + 1; - char *lcmd; - if (lcmd_len < IOSIZE) { - lcmd = (char *)IObuff; - } else { - lcmd = xmalloc(lcmd_len); - } - memcpy(lcmd, EVALHEADER, sizeof(EVALHEADER) - 1); - memcpy(lcmd + sizeof(EVALHEADER) - 1, str->data, str->size); - lcmd[lcmd_len - 1] = ')'; -#undef EVALHEADER - if (luaL_loadbuffer(lstate, lcmd, lcmd_len, NLUA_EVAL_NAME)) { - nlua_error(lstate, - _("E5107: Error while creating lua chunk for luaeval(): %.*s")); - if (lcmd != (char *)IObuff) { - xfree(lcmd); - } - return 0; - } - if (lcmd != (char *)IObuff) { - xfree(lcmd); - } - - if (arg == NULL || arg->v_type == VAR_UNKNOWN) { - lua_pushnil(lstate); - } else { - nlua_push_typval(lstate, arg); - } - if (lua_pcall(lstate, 1, 1, 0)) { - nlua_error(lstate, - _("E5108: Error while calling lua chunk for luaeval(): %.*s")); - return 0; - } - if (!nlua_pop_typval(lstate, ret_tv)) { - return 0; - } - - return 0; -} - -/// Print as a Vim message -/// -/// @param lstate Lua interpreter state. -static int nlua_print(lua_State *const lstate) - FUNC_ATTR_NONNULL_ALL -{ -#define PRINT_ERROR(msg) \ - do { \ - errmsg = msg; \ - errmsg_len = sizeof(msg) - 1; \ - goto nlua_print_error; \ - } while (0) - const int nargs = lua_gettop(lstate); - lua_getglobal(lstate, "tostring"); - const char *errmsg = NULL; - size_t errmsg_len = 0; - garray_T msg_ga; - ga_init(&msg_ga, 1, 80); - int curargidx = 1; - for (; curargidx <= nargs; curargidx++) { - lua_pushvalue(lstate, -1); // tostring - lua_pushvalue(lstate, curargidx); // arg - if (lua_pcall(lstate, 1, 1, 0)) { - errmsg = lua_tolstring(lstate, -1, &errmsg_len); - goto nlua_print_error; - } - size_t len; - const char *const s = lua_tolstring(lstate, -1, &len); - if (s == NULL) { - PRINT_ERROR( - ""); - } - ga_concat_len(&msg_ga, s, len); - if (curargidx < nargs) { - ga_append(&msg_ga, ' '); - } - lua_pop(lstate, 1); - } -#undef PRINT_ERROR - lua_pop(lstate, nargs + 1); - ga_append(&msg_ga, NUL); - { - const size_t len = (size_t)msg_ga.ga_len - 1; - char *const str = (char *)msg_ga.ga_data; - - for (size_t i = 0; i < len;) { - const size_t start = i; - while (i < len) { - switch (str[i]) { - case NUL: { - str[i] = NL; - i++; - continue; - } - case NL: { - str[i] = NUL; - i++; - break; - } - default: { - i++; - continue; - } - } - break; - } - msg((char_u *)str + start); - } - if (str[len - 1] == NUL) { // Last was newline - msg((char_u *)""); - } - } - ga_clear(&msg_ga); - return 0; -nlua_print_error: - emsgf(_("E5114: Error while converting print argument #%i: %.*s"), - curargidx, errmsg_len, errmsg); - ga_clear(&msg_ga); - lua_pop(lstate, lua_gettop(lstate)); - return 0; -} - -/// debug.debug implementation: interaction with user while debugging -/// -/// @param lstate Lua interpreter state. -int nlua_debug(lua_State *lstate) - FUNC_ATTR_NONNULL_ALL -{ - const typval_T input_args[] = { - { - .v_lock = VAR_FIXED, - .v_type = VAR_STRING, - .vval.v_string = (char_u *)"lua_debug> ", - }, - { - .v_type = VAR_UNKNOWN, - }, - }; - for (;;) { - lua_settop(lstate, 0); - typval_T input; - get_user_input(input_args, &input, false); - msg_putchar('\n'); // Avoid outputting on input line. - if (input.v_type != VAR_STRING - || input.vval.v_string == NULL - || *input.vval.v_string == NUL - || STRCMP(input.vval.v_string, "cont") == 0) { - tv_clear(&input); - return 0; - } - if (luaL_loadbuffer(lstate, (const char *)input.vval.v_string, - STRLEN(input.vval.v_string), "=(debug command)")) { - nlua_error(lstate, _("E5115: Error while loading debug string: %.*s")); - } - tv_clear(&input); - if (lua_pcall(lstate, 0, 0, 0)) { - nlua_error(lstate, _("E5116: Error while calling debug string: %.*s")); - } - } - return 0; -} - -/// Evaluate lua string -/// -/// Used for luaeval(). -/// -/// @param[in] str String to execute. -/// @param[in] arg Second argument to `luaeval()`. -/// @param[out] ret_tv Location where result will be saved. -/// -/// @return Result of the execution. -void executor_eval_lua(const String str, typval_T *const arg, - typval_T *const ret_tv) - FUNC_ATTR_NONNULL_ALL -{ - if (global_lstate == NULL) { - global_lstate = init_lua(); - } - - NLUA_CALL_C_FUNCTION_3(global_lstate, nlua_eval_lua_string, 0, - (void *)&str, arg, ret_tv); -} - -/// Run lua string -/// -/// Used for :lua. -/// -/// @param eap VimL command being run. -void ex_lua(exarg_T *const eap) - FUNC_ATTR_NONNULL_ALL -{ - size_t len; - char *const code = script_get(eap, &len); - if (eap->skip) { - xfree(code); - return; - } - typval_T tv = { .v_type = VAR_UNKNOWN }; - executor_exec_lua((String) { .data = code, .size = len }, &tv); - tv_clear(&tv); - xfree(code); -} - -/// Run lua string for each line in range -/// -/// Used for :luado. -/// -/// @param eap VimL command being run. -void ex_luado(exarg_T *const eap) - FUNC_ATTR_NONNULL_ALL -{ - if (global_lstate == NULL) { - global_lstate = init_lua(); - } - if (u_save(eap->line1 - 1, eap->line2 + 1) == FAIL) { - EMSG(_("cannot save undo information")); - return; - } - const String cmd = { - .size = STRLEN(eap->arg), - .data = (char *)eap->arg, - }; - const linenr_T range[] = { eap->line1, eap->line2 }; - NLUA_CALL_C_FUNCTION_2(global_lstate, nlua_exec_luado_string, 0, - (void *)&cmd, (void *)range); -} - -/// Run lua file -/// -/// Used for :luafile. -/// -/// @param eap VimL command being run. -void ex_luafile(exarg_T *const eap) - FUNC_ATTR_NONNULL_ALL -{ - if (global_lstate == NULL) { - global_lstate = init_lua(); - } - NLUA_CALL_C_FUNCTION_1(global_lstate, nlua_exec_lua_file, 0, - (void *)eap->arg); -} diff --git a/src/nvim/viml/executor/executor.h b/src/nvim/viml/executor/executor.h deleted file mode 100644 index 648bb73785..0000000000 --- a/src/nvim/viml/executor/executor.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef NVIM_VIML_EXECUTOR_EXECUTOR_H -#define NVIM_VIML_EXECUTOR_EXECUTOR_H - -#include - -#include "nvim/api/private/defs.h" -#include "nvim/func_attr.h" -#include "nvim/eval/typval.h" -#include "nvim/ex_cmds_defs.h" - -// Generated by msgpack-gen.lua -void nlua_add_api_functions(lua_State *lstate) REAL_FATTR_NONNULL_ALL; - -#define set_api_error(s, err) \ - do { \ - Error *err_ = (err); \ - err_->type = kErrorTypeException; \ - err_->set = true; \ - memcpy(&err_->msg[0], s, sizeof(s)); \ - } while (0) - -#ifdef INCLUDE_GENERATED_DECLARATIONS -# include "viml/executor/executor.h.generated.h" -#endif -#endif // NVIM_VIML_EXECUTOR_EXECUTOR_H diff --git a/src/nvim/viml/executor/vim.lua b/src/nvim/viml/executor/vim.lua deleted file mode 100644 index 8d1c5bdf4f..0000000000 --- a/src/nvim/viml/executor/vim.lua +++ /dev/null @@ -1,2 +0,0 @@ --- TODO(ZyX-I): Create compatibility layer. -return {} -- cgit From 0c5e359cb502cc858892930bcc8dbfadcdf09bd3 Mon Sep 17 00:00:00 2001 From: ZyX Date: Tue, 11 Apr 2017 01:32:35 +0300 Subject: cmake: Append lua include also to single-includes targets --- src/nvim/CMakeLists.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 1401029cf5..7111e4aa81 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -358,12 +358,12 @@ target_link_libraries(nvim ${NVIM_EXEC_LINK_LIBRARIES}) install_helper(TARGETS nvim) if(PREFER_LUAJIT) - set_property(TARGET nvim APPEND PROPERTY - INCLUDE_DIRECTORIES ${LUAJIT_INCLUDE_DIRS}) + set(LUA_PREFERRED_INCLUDE_DIRS ${LUAJIT_INCLUDE_DIRS}) else() - set_property(TARGET nvim APPEND PROPERTY - INCLUDE_DIRECTORIES ${LUA_INCLUDE_DIRS}) + set(LUA_PREFERRED_INCLUDE_DIRS ${LUA_INCLUDE_DIRS}) endif() +set_property(TARGET nvim APPEND PROPERTY + INCLUDE_DIRECTORIES ${LUA_PREFERRED_INCLUDE_DIRS}) if(WIN32) # Copy DLLs and third-party tools to bin/ and install them along with nvim @@ -540,6 +540,10 @@ foreach(hfile ${NVIM_HEADERS}) ${texe} EXCLUDE_FROM_ALL ${tsource} ${NVIM_HEADERS} ${NVIM_GENERATED_FOR_HEADERS}) + set_property( + TARGET ${texe} + APPEND PROPERTY INCLUDE_DIRECTORIES ${LUA_PREFERRED_INCLUDE_DIRS} + ) list(FIND NO_SINGLE_CHECK_HEADERS "${relative_path}" hfile_exclude_idx) if(${hfile_exclude_idx} EQUAL -1) -- cgit From 9bf15ca3fa2aa5f1a533b7b1598b6e3937fb1b17 Mon Sep 17 00:00:00 2001 From: ZyX Date: Tue, 11 Apr 2017 10:18:53 +0300 Subject: lua: Fix header guards --- src/nvim/lua/converter.h | 6 +++--- src/nvim/lua/executor.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/nvim/lua/converter.h b/src/nvim/lua/converter.h index 49f6ac4016..542c56ea3e 100644 --- a/src/nvim/lua/converter.h +++ b/src/nvim/lua/converter.h @@ -1,5 +1,5 @@ -#ifndef NVIM_VIML_EXECUTOR_CONVERTER_H -#define NVIM_VIML_EXECUTOR_CONVERTER_H +#ifndef NVIM_LUA_CONVERTER_H +#define NVIM_LUA_CONVERTER_H #include #include @@ -12,4 +12,4 @@ #ifdef INCLUDE_GENERATED_DECLARATIONS # include "lua/converter.h.generated.h" #endif -#endif // NVIM_VIML_EXECUTOR_CONVERTER_H +#endif // NVIM_LUA_CONVERTER_H diff --git a/src/nvim/lua/executor.h b/src/nvim/lua/executor.h index 22e55a56d3..0cbf290f64 100644 --- a/src/nvim/lua/executor.h +++ b/src/nvim/lua/executor.h @@ -1,5 +1,5 @@ -#ifndef NVIM_VIML_EXECUTOR_EXECUTOR_H -#define NVIM_VIML_EXECUTOR_EXECUTOR_H +#ifndef NVIM_LUA_EXECUTOR_H +#define NVIM_LUA_EXECUTOR_H #include @@ -22,4 +22,4 @@ void nlua_add_api_functions(lua_State *lstate) REAL_FATTR_NONNULL_ALL; #ifdef INCLUDE_GENERATED_DECLARATIONS # include "lua/executor.h.generated.h" #endif -#endif // NVIM_VIML_EXECUTOR_EXECUTOR_H +#endif // NVIM_LUA_EXECUTOR_H -- cgit From a8ade2441d41289581628118a88c260c3ebb3fa5 Mon Sep 17 00:00:00 2001 From: ZyX Date: Tue, 11 Apr 2017 10:37:14 +0300 Subject: lua/converter: Remove useless macros --- src/nvim/lua/converter.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/nvim/lua/converter.c b/src/nvim/lua/converter.c index 348315124b..80d9096212 100644 --- a/src/nvim/lua/converter.c +++ b/src/nvim/lua/converter.c @@ -542,16 +542,6 @@ bool nlua_push_typval(lua_State *lstate, typval_T *const tv) return true; } -#define NLUA_PUSH_HANDLE(lstate, type, idx) \ - do { \ - lua_pushnumber(lstate, (lua_Number)(idx)); \ - } while (0) - -#define NLUA_POP_HANDLE(lstate, type, stack_idx, idx) \ - do { \ - idx = (type)lua_tonumber(lstate, stack_idx); \ - } while (0) - /// Push value which is a type index /// /// Used for all “typed” tables: i.e. for all tables which represent VimL @@ -676,7 +666,7 @@ void nlua_push_Array(lua_State *lstate, const Array array) void nlua_push_##type(lua_State *lstate, const type item) \ FUNC_ATTR_NONNULL_ALL \ { \ - NLUA_PUSH_HANDLE(lstate, type, item); \ + lua_pushnumber(lstate, (lua_Number)(item)); \ } GENERATE_INDEX_FUNCTION(Buffer) @@ -1135,7 +1125,7 @@ type nlua_pop_##type(lua_State *lstate, Error *err) \ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT \ { \ type ret; \ - NLUA_POP_HANDLE(lstate, type, -1, ret); \ + ret = (type)lua_tonumber(lstate, -1); \ lua_pop(lstate, 1); \ return ret; \ } -- cgit From 1bd39fb8d009f5ff62023d0f2fe86bbcdaeb3abc Mon Sep 17 00:00:00 2001 From: ZyX Date: Tue, 11 Apr 2017 23:59:05 +0300 Subject: api: Remove FUNC_API_SINCE for nvim__ functions --- src/nvim/api/vim.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'src') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 0056ea1725..1d44e779c7 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -844,7 +844,6 @@ static void write_msg(String message, bool to_err) /// /// @return its argument. Object nvim__id(Object obj) - FUNC_API_SINCE(2) { return copy_object(obj); } @@ -858,7 +857,6 @@ Object nvim__id(Object obj) /// /// @return its argument. Array nvim__id_array(Array arr) - FUNC_API_SINCE(2) { return copy_object(ARRAY_OBJ(arr)).data.array; } @@ -872,7 +870,6 @@ Array nvim__id_array(Array arr) /// /// @return its argument. Dictionary nvim__id_dictionary(Dictionary dct) - FUNC_API_SINCE(2) { return copy_object(DICTIONARY_OBJ(dct)).data.dictionary; } @@ -886,7 +883,6 @@ Dictionary nvim__id_dictionary(Dictionary dct) /// /// @return its argument. Float nvim__id_float(Float flt) - FUNC_API_SINCE(2) { return flt; } -- cgit From 1d7fde39a6927d01de74aefb540ad445bfdfbfda Mon Sep 17 00:00:00 2001 From: ZyX Date: Wed, 12 Apr 2017 00:31:01 +0300 Subject: api/buffer: Validate replacement array in a separate cycle Should not really change anything, but code should be more efficient by using more optimized libc functions (memchrsub is not libc, but it uses memchr) in place of a cycle. --- src/nvim/api/buffer.c | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c index 611f29f1f2..0a7b7982e2 100644 --- a/src/nvim/api/buffer.c +++ b/src/nvim/api/buffer.c @@ -292,6 +292,23 @@ void nvim_buf_set_lines(uint64_t channel_id, return; } + for (size_t i = 0; i < replacement.size; i++) { + if (replacement.items[i].type != kObjectTypeString) { + api_set_error(err, + Validation, + _("All items in the replacement array must be strings")); + return; + } + // Disallow newlines in the middle of the line. + if (channel_id != VIML_INTERNAL_CALL) { + const String l = replacement.items[i].data.string; + if (memchr(l.data, NL, l.size)) { + api_set_error(err, Validation, _("string cannot contain newlines")); + return; + } + } + } + win_T *save_curwin = NULL; tabpage_T *save_curtab = NULL; size_t new_len = replacement.size; @@ -300,26 +317,12 @@ void nvim_buf_set_lines(uint64_t channel_id, char **lines = (new_len != 0) ? xcalloc(new_len, sizeof(char *)) : NULL; for (size_t i = 0; i < new_len; i++) { - if (replacement.items[i].type != kObjectTypeString) { - api_set_error(err, - Validation, - _("All items in the replacement array must be strings")); - goto end; - } - - String l = replacement.items[i].data.string; + const String l = replacement.items[i].data.string; - // Fill lines[i] with l's contents. Disallow newlines in the middle of a - // line and convert NULs to newlines to avoid truncation. - lines[i] = xmallocz(l.size); - for (size_t j = 0; j < l.size; j++) { - if (l.data[j] == '\n' && channel_id != VIML_INTERNAL_CALL) { - api_set_error(err, Exception, _("string cannot contain newlines")); - new_len = i + 1; - goto end; - } - lines[i][j] = (char) (l.data[j] == '\0' ? '\n' : l.data[j]); - } + // Fill lines[i] with l's contents. Convert NULs to newlines as required by + // NL-used-for-NUL. + lines[i] = xmemdupz(l.data, l.size); + memchrsub(lines[i], NUL, NL, l.size); } try_start(); -- cgit From 8dc3eca49ba4203fb28ae4d70f3bfac35442199a Mon Sep 17 00:00:00 2001 From: Patrick Jackson Date: Mon, 24 Apr 2017 03:39:48 -0700 Subject: api/dispatch: Mark generated functions table readonly (#6576) --- src/nvim/eval.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index d7feed8bfd..c02d172458 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -6009,7 +6009,7 @@ char_u *get_expr_name(expand_T *xp, int idx) /// @param[in] name Name of the function. /// /// Returns pointer to the function definition or NULL if not found. -static VimLFuncDef *find_internal_func(const char *const name) +static const VimLFuncDef *find_internal_func(const char *const name) FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_PURE FUNC_ATTR_NONNULL_ALL { size_t len = strlen(name); @@ -6378,7 +6378,7 @@ call_func( } } else { // Find the function name in the table, call its implementation. - VimLFuncDef *const fdef = find_internal_func((const char *)fname); + const VimLFuncDef *const fdef = find_internal_func((const char *)fname); if (fdef != NULL) { if (argcount < fdef->min_argc) { error = ERROR_TOOFEW; -- cgit From 8f346a322bc18949ae256203ffa801d7ba1dd1c0 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 24 Apr 2017 22:45:03 +0200 Subject: test/fs: sanity check for literal "~" directory (#6579) If the CWD contains a directory with the literal name "~" then the tests will have bogus failures. --- src/nvim/os/fs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/nvim/os/fs.c b/src/nvim/os/fs.c index c39ff5d358..aaa750db50 100644 --- a/src/nvim/os/fs.c +++ b/src/nvim/os/fs.c @@ -61,9 +61,9 @@ void fs_init(void) } -/// Change to the given directory. +/// Changes the current directory to `path`. /// -/// @return `0` on success, a libuv error code on failure. +/// @return 0 on success, or negative error code. int os_chdir(const char *path) FUNC_ATTR_NONNULL_ALL { -- cgit From 22932d8ac22f6dba3b3df068c6932bf3ad478d92 Mon Sep 17 00:00:00 2001 From: relnod Date: Tue, 25 Apr 2017 20:45:59 +0200 Subject: refactor/single-include (#6586) --- src/nvim/CMakeLists.txt | 4 ---- src/nvim/popupmnu.h | 2 ++ src/nvim/quickfix.h | 3 +++ src/nvim/regexp.h | 4 ++++ 4 files changed, 9 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index db5e62fd67..9e9e9b6026 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -432,13 +432,9 @@ set(NO_SINGLE_CHECK_HEADERS if_cscope_defs.h misc2.h msgpack_rpc/server.h - option.h os/shell.h os_unix.h os/win_defs.h - popupmnu.h - quickfix.h - regexp.h regexp_defs.h sha256.h sign_defs.h diff --git a/src/nvim/popupmnu.h b/src/nvim/popupmnu.h index 2b181f2c4a..7e1588dbdd 100644 --- a/src/nvim/popupmnu.h +++ b/src/nvim/popupmnu.h @@ -1,6 +1,8 @@ #ifndef NVIM_POPUPMNU_H #define NVIM_POPUPMNU_H +#include "nvim/types.h" + /// Used for popup menu items. typedef struct { char_u *pum_text; // main menu text diff --git a/src/nvim/quickfix.h b/src/nvim/quickfix.h index bb9c2c3193..fdeb8d1a2f 100644 --- a/src/nvim/quickfix.h +++ b/src/nvim/quickfix.h @@ -1,6 +1,9 @@ #ifndef NVIM_QUICKFIX_H #define NVIM_QUICKFIX_H +#include "nvim/types.h" +#include "nvim/ex_cmds_defs.h" + /* flags for skip_vimgrep_pat() */ #define VGR_GLOBAL 1 #define VGR_NOJUMP 2 diff --git a/src/nvim/regexp.h b/src/nvim/regexp.h index 37513d8c27..97595c4d29 100644 --- a/src/nvim/regexp.h +++ b/src/nvim/regexp.h @@ -1,6 +1,10 @@ #ifndef NVIM_REGEXP_H #define NVIM_REGEXP_H +#include "nvim/types.h" +#include "nvim/buffer_defs.h" +#include "nvim/regexp_defs.h" + /* Second argument for vim_regcomp(). */ #define RE_MAGIC 1 /* 'magic' option */ #define RE_STRING 2 /* match in string instead of buffer text */ -- cgit From 7e571bca5d5e00e9e33e266b983a48bb4014183f Mon Sep 17 00:00:00 2001 From: James McCoy Date: Tue, 25 Apr 2017 15:05:33 -0400 Subject: tui: Only set cursor color if the highlight group is valid (#6585) Closes #6584 --- src/nvim/tui/tui.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c index ae7551098d..e1b97f5306 100644 --- a/src/nvim/tui/tui.c +++ b/src/nvim/tui/tui.c @@ -587,9 +587,11 @@ static void tui_set_mode(UI *ui, ModeShape mode) if (c.id != 0 && ui->rgb) { int attr = syn_id2attr(c.id); - attrentry_T *aep = syn_cterm_attr2entry(attr); - data->params[0].i = aep->rgb_bg_color; - unibi_out(ui, data->unibi_ext.set_cursor_color); + if (attr > 0) { + attrentry_T *aep = syn_cterm_attr2entry(attr); + data->params[0].i = aep->rgb_bg_color; + unibi_out(ui, data->unibi_ext.set_cursor_color); + } } } -- cgit From 88023d51238698dd625c26300142d3dbe5770b73 Mon Sep 17 00:00:00 2001 From: Dongdong Zhou Date: Fri, 24 Feb 2017 09:35:27 +0000 Subject: api/ui: externalize tabline --- src/nvim/api/ui.c | 12 ++++++++++-- src/nvim/screen.c | 36 +++++++++++++++++++++++++++++++++++- src/nvim/tui/tui.c | 1 + src/nvim/ui.c | 34 ++++++++++++++++++++++++++++++++++ src/nvim/ui.h | 9 ++++++++- src/nvim/ui_bridge.c | 1 + src/nvim/window.c | 4 ++++ 7 files changed, 93 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/api/ui.c b/src/nvim/api/ui.c index f0da0d1812..28fc641dec 100644 --- a/src/nvim/api/ui.c +++ b/src/nvim/api/ui.c @@ -69,6 +69,7 @@ void nvim_ui_attach(uint64_t channel_id, Integer width, Integer height, ui->height = (int)height; ui->rgb = true; ui->pum_external = false; + ui->tabline_external = false; ui->resize = remote_ui_resize; ui->clear = remote_ui_clear; ui->eol_clear = remote_ui_eol_clear; @@ -171,19 +172,26 @@ void nvim_ui_set_option(uint64_t channel_id, String name, } static void ui_set_option(UI *ui, String name, Object value, Error *error) { - if (strcmp(name.data, "rgb") == 0) { + if (strequal(name.data, "rgb")) { if (value.type != kObjectTypeBoolean) { api_set_error(error, kErrorTypeValidation, "rgb must be a Boolean"); return; } ui->rgb = value.data.boolean; - } else if (strcmp(name.data, "popupmenu_external") == 0) { + } else if (strequal(name.data, "popupmenu_external")) { if (value.type != kObjectTypeBoolean) { api_set_error(error, kErrorTypeValidation, "popupmenu_external must be a Boolean"); return; } ui->pum_external = value.data.boolean; + } else if (strequal(name.data, "tabline_external")) { + if (value.type != kObjectTypeBoolean) { + api_set_error(error, kErrorTypeValidation, + "tabline_external must be a Boolean"); + return; + } + ui->tabline_external = value.data.boolean; } else { api_set_error(error, kErrorTypeValidation, "No such ui option"); } diff --git a/src/nvim/screen.c b/src/nvim/screen.c index 10dc86d5fa..ed85b6e8b8 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -132,6 +132,7 @@ #include "nvim/version.h" #include "nvim/window.h" #include "nvim/os/time.h" +#include "nvim/api/private/helpers.h" #define MB_FILLER_CHAR '<' /* character used when a double-width character * doesn't fit. */ @@ -6885,8 +6886,13 @@ static void draw_tabline(void) if (ScreenLines == NULL) { return; } - redraw_tabline = false; + if (ui_is_widget_external(kUITabline)) { + draw_tabline_ext(); + return; + } + + redraw_tabline = false; if (tabline_height() < 1) return; @@ -7027,6 +7033,34 @@ static void draw_tabline(void) redraw_tabline = FALSE; } +// send tabline update to external ui +void draw_tabline_ext(void) +{ + win_T *cwp; + + Array args = ARRAY_DICT_INIT; + ADD(args, INTEGER_OBJ(curtab->handle)); + Array tabs = ARRAY_DICT_INIT; + FOR_ALL_TABS(tp) { + if (tp == curtab) { + cwp = curwin; + } else { + cwp = tp->tp_curwin; + } + get_trans_bufname(cwp->w_buffer); + Array tab = ARRAY_DICT_INIT; + ADD(tab, INTEGER_OBJ(tp->handle)); + + Dictionary tab_info = ARRAY_DICT_INIT; + PUT(tab_info, "name", STRING_OBJ(cstr_to_string((char *)NameBuff))); + ADD(tab, DICTIONARY_OBJ(tab_info)); + ADD(tabs, ARRAY_OBJ(tab)); + } + ADD(args, ARRAY_OBJ(tabs)); + + ui_event("tabline_update", args); +} + /* * Get buffer name for "buf" into NameBuff[]. * Takes care of special buffer names and translates special characters. diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c index e1b97f5306..cd94fe9d49 100644 --- a/src/nvim/tui/tui.c +++ b/src/nvim/tui/tui.c @@ -110,6 +110,7 @@ UI *tui_start(void) ui->stop = tui_stop; ui->rgb = p_tgc; ui->pum_external = false; + ui->tabline_external = false; ui->resize = tui_resize; ui->clear = tui_clear; ui->eol_clear = tui_eol_clear; diff --git a/src/nvim/ui.c b/src/nvim/ui.c index 69916fa4cd..6dcc3de1b0 100644 --- a/src/nvim/ui.c +++ b/src/nvim/ui.c @@ -58,6 +58,10 @@ static int busy = 0; static int height, width; static int old_mode_idx = -1; +static bool tabline_external = false; +static bool cmdline_external = false; +static bool wildmenu_external = false; + // UI_CALL invokes a function on all registered UI instances. The functions can // have 0-5 arguments (configurable by SELECT_NTH). // @@ -167,17 +171,20 @@ void ui_refresh(void) int width = INT_MAX, height = INT_MAX; bool pum_external = true; + bool tabline_external = true; for (size_t i = 0; i < ui_count; i++) { UI *ui = uis[i]; width = MIN(ui->width, width); height = MIN(ui->height, height); pum_external &= ui->pum_external; + tabline_external &= ui->tabline_external; } row = col = 0; screen_resize(width, height); pum_set_external(pum_external); + ui_set_widget_external(kUITabline, tabline_external); ui_mode_info_set(); old_mode_idx = -1; ui_cursor_shape(); @@ -557,3 +564,30 @@ void ui_cursor_shape(void) conceal_check_cursur_line(); } +bool ui_is_widget_external(UIWidget widget) +{ + switch (widget) { + case kUITabline: + return tabline_external; + case kUICmdline: + return cmdline_external; + case kUIWildmenu: + return wildmenu_external; + } + return false; +} + +void ui_set_widget_external(UIWidget widget, bool external) +{ + switch (widget) { + case kUITabline: + tabline_external = external; + break; + case kUICmdline: + cmdline_external = external; + break; + case kUIWildmenu: + wildmenu_external = external; + break; + } +} diff --git a/src/nvim/ui.h b/src/nvim/ui.h index fcf52ac9e1..a1ff449eaf 100644 --- a/src/nvim/ui.h +++ b/src/nvim/ui.h @@ -8,6 +8,13 @@ #include "api/private/defs.h" #include "nvim/buffer_defs.h" +// values for externalized widgets +typedef enum { + kUITabline, + kUICmdline, + kUIWildmenu +} UIWidget; + typedef struct { bool bold, underline, undercurl, italic, reverse; int foreground, background, special; @@ -16,7 +23,7 @@ typedef struct { typedef struct ui_t UI; struct ui_t { - bool rgb, pum_external; + bool rgb, pum_external, tabline_external; int width, height; void *data; void (*resize)(UI *ui, int rows, int columns); diff --git a/src/nvim/ui_bridge.c b/src/nvim/ui_bridge.c index 5697c765ba..9a3fcab13c 100644 --- a/src/nvim/ui_bridge.c +++ b/src/nvim/ui_bridge.c @@ -58,6 +58,7 @@ UI *ui_bridge_attach(UI *ui, ui_main_fn ui_main, event_scheduler scheduler) rv->ui = ui; rv->bridge.rgb = ui->rgb; rv->bridge.pum_external = ui->pum_external; + rv->bridge.tabline_external = ui->tabline_external; rv->bridge.stop = ui_bridge_stop; rv->bridge.resize = ui_bridge_resize; rv->bridge.clear = ui_bridge_clear; diff --git a/src/nvim/window.c b/src/nvim/window.c index 60bba19b07..effce8b413 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -48,6 +48,7 @@ #include "nvim/syntax.h" #include "nvim/terminal.h" #include "nvim/undo.h" +#include "nvim/ui.h" #include "nvim/os/os.h" @@ -5223,6 +5224,9 @@ static void last_status_rec(frame_T *fr, int statusline) */ int tabline_height(void) { + if (ui_is_widget_external(kUITabline)) { + return 0; + } assert(first_tabpage); switch (p_stal) { case 0: return 0; -- cgit From 00843902d3472ac4e74106fc06fa60e599914496 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Tue, 25 Apr 2017 02:17:15 +0200 Subject: api/ui: externalize tabline - Work with a bool[] array parallel to the UIWidget enum. - Rename some functions. - Documentation. --- src/nvim/api/ui.c | 40 ++++++++++++++++++++++++++++++++-------- src/nvim/popupmnu.c | 9 +-------- src/nvim/screen.c | 18 +++++------------- src/nvim/tui/tui.c | 5 +++-- src/nvim/ui.c | 51 +++++++++++++++++++-------------------------------- src/nvim/ui.h | 10 ++++++---- src/nvim/ui_bridge.c | 6 ++++-- src/nvim/window.c | 4 ++-- 8 files changed, 72 insertions(+), 71 deletions(-) (limited to 'src') diff --git a/src/nvim/api/ui.c b/src/nvim/api/ui.c index 28fc641dec..08d285eedc 100644 --- a/src/nvim/api/ui.c +++ b/src/nvim/api/ui.c @@ -68,8 +68,6 @@ void nvim_ui_attach(uint64_t channel_id, Integer width, Integer height, ui->width = (int)width; ui->height = (int)height; ui->rgb = true; - ui->pum_external = false; - ui->tabline_external = false; ui->resize = remote_ui_resize; ui->clear = remote_ui_clear; ui->eol_clear = remote_ui_eol_clear; @@ -96,6 +94,8 @@ void nvim_ui_attach(uint64_t channel_id, Integer width, Integer height, ui->set_icon = remote_ui_set_icon; ui->event = remote_ui_event; + memset(ui->ui_ext, 0, sizeof(ui->ui_ext)); + for (size_t i = 0; i < options.size; i++) { ui_set_option(ui, options.items[i].key, options.items[i].value, err); if (ERROR_SET(err)) { @@ -171,7 +171,8 @@ void nvim_ui_set_option(uint64_t channel_id, String name, } } -static void ui_set_option(UI *ui, String name, Object value, Error *error) { +static void ui_set_option(UI *ui, String name, Object value, Error *error) +{ if (strequal(name.data, "rgb")) { if (value.type != kObjectTypeBoolean) { api_set_error(error, kErrorTypeValidation, "rgb must be a Boolean"); @@ -179,19 +180,42 @@ static void ui_set_option(UI *ui, String name, Object value, Error *error) { } ui->rgb = value.data.boolean; } else if (strequal(name.data, "popupmenu_external")) { + // LEGACY: Deprecated option, use `ui_ext` instead. if (value.type != kObjectTypeBoolean) { api_set_error(error, kErrorTypeValidation, "popupmenu_external must be a Boolean"); return; } - ui->pum_external = value.data.boolean; - } else if (strequal(name.data, "tabline_external")) { - if (value.type != kObjectTypeBoolean) { + ui->ui_ext[kUIPopupmenu] = value.data.boolean; + } else if (strequal(name.data, "ui_ext")) { + if (value.type != kObjectTypeArray) { api_set_error(error, kErrorTypeValidation, - "tabline_external must be a Boolean"); + "ui_ext must be an Array"); return; } - ui->tabline_external = value.data.boolean; + + for (size_t i = 0; i < value.data.array.size; i++) { + Object item = value.data.array.items[i]; + if (item.type != kObjectTypeString) { + api_set_error(error, kErrorTypeValidation, + "ui_ext: item must be a String"); + return; + } + char *name = item.data.string.data; + if (strequal(name, "cmdline")) { + ui->ui_ext[kUICmdline] = true; + } else if (strequal(name, "popupmenu")) { + ui->ui_ext[kUIPopupmenu] = true; + } else if (strequal(name, "tabline")) { + ui->ui_ext[kUITabline] = true; + } else if (strequal(name, "wildmenu")) { + ui->ui_ext[kUIWildmenu] = true; + } else { + api_set_error(error, kErrorTypeValidation, + "ui_ext: unknown widget: %s", name); + return; + } + } } else { api_set_error(error, kErrorTypeValidation, "No such ui option"); } diff --git a/src/nvim/popupmnu.c b/src/nvim/popupmnu.c index 6e81c5a171..b8650d8c62 100644 --- a/src/nvim/popupmnu.c +++ b/src/nvim/popupmnu.c @@ -41,9 +41,7 @@ static int pum_row; // top row of pum static int pum_col; // left column of pum static bool pum_is_visible = false; - static bool pum_external = false; -static bool pum_wants_external = false; #ifdef INCLUDE_GENERATED_DECLARATIONS # include "popupmnu.c.generated.h" @@ -80,7 +78,7 @@ void pum_display(pumitem_T *array, int size, int selected, bool array_changed) if (!pum_is_visible) { // To keep the code simple, we only allow changing the // draw mode when the popup menu is not being displayed - pum_external = pum_wants_external; + pum_external = ui_is_external(kUIPopupmenu); } redo: @@ -751,8 +749,3 @@ int pum_get_height(void) { return pum_height; } - -void pum_set_external(bool external) -{ - pum_wants_external = external; -} diff --git a/src/nvim/screen.c b/src/nvim/screen.c index ed85b6e8b8..a6563534aa 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -6886,14 +6886,13 @@ static void draw_tabline(void) if (ScreenLines == NULL) { return; } + redraw_tabline = false; - if (ui_is_widget_external(kUITabline)) { - draw_tabline_ext(); + if (ui_is_external(kUITabline)) { + ui_ext_tabline_update(); return; } - redraw_tabline = false; - if (tabline_height() < 1) return; @@ -7033,20 +7032,13 @@ static void draw_tabline(void) redraw_tabline = FALSE; } -// send tabline update to external ui -void draw_tabline_ext(void) +void ui_ext_tabline_update(void) { - win_T *cwp; - Array args = ARRAY_DICT_INIT; ADD(args, INTEGER_OBJ(curtab->handle)); Array tabs = ARRAY_DICT_INIT; FOR_ALL_TABS(tp) { - if (tp == curtab) { - cwp = curwin; - } else { - cwp = tp->tp_curwin; - } + win_T *cwp = (tp == curtab) ? curwin : tp->tp_curwin; get_trans_bufname(cwp->w_buffer); Array tab = ARRAY_DICT_INIT; ADD(tab, INTEGER_OBJ(tp->handle)); diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c index cd94fe9d49..21abc19c47 100644 --- a/src/nvim/tui/tui.c +++ b/src/nvim/tui/tui.c @@ -109,8 +109,6 @@ UI *tui_start(void) UI *ui = xcalloc(1, sizeof(UI)); ui->stop = tui_stop; ui->rgb = p_tgc; - ui->pum_external = false; - ui->tabline_external = false; ui->resize = tui_resize; ui->clear = tui_clear; ui->eol_clear = tui_eol_clear; @@ -136,6 +134,9 @@ UI *tui_start(void) ui->set_title = tui_set_title; ui->set_icon = tui_set_icon; ui->event = tui_event; + + memset(ui->ui_ext, 0, sizeof(ui->ui_ext)); + return ui_bridge_attach(ui, tui_main, tui_scheduler); } diff --git a/src/nvim/ui.c b/src/nvim/ui.c index 6dcc3de1b0..713dffb46c 100644 --- a/src/nvim/ui.c +++ b/src/nvim/ui.c @@ -47,6 +47,7 @@ #define MAX_UI_COUNT 16 static UI *uis[MAX_UI_COUNT]; +static bool ui_ext[UI_WIDGETS] = { 0 }; static size_t ui_count = 0; static int row = 0, col = 0; static struct { @@ -58,10 +59,6 @@ static int busy = 0; static int height, width; static int old_mode_idx = -1; -static bool tabline_external = false; -static bool cmdline_external = false; -static bool wildmenu_external = false; - // UI_CALL invokes a function on all registered UI instances. The functions can // have 0-5 arguments (configurable by SELECT_NTH). // @@ -170,21 +167,25 @@ void ui_refresh(void) } int width = INT_MAX, height = INT_MAX; - bool pum_external = true; - bool tabline_external = true; + bool ext_widgets[UI_WIDGETS]; + for (UIWidget i = 0; (int)i < UI_WIDGETS; i++) { + ext_widgets[i] = true; + } for (size_t i = 0; i < ui_count; i++) { UI *ui = uis[i]; width = MIN(ui->width, width); height = MIN(ui->height, height); - pum_external &= ui->pum_external; - tabline_external &= ui->tabline_external; + for (UIWidget i = 0; (int)i < UI_WIDGETS; i++) { + ext_widgets[i] &= ui->ui_ext[i]; + } } row = col = 0; screen_resize(width, height); - pum_set_external(pum_external); - ui_set_widget_external(kUITabline, tabline_external); + for (UIWidget i = 0; (int)i < UI_WIDGETS; i++) { + ui_set_external(i, ext_widgets[i]); + } ui_mode_info_set(); old_mode_idx = -1; ui_cursor_shape(); @@ -564,30 +565,16 @@ void ui_cursor_shape(void) conceal_check_cursur_line(); } -bool ui_is_widget_external(UIWidget widget) +/// Returns true if `widget` is externalized. +bool ui_is_external(UIWidget widget) { - switch (widget) { - case kUITabline: - return tabline_external; - case kUICmdline: - return cmdline_external; - case kUIWildmenu: - return wildmenu_external; - } - return false; + return ui_ext[widget]; } -void ui_set_widget_external(UIWidget widget, bool external) +/// Sets `widget` as "external". +/// Such widgets are not drawn by Nvim; external UIs are expected to handle +/// higher-level UI events and present the data. +void ui_set_external(UIWidget widget, bool external) { - switch (widget) { - case kUITabline: - tabline_external = external; - break; - case kUICmdline: - cmdline_external = external; - break; - case kUIWildmenu: - wildmenu_external = external; - break; - } + ui_ext[widget] = external; } diff --git a/src/nvim/ui.h b/src/nvim/ui.h index a1ff449eaf..9338ab3ea3 100644 --- a/src/nvim/ui.h +++ b/src/nvim/ui.h @@ -8,12 +8,13 @@ #include "api/private/defs.h" #include "nvim/buffer_defs.h" -// values for externalized widgets typedef enum { + kUICmdline = 0, + kUIPopupmenu, kUITabline, - kUICmdline, - kUIWildmenu + kUIWildmenu, } UIWidget; +#define UI_WIDGETS (kUIWildmenu + 1) typedef struct { bool bold, underline, undercurl, italic, reverse; @@ -23,7 +24,8 @@ typedef struct { typedef struct ui_t UI; struct ui_t { - bool rgb, pum_external, tabline_external; + bool rgb; + bool ui_ext[UI_WIDGETS]; ///< Externalized widgets int width, height; void *data; void (*resize)(UI *ui, int rows, int columns); diff --git a/src/nvim/ui_bridge.c b/src/nvim/ui_bridge.c index 9a3fcab13c..b7b12ae39e 100644 --- a/src/nvim/ui_bridge.c +++ b/src/nvim/ui_bridge.c @@ -57,8 +57,6 @@ UI *ui_bridge_attach(UI *ui, ui_main_fn ui_main, event_scheduler scheduler) UIBridgeData *rv = xcalloc(1, sizeof(UIBridgeData)); rv->ui = ui; rv->bridge.rgb = ui->rgb; - rv->bridge.pum_external = ui->pum_external; - rv->bridge.tabline_external = ui->tabline_external; rv->bridge.stop = ui_bridge_stop; rv->bridge.resize = ui_bridge_resize; rv->bridge.clear = ui_bridge_clear; @@ -86,6 +84,10 @@ UI *ui_bridge_attach(UI *ui, ui_main_fn ui_main, event_scheduler scheduler) rv->bridge.set_icon = ui_bridge_set_icon; rv->scheduler = scheduler; + for (UIWidget i = 0; (int)i < UI_WIDGETS; i++) { + rv->bridge.ui_ext[i] = ui->ui_ext[i]; + } + rv->ui_main = ui_main; uv_mutex_init(&rv->mutex); uv_cond_init(&rv->cond); diff --git a/src/nvim/window.c b/src/nvim/window.c index effce8b413..69c0a838ea 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -5224,8 +5224,8 @@ static void last_status_rec(frame_T *fr, int statusline) */ int tabline_height(void) { - if (ui_is_widget_external(kUITabline)) { - return 0; + if (ui_is_external(kUITabline)) { + return 0; } assert(first_tabpage); switch (p_stal) { -- cgit From c8e1af93de90b2e23579f726fd4aa6a65f9387b6 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Tue, 25 Apr 2017 10:14:29 +0200 Subject: api: nvim_ui_attach(): Flatten ext_* options. --- src/nvim/api/ui.c | 57 ++++++++++++++++++++++++------------------------------- 1 file changed, 25 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/nvim/api/ui.c b/src/nvim/api/ui.c index 08d285eedc..3c0e8bc049 100644 --- a/src/nvim/api/ui.c +++ b/src/nvim/api/ui.c @@ -173,13 +173,33 @@ void nvim_ui_set_option(uint64_t channel_id, String name, static void ui_set_option(UI *ui, String name, Object value, Error *error) { +#define UI_EXT_OPTION(o, e) \ + do { \ + if (strequal(name.data, #o)) { \ + if (value.type != kObjectTypeBoolean) { \ + api_set_error(error, kErrorTypeValidation, #o " must be a Boolean"); \ + return; \ + } \ + ui->ui_ext[(e)] = value.data.boolean; \ + return; \ + } \ + } while (0) + if (strequal(name.data, "rgb")) { if (value.type != kObjectTypeBoolean) { api_set_error(error, kErrorTypeValidation, "rgb must be a Boolean"); return; } ui->rgb = value.data.boolean; - } else if (strequal(name.data, "popupmenu_external")) { + return; + } + + UI_EXT_OPTION(ext_cmdline, kUICmdline); + UI_EXT_OPTION(ext_popupmenu, kUIPopupmenu); + UI_EXT_OPTION(ext_tabline, kUITabline); + UI_EXT_OPTION(ext_wildmenu, kUIWildmenu); + + if (strequal(name.data, "popupmenu_external")) { // LEGACY: Deprecated option, use `ui_ext` instead. if (value.type != kObjectTypeBoolean) { api_set_error(error, kErrorTypeValidation, @@ -187,38 +207,11 @@ static void ui_set_option(UI *ui, String name, Object value, Error *error) return; } ui->ui_ext[kUIPopupmenu] = value.data.boolean; - } else if (strequal(name.data, "ui_ext")) { - if (value.type != kObjectTypeArray) { - api_set_error(error, kErrorTypeValidation, - "ui_ext must be an Array"); - return; - } - - for (size_t i = 0; i < value.data.array.size; i++) { - Object item = value.data.array.items[i]; - if (item.type != kObjectTypeString) { - api_set_error(error, kErrorTypeValidation, - "ui_ext: item must be a String"); - return; - } - char *name = item.data.string.data; - if (strequal(name, "cmdline")) { - ui->ui_ext[kUICmdline] = true; - } else if (strequal(name, "popupmenu")) { - ui->ui_ext[kUIPopupmenu] = true; - } else if (strequal(name, "tabline")) { - ui->ui_ext[kUITabline] = true; - } else if (strequal(name, "wildmenu")) { - ui->ui_ext[kUIWildmenu] = true; - } else { - api_set_error(error, kErrorTypeValidation, - "ui_ext: unknown widget: %s", name); - return; - } - } - } else { - api_set_error(error, kErrorTypeValidation, "No such ui option"); + return; } + + api_set_error(error, kErrorTypeValidation, "No such ui option"); +#undef UI_EXT_OPTION } static void push_call(UI *ui, char *name, Array args) -- cgit From 6944abad2f3f443027af1966a2a310034d2179b2 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Tue, 25 Apr 2017 11:13:29 +0200 Subject: api/ext_tabline: List of Dicts. --- src/nvim/screen.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/nvim/screen.c b/src/nvim/screen.c index a6563534aa..de24156579 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -7038,15 +7038,14 @@ void ui_ext_tabline_update(void) ADD(args, INTEGER_OBJ(curtab->handle)); Array tabs = ARRAY_DICT_INIT; FOR_ALL_TABS(tp) { + Dictionary tab_info = ARRAY_DICT_INIT; + PUT(tab_info, "tab", TABPAGE_OBJ(tp->handle)); + win_T *cwp = (tp == curtab) ? curwin : tp->tp_curwin; get_trans_bufname(cwp->w_buffer); - Array tab = ARRAY_DICT_INIT; - ADD(tab, INTEGER_OBJ(tp->handle)); - - Dictionary tab_info = ARRAY_DICT_INIT; PUT(tab_info, "name", STRING_OBJ(cstr_to_string((char *)NameBuff))); - ADD(tab, DICTIONARY_OBJ(tab_info)); - ADD(tabs, ARRAY_OBJ(tab)); + + ADD(tabs, DICTIONARY_OBJ(tab_info)); } ADD(args, ARRAY_OBJ(tabs)); -- cgit From 56911050e0e8b1917ef6d750cf8dac6fdcb9ef06 Mon Sep 17 00:00:00 2001 From: relnod Date: Thu, 27 Apr 2017 21:43:27 +0200 Subject: refactor/single-include (#6604) --- src/nvim/CMakeLists.txt | 5 ----- src/nvim/sha256.h | 1 + src/nvim/sign_defs.h | 2 ++ src/nvim/spell.h | 2 ++ src/nvim/spellfile.h | 1 + src/nvim/tag.h | 3 +++ 6 files changed, 9 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 9e9e9b6026..691f230b6e 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -436,12 +436,7 @@ set(NO_SINGLE_CHECK_HEADERS os_unix.h os/win_defs.h regexp_defs.h - sha256.h - sign_defs.h - spell.h - spellfile.h syntax_defs.h - tag.h terminal.h tui/tui.h undo.h diff --git a/src/nvim/sha256.h b/src/nvim/sha256.h index a118826542..deb881a288 100644 --- a/src/nvim/sha256.h +++ b/src/nvim/sha256.h @@ -2,6 +2,7 @@ #define NVIM_SHA256_H #include // for uint32_t +#include #include "nvim/types.h" // for char_u diff --git a/src/nvim/sign_defs.h b/src/nvim/sign_defs.h index 7288a48e21..3778f4287e 100644 --- a/src/nvim/sign_defs.h +++ b/src/nvim/sign_defs.h @@ -1,6 +1,8 @@ #ifndef NVIM_SIGN_DEFS_H #define NVIM_SIGN_DEFS_H +#include "nvim/pos.h" + // signs: line annotations typedef struct signlist signlist_T; diff --git a/src/nvim/spell.h b/src/nvim/spell.h index e950644a6d..ad66df4c5d 100644 --- a/src/nvim/spell.h +++ b/src/nvim/spell.h @@ -4,6 +4,8 @@ #include #include "nvim/spell_defs.h" +#include "nvim/ex_cmds_defs.h" +#include "nvim/globals.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "spell.h.generated.h" diff --git a/src/nvim/spellfile.h b/src/nvim/spellfile.h index 89acddda0d..633ee014a7 100644 --- a/src/nvim/spellfile.h +++ b/src/nvim/spellfile.h @@ -5,6 +5,7 @@ #include "nvim/spell_defs.h" #include "nvim/types.h" +#include "nvim/ex_cmds_defs.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "spellfile.h.generated.h" diff --git a/src/nvim/tag.h b/src/nvim/tag.h index 5d4bcddf94..a8fddd05da 100644 --- a/src/nvim/tag.h +++ b/src/nvim/tag.h @@ -1,6 +1,9 @@ #ifndef NVIM_TAG_H #define NVIM_TAG_H +#include "nvim/types.h" +#include "nvim/ex_cmds_defs.h" + /* * Values for do_tag(). */ -- cgit From 2b6a3819e5d0135102e0a771be9272e73ea88389 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 28 Apr 2017 02:20:40 +0200 Subject: build_stl_str_hl: Array name should be plural. --- src/nvim/buffer.c | 149 +++++++++++++++++++++++++++--------------------------- 1 file changed, 74 insertions(+), 75 deletions(-) (limited to 'src') diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 46f2cdac79..e0812b4aed 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -3060,7 +3060,7 @@ int build_stl_str_hl( StlClickRecord *tabtab ) { - int groupitem[STL_MAX_ITEM]; + int groupitems[STL_MAX_ITEM]; struct stl_item { // Where the item starts in the status line output buffer char_u *start; @@ -3080,7 +3080,7 @@ int build_stl_str_hl( ClickFunc, Trunc } type; - } item[STL_MAX_ITEM]; + } items[STL_MAX_ITEM]; #define TMPLEN 70 char_u tmp[TMPLEN]; char_u *usefmt = fmt; @@ -3182,16 +3182,16 @@ int build_stl_str_hl( if (groupdepth > 0) { continue; } - item[curitem].type = Separate; - item[curitem++].start = out_p; + items[curitem].type = Separate; + items[curitem++].start = out_p; continue; } // STL_TRUNCMARK: Where to begin truncating if the statusline is too long. if (*fmt_p == STL_TRUNCMARK) { fmt_p++; - item[curitem].type = Trunc; - item[curitem++].start = out_p; + items[curitem].type = Trunc; + items[curitem++].start = out_p; continue; } @@ -3207,7 +3207,7 @@ int build_stl_str_hl( // Determine how long the group is. // Note: We set the current output position to null // so `vim_strsize` will work. - char_u *t = item[groupitem[groupdepth]].start; + char_u *t = items[groupitems[groupdepth]].start; *out_p = NUL; long group_len = vim_strsize(t); @@ -3217,11 +3217,11 @@ int build_stl_str_hl( // move the output pointer back to where the group started. // Note: This erases any non-item characters that were in the group. // Otherwise there would be no reason to do this step. - if (curitem > groupitem[groupdepth] + 1 - && item[groupitem[groupdepth]].minwid == 0) { + if (curitem > groupitems[groupdepth] + 1 + && items[groupitems[groupdepth]].minwid == 0) { bool has_normal_items = false; - for (long n = groupitem[groupdepth] + 1; n < curitem; n++) { - if (item[n].type == Normal || item[n].type == Highlight) { + for (long n = groupitems[groupdepth] + 1; n < curitem; n++) { + if (items[n].type == Normal || items[n].type == Highlight) { has_normal_items = true; break; } @@ -3235,18 +3235,18 @@ int build_stl_str_hl( // If the group is longer than it is allowed to be // truncate by removing bytes from the start of the group text. - if (group_len > item[groupitem[groupdepth]].maxwid) { + if (group_len > items[groupitems[groupdepth]].maxwid) { // { Determine the number of bytes to remove long n; if (has_mbyte) { /* Find the first character that should be included. */ n = 0; - while (group_len >= item[groupitem[groupdepth]].maxwid) { + while (group_len >= items[groupitems[groupdepth]].maxwid) { group_len -= ptr2cells(t + n); n += (*mb_ptr2len)(t + n); } } else { - n = (long)(out_p - t) - item[groupitem[groupdepth]].maxwid + 1; + n = (long)(out_p - t) - items[groupitems[groupdepth]].maxwid + 1; } // } @@ -3257,24 +3257,24 @@ int build_stl_str_hl( memmove(t + 1, t + n, (size_t)(out_p - (t + n))); out_p = out_p - n + 1; /* Fill up space left over by half a double-wide char. */ - while (++group_len < item[groupitem[groupdepth]].minwid) + while (++group_len < items[groupitems[groupdepth]].minwid) *out_p++ = fillchar; // } /* correct the start of the items for the truncation */ - for (int idx = groupitem[groupdepth] + 1; idx < curitem; idx++) { + for (int idx = groupitems[groupdepth] + 1; idx < curitem; idx++) { // Shift everything back by the number of removed bytes - item[idx].start -= n; + items[idx].start -= n; // If the item was partially or completely truncated, set its // start to the start of the group - if (item[idx].start < t) { - item[idx].start = t; + if (items[idx].start < t) { + items[idx].start = t; } } // If the group is shorter than the minimum width, add padding characters. - } else if (abs(item[groupitem[groupdepth]].minwid) > group_len) { - long min_group_width = item[groupitem[groupdepth]].minwid; + } else if (abs(items[groupitems[groupdepth]].minwid) > group_len) { + long min_group_width = items[groupitems[groupdepth]].minwid; // If the group is left-aligned, add characters to the right. if (min_group_width < 0) { min_group_width = 0 - min_group_width; @@ -3293,8 +3293,8 @@ int build_stl_str_hl( // } // Adjust item start positions - for (int n = groupitem[groupdepth] + 1; n < curitem; n++) { - item[n].start += group_len; + for (int n = groupitems[groupdepth] + 1; n < curitem; n++) { + items[n].start += group_len; } // Prepend the fill characters @@ -3332,9 +3332,9 @@ int build_stl_str_hl( // User highlight groups override the min width field // to denote the styling to use. if (*fmt_p == STL_USER_HL) { - item[curitem].type = Highlight; - item[curitem].start = out_p; - item[curitem].minwid = minwid > 9 ? 1 : minwid; + items[curitem].type = Highlight; + items[curitem].start = out_p; + items[curitem].minwid = minwid > 9 ? 1 : minwid; fmt_p++; curitem++; continue; @@ -3369,17 +3369,17 @@ int build_stl_str_hl( /* %X ends the close label, go back to the previously * define tab label nr. */ for (long n = curitem - 1; n >= 0; --n) - if (item[n].type == TabPage && item[n].minwid >= 0) { - minwid = item[n].minwid; + if (items[n].type == TabPage && items[n].minwid >= 0) { + minwid = items[n].minwid; break; } } else /* close nrs are stored as negative values */ minwid = -minwid; } - item[curitem].type = TabPage; - item[curitem].start = out_p; - item[curitem].minwid = minwid; + items[curitem].type = TabPage; + items[curitem].start = out_p; + items[curitem].minwid = minwid; fmt_p++; curitem++; continue; @@ -3394,10 +3394,10 @@ int build_stl_str_hl( if (*fmt_p != STL_CLICK_FUNC) { break; } - item[curitem].type = ClickFunc; - item[curitem].start = out_p; - item[curitem].cmd = xmemdupz(t, (size_t) (((char *) fmt_p - t))); - item[curitem].minwid = minwid; + items[curitem].type = ClickFunc; + items[curitem].start = out_p; + items[curitem].cmd = xmemdupz(t, (size_t) (((char *) fmt_p - t))); + items[curitem].minwid = minwid; fmt_p++; curitem++; continue; @@ -3420,11 +3420,11 @@ int build_stl_str_hl( // Denotes the start of a new group if (*fmt_p == '(') { - groupitem[groupdepth++] = curitem; - item[curitem].type = Group; - item[curitem].start = out_p; - item[curitem].minwid = minwid; - item[curitem].maxwid = maxwid; + groupitems[groupdepth++] = curitem; + items[curitem].type = Group; + items[curitem].start = out_p; + items[curitem].minwid = minwid; + items[curitem].maxwid = maxwid; fmt_p++; curitem++; continue; @@ -3451,7 +3451,7 @@ int build_stl_str_hl( case STL_FULLPATH: case STL_FILENAME: { - // Set fillable to false to that ' ' in the filename will not + // Set fillable to false so that ' ' in the filename will not // get replaced with the fillchar fillable = false; if (buf_spname(wp->w_buffer) != NULL) { @@ -3703,9 +3703,9 @@ int build_stl_str_hl( // Create a highlight item based on the name if (*fmt_p == '#') { - item[curitem].type = Highlight; - item[curitem].start = out_p; - item[curitem].minwid = -syn_namen2id(t, (int)(fmt_p - t)); + items[curitem].type = Highlight; + items[curitem].start = out_p; + items[curitem].minwid = -syn_namen2id(t, (int)(fmt_p - t)); curitem++; fmt_p++; } @@ -3716,8 +3716,8 @@ int build_stl_str_hl( // If we made it this far, the item is normal and starts at // our current position in the output buffer. // Non-normal items would have `continued`. - item[curitem].start = out_p; - item[curitem].type = Normal; + items[curitem].start = out_p; + items[curitem].type = Normal; // Copy the item string into the output buffer if (str != NULL && *str) { @@ -3874,7 +3874,7 @@ int build_stl_str_hl( // Otherwise, there was nothing to print so mark the item as empty } else { - item[curitem].type = Empty; + items[curitem].type = Empty; } // Only free the string buffer if we allocated it. @@ -3899,8 +3899,7 @@ int build_stl_str_hl( } // We have now processed the entire statusline format string. - // What follows is post-processing to handle alignment and - // highlighting factors. + // What follows is post-processing to handle alignment and highlighting. int width = vim_strsize(out); if (maxwidth > 0 && width > maxwidth) { @@ -3915,13 +3914,13 @@ int build_stl_str_hl( // Otherwise, look for the truncation item } else { // Default to truncating at the first item - trunc_p = item[0].start; + trunc_p = items[0].start; item_idx = 0; for (int i = 0; i < itemcnt; i++) - if (item[i].type == Trunc) { - // Truncate at %< item. - trunc_p = item[i].start; + if (items[i].type == Trunc) { + // Truncate at %< items. + trunc_p = items[i].start; item_idx = i; break; } @@ -3954,7 +3953,7 @@ int build_stl_str_hl( // Ignore any items in the statusline that occur after // the truncation point for (int i = 0; i < itemcnt; i++) { - if (item[i].start > trunc_p) { + if (items[i].start > trunc_p) { itemcnt = i; break; } @@ -4009,12 +4008,12 @@ int build_stl_str_hl( for (int i = item_idx; i < itemcnt; i++) { // Items starting at or after the end of the truncated section need // to be moved backwards. - if (item[i].start >= trunc_end_p) { - item[i].start -= item_offset; + if (items[i].start >= trunc_end_p) { + items[i].start -= item_offset; // Anything inside the truncated area is set to start // at the `<` truncation character. } else { - item[i].start = trunc_p; + items[i].start = trunc_p; } } // } @@ -4030,7 +4029,7 @@ int build_stl_str_hl( // figuring out how many groups there are. int num_separators = 0; for (int i = 0; i < itemcnt; i++) { - if (item[i].type == Separate) { + if (items[i].type == Separate) { num_separators++; } } @@ -4042,7 +4041,7 @@ int build_stl_str_hl( int separator_locations[STL_MAX_ITEM]; int index = 0; for (int i = 0; i < itemcnt; i++) { - if (item[i].type == Separate) { + if (items[i].type == Separate) { separator_locations[index] = i; index++; } @@ -4055,16 +4054,16 @@ int build_stl_str_hl( for (int i = 0; i < num_separators; i++) { int dislocation = (i == (num_separators - 1)) ? final_spaces : standard_spaces; - char_u *sep_loc = item[separator_locations[i]].start + dislocation; - STRMOVE(sep_loc, item[separator_locations[i]].start); - for (char_u *s = item[separator_locations[i]].start; s < sep_loc; s++) { + char_u *sep_loc = items[separator_locations[i]].start + dislocation; + STRMOVE(sep_loc, items[separator_locations[i]].start); + for (char_u *s = items[separator_locations[i]].start; s < sep_loc; s++) { *s = fillchar; } for (int item_idx = separator_locations[i] + 1; item_idx < itemcnt; item_idx++) { - item[item_idx].start += dislocation; + items[item_idx].start += dislocation; } } @@ -4076,9 +4075,9 @@ int build_stl_str_hl( if (hltab != NULL) { struct stl_hlrec *sp = hltab; for (long l = 0; l < itemcnt; l++) { - if (item[l].type == Highlight) { - sp->start = item[l].start; - sp->userhl = item[l].minwid; + if (items[l].type == Highlight) { + sp->start = items[l].start; + sp->userhl = items[l].minwid; sp++; } } @@ -4090,14 +4089,14 @@ int build_stl_str_hl( if (tabtab != NULL) { StlClickRecord *cur_tab_rec = tabtab; for (long l = 0; l < itemcnt; l++) { - if (item[l].type == TabPage) { - cur_tab_rec->start = (char *) item[l].start; - if (item[l].minwid == 0) { + if (items[l].type == TabPage) { + cur_tab_rec->start = (char *) items[l].start; + if (items[l].minwid == 0) { cur_tab_rec->def.type = kStlClickDisabled; cur_tab_rec->def.tabnr = 0; } else { - int tabnr = item[l].minwid; - if (item[l].minwid > 0) { + int tabnr = items[l].minwid; + if (items[l].minwid > 0) { cur_tab_rec->def.type = kStlClickTabSwitch; } else { cur_tab_rec->def.type = kStlClickTabClose; @@ -4107,11 +4106,11 @@ int build_stl_str_hl( } cur_tab_rec->def.func = NULL; cur_tab_rec++; - } else if (item[l].type == ClickFunc) { - cur_tab_rec->start = (char *) item[l].start; + } else if (items[l].type == ClickFunc) { + cur_tab_rec->start = (char *) items[l].start; cur_tab_rec->def.type = kStlClickFuncRun; - cur_tab_rec->def.tabnr = item[l].minwid; - cur_tab_rec->def.func = item[l].cmd; + cur_tab_rec->def.tabnr = items[l].minwid; + cur_tab_rec->def.func = items[l].cmd; cur_tab_rec++; } } -- cgit From 0ddebbc354273ada61734e5d35517ac49362c2d9 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 28 Apr 2017 05:27:47 +0200 Subject: lint --- src/nvim/buffer.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index e0812b4aed..7477118d6f 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -3256,12 +3256,13 @@ int build_stl_str_hl( // { Move the truncated output memmove(t + 1, t + n, (size_t)(out_p - (t + n))); out_p = out_p - n + 1; - /* Fill up space left over by half a double-wide char. */ - while (++group_len < items[groupitems[groupdepth]].minwid) + // Fill up space left over by half a double-wide char. + while (++group_len < items[groupitems[groupdepth]].minwid) { *out_p++ = fillchar; + } // } - /* correct the start of the items for the truncation */ + // correct the start of the items for the truncation for (int idx = groupitems[groupdepth] + 1; idx < curitem; idx++) { // Shift everything back by the number of removed bytes items[idx].start -= n; @@ -3366,16 +3367,17 @@ int build_stl_str_hl( if (*fmt_p == STL_TABPAGENR || *fmt_p == STL_TABCLOSENR) { if (*fmt_p == STL_TABCLOSENR) { if (minwid == 0) { - /* %X ends the close label, go back to the previously - * define tab label nr. */ - for (long n = curitem - 1; n >= 0; --n) + // %X ends the close label, go back to the previous tab label nr. + for (long n = curitem - 1; n >= 0; n--) { if (items[n].type == TabPage && items[n].minwid >= 0) { minwid = items[n].minwid; break; } - } else - /* close nrs are stored as negative values */ + } + } else { + // close nrs are stored as negative values minwid = -minwid; + } } items[curitem].type = TabPage; items[curitem].start = out_p; @@ -3396,7 +3398,7 @@ int build_stl_str_hl( } items[curitem].type = ClickFunc; items[curitem].start = out_p; - items[curitem].cmd = xmemdupz(t, (size_t) (((char *) fmt_p - t))); + items[curitem].cmd = xmemdupz(t, (size_t)(((char *)fmt_p - t))); items[curitem].minwid = minwid; fmt_p++; curitem++; @@ -3917,13 +3919,14 @@ int build_stl_str_hl( trunc_p = items[0].start; item_idx = 0; - for (int i = 0; i < itemcnt; i++) + for (int i = 0; i < itemcnt; i++) { if (items[i].type == Trunc) { // Truncate at %< items. trunc_p = items[i].start; item_idx = i; break; } + } } // If the truncation point we found is beyond the maximum @@ -4052,11 +4055,11 @@ int build_stl_str_hl( standard_spaces * (num_separators - 1); for (int i = 0; i < num_separators; i++) { - int dislocation = (i == (num_separators - 1)) ? - final_spaces : standard_spaces; - char_u *sep_loc = items[separator_locations[i]].start + dislocation; - STRMOVE(sep_loc, items[separator_locations[i]].start); - for (char_u *s = items[separator_locations[i]].start; s < sep_loc; s++) { + int dislocation = (i == (num_separators - 1)) + ? final_spaces : standard_spaces; + char_u *seploc = items[separator_locations[i]].start + dislocation; + STRMOVE(seploc, items[separator_locations[i]].start); + for (char_u *s = items[separator_locations[i]].start; s < seploc; s++) { *s = fillchar; } @@ -4090,7 +4093,7 @@ int build_stl_str_hl( StlClickRecord *cur_tab_rec = tabtab; for (long l = 0; l < itemcnt; l++) { if (items[l].type == TabPage) { - cur_tab_rec->start = (char *) items[l].start; + cur_tab_rec->start = (char *)items[l].start; if (items[l].minwid == 0) { cur_tab_rec->def.type = kStlClickDisabled; cur_tab_rec->def.tabnr = 0; @@ -4107,7 +4110,7 @@ int build_stl_str_hl( cur_tab_rec->def.func = NULL; cur_tab_rec++; } else if (items[l].type == ClickFunc) { - cur_tab_rec->start = (char *) items[l].start; + cur_tab_rec->start = (char *)items[l].start; cur_tab_rec->def.type = kStlClickFuncRun; cur_tab_rec->def.tabnr = items[l].minwid; cur_tab_rec->def.func = items[l].cmd; -- cgit From 7044aa6e8256844bc1bd23eb61d4a41ca6d418d0 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 28 Apr 2017 07:01:46 +0200 Subject: api/ext_tabline: `curtab` should be a Tabpage handle. --- src/nvim/screen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/screen.c b/src/nvim/screen.c index de24156579..f2709c48fd 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -7035,7 +7035,7 @@ static void draw_tabline(void) void ui_ext_tabline_update(void) { Array args = ARRAY_DICT_INIT; - ADD(args, INTEGER_OBJ(curtab->handle)); + ADD(args, TABPAGE_OBJ(curtab->handle)); Array tabs = ARRAY_DICT_INIT; FOR_ALL_TABS(tp) { Dictionary tab_info = ARRAY_DICT_INIT; -- cgit From 3ea10077534cb1dcb1597ffcf85e601fa0c0e27b Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 13 Mar 2017 15:02:37 +0100 Subject: api: nvim_get_mode() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Asynchronous API functions are served immediately, which means pending input could change the state of Nvim shortly after an async API function result is returned. nvim_get_mode() is different: - If RPCs are known to be blocked, it responds immediately (without flushing the input/event queue) - else it is handled just-in-time before waiting for input, after pending input was processed. This makes the result more reliable (but not perfect). Internally this is handled as a special case, but _semantically_ nothing has changed: API users never know when input flushes, so this internal special-case doesn't violate that. As far as API users are concerned, nvim_get_mode() is just another asynchronous API function. In all cases nvim_get_mode() never blocks for more than the time it takes to flush the input/event queue (~µs). Note: This doesn't address #6166; nvim_get_mode() will provoke #6166 if e.g. `d` is operator-pending. Closes #6159 --- src/nvim/api/vim.c | 21 ++++++++++++++++ src/nvim/eval.c | 55 ++++++------------------------------------ src/nvim/event/loop.c | 3 +-- src/nvim/event/multiqueue.c | 35 +++++++++++++++++++++++++++ src/nvim/memory.c | 4 --- src/nvim/msgpack_rpc/channel.c | 10 ++++++++ src/nvim/msgpack_rpc/helpers.c | 2 +- src/nvim/normal.c | 5 ++-- src/nvim/os/input.c | 16 ++++++++++++ src/nvim/state.c | 49 +++++++++++++++++++++++++++++++++++++ src/nvim/tui/tui.c | 3 --- 11 files changed, 143 insertions(+), 60 deletions(-) (limited to 'src') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index da00fbc6e3..7c57a5b456 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -11,6 +11,7 @@ #include "nvim/api/vim.h" #include "nvim/ascii.h" +#include "nvim/log.h" #include "nvim/api/private/helpers.h" #include "nvim/api/private/defs.h" #include "nvim/api/buffer.h" @@ -27,6 +28,7 @@ #include "nvim/eval.h" #include "nvim/eval/typval.h" #include "nvim/option.h" +#include "nvim/state.h" #include "nvim/syntax.h" #include "nvim/getchar.h" #include "nvim/os/input.h" @@ -701,6 +703,25 @@ Dictionary nvim_get_color_map(void) } +/// Gets the current mode. +/// mode: Mode string. |mode()| +/// blocking: true if Nvim is waiting for input. +/// +/// @returns Dictionary { "mode": String, "blocking": Boolean } +Dictionary nvim_get_mode(void) + FUNC_API_SINCE(2) FUNC_API_ASYNC +{ + Dictionary rv = ARRAY_DICT_INIT; + char *modestr = get_mode(); + bool blocked = input_blocking(); + ILOG("blocked=%d", blocked); + + PUT(rv, "mode", STRING_OBJ(cstr_as_string(modestr))); + PUT(rv, "blocking", BOOLEAN_OBJ(blocked)); + + return rv; +} + Array nvim_get_api_info(uint64_t channel_id) FUNC_API_SINCE(1) FUNC_API_ASYNC FUNC_API_NOEVAL { diff --git a/src/nvim/eval.c b/src/nvim/eval.c index c02d172458..b0f47d8e45 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -12575,59 +12575,18 @@ static void f_mkdir(typval_T *argvars, typval_T *rettv, FunPtr fptr) } } -/* - * "mode()" function - */ +/// "mode()" function static void f_mode(typval_T *argvars, typval_T *rettv, FunPtr fptr) { - char_u buf[3]; + char *mode = get_mode(); - buf[1] = NUL; - buf[2] = NUL; - - if (VIsual_active) { - if (VIsual_select) - buf[0] = VIsual_mode + 's' - 'v'; - else - buf[0] = VIsual_mode; - } else if (State == HITRETURN || State == ASKMORE || State == SETWSIZE - || State == CONFIRM) { - buf[0] = 'r'; - if (State == ASKMORE) - buf[1] = 'm'; - else if (State == CONFIRM) - buf[1] = '?'; - } else if (State == EXTERNCMD) - buf[0] = '!'; - else if (State & INSERT) { - if (State & VREPLACE_FLAG) { - buf[0] = 'R'; - buf[1] = 'v'; - } else if (State & REPLACE_FLAG) - buf[0] = 'R'; - else - buf[0] = 'i'; - } else if (State & CMDLINE) { - buf[0] = 'c'; - if (exmode_active) - buf[1] = 'v'; - } else if (exmode_active) { - buf[0] = 'c'; - buf[1] = 'e'; - } else if (State & TERM_FOCUS) { - buf[0] = 't'; - } else { - buf[0] = 'n'; - if (finish_op) - buf[1] = 'o'; + // Clear out the minor mode when the argument is not a non-zero number or + // non-empty string. + if (!non_zero_arg(&argvars[0])) { + mode[1] = NUL; } - /* Clear out the minor mode when the argument is not a non-zero number or - * non-empty string. */ - if (!non_zero_arg(&argvars[0])) - buf[1] = NUL; - - rettv->vval.v_string = vim_strsave(buf); + rettv->vval.v_string = (char_u *)mode; rettv->v_type = VAR_STRING; } diff --git a/src/nvim/event/loop.c b/src/nvim/event/loop.c index 6963978581..c709ce9a1c 100644 --- a/src/nvim/event/loop.c +++ b/src/nvim/event/loop.c @@ -44,8 +44,7 @@ void loop_poll_events(Loop *loop, int ms) // we do not block indefinitely for I/O. uv_timer_start(&loop->poll_timer, timer_cb, (uint64_t)ms, (uint64_t)ms); } else if (ms == 0) { - // For ms == 0, we need to do a non-blocking event poll by - // setting the run mode to UV_RUN_NOWAIT. + // For ms == 0, do a non-blocking event poll. mode = UV_RUN_NOWAIT; } diff --git a/src/nvim/event/multiqueue.c b/src/nvim/event/multiqueue.c index a17bae31e3..b144347fdb 100644 --- a/src/nvim/event/multiqueue.c +++ b/src/nvim/event/multiqueue.c @@ -55,6 +55,7 @@ #include "nvim/event/multiqueue.h" #include "nvim/memory.h" +#include "nvim/log.h" #include "nvim/os/time.h" typedef struct multiqueue_item MultiQueueItem; @@ -151,6 +152,40 @@ void multiqueue_process_events(MultiQueue *this) } } +void multiqueue_process_debug(MultiQueue *this) +{ + assert(this); + QUEUE *start = QUEUE_HEAD(&this->headtail); + QUEUE *cur = start; + // MultiQueue *start = this; + // MultiQueue *cur = start; + do { + MultiQueueItem *item = multiqueue_node_data(cur); + Event ev; + if (item->link) { + assert(!this->parent); + // get the next node in the linked queue + MultiQueue *linked = item->data.queue; + assert(!multiqueue_empty(linked)); + MultiQueueItem *child = + multiqueue_node_data(QUEUE_HEAD(&linked->headtail)); + ev = child->data.item.event; + } else { + ev = item->data.item.event; + } + + // Event event = multiqueue_get(this); + // if (event.handler) { + // event.handler(event.argv); + // } + + ILOG("ev: priority=%d, handler=%p arg1=%s", ev.priority, ev.handler, + ev.argv ? ev.argv[0] : "(null)"); + + cur = cur->next; + } while (cur && cur != start); +} + /// Removes all events without processing them. void multiqueue_purge_events(MultiQueue *this) { diff --git a/src/nvim/memory.c b/src/nvim/memory.c index 0ee4776581..74c58fb203 100644 --- a/src/nvim/memory.c +++ b/src/nvim/memory.c @@ -345,10 +345,6 @@ char *xstpcpy(char *restrict dst, const char *restrict src) /// WARNING: xstpncpy will ALWAYS write maxlen bytes. If src is shorter than /// maxlen, zeroes will be written to the remaining bytes. /// -/// TODO(aktau): I don't see a good reason to have this last behaviour, and -/// it is potentially wasteful. Could we perhaps deviate from the standard -/// and not zero the rest of the buffer? -/// /// @param dst /// @param src /// @param maxlen diff --git a/src/nvim/msgpack_rpc/channel.c b/src/nvim/msgpack_rpc/channel.c index 59594357de..799e6eadef 100644 --- a/src/nvim/msgpack_rpc/channel.c +++ b/src/nvim/msgpack_rpc/channel.c @@ -28,7 +28,9 @@ #include "nvim/map.h" #include "nvim/log.h" #include "nvim/misc1.h" +#include "nvim/state.h" #include "nvim/lib/kvec.h" +#include "nvim/os/input.h" #define CHANNEL_BUFFER_SIZE 0xffff @@ -433,6 +435,14 @@ static void handle_request(Channel *channel, msgpack_object *request) handler.async = true; } + if (handler.async) { + char buf[256] = { 0 }; + memcpy(buf, method->via.bin.ptr, MIN(255, method->via.bin.size)); + if (strcmp("nvim_get_mode", buf) == 0) { + handler.async = input_blocking(); + } + } + RequestEvent *event_data = xmalloc(sizeof(RequestEvent)); event_data->channel = channel; event_data->handler = handler; diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c index 0228582d37..91ef5524ea 100644 --- a/src/nvim/msgpack_rpc/helpers.c +++ b/src/nvim/msgpack_rpc/helpers.c @@ -76,7 +76,7 @@ typedef struct { size_t idx; } MPToAPIObjectStackItem; -/// Convert type used by msgpack parser to Neovim own API type +/// Convert type used by msgpack parser to Nvim API type. /// /// @param[in] obj Msgpack value to convert. /// @param[out] arg Location where result of conversion will be saved. diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 51da9429b6..09ad7beb4b 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -14,6 +14,7 @@ #include #include "nvim/vim.h" +#include "nvim/log.h" #include "nvim/ascii.h" #include "nvim/normal.h" #include "nvim/buffer.h" @@ -541,7 +542,7 @@ static bool normal_handle_special_visual_command(NormalState *s) return false; } -static bool normal_need_aditional_char(NormalState *s) +static bool normal_need_additional_char(NormalState *s) { int flags = nv_cmds[s->idx].cmd_flags; bool pending_op = s->oa.op_type != OP_NOP; @@ -1083,7 +1084,7 @@ static int normal_execute(VimState *state, int key) } // Get an additional character if we need one. - if (normal_need_aditional_char(s)) { + if (normal_need_additional_char(s)) { normal_get_additional_char(s); } diff --git a/src/nvim/os/input.c b/src/nvim/os/input.c index 7b5e14dd19..26f2be6c02 100644 --- a/src/nvim/os/input.c +++ b/src/nvim/os/input.c @@ -23,6 +23,7 @@ #include "nvim/main.h" #include "nvim/misc1.h" #include "nvim/state.h" +#include "nvim/log.h" #define READ_BUFFER_SIZE 0xfff #define INPUT_BUFFER_SIZE (READ_BUFFER_SIZE * 4) @@ -38,6 +39,7 @@ static RBuffer *input_buffer = NULL; static bool input_eof = false; static int global_fd = 0; static int events_enabled = 0; +static bool blocking = false; #ifdef INCLUDE_GENERATED_DECLARATIONS # include "os/input.c.generated.h" @@ -327,13 +329,27 @@ static unsigned int handle_mouse_event(char **ptr, uint8_t *buf, return bufsize; } +/// @return true if the main loop is blocked and waiting for input. +bool input_blocking(void) +{ + return blocking; +} + static bool input_poll(int ms) { if (do_profiling == PROF_YES && ms) { prof_inchar_enter(); } + if ((ms == - 1 || ms > 0) + && !(events_enabled || input_ready() || input_eof) + ) { + blocking = true; + multiqueue_process_debug(main_loop.events); + multiqueue_process_events(main_loop.events); + } LOOP_PROCESS_EVENTS_UNTIL(&main_loop, NULL, ms, input_ready() || input_eof); + blocking = false; if (do_profiling == PROF_YES && ms) { prof_inchar_exit(); diff --git a/src/nvim/state.c b/src/nvim/state.c index 210708c3f4..be6aa21664 100644 --- a/src/nvim/state.c +++ b/src/nvim/state.c @@ -98,3 +98,52 @@ int get_real_state(void) return State; } +/// @returns[allocated] mode string +char *get_mode(void) +{ + char *buf = xcalloc(3, sizeof(char)); + + if (VIsual_active) { + if (VIsual_select) { + buf[0] = (char)(VIsual_mode + 's' - 'v'); + } else { + buf[0] = (char)VIsual_mode; + } + } else if (State == HITRETURN || State == ASKMORE || State == SETWSIZE + || State == CONFIRM) { + buf[0] = 'r'; + if (State == ASKMORE) { + buf[1] = 'm'; + } else if (State == CONFIRM) { + buf[1] = '?'; + } + } else if (State == EXTERNCMD) { + buf[0] = '!'; + } else if (State & INSERT) { + if (State & VREPLACE_FLAG) { + buf[0] = 'R'; + buf[1] = 'v'; + } else if (State & REPLACE_FLAG) { + buf[0] = 'R'; + } else { + buf[0] = 'i'; + } + } else if (State & CMDLINE) { + buf[0] = 'c'; + if (exmode_active) { + buf[1] = 'v'; + } + } else if (exmode_active) { + buf[0] = 'c'; + buf[1] = 'e'; + } else if (State & TERM_FOCUS) { + buf[0] = 't'; + } else { + buf[0] = 'n'; + if (finish_op) { + buf[1] = 'o'; + } + } + + return buf; +} diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c index 21abc19c47..356221f7ce 100644 --- a/src/nvim/tui/tui.c +++ b/src/nvim/tui/tui.c @@ -74,9 +74,6 @@ typedef struct { bool out_isatty; SignalWatcher winch_handle, cont_handle; bool cont_received; - // Event scheduled by the ui bridge. Since the main thread suspends until - // the event is handled, it is fine to use a single field instead of a queue - Event scheduled_event; UGrid grid; kvec_t(Rect) invalid_regions; int out_fd; -- cgit From acfd2a2a29ae852ecc965ca888eb5049400bf39d Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Tue, 14 Mar 2017 00:44:03 +0100 Subject: input.c: Process only safe events before blocking. Introduce multiqueue_process_priority() to process only events at or above a certain priority. --- src/nvim/api/vim.c | 1 - src/nvim/event/defs.h | 5 +++ src/nvim/event/multiqueue.c | 93 +++++++++++++++++++++++------------------- src/nvim/event/multiqueue.h | 2 +- src/nvim/msgpack_rpc/channel.c | 32 ++++++++------- src/nvim/os/input.c | 10 ++--- 6 files changed, 78 insertions(+), 65 deletions(-) (limited to 'src') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 7c57a5b456..a00afc24fa 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -714,7 +714,6 @@ Dictionary nvim_get_mode(void) Dictionary rv = ARRAY_DICT_INIT; char *modestr = get_mode(); bool blocked = input_blocking(); - ILOG("blocked=%d", blocked); PUT(rv, "mode", STRING_OBJ(cstr_as_string(modestr))); PUT(rv, "blocking", BOOLEAN_OBJ(blocked)); diff --git a/src/nvim/event/defs.h b/src/nvim/event/defs.h index e5335d9f25..509a3f8e7f 100644 --- a/src/nvim/event/defs.h +++ b/src/nvim/event/defs.h @@ -6,6 +6,11 @@ #define EVENT_HANDLER_MAX_ARGC 6 +typedef enum { + kEvPriorityNormal = 1, + kEvPriorityAsync = 2, // safe to run in any state +} EventPriority; + typedef void (*argv_callback)(void **argv); typedef struct message { int priority; diff --git a/src/nvim/event/multiqueue.c b/src/nvim/event/multiqueue.c index b144347fdb..a479a032f4 100644 --- a/src/nvim/event/multiqueue.c +++ b/src/nvim/event/multiqueue.c @@ -127,6 +127,7 @@ void multiqueue_free(MultiQueue *this) xfree(this); } +/// Removes the next item and returns its Event. Event multiqueue_get(MultiQueue *this) { return multiqueue_empty(this) ? NILEVENT : multiqueue_remove(this); @@ -145,45 +146,38 @@ void multiqueue_process_events(MultiQueue *this) { assert(this); while (!multiqueue_empty(this)) { - Event event = multiqueue_get(this); + Event event = multiqueue_remove(this); if (event.handler) { event.handler(event.argv); } } } -void multiqueue_process_debug(MultiQueue *this) +void multiqueue_process_priority(MultiQueue *this, int priority) { assert(this); QUEUE *start = QUEUE_HEAD(&this->headtail); - QUEUE *cur = start; - // MultiQueue *start = this; - // MultiQueue *cur = start; - do { + QUEUE *cur = start; + while (!multiqueue_empty(this)) { MultiQueueItem *item = multiqueue_node_data(cur); - Event ev; - if (item->link) { - assert(!this->parent); - // get the next node in the linked queue - MultiQueue *linked = item->data.queue; - assert(!multiqueue_empty(linked)); - MultiQueueItem *child = - multiqueue_node_data(QUEUE_HEAD(&linked->headtail)); - ev = child->data.item.event; + assert(!item->link || !this->parent); // Only a parent queue has link-nodes + Event ev = multiqueueitem_get_event(item, false); + + if (ev.priority >= priority) { + if (ev.handler) { + ev.handler(ev.argv); + } + // Processed. Remove this item and get the new head. + (void)multiqueue_remove(this); + cur = QUEUE_HEAD(&this->headtail); } else { - ev = item->data.item.event; + // Not processed. Skip this item and get the next one. + cur = cur->next->next; + if (!cur || cur == start) { + break; + } } - - // Event event = multiqueue_get(this); - // if (event.handler) { - // event.handler(event.argv); - // } - - ILOG("ev: priority=%d, handler=%p arg1=%s", ev.priority, ev.handler, - ev.argv ? ev.argv[0] : "(null)"); - - cur = cur->next; - } while (cur && cur != start); + } } /// Removes all events without processing them. @@ -213,36 +207,48 @@ size_t multiqueue_size(MultiQueue *this) return this->size; } -static Event multiqueue_remove(MultiQueue *this) +/// Gets an Event from an item. +/// +/// @param remove Remove the node from its queue, and free it. +static Event multiqueueitem_get_event(MultiQueueItem *item, bool remove) { - assert(!multiqueue_empty(this)); - QUEUE *h = QUEUE_HEAD(&this->headtail); - QUEUE_REMOVE(h); - MultiQueueItem *item = multiqueue_node_data(h); - Event rv; - + assert(item != NULL); + Event ev; if (item->link) { - assert(!this->parent); - // remove the next node in the linked queue + // get the next node in the linked queue MultiQueue *linked = item->data.queue; assert(!multiqueue_empty(linked)); MultiQueueItem *child = multiqueue_node_data(QUEUE_HEAD(&linked->headtail)); - QUEUE_REMOVE(&child->node); - rv = child->data.item.event; - xfree(child); + ev = child->data.item.event; + // remove the child node + if (remove) { + QUEUE_REMOVE(&child->node); + xfree(child); + } } else { - if (this->parent) { - // remove the corresponding link node in the parent queue + // remove the corresponding link node in the parent queue + if (remove && item->data.item.parent_item) { QUEUE_REMOVE(&item->data.item.parent_item->node); xfree(item->data.item.parent_item); + item->data.item.parent_item = NULL; } - rv = item->data.item.event; + ev = item->data.item.event; } + return ev; +} +static Event multiqueue_remove(MultiQueue *this) +{ + assert(!multiqueue_empty(this)); + QUEUE *h = QUEUE_HEAD(&this->headtail); + QUEUE_REMOVE(h); + MultiQueueItem *item = multiqueue_node_data(h); + assert(!item->link || !this->parent); // Only a parent queue has link-nodes + Event ev = multiqueueitem_get_event(item, true); this->size--; xfree(item); - return rv; + return ev; } static void multiqueue_push(MultiQueue *this, Event event) @@ -250,6 +256,7 @@ static void multiqueue_push(MultiQueue *this, Event event) MultiQueueItem *item = xmalloc(sizeof(MultiQueueItem)); item->link = false; item->data.item.event = event; + item->data.item.parent_item = NULL; QUEUE_INSERT_TAIL(&this->headtail, &item->node); if (this->parent) { // push link node to the parent queue diff --git a/src/nvim/event/multiqueue.h b/src/nvim/event/multiqueue.h index def6b95a10..72145482aa 100644 --- a/src/nvim/event/multiqueue.h +++ b/src/nvim/event/multiqueue.h @@ -10,7 +10,7 @@ typedef struct multiqueue MultiQueue; typedef void (*put_callback)(MultiQueue *multiq, void *data); #define multiqueue_put(q, h, ...) \ - multiqueue_put_event(q, event_create(1, h, __VA_ARGS__)); + multiqueue_put_event(q, event_create(kEvPriorityNormal, h, __VA_ARGS__)); #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/msgpack_rpc/channel.c b/src/nvim/msgpack_rpc/channel.c index 799e6eadef..9e43924db1 100644 --- a/src/nvim/msgpack_rpc/channel.c +++ b/src/nvim/msgpack_rpc/channel.c @@ -435,24 +435,26 @@ static void handle_request(Channel *channel, msgpack_object *request) handler.async = true; } - if (handler.async) { - char buf[256] = { 0 }; - memcpy(buf, method->via.bin.ptr, MIN(255, method->via.bin.size)); - if (strcmp("nvim_get_mode", buf) == 0) { - handler.async = input_blocking(); - } - } - - RequestEvent *event_data = xmalloc(sizeof(RequestEvent)); - event_data->channel = channel; - event_data->handler = handler; - event_data->args = args; - event_data->request_id = request_id; + RequestEvent *evdata = xmalloc(sizeof(RequestEvent)); + evdata->channel = channel; + evdata->handler = handler; + evdata->args = args; + evdata->request_id = request_id; incref(channel); if (handler.async) { - on_request_event((void **)&event_data); + bool is_get_mode = sizeof("nvim_get_mode") - 1 == method->via.bin.size + && !strncmp("nvim_get_mode", method->via.bin.ptr, method->via.bin.size); + + if (is_get_mode && !input_blocking()) { + // Schedule on the main loop with special priority. #6247 + Event ev = event_create(kEvPriorityAsync, on_request_event, 1, evdata); + multiqueue_put_event(channel->events, ev); + } else { + // Invoke immediately. + on_request_event((void **)&evdata); + } } else { - multiqueue_put(channel->events, on_request_event, 1, event_data); + multiqueue_put(channel->events, on_request_event, 1, evdata); } } diff --git a/src/nvim/os/input.c b/src/nvim/os/input.c index 26f2be6c02..de6d4a9010 100644 --- a/src/nvim/os/input.c +++ b/src/nvim/os/input.c @@ -341,12 +341,12 @@ static bool input_poll(int ms) prof_inchar_enter(); } - if ((ms == - 1 || ms > 0) - && !(events_enabled || input_ready() || input_eof) - ) { + if ((ms == - 1 || ms > 0) && !events_enabled && !input_eof) { + // We have discovered that the pending input will provoke a blocking wait. + // Process any events marked with priority `kEvPriorityAsync`: these events + // must be handled after flushing input. See channel.c:handle_request #6247 blocking = true; - multiqueue_process_debug(main_loop.events); - multiqueue_process_events(main_loop.events); + multiqueue_process_priority(main_loop.events, kEvPriorityAsync); } LOOP_PROCESS_EVENTS_UNTIL(&main_loop, NULL, ms, input_ready() || input_eof); blocking = false; -- cgit From f17a8185191b778960953508a5bf9b5f95b0560c Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Thu, 27 Apr 2017 13:54:54 +0200 Subject: api/nvim_get_mode: Use child-queue instead of "priority". --- src/nvim/api/vim.c | 1 - src/nvim/event/multiqueue.c | 1 - src/nvim/msgpack_rpc/channel.c | 7 +++---- src/nvim/msgpack_rpc/channel.h | 5 +++++ src/nvim/normal.c | 1 - src/nvim/os/input.c | 8 +++----- 6 files changed, 11 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index a00afc24fa..11f15b5ad1 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -11,7 +11,6 @@ #include "nvim/api/vim.h" #include "nvim/ascii.h" -#include "nvim/log.h" #include "nvim/api/private/helpers.h" #include "nvim/api/private/defs.h" #include "nvim/api/buffer.h" diff --git a/src/nvim/event/multiqueue.c b/src/nvim/event/multiqueue.c index a479a032f4..66a261b554 100644 --- a/src/nvim/event/multiqueue.c +++ b/src/nvim/event/multiqueue.c @@ -55,7 +55,6 @@ #include "nvim/event/multiqueue.h" #include "nvim/memory.h" -#include "nvim/log.h" #include "nvim/os/time.h" typedef struct multiqueue_item MultiQueueItem; diff --git a/src/nvim/msgpack_rpc/channel.c b/src/nvim/msgpack_rpc/channel.c index 9e43924db1..911f2a6fa4 100644 --- a/src/nvim/msgpack_rpc/channel.c +++ b/src/nvim/msgpack_rpc/channel.c @@ -28,7 +28,6 @@ #include "nvim/map.h" #include "nvim/log.h" #include "nvim/misc1.h" -#include "nvim/state.h" #include "nvim/lib/kvec.h" #include "nvim/os/input.h" @@ -91,6 +90,7 @@ static msgpack_sbuffer out_buffer; /// Initializes the module void channel_init(void) { + ch_before_blocking_events = multiqueue_new_child(main_loop.events); channels = pmap_new(uint64_t)(); event_strings = pmap_new(cstr_t)(); msgpack_sbuffer_init(&out_buffer); @@ -446,9 +446,8 @@ static void handle_request(Channel *channel, msgpack_object *request) && !strncmp("nvim_get_mode", method->via.bin.ptr, method->via.bin.size); if (is_get_mode && !input_blocking()) { - // Schedule on the main loop with special priority. #6247 - Event ev = event_create(kEvPriorityAsync, on_request_event, 1, evdata); - multiqueue_put_event(channel->events, ev); + // Defer the event to a special queue used by os/input.c. #6247 + multiqueue_put(ch_before_blocking_events, on_request_event, 1, evdata); } else { // Invoke immediately. on_request_event((void **)&evdata); diff --git a/src/nvim/msgpack_rpc/channel.h b/src/nvim/msgpack_rpc/channel.h index 0d92976d02..f8fe6f129b 100644 --- a/src/nvim/msgpack_rpc/channel.h +++ b/src/nvim/msgpack_rpc/channel.h @@ -11,6 +11,11 @@ #define METHOD_MAXLEN 512 +/// HACK: os/input.c drains this queue immediately before blocking for input. +/// Events on this queue are async-safe, but they need the resolved state +/// of os_inchar(), so they are processed "just-in-time". +MultiQueue *ch_before_blocking_events; + #ifdef INCLUDE_GENERATED_DECLARATIONS # include "msgpack_rpc/channel.h.generated.h" #endif diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 09ad7beb4b..f73e3079b9 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -14,7 +14,6 @@ #include #include "nvim/vim.h" -#include "nvim/log.h" #include "nvim/ascii.h" #include "nvim/normal.h" #include "nvim/buffer.h" diff --git a/src/nvim/os/input.c b/src/nvim/os/input.c index de6d4a9010..31e06ce404 100644 --- a/src/nvim/os/input.c +++ b/src/nvim/os/input.c @@ -23,7 +23,7 @@ #include "nvim/main.h" #include "nvim/misc1.h" #include "nvim/state.h" -#include "nvim/log.h" +#include "nvim/msgpack_rpc/channel.h" #define READ_BUFFER_SIZE 0xfff #define INPUT_BUFFER_SIZE (READ_BUFFER_SIZE * 4) @@ -342,11 +342,9 @@ static bool input_poll(int ms) } if ((ms == - 1 || ms > 0) && !events_enabled && !input_eof) { - // We have discovered that the pending input will provoke a blocking wait. - // Process any events marked with priority `kEvPriorityAsync`: these events - // must be handled after flushing input. See channel.c:handle_request #6247 + // The pending input provoked a blocking wait. Do special events now. #6247 blocking = true; - multiqueue_process_priority(main_loop.events, kEvPriorityAsync); + multiqueue_process_events(ch_before_blocking_events); } LOOP_PROCESS_EVENTS_UNTIL(&main_loop, NULL, ms, input_ready() || input_eof); blocking = false; -- cgit From 8f59d1483934f91011b755406251136c406e77f6 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Thu, 27 Apr 2017 14:38:41 +0200 Subject: event: Remove "priority" concept. It was replaced by the "child queue" concept (MultiQueue). --- src/nvim/event/defs.h | 13 +++---------- src/nvim/event/multiqueue.c | 27 --------------------------- src/nvim/event/multiqueue.h | 2 +- src/nvim/message.c | 2 +- src/nvim/tui/input.c | 4 ++-- src/nvim/tui/tui.c | 2 +- src/nvim/ui.c | 2 +- src/nvim/ui_bridge.c | 4 ++-- 8 files changed, 11 insertions(+), 45 deletions(-) (limited to 'src') diff --git a/src/nvim/event/defs.h b/src/nvim/event/defs.h index 509a3f8e7f..cc875d74b9 100644 --- a/src/nvim/event/defs.h +++ b/src/nvim/event/defs.h @@ -6,23 +6,16 @@ #define EVENT_HANDLER_MAX_ARGC 6 -typedef enum { - kEvPriorityNormal = 1, - kEvPriorityAsync = 2, // safe to run in any state -} EventPriority; - typedef void (*argv_callback)(void **argv); typedef struct message { - int priority; argv_callback handler; void *argv[EVENT_HANDLER_MAX_ARGC]; } Event; typedef void(*event_scheduler)(Event event, void *data); -#define VA_EVENT_INIT(event, p, h, a) \ +#define VA_EVENT_INIT(event, h, a) \ do { \ assert(a <= EVENT_HANDLER_MAX_ARGC); \ - (event)->priority = p; \ (event)->handler = h; \ if (a) { \ va_list args; \ @@ -34,11 +27,11 @@ typedef void(*event_scheduler)(Event event, void *data); } \ } while (0) -static inline Event event_create(int priority, argv_callback cb, int argc, ...) +static inline Event event_create(argv_callback cb, int argc, ...) { assert(argc <= EVENT_HANDLER_MAX_ARGC); Event event; - VA_EVENT_INIT(&event, priority, cb, argc); + VA_EVENT_INIT(&event, cb, argc); return event; } diff --git a/src/nvim/event/multiqueue.c b/src/nvim/event/multiqueue.c index 66a261b554..ef9f3f1870 100644 --- a/src/nvim/event/multiqueue.c +++ b/src/nvim/event/multiqueue.c @@ -152,33 +152,6 @@ void multiqueue_process_events(MultiQueue *this) } } -void multiqueue_process_priority(MultiQueue *this, int priority) -{ - assert(this); - QUEUE *start = QUEUE_HEAD(&this->headtail); - QUEUE *cur = start; - while (!multiqueue_empty(this)) { - MultiQueueItem *item = multiqueue_node_data(cur); - assert(!item->link || !this->parent); // Only a parent queue has link-nodes - Event ev = multiqueueitem_get_event(item, false); - - if (ev.priority >= priority) { - if (ev.handler) { - ev.handler(ev.argv); - } - // Processed. Remove this item and get the new head. - (void)multiqueue_remove(this); - cur = QUEUE_HEAD(&this->headtail); - } else { - // Not processed. Skip this item and get the next one. - cur = cur->next->next; - if (!cur || cur == start) { - break; - } - } - } -} - /// Removes all events without processing them. void multiqueue_purge_events(MultiQueue *this) { diff --git a/src/nvim/event/multiqueue.h b/src/nvim/event/multiqueue.h index 72145482aa..a688107665 100644 --- a/src/nvim/event/multiqueue.h +++ b/src/nvim/event/multiqueue.h @@ -10,7 +10,7 @@ typedef struct multiqueue MultiQueue; typedef void (*put_callback)(MultiQueue *multiq, void *data); #define multiqueue_put(q, h, ...) \ - multiqueue_put_event(q, event_create(kEvPriorityNormal, h, __VA_ARGS__)); + multiqueue_put_event(q, event_create(h, __VA_ARGS__)); #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/message.c b/src/nvim/message.c index 146937c25a..696855e3aa 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -604,7 +604,7 @@ void msg_schedule_emsgf(const char *const fmt, ...) va_end(ap); char *s = xstrdup((char *)IObuff); - loop_schedule(&main_loop, event_create(1, msg_emsgf_event, 1, s)); + loop_schedule(&main_loop, event_create(msg_emsgf_event, 1, s)); } /* diff --git a/src/nvim/tui/input.c b/src/nvim/tui/input.c index b86ab8cf2f..3d37fabeee 100644 --- a/src/nvim/tui/input.c +++ b/src/nvim/tui/input.c @@ -102,7 +102,7 @@ static void flush_input(TermInput *input, bool wait_until_empty) size_t drain_boundary = wait_until_empty ? 0 : 0xff; do { uv_mutex_lock(&input->key_buffer_mutex); - loop_schedule(&main_loop, event_create(1, wait_input_enqueue, 1, input)); + loop_schedule(&main_loop, event_create(wait_input_enqueue, 1, input)); input->waiting = true; while (input->waiting) { uv_cond_wait(&input->key_buffer_cond, &input->key_buffer_mutex); @@ -352,7 +352,7 @@ static void read_cb(Stream *stream, RBuffer *buf, size_t c, void *data, stream_close(&input->read_stream, NULL, NULL); multiqueue_put(input->loop->fast_events, restart_reading, 1, input); } else { - loop_schedule(&main_loop, event_create(1, input_done_event, 0)); + loop_schedule(&main_loop, event_create(input_done_event, 0)); } return; } diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c index 356221f7ce..5653924154 100644 --- a/src/nvim/tui/tui.c +++ b/src/nvim/tui/tui.c @@ -773,7 +773,7 @@ static void tui_suspend(UI *ui) // before continuing. This is done in another callback to avoid // loop_poll_events recursion multiqueue_put_event(data->loop->fast_events, - event_create(1, suspend_event, 1, ui)); + event_create(suspend_event, 1, ui)); } static void tui_set_title(UI *ui, char *title) diff --git a/src/nvim/ui.c b/src/nvim/ui.c index 713dffb46c..924a4192bc 100644 --- a/src/nvim/ui.c +++ b/src/nvim/ui.c @@ -198,7 +198,7 @@ static void ui_refresh_event(void **argv) void ui_schedule_refresh(void) { - loop_schedule(&main_loop, event_create(1, ui_refresh_event, 0)); + loop_schedule(&main_loop, event_create(ui_refresh_event, 0)); } void ui_resize(int new_width, int new_height) diff --git a/src/nvim/ui_bridge.c b/src/nvim/ui_bridge.c index b7b12ae39e..d790770892 100644 --- a/src/nvim/ui_bridge.c +++ b/src/nvim/ui_bridge.c @@ -40,13 +40,13 @@ static argv_callback uilog_event = NULL; uilog_event = ui_bridge_##name##_event; \ } \ ((UIBridgeData *)ui)->scheduler( \ - event_create(1, ui_bridge_##name##_event, argc, __VA_ARGS__), UI(ui)); \ + event_create(ui_bridge_##name##_event, argc, __VA_ARGS__), UI(ui)); \ } while (0) #else // Schedule a function call on the UI bridge thread. #define UI_CALL(ui, name, argc, ...) \ ((UIBridgeData *)ui)->scheduler( \ - event_create(1, ui_bridge_##name##_event, argc, __VA_ARGS__), UI(ui)) + event_create(ui_bridge_##name##_event, argc, __VA_ARGS__), UI(ui)) #endif #define INT2PTR(i) ((void *)(uintptr_t)i) -- cgit From 409e56b1392c431a36c0a48cac58d6df3cf424d7 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 28 Apr 2017 20:42:06 +0200 Subject: vim-patch:818078ddfbb8 Updated runtime files and translations. https://github.com/vim/vim/commit/818078ddfbb8cc2546f697c5675a251d095722ec --- src/nvim/po/eo.po | 289 +++++++++++++++++++++++++++++++++++++++------------ src/nvim/po/fr.po | 303 +++++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 459 insertions(+), 133 deletions(-) (limited to 'src') diff --git a/src/nvim/po/eo.po b/src/nvim/po/eo.po index b7bc6397ef..10cab0342e 100644 --- a/src/nvim/po/eo.po +++ b/src/nvim/po/eo.po @@ -23,8 +23,8 @@ msgid "" msgstr "" "Project-Id-Version: Vim(Esperanto)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-02 16:21+0200\n" -"PO-Revision-Date: 2016-07-02 17:05+0200\n" +"POT-Creation-Date: 2016-08-26 20:54+0200\n" +"PO-Revision-Date: 2016-08-26 20:30+0200\n" "Last-Translator: Dominique PELLÉ \n" "Language-Team: \n" "Language: eo\n" @@ -56,6 +56,9 @@ msgstr "E82: Ne eblas disponigi iun ajn bufron, nun eliras..." msgid "E83: Cannot allocate buffer, using other one..." msgstr "E83: Ne eblas disponigi bufron, nun uzas alian..." +msgid "E931: Buffer cannot be registered" +msgstr "E931: Bufro ne povas esti registrita" + msgid "E515: No buffers were unloaded" msgstr "E515: Neniu bufro estis malŝargita" @@ -206,6 +209,33 @@ msgstr "" msgid "Signs for %s:" msgstr "Emfazaj simbolaĵoj de %s:" +msgid "E901: gethostbyname() in channel_open()" +msgstr "E901: gethostbyname() en channel_open()" + +msgid "E898: socket() in channel_open()" +msgstr "E898: gethostbyname() en channel_open()" + +msgid "E903: received command with non-string argument" +msgstr "E903: ricevis komandon kun argumento, kiu ne estas ĉeno" + +msgid "E904: last argument for expr/call must be a number" +msgstr "E904: lasta argumento de \"expr/call\" devas esti nombro" + +msgid "E904: third argument for call must be a list" +msgstr "E904: tria argumento de \"call\" devas esti listo" + +#, c-format +msgid "E905: received unknown command: %s" +msgstr "E905: nekonata komando ricevita: %s" + +#, c-format +msgid "E630: %s(): write while not connected" +msgstr "E630: %s(): konservo dum nekonektita" + +#, c-format +msgid "E631: %s(): write failed" +msgstr "E631: %s(): Konservo malsukcesis" + #, c-format msgid " line=% id=%d name=%s" msgstr " linio=% id=%d nomo=%s" @@ -432,10 +462,6 @@ msgstr "E719: Uzo de [:] ne eblas kun Vortaro" msgid "E734: Wrong variable type for %s=" msgstr "E734: Nevalida datumtipo de variablo de %s=" -#, c-format -msgid "E130: Unknown function: %s" -msgstr "E130: Nekonata funkcio: %s" - #, c-format msgid "E461: Illegal variable name: %s" msgstr "E461: Nevalida nomo de variablo: %s" @@ -474,10 +500,6 @@ msgstr "E711: Lista valoro ne havas sufiĉe da eroj" msgid "E690: Missing \"in\" after :for" msgstr "E690: \"in\" mankas post \":for\"" -#, c-format -msgid "E107: Missing parentheses: %s" -msgstr "E107: Mankas krampoj: %s" - #, c-format msgid "E108: No such variable: \"%s\"" msgstr "E108: Ne estas tia variablo: \"%s\"" @@ -534,59 +556,115 @@ msgstr "E114: Mankas citilo: %s" msgid "E115: Missing quote: %s" msgstr "E115: Mankas citilo: %s" -#, c-format -msgid "E696: Missing comma in List: %s" -msgstr "E696: Mankas komo en Listo: %s" - -#, c-format -msgid "E697: Missing end of List ']': %s" -msgstr "E697: Mankas fino de Listo ']': %s" - msgid "Not enough memory to set references, garbage collection aborted!" msgstr "Ne sufiĉa memoro por valorigi referencojn, senrubigado ĉesigita!" -#, c-format -msgid "E720: Missing colon in Dictionary: %s" -msgstr "E720: Mankas dupunkto en la vortaro: %s" +msgid "E724: variable nested too deep for displaying" +msgstr "E724: variablo ingita tro profunde por vidigi" -#, c-format -msgid "E721: Duplicate key in Dictionary: \"%s\"" -msgstr "E721: Ripetita ŝlosilo en la vortaro: \"%s\"" +msgid "E805: Using a Float as a Number" +msgstr "E805: Uzo de Glitpunktnombro kiel Nombro" -#, c-format -msgid "E722: Missing comma in Dictionary: %s" -msgstr "E722: Mankas komo en la vortaro: %s" +msgid "E703: Using a Funcref as a Number" +msgstr "E703: Uzo de Funcref kiel Nombro" -#, c-format -msgid "E723: Missing end of Dictionary '}': %s" -msgstr "E723: Mankas fino de vortaro '}': %s" +msgid "E745: Using a List as a Number" +msgstr "E745: Uzo de Listo kiel Nombro" -msgid "E724: variable nested too deep for displaying" -msgstr "E724: variablo ingita tro profunde por vidigi" +msgid "E728: Using a Dictionary as a Number" +msgstr "E728: Uzo de Vortaro kiel Nombro" + +msgid "E910: Using a Job as a Number" +msgstr "E910: Uzo de Tasko kiel Nombro" + +msgid "E913: Using a Channel as a Number" +msgstr "E913: Uzo de Kanalo kiel Nombro" + +msgid "E891: Using a Funcref as a Float" +msgstr "E891: Uzo de Funcref kiel Glitpunktnombro" + +msgid "E892: Using a String as a Float" +msgstr "E892: Uzo de Ĉeno kiel Glitpunktnombro" + +msgid "E893: Using a List as a Float" +msgstr "E893: Uzo de Listo kiel Glitpunktnombro" + +msgid "E894: Using a Dictionary as a Float" +msgstr "E894: Uzo de Vortaro kiel Glitpunktnombro" + +msgid "E907: Using a special value as a Float" +msgstr "E907: Uzo de speciala valoro kiel Glitpunktnombro" + +msgid "E911: Using a Job as a Float" +msgstr "E911: Uzo de Tasko kiel Glitpunktnombro" + +msgid "E914: Using a Channel as a Float" +msgstr "E914: Uzo de Kanalo kiel Glitpunktnombro" + +msgid "E729: using Funcref as a String" +msgstr "E729: uzo de Funcref kiel Ĉeno" + +msgid "E730: using List as a String" +msgstr "E730: uzo de Listo kiel Ĉeno" + +msgid "E731: using Dictionary as a String" +msgstr "E731: uzo de Vortaro kiel Ĉeno" + +msgid "E908: using an invalid value as a String" +msgstr "E908: uzo de nevalida valoro kiel Ĉeno" #, c-format -msgid "E740: Too many arguments for function %s" -msgstr "E740: Tro da argumentoj por funkcio: %s" +msgid "E795: Cannot delete variable %s" +msgstr "E795: Ne eblas forviŝi variablon %s" #, c-format -msgid "E116: Invalid arguments for function %s" -msgstr "E116: Nevalidaj argumentoj por funkcio: %s" +msgid "E704: Funcref variable name must start with a capital: %s" +msgstr "E704: Nomo de variablo Funcref devas finiĝi per majusklo: %s" #, c-format -msgid "E117: Unknown function: %s" -msgstr "E117: Nekonata funkcio: %s" +msgid "E705: Variable name conflicts with existing function: %s" +msgstr "E705: Nomo de variablo konfliktas kun ekzistanta funkcio: %s" #, c-format -msgid "E119: Not enough arguments for function: %s" -msgstr "E119: Ne sufiĉe da argumentoj por funkcio: %s" +msgid "E741: Value is locked: %s" +msgstr "E741: Valoro estas ŝlosita: %s" + +msgid "Unknown" +msgstr "Nekonata" #, c-format -msgid "E120: Using not in a script context: %s" -msgstr "E120: estas uzata ekster kunteksto de skripto: %s" +msgid "E742: Cannot change value of %s" +msgstr "E742: Ne eblas ŝanĝi valoron de %s" + +msgid "E698: variable nested too deep for making a copy" +msgstr "E698: variablo ingita tro profunde por fari kopion" + +msgid "" +"\n" +"# global variables:\n" +msgstr "" +"\n" +"# mallokaj variabloj:\n" + +msgid "" +"\n" +"\tLast set from " +msgstr "" +"\n" +"\tLaste ŝaltita de " + +msgid "map() argument" +msgstr "argumento de map()" + +msgid "filter() argument" +msgstr "argumento de filter()" #, c-format -msgid "E725: Calling dict function without Dictionary: %s" -msgstr "E725: Alvoko de funkcio dict sen Vortaro: %s" +msgid "E686: Argument of %s must be a List" +msgstr "E686: Argumento de %s devas esti Listo" + +msgid "E928: String required" +msgstr "E928: Ĉeno bezonata" msgid "E808: Number or Float required" msgstr "E808: Nombro aŭ Glitpunktnombro bezonata" @@ -594,9 +672,6 @@ msgstr "E808: Nombro aŭ Glitpunktnombro bezonata" msgid "add() argument" msgstr "argumento de add()" -msgid "E699: Too many arguments" -msgstr "E699: Tro da argumentoj" - msgid "E785: complete() can only be used in Insert mode" msgstr "E785: complete() uzeblas nur en Enmeta reĝimo" @@ -636,6 +711,10 @@ msgstr "E786: Amplekso nepermesebla" msgid "E701: Invalid type for len()" msgstr "E701: Nevalida datumtipo de len()" +#, c-format +msgid "E798: ID is reserved for \":match\": %ld" +msgstr "E798: ID estas rezervita por \":match\": %ld" + msgid "E726: Stride is zero" msgstr "E726: Paŝo estas nul" @@ -1054,6 +1133,10 @@ msgstr "Bedaŭrinde, la helpdosiero \"%s\" ne troveblas" msgid "E150: Not a directory: %s" msgstr "E150: Ne estas dosierujo: %s" +#, c-format +msgid "E151: No match: %s" +msgstr "E151: Neniu kongruo: %s" + #, c-format msgid "E152: Cannot open %s for writing" msgstr "E152: Ne eblas malfermi %s en skribreĝimo" @@ -1095,6 +1178,9 @@ msgstr "E159: Mankas numero de simbolo" msgid "E158: Invalid buffer name: %s" msgstr "E158: Nevalida nomo de bufro: %s" +msgid "E934: Cannot jump to a buffer that does not have a name" +msgstr "E934: Ne eblas salti al sennoma bufro" + #, c-format msgid "E157: Invalid sign ID: %" msgstr "E157: Nevalida identigilo de simbolo: %" @@ -1105,6 +1191,9 @@ msgstr " (nesubtenata)" msgid "[Deleted]" msgstr "[Forviŝita]" +msgid "No old files" +msgstr "Neniu malnova dosiero" + msgid "Entering Debug mode. Type \"cont\" to continue." msgstr "Eniras sencimigan reĝimon. Tajpu \"cont\" por daŭrigi." @@ -1204,6 +1293,10 @@ msgstr "linio %: rulas \"%s\"" msgid "finished sourcing %s" msgstr "finis ruli %s" +#, c-format +msgid "continuing in %s" +msgstr "daŭrigas en %s" + msgid "modeline" msgstr "reĝimlinio" @@ -1932,9 +2025,6 @@ msgstr "E462: Ne eblis prepari por reŝargi \"%s\"" msgid "E321: Could not reload \"%s\"" msgstr "E321: Ne eblis reŝargi \"%s\"" -msgid "--Deleted--" -msgstr "--Forviŝita--" - #, c-format msgid "auto-removing autocommand: %s " msgstr "aŭto-forviŝas aŭtokomandon: %s " @@ -1944,6 +2034,12 @@ msgstr "aŭto-forviŝas aŭtokomandon: %s " msgid "E367: No such group: \"%s\"" msgstr "E367: Ne ekzistas tia grupo: \"%s\"" +msgid "W19: Deleting augroup that is still in use" +msgstr "W19: Forviŝo de augroup kiu estas ankoraŭ uzata" + +msgid "--Deleted--" +msgstr "--Forviŝita--" + #, c-format msgid "E215: Illegal character after *: %s" msgstr "E215: Nevalida signo post *: %s" @@ -2005,8 +2101,10 @@ msgid "E351: Cannot delete fold with current 'foldmethod'" msgstr "E351: Ne eblas forviŝi faldon per la aktuala 'foldmethod'" #, c-format -msgid "+--%3ld lines folded " -msgstr "+--%3ld linioj falditaj " +msgid "+--%3ld line folded " +msgid_plural "+--%3ld lines folded " +msgstr[0] "+--%3ld linio faldita " +msgstr[1] "+--%3ld linioj falditaj " #. buffer has already been read msgid "E222: Add to read buffer" @@ -2550,6 +2648,7 @@ msgstr "%-5s: %s%*s (Uzo: %s)" msgid "" "\n" +" a: Find assignments to this symbol\n" " c: Find functions calling this function\n" " d: Find functions called by this function\n" " e: Find this egrep pattern\n" @@ -2558,9 +2657,9 @@ msgid "" " i: Find files #including this file\n" " s: Find this C symbol\n" " t: Find this text string\n" -" a: Find assignments to this symbol\n" msgstr "" "\n" +" a: Trovi valirizojn al tiu simbolo\n" " c: Trovi funkciojn, kiuj alvokas tiun funkcion\n" " d: Trovi funkciojn alvokataj de tiu funkcio\n" " e: Trovi tiun egrep-ŝablonon\n" @@ -2569,7 +2668,6 @@ msgstr "" " i: Trovi dosierojn, kiuj inkluzivas (#include) tiun dosieron\n" " s: Trovi tiun C-simbolon\n" " t: Trovi tiun ĉenon\n" -" a: Trovi valirizojn al tiu simbolo\n" msgid "E568: duplicate cscope database not added" msgstr "E568: ripetita datumbazo de cscope ne aldonita" @@ -2613,6 +2711,14 @@ msgstr "neniu konekto de cscope\n" msgid " # pid database name prepend path\n" msgstr " # pid nomo de datumbazo prefiksa vojo\n" +#, c-format +msgid "E696: Missing comma in List: %s" +msgstr "E696: Mankas komo en Listo: %s" + +#, c-format +msgid "E697: Missing end of List ']': %s" +msgstr "E697: Mankas fino de Listo ']': %s" + msgid "Unknown option argument" msgstr "Nekonata argumento de opcio" @@ -3861,15 +3967,18 @@ msgstr "(%d de %d)%s%s: " msgid " (line deleted)" msgstr " (forviŝita linio)" +#, c-format +msgid "%serror list %d of %d; %d errors " +msgstr "%slisto de eraroj %d de %d; %d eraroj" + msgid "E380: At bottom of quickfix stack" msgstr "E380: Ĉe la subo de stako de rapidriparo" msgid "E381: At top of quickfix stack" msgstr "E381: Ĉe la supro de stako de rapidriparo" -#, c-format -msgid "error list %d of %d; %d errors" -msgstr "listo de eraroj %d de %d; %d eraroj" +msgid "No entries" +msgstr "Neniu ano" msgid "E382: Cannot write, 'buftype' option is set" msgstr "E382: Ne eblas skribi, opcio 'buftype' estas ŝaltita" @@ -4082,9 +4191,6 @@ msgstr " hebrea" msgid " Arabic" msgstr " araba" -msgid " (lang)" -msgstr " (lingvo)" - msgid " (paste)" msgstr " (algluo)" @@ -4179,8 +4285,47 @@ msgstr "" "# Lasta serĉa ŝablono %s:\n" "~" -msgid "E759: Format error in spell file" -msgstr "E759: Eraro de formato en literuma dosiero" +msgid "E756: Spell checking is not enabled" +msgstr "E756: Literumilo ne estas ŝaltita" + +#, c-format +msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\"" +msgstr "Averto: Ne eblas trovi vortliston \"%s_%s.spl\" aŭ \"%s_ascii.spl\"" + +#, c-format +msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\"" +msgstr "Averto: Ne eblas trovi vortliston \"%s.%s.spl\" aŭ \"%s.ascii.spl\"" + +msgid "E797: SpellFileMissing autocommand deleted buffer" +msgstr "E797: Aŭtokomando SpellFileMissing forviŝis bufron" + +#, c-format +msgid "Warning: region %s not supported" +msgstr "Averto: regiono %s ne subtenata" + +msgid "Sorry, no suggestions" +msgstr "Bedaŭrinde ne estas sugestoj" + +#, c-format +msgid "Sorry, only %ld suggestions" +msgstr "Bedaŭrinde estas nur %ld sugestoj" + +#. for when 'cmdheight' > 1 +#. avoid more prompt +#, c-format +msgid "Change \"%.*s\" to:" +msgstr "Anstataŭigi \"%.*s\" per:" + +#, c-format +msgid " < \"%.*s\"" +msgstr " < \"%.*s\"" + +msgid "E752: No previous spell replacement" +msgstr "E752: Neniu antaŭa literuma anstataŭigo" + +#, c-format +msgid "E753: Not found: %s" +msgstr "E753: Netrovita: %s" msgid "E758: Truncated spell file" msgstr "E758: Trunkita literuma dosiero" @@ -4226,8 +4371,24 @@ msgid "E770: Unsupported section in spell file" msgstr "E770: Nesubtenata sekcio en literuma dosiero" #, c-format -msgid "Warning: region %s not supported" -msgstr "Averto: regiono %s ne subtenata" +msgid "E778: This does not look like a .sug file: %s" +msgstr "E778: Tio ne ŝajnas esti dosiero .sug: %s" + +#, c-format +msgid "E779: Old .sug file, needs to be updated: %s" +msgstr "E779: Malnova dosiero .sug, bezonas ĝisdatigon: %s" + +#, c-format +msgid "E780: .sug file is for newer version of Vim: %s" +msgstr "E780: Dosiero .sug estas por pli nova versio de Vim: %s" + +#, c-format +msgid "E781: .sug file doesn't match .spl file: %s" +msgstr "E781: Dosiero .sug ne kongruas kun dosiero .spl: %s" + +#, c-format +msgid "E782: error while reading .sug file: %s" +msgstr "E782: eraro dum legado de dosiero .sug: %s" #, c-format msgid "Reading affix file %s ..." diff --git a/src/nvim/po/fr.po b/src/nvim/po/fr.po index 2d99d67099..4b1b0476ca 100644 --- a/src/nvim/po/fr.po +++ b/src/nvim/po/fr.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: Vim(Franais)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-02 16:21+0200\n" -"PO-Revision-Date: 2016-07-02 17:06+0200\n" +"POT-Creation-Date: 2016-08-26 20:54+0200\n" +"PO-Revision-Date: 2016-08-26 20:34+0200\n" "Last-Translator: Dominique Pell \n" "Language-Team: \n" "Language: fr\n" @@ -53,6 +53,9 @@ msgid "E83: Cannot allocate buffer, using other one..." msgstr "" "E83: L'allocation du tampon a chou : arrtez Vim, librez de la mmoire" +msgid "E931: Buffer cannot be registered" +msgstr "E931: Le tampon ne peut pas tre enregistr" + msgid "E515: No buffers were unloaded" msgstr "E515: Aucun tampon n'a t dcharg" @@ -220,6 +223,33 @@ msgstr "" msgid "Signs for %s:" msgstr "Symboles dans %s :" +msgid "E901: gethostbyname() in channel_open()" +msgstr "E901: gethostbyname() dans channel_open()" + +msgid "E898: socket() in channel_open()" +msgstr "E898: socket() dans channel_open()" + +msgid "E903: received command with non-string argument" +msgstr "E903: commande reue avec une argument qui n'est pas une chane" + +msgid "E904: last argument for expr/call must be a number" +msgstr "E904: le dernier argument de expr/call doit tre un nombre" + +msgid "E904: third argument for call must be a list" +msgstr "E904: le troisime argument de \"call\" doit tre une liste" + +#, c-format +msgid "E905: received unknown command: %s" +msgstr "E905: commande inconnue reue : %s" + +#, c-format +msgid "E630: %s(): write while not connected" +msgstr "E630: %s() : criture sans tre connect" + +#, c-format +msgid "E631: %s(): write failed" +msgstr "E631: %s() : erreur d'criture" + #, c-format msgid " line=% id=%d name=%s" msgstr " ligne=% id=%d nom=%s" @@ -489,10 +519,6 @@ msgstr "E719: Utilisation de [:] impossible avec un Dictionnaire" msgid "E734: Wrong variable type for %s=" msgstr "E734: Type de variable erron avec %s=" -#, c-format -msgid "E130: Unknown function: %s" -msgstr "E130: Fonction inconnue : %s" - #, c-format msgid "E461: Illegal variable name: %s" msgstr "E461: Nom de variable invalide : %s" @@ -533,10 +559,6 @@ msgstr "E711: La Liste n'a pas assez d' msgid "E690: Missing \"in\" after :for" msgstr "E690: \"in\" manquant aprs :for" -#, c-format -msgid "E107: Missing parentheses: %s" -msgstr "E107: Parenthses manquantes : %s" - #, c-format msgid "E108: No such variable: \"%s\"" msgstr "E108: Variable inexistante : %s" @@ -598,60 +620,119 @@ msgstr "E114: Il manque \" msgid "E115: Missing quote: %s" msgstr "E115: Il manque ' la fin de %s" -#, c-format -msgid "E696: Missing comma in List: %s" -msgstr "E696: Il manque une virgule dans la Liste %s" - -#, c-format -msgid "E697: Missing end of List ']': %s" -msgstr "E697: Il manque ']' la fin de la Liste %s" - msgid "Not enough memory to set references, garbage collection aborted!" msgstr "" "Pas assez de mmoire pour les rfrences, arrt du ramassage de mites !" -#, c-format -msgid "E720: Missing colon in Dictionary: %s" -msgstr "E720: Il manque ':' dans le Dictionnaire %s" +msgid "E724: variable nested too deep for displaying" +msgstr "E724: variable trop imbrique pour tre affiche" -#, c-format -msgid "E721: Duplicate key in Dictionary: \"%s\"" -msgstr "E721: Cl \"%s\" duplique dans le Dictionnaire" +msgid "E805: Using a Float as a Number" +msgstr "E805: Utilisation d'un Flottant comme un Nombre" -#, c-format -msgid "E722: Missing comma in Dictionary: %s" -msgstr "E722: Il manque une virgule dans le Dictionnaire %s" +msgid "E703: Using a Funcref as a Number" +msgstr "E703: Utilisation d'une Funcref comme un Nombre" -#, c-format -msgid "E723: Missing end of Dictionary '}': %s" -msgstr "E723: Il manque '}' la fin du Dictionnaire %s" +msgid "E745: Using a List as a Number" +msgstr "E745: Utilisation d'une Liste comme un Nombre" -msgid "E724: variable nested too deep for displaying" -msgstr "E724: variable trop imbrique pour tre affiche" +msgid "E728: Using a Dictionary as a Number" +msgstr "E728: Utilisation d'un Dictionnaire comme un Nombre" + +msgid "E910: Using a Job as a Number" +msgstr "E910: Utilisation d'une Tche comme un Nombre" + +msgid "E913: Using a Channel as a Number" +msgstr "E913: Utilisation d'un Canal comme un Nombre" + +msgid "E891: Using a Funcref as a Float" +msgstr "E891: Utilisation d'une Funcref comme un Flottant" + +msgid "E892: Using a String as a Float" +msgstr "E892: Utilisation d'une Chane comme un Flottant" + +msgid "E893: Using a List as a Float" +msgstr "E893: Utilisation d'une Liste comme un Flottant" + +msgid "E894: Using a Dictionary as a Float" +msgstr "E894: Utilisation d'un Dictionnaire comme un Flottant" + +msgid "E907: Using a special value as a Float" +msgstr "E907: Utilisation d'une valeur spciale comme un Flottant" + +msgid "E911: Using a Job as a Float" +msgstr "E911: Utilisation d'une Tche comme un Flottant" + +msgid "E914: Using a Channel as a Float" +msgstr "E914: Utilisation d'un Canal comme un Flottant" + +msgid "E729: using Funcref as a String" +msgstr "E729: Utilisation d'une Funcref comme une Chane" + +msgid "E730: using List as a String" +msgstr "E730: Utilisation d'une Liste comme une Chane" + +msgid "E731: using Dictionary as a String" +msgstr "E731: Utilisation d'un Dictionnaire comme une Chane" + +msgid "E908: using an invalid value as a String" +msgstr "E908: Utilisation d'une valeur invalide comme une Chane" #, c-format -msgid "E740: Too many arguments for function %s" -msgstr "E740: Trop d'arguments pour la fonction %s" +msgid "E795: Cannot delete variable %s" +msgstr "E795: Impossible de supprimer la variable %s" #, c-format -msgid "E116: Invalid arguments for function %s" -msgstr "E116: Arguments invalides pour la fonction %s" +msgid "E704: Funcref variable name must start with a capital: %s" +msgstr "E704: Le nom d'une Funcref doit commencer par une majuscule : %s" #, c-format -msgid "E117: Unknown function: %s" -msgstr "E117: Fonction inconnue : %s" +msgid "E705: Variable name conflicts with existing function: %s" +msgstr "E705: Le nom d'une variable entre en conflit avec la fonction %s" #, c-format -msgid "E119: Not enough arguments for function: %s" -msgstr "E119: La fonction %s n'a pas reu assez d'arguments" +msgid "E741: Value is locked: %s" +msgstr "E741: La valeur de %s est verrouille" + +msgid "Unknown" +msgstr "Inconnu" #, c-format -msgid "E120: Using not in a script context: %s" -msgstr "E120: utilis en dehors d'un script : %s" +msgid "E742: Cannot change value of %s" +msgstr "E742: Impossible de modifier la valeur de %s" + +msgid "E698: variable nested too deep for making a copy" +msgstr "E698: variable trop imbrique pour en faire une copie" + +# AB - La version franaise est capitalise pour tre en accord avec les autres +# commentaires enregistrs dans le fichier viminfo. +msgid "" +"\n" +"# global variables:\n" +msgstr "" +"\n" +"# Variables globales:\n" + +# DB - Plus prcis ("la dernire fois") ? +msgid "" +"\n" +"\tLast set from " +msgstr "" +"\n" +"\tModifi la dernire fois dans " + +msgid "map() argument" +msgstr "argument de map()" + +msgid "filter() argument" +msgstr "argument de filter()" #, c-format -msgid "E725: Calling dict function without Dictionary: %s" -msgstr "E725: Appel d'une fonction dict sans Dictionnaire : %s" +msgid "E686: Argument of %s must be a List" +msgstr "E686: L'argument de %s doit tre une Liste" + +msgid "E928: String required" +msgstr "E928: Chane requis" msgid "E808: Number or Float required" msgstr "E808: Nombre ou Flottant requis" @@ -659,9 +740,6 @@ msgstr "E808: Nombre ou Flottant requis" msgid "add() argument" msgstr "argument de add()" -msgid "E699: Too many arguments" -msgstr "E699: Trop d'arguments" - msgid "E785: complete() can only be used in Insert mode" msgstr "E785: complete() n'est utilisable que dans le mode Insertion" @@ -704,6 +782,10 @@ msgstr "E786: Les plages ne sont pas autoris msgid "E701: Invalid type for len()" msgstr "E701: Type invalide avec len()" +#, c-format +msgid "E798: ID is reserved for \":match\": %ld" +msgstr "E798: ID est rserv pour \":match\": %ld" + msgid "E726: Stride is zero" msgstr "E726: Le pas est nul" @@ -1192,15 +1274,17 @@ msgstr "D msgid "E150: Not a directory: %s" msgstr "E150: %s n'est pas un rpertoire" -# AB - La version anglaise est plus prcise, mais trop technique. +#, c-format +msgid "E151: No match: %s" +msgstr "E151: Aucune correspondance : %s" + #, c-format msgid "E152: Cannot open %s for writing" -msgstr "E152: Impossible d'crire %s" +msgstr "E152: Impossible d'ouvrir %s en criture" -# AB - La version anglaise est plus prcise, mais trop technique. #, c-format msgid "E153: Unable to open %s for reading" -msgstr "E153: Impossible de lire %s" +msgstr "E153: Impossible d'ouvrir %s en lecture" #, c-format msgid "E670: Mix of help file encodings within a language: %s" @@ -1247,6 +1331,9 @@ msgstr "E159: Il manque l'ID du symbole" msgid "E158: Invalid buffer name: %s" msgstr "E158: Le tampon %s est introuvable" +msgid "E934: Cannot jump to a buffer that does not have a name" +msgstr "E934: Impossible de sauter un tampon sans nom" + # AB - Vu le code source, la version franaise est meilleure que la # version anglaise. #, c-format @@ -1259,6 +1346,9 @@ msgstr " (non support msgid "[Deleted]" msgstr "[Effac]" +msgid "No old files" +msgstr "Aucun vieux fichier" + # AB - La version franaise de la premire phrase ne me satisfait pas. # DB - Suggestion. msgid "Entering Debug mode. Type \"cont\" to continue." @@ -1309,7 +1399,8 @@ msgid "E162: No write since last change for buffer \"%s\"" msgstr "E162: Le tampon %s n'a pas t enregistr" msgid "Warning: Entered other buffer unexpectedly (check autocommands)" -msgstr "Alerte : Entre inattendue dans un autre tampon (vrifier autocommandes)" +msgstr "" +"Alerte : Entre inattendue dans un autre tampon (vrifier autocommandes)" msgid "E163: There is only one file to edit" msgstr "E163: Il n'y a qu'un seul fichier diter" @@ -1360,6 +1451,11 @@ msgstr "ligne % : sourcement de \"%s\"" msgid "finished sourcing %s" msgstr "fin du sourcement de %s" +# AB - Ce texte fait partie d'un message de dbogage. +#, c-format +msgid "continuing in %s" +msgstr "de retour dans %s" + msgid "modeline" msgstr "ligne de mode" @@ -2108,9 +2204,6 @@ msgstr "E462: Impossible de pr msgid "E321: Could not reload \"%s\"" msgstr "E321: Impossible de recharger \"%s\"" -msgid "--Deleted--" -msgstr "--Effac--" - #, c-format msgid "auto-removing autocommand: %s " msgstr "Autocommandes marques pour auto-suppression : %s " @@ -2120,6 +2213,12 @@ msgstr "Autocommandes marqu msgid "E367: No such group: \"%s\"" msgstr "E367: Aucun groupe \"%s\"" +msgid "W19: Deleting augroup that is still in use" +msgstr "W19: Effacement d'augroup toujours en usage" + +msgid "--Deleted--" +msgstr "--Effac--" + #, c-format msgid "E215: Illegal character after *: %s" msgstr "E215: Caractre non valide aprs * : %s" @@ -2182,8 +2281,10 @@ msgid "E351: Cannot delete fold with current 'foldmethod'" msgstr "E351: Impossible de supprimer un repli avec la 'foldmethod'e actuelle" #, c-format -msgid "+--%3ld lines folded " -msgstr "+--%3ld lignes replies " +msgid "+--%3ld line folded " +msgid_plural "+--%3ld lines folded " +msgstr[0] "+--%3ld ligne replie " +msgstr[1] "+--%3ld lignes replies " #. buffer has already been read msgid "E222: Add to read buffer" @@ -2735,6 +2836,7 @@ msgstr "%-5s: %s%*s (Utilisation : %s)" msgid "" "\n" +" a: Find assignments to this symbol\n" " c: Find functions calling this function\n" " d: Find functions called by this function\n" " e: Find this egrep pattern\n" @@ -2743,9 +2845,9 @@ msgid "" " i: Find files #including this file\n" " s: Find this C symbol\n" " t: Find this text string\n" -" a: Find assignments to this symbol\n" msgstr "" "\n" +" a: Trouver les affectations ce symbole\n" " c: Trouver les fonctions appelant cette fonction\n" " d: Trouver les fonctions appeles par cette fonction\n" " e: Trouver ce motif egrep\n" @@ -2754,7 +2856,6 @@ msgstr "" " i: Trouver les fichiers qui #incluent ce fichier\n" " s: Trouver ce symbole C\n" " t: Trouver cette chane\n" -" a: Trouver les assignements ce symbole\n" msgid "E568: duplicate cscope database not added" msgstr "E568: base de donnes cscope redondante non ajoute" @@ -2799,6 +2900,14 @@ msgstr "aucune connexion cscope\n" msgid " # pid database name prepend path\n" msgstr " # pid nom de la base de donnes chemin\n" +#, c-format +msgid "E696: Missing comma in List: %s" +msgstr "E696: Il manque une virgule dans la Liste %s" + +#, c-format +msgid "E697: Missing end of List ']': %s" +msgstr "E697: Il manque ']' la fin de la Liste %s" + msgid "Unknown option argument" msgstr "Option inconnue" @@ -4038,15 +4147,18 @@ msgstr "(%d sur %d)%s%s : " msgid " (line deleted)" msgstr " (ligne efface)" +#, c-format +msgid "%serror list %d of %d; %d errors " +msgstr "%sliste d'erreurs %d sur %d ; %d erreurs" + msgid "E380: At bottom of quickfix stack" msgstr "E380: En bas de la pile quickfix" msgid "E381: At top of quickfix stack" msgstr "E381: Au sommet de la pile quickfix" -#, c-format -msgid "error list %d of %d; %d errors" -msgstr "liste d'erreurs %d sur %d ; %d erreurs" +msgid "No entries" +msgstr "Aucune entre" msgid "E382: Cannot write, 'buftype' option is set" msgstr "E382: criture impossible, l'option 'buftype' est active" @@ -4257,9 +4369,6 @@ msgstr " h msgid " Arabic" msgstr " arabe" -msgid " (lang)" -msgstr " (langue)" - msgid " (paste)" msgstr " (collage)" @@ -4354,8 +4463,48 @@ msgstr "" "# Dernier motif de recherche %s :\n" "~" -msgid "E759: Format error in spell file" -msgstr "E759: Erreur de format du fichier orthographique" +msgid "E756: Spell checking is not enabled" +msgstr "E756: La vrification orthographique n'est pas active" + +#, c-format +msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\"" +msgstr "Alerte : Liste de mots \"%s_%s.spl\" ou \"%s_ascii.spl\" introuvable" + +#, c-format +msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\"" +msgstr "Alerte : Liste de mots \"%s.%s.spl\" ou \"%s.ascii.spl\" introuvable" + +msgid "E797: SpellFileMissing autocommand deleted buffer" +msgstr "E797: L'autocommande SpellFileMissing a effac le tampon" + +#, c-format +msgid "Warning: region %s not supported" +msgstr "Alerte : rgion %s non supporte" + +msgid "Sorry, no suggestions" +msgstr "Dsol, aucune suggestion" + +#, c-format +msgid "Sorry, only %ld suggestions" +msgstr "Dsol, seulement %ld suggestions" + +#. for when 'cmdheight' > 1 +#. avoid more prompt +#, c-format +msgid "Change \"%.*s\" to:" +msgstr "Remplacer \"%.*s\" par :" + +# DB - todo : l'intrt de traduire ce message m'chappe. +#, c-format +msgid " < \"%.*s\"" +msgstr " < \"%.*s\"" + +msgid "E752: No previous spell replacement" +msgstr "E752: Pas de suggestion orthographique prcdente" + +#, c-format +msgid "E753: Not found: %s" +msgstr "E753: Introuvable : %s" msgid "E758: Truncated spell file" msgstr "E758: Fichier orthographique tronqu" @@ -4401,8 +4550,24 @@ msgid "E770: Unsupported section in spell file" msgstr "E770: Section non supporte dans le fichier orthographique" #, c-format -msgid "Warning: region %s not supported" -msgstr "Alerte : rgion %s non supporte" +msgid "E778: This does not look like a .sug file: %s" +msgstr "E778: %s ne semble pas tre un fichier .sug" + +#, c-format +msgid "E779: Old .sug file, needs to be updated: %s" +msgstr "E779: Fichier de suggestions obsolte, mise jour ncessaire : %s" + +#, c-format +msgid "E780: .sug file is for newer version of Vim: %s" +msgstr "E780: Fichier .sug prvu pour une version de Vim plus rcente : %s" + +#, c-format +msgid "E781: .sug file doesn't match .spl file: %s" +msgstr "E781: Le fichier .sug ne correspond pas au fichier .spl : %s" + +#, c-format +msgid "E782: error while reading .sug file: %s" +msgstr "E782: Erreur lors de la lecture de fichier de suggestions : %s" #, c-format msgid "Reading affix file %s ..." -- cgit From 86b596dc7a49f1b148ef82a356b972b93ed0f6d4 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 28 Apr 2017 21:14:34 +0200 Subject: vim-patch:f37506f60f87 Updated runtime files. Remove HiLink commands. https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c --- src/nvim/po/eo.po | 4812 ++++++++++++++++++----------------- src/nvim/po/fr.po | 4895 ++++++++++++++++++------------------ src/nvim/po/ja.euc-jp.po | 6223 +++++++++++++++++++--------------------------- src/nvim/po/ja.po | 6220 +++++++++++++++++++-------------------------- 4 files changed, 9899 insertions(+), 12251 deletions(-) (limited to 'src') diff --git a/src/nvim/po/eo.po b/src/nvim/po/eo.po index 10cab0342e..3fb300c63f 100644 --- a/src/nvim/po/eo.po +++ b/src/nvim/po/eo.po @@ -5,7 +5,7 @@ # # UNUA TRADUKISTO Dominique PELLE # PROVLEGANTO(J) Felipe CASTRO -# Antono MECHELYNCK +# Antono MECHELYNCK # Yves NEVELSTEEN # # Uzitaj vortaroj kaj fakvortaroj: @@ -23,8 +23,8 @@ msgid "" msgstr "" "Project-Id-Version: Vim(Esperanto)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-08-26 20:54+0200\n" -"PO-Revision-Date: 2016-08-26 20:30+0200\n" +"POT-Creation-Date: 2017-01-16 00:30+0100\n" +"PO-Revision-Date: 2017-01-16 01:14+0100\n" "Last-Translator: Dominique PELLÉ \n" "Language-Team: \n" "Language: eo\n" @@ -32,13 +32,20 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#, fuzzy -#~ msgid "Unable to get option value" -#~ msgstr "fiaskis akiri valoron de opcio" +msgid "E831: bf_key_init() called with empty password" +msgstr "E831: bf_key_init() alvokita kun malplena pasvorto" -#, fuzzy -#~ msgid "internal error: unknown option type" -#~ msgstr "interna eraro: neniu vim-a listero" +msgid "E820: sizeof(uint32_t) != 4" +msgstr "E820: sizeof(uint32_t) != 4" + +msgid "E817: Blowfish big/little endian use wrong" +msgstr "E817: Misuzo de pezkomenca/pezfina en blowfish" + +msgid "E818: sha256 test failed" +msgstr "E818: Testo de sha256 malsukcesis" + +msgid "E819: Blowfish test failed" +msgstr "E819: Testo de blowfish malsukcesis" msgid "[Location List]" msgstr "[Listo de lokoj]" @@ -59,6 +66,9 @@ msgstr "E83: Ne eblas disponigi bufron, nun uzas alian..." msgid "E931: Buffer cannot be registered" msgstr "E931: Bufro ne povas esti registrita" +msgid "E937: Attempt to delete a buffer that is in use" +msgstr "E937: Provo de forviŝo de bufro, kiu estas uzanta" + msgid "E515: No buffers were unloaded" msgstr "E515: Neniu bufro estis malŝargita" @@ -106,19 +116,17 @@ msgid "E88: Cannot go before first buffer" msgstr "E88: Ne eblas iri antaŭ la unuan bufron" #, c-format -msgid "" -"E89: No write since last change for buffer % (add ! to override)" +msgid "E89: No write since last change for buffer %ld (add ! to override)" msgstr "" -"E89: Neniu skribo de post la lasta ŝanĝo de la bufro % (aldonu ! por " +"E89: Neniu skribo de post la lasta ŝanĝo de la bufro %ld (aldonu ! por " "transpasi)" -#. wrap around (may cause duplicates) msgid "W14: Warning: List of file names overflow" msgstr "W14: Averto: Listo de dosiernomoj troas" #, c-format -msgid "E92: Buffer % not found" -msgstr "E92: Bufro % ne trovita" +msgid "E92: Buffer %ld not found" +msgstr "E92: Bufro %ld ne trovita" #, c-format msgid "E93: More than one match for %s" @@ -129,8 +137,8 @@ msgid "E94: No matching buffer for %s" msgstr "E94: Neniu bufro kongruas kun %s" #, c-format -msgid "line %" -msgstr "linio %" +msgid "line %ld" +msgstr "linio %ld" msgid "E95: Buffer with this name already exists" msgstr "E95: Bufro kun tiu nomo jam ekzistas" @@ -158,12 +166,12 @@ msgid "1 line --%d%%--" msgstr "1 linio --%d%%--" #, c-format -msgid "% lines --%d%%--" -msgstr "% linioj --%d%%--" +msgid "%ld lines --%d%%--" +msgstr "%ld linioj --%d%%--" #, c-format -msgid "line % of % --%d%%-- col " -msgstr "linio % de % --%d%%-- kol " +msgid "line %ld of %ld --%d%%-- col " +msgstr "linio %ld de %ld --%d%%-- kol " msgid "[No Name]" msgstr "[Neniu nomo]" @@ -209,6 +217,13 @@ msgstr "" msgid "Signs for %s:" msgstr "Emfazaj simbolaĵoj de %s:" +#, c-format +msgid " line=%ld id=%d name=%s" +msgstr " linio=%ld id=%d nomo=%s" + +msgid "E902: Cannot connect to port" +msgstr "E902: Ne eblas konekti al pordo" + msgid "E901: gethostbyname() in channel_open()" msgstr "E901: gethostbyname() en channel_open()" @@ -237,24 +252,69 @@ msgid "E631: %s(): write failed" msgstr "E631: %s(): Konservo malsukcesis" #, c-format -msgid " line=% id=%d name=%s" -msgstr " linio=% id=%d nomo=%s" +msgid "E917: Cannot use a callback with %s()" +msgstr "E917: Ne eblas uzi reagfunkcion kun %s()" -msgid "E545: Missing colon" -msgstr "E545: Mankas dupunkto" +msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel" +msgstr "E912: ne eblas uzi ch_evalexpr()/ch_sendexpr() kun kruda aŭ nl kanalo" -msgid "E546: Illegal mode" -msgstr "E546: Reĝimo nepermesata" +msgid "E906: not an open channel" +msgstr "E906: ne estas malfermita kanalo" -msgid "E548: digit expected" -msgstr "E548: cifero atendata" +msgid "E920: _io file requires _name to be set" +msgstr "E920: dosiero _io bezonas _name" -msgid "E549: Illegal percentage" -msgstr "E549: Nevalida procento" +msgid "E915: in_io buffer requires in_buf or in_name to be set" +msgstr "E915: bufro in_io bezonas in_buf aŭ in_name" + +#, c-format +msgid "E918: buffer must be loaded: %s" +msgstr "E918: bufro devas esti ŝargita: %s" + +msgid "E821: File is encrypted with unknown method" +msgstr "E821: Dosiero estas ĉifrita per nekonata metodo" + +msgid "Warning: Using a weak encryption method; see :help 'cm'" +msgstr "Averto: uzo de malfortika ĉifrada metodo; vidu :help 'cm'" + +msgid "Enter encryption key: " +msgstr "Tajpu la ŝlosilon de ĉifrado: " + +msgid "Enter same key again: " +msgstr "Tajpu la ŝlosilon denove: " + +msgid "Keys don't match!" +msgstr "Ŝlosiloj ne kongruas!" + +msgid "[crypted]" +msgstr "[ĉifrita]" + +#, c-format +msgid "E720: Missing colon in Dictionary: %s" +msgstr "E720: Mankas dupunkto en la vortaro: %s" + +#, c-format +msgid "E721: Duplicate key in Dictionary: \"%s\"" +msgstr "E721: Ripetita ŝlosilo en la vortaro: \"%s\"" + +#, c-format +msgid "E722: Missing comma in Dictionary: %s" +msgstr "E722: Mankas komo en la vortaro: %s" + +#, c-format +msgid "E723: Missing end of Dictionary '}': %s" +msgstr "E723: Mankas fino de vortaro '}': %s" + +msgid "extend() argument" +msgstr "argumento de extend()" + +#, c-format +msgid "E737: Key already exists: %s" +msgstr "E737: Ŝlosilo jam ekzistas: %s" #, c-format -msgid "E96: Can not diff more than % buffers" -msgstr "E96: Ne eblas dosierdiferenci pli ol % bufrojn" +msgid "E96: Cannot diff more than %ld buffers" +msgstr "E96: Ne eblas dosierdiferenci pli ol %ld bufrojn" msgid "E810: Cannot read or write temp files" msgstr "E810: Ne eblas legi aŭ skribi provizorajn dosierojn" @@ -262,6 +322,9 @@ msgstr "E810: Ne eblas legi aŭ skribi provizorajn dosierojn" msgid "E97: Cannot create diffs" msgstr "E97: Ne eblas krei dosierdiferencojn" +msgid "Patch file" +msgstr "Flika dosiero" + msgid "E816: Cannot read patch output" msgstr "E816: Ne eblas legi eliron de flikilo \"patch\"" @@ -406,13 +469,10 @@ msgstr "kongruo %d de %d" msgid "match %d" msgstr "kongruo %d" +#. maximum nesting of lists and dicts msgid "E18: Unexpected characters in :let" msgstr "E18: Neatenditaj signoj en \":let\"" -#, c-format -msgid "E684: list index out of range: %" -msgstr "E684: indekso de listo ekster limoj: %" - #, c-format msgid "E121: Undefined variable: %s" msgstr "E121: Nedifinita variablo: %s" @@ -420,41 +480,6 @@ msgstr "E121: Nedifinita variablo: %s" msgid "E111: Missing ']'" msgstr "E111: Mankas ']'" -#, c-format -msgid "E686: Argument of %s must be a List" -msgstr "E686: Argumento de %s devas esti Listo" - -#, c-format -msgid "E712: Argument of %s must be a List or Dictionary" -msgstr "E712: Argumento de %s devas esti Listo aŭ Vortaro" - -msgid "E714: List required" -msgstr "E714: Listo bezonata" - -msgid "E715: Dictionary required" -msgstr "E715: Vortaro bezonata" - -msgid "E928: String required" -msgstr "E928: Ĉeno bezonata" - -#, c-format -msgid "E118: Too many arguments for function: %s" -msgstr "E118: Tro da argumentoj por funkcio: %s" - -#, c-format -msgid "E716: Key not present in Dictionary: %s" -msgstr "E716: Ŝlosilo malekzistas en Vortaro: %s" - -#, c-format -msgid "E122: Function %s already exists, add ! to replace it" -msgstr "E122: La funkcio %s jam ekzistas (aldonu ! por anstataŭigi ĝin)" - -msgid "E717: Dictionary entry already exists" -msgstr "E717: Rikordo de vortaro jam ekzistas" - -msgid "E718: Funcref required" -msgstr "E718: Funcref bezonata" - msgid "E719: Cannot use [:] with a Dictionary" msgstr "E719: Uzo de [:] ne eblas kun Vortaro" @@ -513,7 +538,7 @@ msgstr "E109: Mankas ':' post '?'" msgid "E691: Can only compare List with List" msgstr "E691: Eblas nur kompari Liston kun Listo" -msgid "E692: Invalid operation for Lists" +msgid "E692: Invalid operation for List" msgstr "E692: Nevalida operacio de Listoj" msgid "E735: Can only compare Dictionary with Dictionary" @@ -522,9 +547,6 @@ msgstr "E735: Eblas nur kompari Vortaron kun Vortaro" msgid "E736: Invalid operation for Dictionary" msgstr "E736: Nevalida operacio de Vortaro" -msgid "E693: Can only compare Funcref with Funcref" -msgstr "E693: Eblas nur kompari Funcref kun Funcref" - msgid "E694: Invalid operation for Funcrefs" msgstr "E694: Nevalida operacio de Funcref-oj" @@ -675,30 +697,37 @@ msgstr "argumento de add()" msgid "E785: complete() can only be used in Insert mode" msgstr "E785: complete() uzeblas nur en Enmeta reĝimo" +#. +#. * Yes this is ugly, I don't particularly like it either. But doing it +#. * this way has the compelling advantage that translations need not to +#. * be touched at all. See below what 'ok' and 'ync' are used for. +#. msgid "&Ok" msgstr "&Bone" #, c-format -msgid "E737: Key already exists: %s" -msgstr "E737: Ŝlosilo jam ekzistas: %s" - -msgid "extend() argument" -msgstr "argumento de extend()" - -msgid "map() argument" -msgstr "argumento de map()" - -msgid "filter() argument" -msgstr "argumento de filter()" - -#, c-format -msgid "+-%s%3ld lines: " -msgstr "+-%s%3ld linioj: " +msgid "+-%s%3ld line: " +msgid_plural "+-%s%3ld lines: " +msgstr[0] "+-%s%3ld linio: " +msgstr[1] "+-%s%3ld linioj: " #, c-format msgid "E700: Unknown function: %s" msgstr "E700: Nekonata funkcio: %s" +msgid "E922: expected a dict" +msgstr "E922: vortaro atendita" + +msgid "E923: Second argument of function() must be a list or a dict" +msgstr "E923: Dua argumento de function() devas esti listo aŭ Vortaro" + +msgid "" +"&OK\n" +"&Cancel" +msgstr "" +"&Bone\n" +"&Rezigni" + msgid "called inputrestore() more often than inputsave()" msgstr "alvokis inputrestore() pli ofte ol inputsave()" @@ -708,6 +737,9 @@ msgstr "argumento de insert()" msgid "E786: Range not allowed" msgstr "E786: Amplekso nepermesebla" +msgid "E916: not a valid job" +msgstr "E916: nevalida tasko" + msgid "E701: Invalid type for len()" msgstr "E701: Nevalida datumtipo de len()" @@ -724,6 +756,16 @@ msgstr "E727: Komenco preter fino" msgid "" msgstr "" +msgid "E240: No connection to Vim server" +msgstr "E240: Neniu konekto al Vim-servilo" + +#, c-format +msgid "E241: Unable to send to %s" +msgstr "E241: Ne eblas sendi al %s" + +msgid "E277: Unable to read a server reply" +msgstr "E277: Ne eblas legi respondon de servilo" + msgid "remove() argument" msgstr "argumento de remove()" @@ -733,6 +775,9 @@ msgstr "E655: Tro da simbolaj ligiloj (ĉu estas ciklo?)" msgid "reverse() argument" msgstr "argumento de reverse()" +msgid "E258: Unable to send to client" +msgstr "E258: Ne eblas sendi al kliento" + #, c-format msgid "E927: Invalid action: '%s'" msgstr "E927: Nevalida ago: '%s'" @@ -740,266 +785,131 @@ msgstr "E927: Nevalida ago: '%s'" msgid "sort() argument" msgstr "argumento de sort()" -#, fuzzy -#~ msgid "uniq() argument" -#~ msgstr "argumento de add()" +msgid "uniq() argument" +msgstr "argumento de uniq()" msgid "E702: Sort compare function failed" -msgstr "E702: Ordiga funkcio fiaskis" +msgstr "E702: Ordiga funkcio malsukcesis" -#, fuzzy -#~ msgid "E882: Uniq compare function failed" -#~ msgstr "E702: Ordiga funkcio fiaskis" +msgid "E882: Uniq compare function failed" +msgstr "E882: kompara funkcio de uniq() malsukcesis" msgid "(Invalid)" msgstr "(Nevalida)" +#, c-format +msgid "E935: invalid submatch number: %d" +msgstr "E935: nevalida indekso de \"submatch\": %d" + msgid "E677: Error writing temp file" msgstr "E677: Eraro dum skribo de provizora dosiero" -msgid "E805: Using a Float as a Number" -msgstr "E805: Uzo de Glitpunktnombro kiel Nombro" - -msgid "E703: Using a Funcref as a Number" -msgstr "E703: Uzo de Funcref kiel Nombro" - -msgid "E745: Using a List as a Number" -msgstr "E745: Uzo de Listo kiel Nombro" - -msgid "E728: Using a Dictionary as a Number" -msgstr "E728: Uzo de Vortaro kiel Nombro" - -msgid "E891: Using a Funcref as a Float" -msgstr "E891: Uzo de Funcref kiel Glitpunktnombro" - -msgid "E892: Using a String as a Float" -msgstr "E892: Uzo de Ĉeno kiel Glitpunktnombro" - -msgid "E893: Using a List as a Float" -msgstr "E893: Uzo de Listo kiel Glitpunktnombro" - -msgid "E894: Using a Dictionary as a Float" -msgstr "E894: Uzo de Vortaro kiel Glitpunktnombro" - -msgid "E729: using Funcref as a String" -msgstr "E729: uzo de Funcref kiel Ĉeno" - -msgid "E730: using List as a String" -msgstr "E730: uzo de Listo kiel Ĉeno" - -msgid "E731: using Dictionary as a String" -msgstr "E731: uzo de Vortaro kiel Ĉeno" - -msgid "E908: using an invalid value as a String" -msgstr "E908: uzo de nevalida valoro kiel Ĉeno" - -#, c-format -msgid "E706: Variable type mismatch for: %s" -msgstr "E706: Nekongrua datumtipo de variablo: %s" - -#, c-format -msgid "E795: Cannot delete variable %s" -msgstr "E795: Ne eblas forviŝi variablon %s" +msgid "E921: Invalid callback argument" +msgstr "E921: Nevalida argumento de reagfunctio" #, c-format -msgid "E704: Funcref variable name must start with a capital: %s" -msgstr "E704: Nomo de variablo Funcref devas finiĝi per majusklo: %s" +msgid "<%s>%s%s %d, Hex %02x, Octal %03o" +msgstr "<%s>%s%s %d, Deksesuma %02x, Okuma %03o" #, c-format -msgid "E705: Variable name conflicts with existing function: %s" -msgstr "E705: Nomo de variablo konfliktas kun ekzistanta funkcio: %s" +msgid "> %d, Hex %04x, Octal %o" +msgstr "> %d, Deksesuma %04x, Okuma %o" #, c-format -msgid "E741: Value is locked: %s" -msgstr "E741: Valoro estas ŝlosita: %s" - -msgid "Unknown" -msgstr "Nekonata" +msgid "> %d, Hex %08x, Octal %o" +msgstr "> %d, Deksesuma %08x, Okuma %o" -#, c-format -msgid "E742: Cannot change value of %s" -msgstr "E742: Ne eblas ŝanĝi valoron de %s" +msgid "E134: Move lines into themselves" +msgstr "E134: Movas liniojn en ilin mem" -msgid "E698: variable nested too deep for making a copy" -msgstr "E698: variablo ingita tro profunde por fari kopion" +msgid "1 line moved" +msgstr "1 linio movita" #, c-format -msgid "E123: Undefined function: %s" -msgstr "E123: Nedifinita funkcio: %s" +msgid "%ld lines moved" +msgstr "%ld linioj movitaj" #, c-format -msgid "E124: Missing '(': %s" -msgstr "E124: Mankas '(': %s" +msgid "%ld lines filtered" +msgstr "%ld linioj filtritaj" -msgid "E862: Cannot use g: here" -msgstr "E862: Ne eblas uzi g: ĉi tie" +msgid "E135: *Filter* Autocommands must not change current buffer" +msgstr "E135: *Filtraj* Aŭtokomandoj ne rajtas ŝanĝi aktualan bufron" -#, c-format -msgid "E125: Illegal argument: %s" -msgstr "E125: Nevalida argumento: %s" +msgid "[No write since last change]\n" +msgstr "[Neniu skribo de post lasta ŝanĝo]\n" #, c-format -msgid "E853: Duplicate argument name: %s" -msgstr "E853: Ripetita nomo de argumento: %s" - -msgid "E126: Missing :endfunction" -msgstr "E126: Mankas \":endfunction\"" +msgid "%sviminfo: %s in line: " +msgstr "%sviminfo: %s en linio: " -#, c-format -msgid "E707: Function name conflicts with variable: %s" -msgstr "E707: Nomo de funkcio konfliktas kun variablo: %s" +msgid "E136: viminfo: Too many errors, skipping rest of file" +msgstr "E136: viminfo: Tro da eraroj, nun ignoras la reston de la dosiero" #, c-format -msgid "E127: Cannot redefine function %s: It is in use" -msgstr "E127: Ne eblas redifini funkcion %s: Estas nuntempe uzata" +msgid "Reading viminfo file \"%s\"%s%s%s" +msgstr "Legado de dosiero viminfo \"%s\"%s%s%s" -#, c-format -msgid "E746: Function name does not match script file name: %s" -msgstr "E746: Nomo de funkcio ne kongruas kun dosiernomo de skripto: %s" +msgid " info" +msgstr " informo" -msgid "E129: Function name required" -msgstr "E129: Nomo de funkcio bezonata" +msgid " marks" +msgstr " markoj" -#, fuzzy, c-format -#~ msgid "E128: Function name must start with a capital or \"s:\": %s" -#~ msgstr "E128: Nomo de funkcio devas eki per majusklo aŭ enhavi dupunkton: %s" +msgid " oldfiles" +msgstr " malnovaj dosieroj" -#, fuzzy, c-format -#~ msgid "E884: Function name cannot contain a colon: %s" -#~ msgstr "E128: Nomo de funkcio devas eki per majusklo aŭ enhavi dupunkton: %s" +msgid " FAILED" +msgstr " MALSUKCESIS" +#. avoid a wait_return for this message, it's annoying #, c-format -msgid "E131: Cannot delete function %s: It is in use" -msgstr "E131: Ne eblas forviŝi funkcion %s: Estas nuntempe uzata" - -msgid "E132: Function call depth is higher than 'maxfuncdepth'" -msgstr "E132: Profundo de funkcia alvoko superas 'maxfuncdepth'" +msgid "E137: Viminfo file is not writable: %s" +msgstr "E137: Dosiero viminfo ne skribeblas: %s" #, c-format -msgid "calling %s" -msgstr "alvokas %s" +msgid "E929: Too many viminfo temp files, like %s!" +msgstr "E929: Tro da provizoraj dosieroj viminfo, kiel %s!" #, c-format -msgid "%s aborted" -msgstr "%s ĉesigita" +msgid "E138: Can't write viminfo file %s!" +msgstr "E138: Ne eblas skribi dosieron viminfo %s!" #, c-format -msgid "%s returning #%" -msgstr "%s liveras #%" +msgid "Writing viminfo file \"%s\"" +msgstr "Skribas dosieron viminfo \"%s\"" #, c-format -msgid "%s returning %s" -msgstr "%s liveras %s" +msgid "E886: Can't rename viminfo file to %s!" +msgstr "E886: Ne eblas renomi dosieron viminfo al %s!" +#. Write the info: #, c-format -msgid "continuing in %s" -msgstr "daŭrigas en %s" - -msgid "E133: :return not inside a function" -msgstr "E133: \":return\" ekster funkcio" +msgid "# This viminfo file was generated by Vim %s.\n" +msgstr "# Tiu dosiero viminfo estis kreita de Vim %s.\n" msgid "" +"# You may edit it if you're careful!\n" "\n" -"# global variables:\n" msgstr "" +"# Vi povas redakti ĝin se vi estas singarda.\n" "\n" -"# mallokaj variabloj:\n" + +msgid "# Value of 'encoding' when this file was written\n" +msgstr "# Valoro de 'encoding' kiam tiu dosiero estis kreita\n" + +msgid "Illegal starting char" +msgstr "Nevalida eka signo" msgid "" "\n" -"\tLast set from " +"# Bar lines, copied verbatim:\n" msgstr "" "\n" -"\tLaste ŝaltita de " +"# Linioj komencantaj per |, kopiitaj sen ŝanĝo:\n" -msgid "No old files" -msgstr "Neniu malnova dosiero" - -#, c-format -msgid "<%s>%s%s %d, Hex %02x, Octal %03o" -msgstr "<%s>%s%s %d, Deksesuma %02x, Okuma %03o" - -#, c-format -msgid "> %d, Hex %04x, Octal %o" -msgstr "> %d, Deksesuma %04x, Okuma %o" - -#, c-format -msgid "> %d, Hex %08x, Octal %o" -msgstr "> %d, Deksesuma %08x, Okuma %o" - -msgid "E134: Move lines into themselves" -msgstr "E134: Movas liniojn en ilin mem" - -msgid "1 line moved" -msgstr "1 linio movita" - -#, c-format -msgid "% lines moved" -msgstr "% linioj movitaj" - -#, c-format -msgid "% lines filtered" -msgstr "% linioj filtritaj" - -msgid "E135: *Filter* Autocommands must not change current buffer" -msgstr "E135: *Filtraj* Aŭtokomandoj ne rajtas ŝanĝi aktualan bufron" - -msgid "[No write since last change]\n" -msgstr "[Neniu skribo de post lasta ŝanĝo]\n" - -#, c-format -msgid "%sviminfo: %s in line: " -msgstr "%sviminfo: %s en linio: " - -msgid "E136: viminfo: Too many errors, skipping rest of file" -msgstr "E136: viminfo: Tro da eraroj, nun ignoras la reston de la dosiero" - -#, c-format -msgid "Reading viminfo file \"%s\"%s%s%s" -msgstr "Legado de dosiero viminfo \"%s\"%s%s%s" - -msgid " info" -msgstr " informo" - -msgid " marks" -msgstr " markoj" - -msgid " oldfiles" -msgstr " malnovaj dosieroj" - -msgid " FAILED" -msgstr " FIASKIS" - -#. avoid a wait_return for this message, it's annoying -#, c-format -msgid "E137: Viminfo file is not writable: %s" -msgstr "E137: Dosiero viminfo ne skribeblas: %s" - -#, c-format -msgid "E138: Can't write viminfo file %s!" -msgstr "E138: Ne eblas skribi dosieron viminfo %s!" - -#, c-format -msgid "Writing viminfo file \"%s\"" -msgstr "Skribas dosieron viminfo \"%s\"" - -#. Write the info: -#, c-format -msgid "# This viminfo file was generated by Vim %s.\n" -msgstr "# Tiu dosiero viminfo estis kreita de Vim %s.\n" - -msgid "" -"# You may edit it if you're careful!\n" -"\n" -msgstr "" -"# Vi povas redakti ĝin se vi estas singarda.\n" -"\n" - -msgid "# Value of 'encoding' when this file was written\n" -msgstr "# Valoro de 'encoding' kiam tiu dosiero estis kreita\n" - -msgid "Illegal starting char" -msgstr "Nevalida eka signo" +msgid "Save As" +msgstr "Konservi kiel" msgid "Write partial file?" msgstr "Ĉu skribi partan dosieron?" @@ -1020,8 +930,8 @@ msgid "E768: Swap file exists: %s (:silent! overrides)" msgstr "E768: Permutodosiero .swp ekzistas: %s (:silent! por transpasi)" #, c-format -msgid "E141: No file name for buffer %" -msgstr "E141: Neniu dosiernomo de bufro %" +msgid "E141: No file name for buffer %ld" +msgstr "E141: Neniu dosiernomo de bufro %ld" msgid "E142: File not written: Writing is disabled by 'write' option" msgstr "E142: Dosiero ne skribita: Skribo malŝaltita per la opcio 'write'" @@ -1048,6 +958,9 @@ msgstr "" msgid "E505: \"%s\" is read-only (add ! to override)" msgstr "E505: \"%s\" estas nurlegebla (aldonu ! por transpasi)" +msgid "Edit File" +msgstr "Redakti dosieron" + #, c-format msgid "E143: Autocommands unexpectedly deleted new buffer %s" msgstr "E143: Aŭtokomandoj neatendite forviŝis novan bufron %s" @@ -1075,19 +988,19 @@ msgid "1 substitution" msgstr "1 anstataŭigo" #, c-format -msgid "% matches" -msgstr "% kongruoj" +msgid "%ld matches" +msgstr "%ld kongruoj" #, c-format -msgid "% substitutions" -msgstr "% anstataŭigoj" +msgid "%ld substitutions" +msgstr "%ld anstataŭigoj" msgid " on 1 line" msgstr " en 1 linio" #, c-format -msgid " on % lines" -msgstr " en % linioj" +msgid " on %ld lines" +msgstr " en %ld linioj" msgid "E147: Cannot do :global recursive" msgstr "E147: Ne eblas fari \":global\" rekursie" @@ -1129,10 +1042,6 @@ msgstr "E149: Bedaŭrinde estas neniu helpo por %s" msgid "Sorry, help file \"%s\" not found" msgstr "Bedaŭrinde, la helpdosiero \"%s\" ne troveblas" -#, c-format -msgid "E150: Not a directory: %s" -msgstr "E150: Ne estas dosierujo: %s" - #, c-format msgid "E151: No match: %s" msgstr "E151: Neniu kongruo: %s" @@ -1153,6 +1062,10 @@ msgstr "E670: Miksaĵo de kodoprezento de helpa dosiero en lingvo: %s" msgid "E154: Duplicate tag \"%s\" in file %s/%s" msgstr "E154: Ripetita etikedo \"%s\" en dosiero %s/%s" +#, c-format +msgid "E150: Not a directory: %s" +msgstr "E150: Ne estas dosierujo: %s" + #, c-format msgid "E160: Unknown sign command: %s" msgstr "E160: Nekonata simbola komando: %s" @@ -1182,8 +1095,15 @@ msgid "E934: Cannot jump to a buffer that does not have a name" msgstr "E934: Ne eblas salti al sennoma bufro" #, c-format -msgid "E157: Invalid sign ID: %" -msgstr "E157: Nevalida identigilo de simbolo: %" +msgid "E157: Invalid sign ID: %ld" +msgstr "E157: Nevalida identigilo de simbolo: %ld" + +#, c-format +msgid "E885: Not possible to change sign %s" +msgstr "E885: Ne eblas ŝanĝi simbolon %s" + +msgid " (NOT FOUND)" +msgstr " (NETROVITA)" msgid " (not supported)" msgstr " (nesubtenata)" @@ -1198,8 +1118,8 @@ msgid "Entering Debug mode. Type \"cont\" to continue." msgstr "Eniras sencimigan reĝimon. Tajpu \"cont\" por daŭrigi." #, c-format -msgid "line %: %s" -msgstr "linio %: %s" +msgid "line %ld: %s" +msgstr "linio %ld: %s" #, c-format msgid "cmd: %s" @@ -1213,8 +1133,8 @@ msgid "frame at highest level: %d" msgstr "kadro je la plej alta nivelo: %d" #, c-format -msgid "Breakpoint in \"%s%s\" line %" -msgstr "Kontrolpunkto en \"%s%s\" linio %" +msgid "Breakpoint in \"%s%s\" line %ld" +msgstr "Kontrolpunkto en \"%s%s\" linio %ld" #, c-format msgid "E161: Breakpoint not found: %s" @@ -1224,8 +1144,8 @@ msgid "No breakpoints defined" msgstr "Neniu kontrolpunkto estas difinita" #, c-format -msgid "%3d %s %s line %" -msgstr "%3d %s %s linio %" +msgid "%3d %s %s line %ld" +msgstr "%3d %s %s linio %ld" msgid "E750: First use \":profile start {fname}\"" msgstr "E750: Uzu unue \":profile start {dosiernomo}\"" @@ -1269,6 +1189,9 @@ msgstr "Serĉado de \"%s\"" msgid "not found in '%s': \"%s\"" msgstr "ne trovita en '%s: \"%s\"" +msgid "Source Vim script" +msgstr "Ruli Vim-skripton" + #, c-format msgid "Cannot source a directory: \"%s\"" msgstr "Ne eblas ruli dosierujon: \"%s\"" @@ -1278,16 +1201,16 @@ msgid "could not source \"%s\"" msgstr "ne eblis ruli \"%s\"" #, c-format -msgid "line %: could not source \"%s\"" -msgstr "linio %: ne eblis ruli \"%s\"" +msgid "line %ld: could not source \"%s\"" +msgstr "linio %ld: ne eblis ruli \"%s\"" #, c-format msgid "sourcing \"%s\"" msgstr "rulas \"%s\"" #, c-format -msgid "line %: sourcing \"%s\"" -msgstr "linio %: rulas \"%s\"" +msgid "line %ld: sourcing \"%s\"" +msgstr "linio %ld: rulas \"%s\"" #, c-format msgid "finished sourcing %s" @@ -1329,8 +1252,6 @@ msgstr "Aktuala %slingvo: \"%s\"" msgid "E197: Cannot set language to \"%s\"" msgstr "E197: Ne eblas ŝanĝi la lingvon al \"%s\"" -#. don't redisplay the window -#. don't wait for return msgid "Entering Ex mode. Type \"visual\" to go to Normal mode." msgstr "Eniras reĝimon Ex. Tajpu \"visual\" por iri al reĝimo Normala." @@ -1362,12 +1283,10 @@ msgstr "E493: Inversa amplekso donita" msgid "Backwards range given, OK to swap" msgstr "Inversa amplekso donita, permuteblas" -#. append -#. typed wrong msgid "E494: Use w or w>>" msgstr "E494: Uzu w aŭ w>>" -msgid "E319: The command is not available in this version" +msgid "E319: Sorry, the command is not available in this version" msgstr "E319: Bedaŭrinde, tiu komando ne haveblas en tiu versio" msgid "E172: Only one file name allowed" @@ -1384,8 +1303,8 @@ msgid "E173: 1 more file to edit" msgstr "E173: 1 plia redaktenda dosiero" #, c-format -msgid "E173: % more files to edit" -msgstr "E173: % pliaj redaktendaj dosieroj" +msgid "E173: %ld more files to edit" +msgstr "E173: %ld pliaj redaktendaj dosieroj" msgid "E174: Command already exists: add ! to replace it" msgstr "E174: La komando jam ekzistas: aldonu ! por anstataŭigi ĝin" @@ -1451,6 +1370,9 @@ msgstr "" msgid "E467: Custom completion requires a function argument" msgstr "E467: Uzula kompletigo bezonas funkcian argumenton" +msgid "unknown" +msgstr "nekonata" + #, c-format msgid "E185: Cannot find color scheme '%s'" msgstr "E185: Ne eblas trovi agordaron de koloroj '%s'" @@ -1464,6 +1386,9 @@ msgstr "E784: Ne eblas fermi lastan langeton" msgid "Already only one tab page" msgstr "Jam nur unu langeto" +msgid "Edit File in new window" +msgstr "Redakti Dosieron en nova fenestro" + #, c-format msgid "Tab page %d" msgstr "Langeto %d" @@ -1471,6 +1396,9 @@ msgstr "Langeto %d" msgid "No swap file" msgstr "Neniu permutodosiero .swp" +msgid "Append File" +msgstr "Postaldoni dosieron" + msgid "E747: Cannot change directory, buffer is modified (add ! to override)" msgstr "" "E747: Ne eblas ŝanĝi dosierujon, bufro estas ŝanĝita (aldonu ! por transpasi)" @@ -1484,6 +1412,10 @@ msgstr "E187: Nekonata" msgid "E465: :winsize requires two number arguments" msgstr "E465: \":winsize\" bezonas du numerajn argumentojn" +#, c-format +msgid "Window position: X %d, Y %d" +msgstr "Pozicio de fenestro: X %d, Y %d" + msgid "E188: Obtaining window position not implemented for this platform" msgstr "" "E188: Akiro de pozicio de fenestro ne estas realigita por tiu platformo" @@ -1491,6 +1423,22 @@ msgstr "" msgid "E466: :winpos requires two number arguments" msgstr "E466: \":winpos\" bezonas du numerajn argumentojn" +msgid "E930: Cannot use :redir inside execute()" +msgstr "E930: Ne eblas uzi :redir en execute()" + +msgid "Save Redirection" +msgstr "Konservi alidirekton" + +# DP: mi ne certas pri superflugo +msgid "Save View" +msgstr "Konservi superflugon" + +msgid "Save Session" +msgstr "Konservi seancon" + +msgid "Save Setup" +msgstr "Konservi agordaron" + #, c-format msgid "E739: Cannot create directory: %s" msgstr "E739: Ne eblas krei dosierujon %s" @@ -1510,6 +1458,9 @@ msgstr "E191: Argumento devas esti litero, citilo aŭ retrocitilo" msgid "E192: Recursive use of :normal too deep" msgstr "E192: Tro profunda rekursia alvoko de \":normal\"" +msgid "E809: #< is not available without the +eval feature" +msgstr "E809: #< ne haveblas sen la eblo +eval" + msgid "E194: No alternate file name to substitute for '#'" msgstr "E194: Neniu alterna dosiernomo por anstataŭigi al '#'" @@ -1532,9 +1483,9 @@ msgstr "E498: neniu dosiernomo \":source\" por anstataŭigi al \"\"" msgid "E842: no line number to use for \"\"" msgstr "E842: neniu uzebla numero de linio por \"\"" -#, fuzzy, c-format -#~ msgid "E499: Empty file name for '%' or '#', only works with \":p:h\"" -#~ msgstr "E499: Malplena dosiernomo por '%' aŭ '#', nur funkcias kun \":p:h\"" +#, no-c-format +msgid "E499: Empty file name for '%' or '#', only works with \":p:h\"" +msgstr "E499: Malplena dosiernomo por '%' aŭ '#', nur funkcias kun \":p:h\"" msgid "E500: Evaluates to an empty string" msgstr "E500: Liveras malplenan ĉenon" @@ -1542,6 +1493,9 @@ msgstr "E500: Liveras malplenan ĉenon" msgid "E195: Cannot open viminfo file for reading" msgstr "E195: Ne eblas malfermi dosieron viminfo en lega reĝimo" +msgid "E196: No digraphs in this version" +msgstr "E196: Neniu duliteraĵo en tiu versio" + msgid "E608: Cannot :throw exceptions with 'Vim' prefix" msgstr "E608: Ne eblas lanĉi (:throw) escepton kun prefikso 'Vim'" @@ -1559,8 +1513,8 @@ msgid "Exception discarded: %s" msgstr "Escepto ne konservita: %s" #, c-format -msgid "%s, line %" -msgstr "%s, linio %" +msgid "%s, line %ld" +msgstr "%s, linio %ld" #. always scroll up, don't overwrite #, c-format @@ -1693,33 +1647,6 @@ msgstr "E198: cmd_pchar preter la longo de komando" msgid "E199: Active window or buffer deleted" msgstr "E199: Aktiva fenestro aŭ bufro forviŝita" -msgid "E854: path too long for completion" -msgstr "E854: tro longa vojo por kompletigo" - -#, c-format -msgid "" -"E343: Invalid path: '**[number]' must be at the end of the path or be " -"followed by '%s'." -msgstr "" -"E343: Nevalida vojo: '**[nombro]' devas esti ĉe la fino de la vojo aŭ " -"sekvita de '%s'." - -#, c-format -msgid "E344: Can't find directory \"%s\" in cdpath" -msgstr "E344: Ne eblas trovi dosierujon \"%s\" en cdpath" - -#, c-format -msgid "E345: Can't find file \"%s\" in path" -msgstr "E345: Ne eblas trovi dosieron \"%s\" en serĉvojo" - -#, c-format -msgid "E346: No more directory \"%s\" found in cdpath" -msgstr "E346: Ne plu trovis dosierujon \"%s\" en cdpath" - -#, c-format -msgid "E347: No more file \"%s\" found in path" -msgstr "E347: Ne plu trovis dosieron \"%s\" en serĉvojo" - msgid "E812: Autocommands changed buffer or buffer name" msgstr "E812: Aŭtokomandoj ŝanĝis bufron aŭ nomon de bufro" @@ -1732,6 +1659,9 @@ msgstr "estas dosierujo" msgid "is not a file" msgstr "ne estas dosiero" +msgid "is a device (disabled with 'opendevice' option)" +msgstr "estas aparatdosiero (malŝaltita per la opcio 'opendevice')" + msgid "[New File]" msgstr "[Nova dosiero]" @@ -1750,26 +1680,25 @@ msgstr "E200: La aŭtokomandoj *ReadPre igis la dosieron nelegebla" msgid "E201: *ReadPre autocommands must not change current buffer" msgstr "E201: La aŭtokomandoj *ReadPre ne rajtas ŝanĝi la aktualan bufron" -msgid "Nvim: Reading from stdin...\n" +msgid "Vim: Reading from stdin...\n" msgstr "Vim: Legado el stdin...\n" +msgid "Reading from stdin..." +msgstr "Legado el stdin..." + #. Re-opening the original file failed! msgid "E202: Conversion made file unreadable!" msgstr "E202: Konverto igis la dosieron nelegebla!" -#. fifo or socket msgid "[fifo/socket]" msgstr "[rektvica memoro/kontaktoskatolo]" -#. fifo msgid "[fifo]" msgstr "[rektvica memoro]" -#. or socket msgid "[socket]" msgstr "[kontaktoskatolo]" -#. or character special msgid "[character special]" msgstr "[speciala signo]" @@ -1786,12 +1715,12 @@ msgid "[converted]" msgstr "[konvertita]" #, c-format -msgid "[CONVERSION ERROR in line %]" -msgstr "[ERARO DE KONVERTO en linio %]" +msgid "[CONVERSION ERROR in line %ld]" +msgstr "[ERARO DE KONVERTO en linio %ld]" #, c-format -msgid "[ILLEGAL BYTE in line %]" -msgstr "[NEVALIDA BAJTO en linio %]" +msgid "[ILLEGAL BYTE in line %ld]" +msgstr "[NEVALIDA BAJTO en linio %ld]" msgid "[READ ERRORS]" msgstr "[ERAROJ DE LEGADO]" @@ -1800,7 +1729,7 @@ msgid "Can't find temp file for conversion" msgstr "Ne eblas trovi provizoran dosieron por konverti" msgid "Conversion with 'charconvert' failed" -msgstr "Konverto kun 'charconvert' fiaskis" +msgstr "Konverto kun 'charconvert' malsukcesis" msgid "can't read output of 'charconvert'" msgstr "ne eblas legi la eligon de 'charconvert'" @@ -1814,9 +1743,18 @@ msgstr "E203: Aŭtokomandoj forviŝis aŭ malŝargis la skribendan bufron" msgid "E204: Autocommand changed number of lines in unexpected way" msgstr "E204: Aŭtokomando ŝanĝis la nombron de linioj neatendite" +msgid "NetBeans disallows writes of unmodified buffers" +msgstr "NetBeans malpermesas skribojn de neŝanĝitaj bufroj" + +msgid "Partial writes disallowed for NetBeans buffers" +msgstr "Partaj skriboj malpermesitaj ĉe bufroj NetBeans" + msgid "is not a file or writable device" msgstr "ne estas dosiero aŭ skribebla aparatdosiero" +msgid "writing to device disabled with 'opendevice' option" +msgstr "skribo al aparatdosiero malŝaltita per la opcio 'opendevice'" + msgid "is read-only (add ! to override)" msgstr "estas nurlegebla (aldonu ! por transpasi)" @@ -1835,7 +1773,9 @@ msgstr "E509: Ne eblas krei restaŭrkopion (aldonu ! por transpasi)" msgid "E510: Can't make backup file (add ! to override)" msgstr "E510: Ne eblas krei restaŭrkopion (aldonu ! por transpasi)" -#. Can't write without a tempfile! +msgid "E460: The resource fork would be lost (add ! to override)" +msgstr "E460: La rimeda forko estus perdita (aldonu ! por transpasi)" + msgid "E214: Can't find temp file for writing" msgstr "E214: Ne eblas trovi provizoran dosieron por skribi" @@ -1850,20 +1790,21 @@ msgstr "E212: Ne eblas malfermi la dosieron por skribi" # AM: fsync: ne traduku (nomo de C-komando) msgid "E667: Fsync failed" -msgstr "E667: Fsync fiaskis" +msgstr "E667: Fsync malsukcesis" msgid "E512: Close failed" -msgstr "E512: Fermo fiaskis" +msgstr "E512: Fermo malsukcesis" msgid "E513: write error, conversion failed (make 'fenc' empty to override)" -msgstr "E513: skriberaro, konverto fiaskis (igu 'fenc' malplena por transpasi)" +msgstr "" +"E513: skriberaro, konverto malsukcesis (igu 'fenc' malplena por transpasi)" #, c-format msgid "" -"E513: write error, conversion failed in line % (make 'fenc' empty to " +"E513: write error, conversion failed in line %ld (make 'fenc' empty to " "override)" msgstr "" -"E513: skriberaro, konverto fiaskis en linio % (igu 'fenc' malplena " +"E513: skriberaro, konverto malsukcesis en linio %ld (igu 'fenc' malplena " "por transpasi)" msgid "E514: write error (file system full?)" @@ -1873,8 +1814,8 @@ msgid " CONVERSION ERROR" msgstr " ERARO DE KONVERTO" #, c-format -msgid " in line %;" -msgstr " en linio %;" +msgid " in line %ld;" +msgstr " en linio %ld;" msgid "[Device]" msgstr "[Aparatdosiero]" @@ -1935,15 +1876,15 @@ msgid "1 line, " msgstr "1 linio, " #, c-format -msgid "% lines, " -msgstr "% linioj, " +msgid "%ld lines, " +msgstr "%ld linioj, " msgid "1 character" msgstr "1 signo" #, c-format -msgid "% characters" -msgstr "% signoj" +msgid "%lld characters" +msgstr "%lld signoj" msgid "[noeol]" msgstr "[sen EOL]" @@ -2025,6 +1966,9 @@ msgstr "E462: Ne eblis prepari por reŝargi \"%s\"" msgid "E321: Could not reload \"%s\"" msgstr "E321: Ne eblis reŝargi \"%s\"" +msgid "--Deleted--" +msgstr "--Forviŝita--" + #, c-format msgid "auto-removing autocommand: %s " msgstr "aŭto-forviŝas aŭtokomandon: %s " @@ -2034,12 +1978,12 @@ msgstr "aŭto-forviŝas aŭtokomandon: %s " msgid "E367: No such group: \"%s\"" msgstr "E367: Ne ekzistas tia grupo: \"%s\"" +msgid "E936: Cannot delete the current group" +msgstr "E936: Ne eblas forviŝi la aktualan grupon" + msgid "W19: Deleting augroup that is still in use" msgstr "W19: Forviŝo de augroup kiu estas ankoraŭ uzata" -msgid "--Deleted--" -msgstr "--Forviŝita--" - #, c-format msgid "E215: Illegal character after *: %s" msgstr "E215: Nevalida signo post *: %s" @@ -2106,7 +2050,6 @@ msgid_plural "+--%3ld lines folded " msgstr[0] "+--%3ld linio faldita " msgstr[1] "+--%3ld linioj falditaj " -#. buffer has already been read msgid "E222: Add to read buffer" msgstr "E222: Aldoni al lega bufro" @@ -2138,329 +2081,294 @@ msgstr "Neniu mapo trovita" msgid "E228: makemap: Illegal mode" msgstr "E228: makemap: Nevalida reĝimo" -#. key value of 'cedit' option -#. type of cmdline window or 0 -#. result of cmdline window or 0 -msgid "--No lines in buffer--" -msgstr "--Neniu linio en bufro--" +msgid "E851: Failed to create a new process for the GUI" +msgstr "E851: Malsukcesis krei novan procezon por la grafika interfaco" -#. -#. * The error messages that can be shared are included here. -#. * Excluded are errors that are only used once and debugging messages. -#. -msgid "E470: Command aborted" -msgstr "E470: komando ĉesigita" +msgid "E852: The child process failed to start the GUI" +msgstr "E852: La ida procezo malsukcesis startigi la grafikan interfacon" -msgid "E471: Argument required" -msgstr "E471: Argumento bezonata" +msgid "E229: Cannot start the GUI" +msgstr "E229: Ne eblas lanĉi la grafikan interfacon" -msgid "E10: \\ should be followed by /, ? or &" -msgstr "E10: \\ devus esti sekvita de /, ? aŭ &" +#, c-format +msgid "E230: Cannot read from \"%s\"" +msgstr "E230: Ne eblas legi el \"%s\"" -msgid "E11: Invalid in command-line window; executes, CTRL-C quits" +msgid "E665: Cannot start GUI, no valid font found" msgstr "" -"E11: Nevalida en fenestro de komanda linio; plenumas, CTRL-C eliras" +"E665: Ne eblas startigi grafikan interfacon, neniu valida tiparo trovita" -msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" -msgstr "" -"E12: Nepermesebla komando el exrc/vimrc en aktuala dosierujo aŭ etikeda serĉo" +msgid "E231: 'guifontwide' invalid" +msgstr "E231: 'guifontwide' nevalida" -msgid "E171: Missing :endif" -msgstr "E171: Mankas \":endif\"" +msgid "E599: Value of 'imactivatekey' is invalid" +msgstr "E599: Valoro de 'imactivatekey' estas nevalida" -msgid "E600: Missing :endtry" -msgstr "E600: Mankas \":endtry\"" +#, c-format +msgid "E254: Cannot allocate color %s" +msgstr "E254: Ne eblas disponigi koloron %s" -msgid "E170: Missing :endwhile" -msgstr "E170: Mankas \":endwhile\"" +msgid "No match at cursor, finding next" +msgstr "Neniu kongruo ĉe kursorpozicio, trovas sekvan" -msgid "E170: Missing :endfor" -msgstr "E170: Mankas \":endfor\"" +msgid " " +msgstr " " -msgid "E588: :endwhile without :while" -msgstr "E588: \":endwhile\" sen \":while\"" +#, c-format +msgid "E616: vim_SelFile: can't get font %s" +msgstr "E616: vim_SelFile: ne eblas akiri tiparon %s" -msgid "E588: :endfor without :for" -msgstr "E588: \":endfor\" sen \":for\"" +msgid "E614: vim_SelFile: can't return to current directory" +msgstr "E614: vim_SelFile: ne eblas reveni al la aktuala dosierujo" -msgid "E13: File exists (add ! to override)" -msgstr "E13: Dosiero ekzistas (aldonu ! por transpasi)" +msgid "Pathname:" +msgstr "Serĉvojo:" -msgid "E472: Command failed" -msgstr "E472: La komando fiaskis" +msgid "E615: vim_SelFile: can't get current directory" +msgstr "E615: vim_SelFile: ne eblas akiri aktualan dosierujon" -msgid "E473: Internal error" -msgstr "E473: Interna eraro" +msgid "OK" +msgstr "Bone" -msgid "Interrupted" -msgstr "Interrompita" +msgid "Cancel" +msgstr "Rezigni" -msgid "E14: Invalid address" -msgstr "E14: Nevalida adreso" +msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." +msgstr "" +"Fenestraĵo de rulumskalo: Ne eblis akiri geometrion de reduktita rastrumbildo" -msgid "E474: Invalid argument" -msgstr "E474: Nevalida argumento" +msgid "Vim dialog" +msgstr "Vim dialogo" -#, c-format -msgid "E475: Invalid argument: %s" -msgstr "E475: Nevalida argumento: %s" +msgid "E232: Cannot create BalloonEval with both message and callback" +msgstr "E232: Ne eblas krei BalloonEval kun ambaŭ mesaĝo kaj reagfunkcio" -#, c-format -msgid "E15: Invalid expression: %s" -msgstr "E15: Nevalida esprimo: %s" +msgid "_Cancel" +msgstr "_Rezigni" -msgid "E16: Invalid range" -msgstr "E16: Nevalida amplekso" +msgid "_Save" +msgstr "_Konservi" -msgid "E476: Invalid command" -msgstr "E476: Nevalida komando" +msgid "_Open" +msgstr "_Malfermi" -#, c-format -msgid "E17: \"%s\" is a directory" -msgstr "E17: \"%s\" estas dosierujo" +msgid "_OK" +msgstr "_Bone" -#, fuzzy -#~ msgid "E900: Invalid job id" -#~ msgstr "E49: Nevalida grando de rulumo" +msgid "" +"&Yes\n" +"&No\n" +"&Cancel" +msgstr "" +"&Jes\n" +"&Ne\n" +"&Rezigni" -#~ msgid "E901: Job table is full" -#~ msgstr "" +msgid "Yes" +msgstr "Jes" -#, c-format -msgid "E364: Library call failed for \"%s()\"" -msgstr "E364: Alvoko al biblioteko fiaskis por \"%s()\"" +msgid "No" +msgstr "Ne" -msgid "E19: Mark has invalid line number" -msgstr "E19: Marko havas nevalidan numeron de linio" +# todo '_' is for hotkey, i guess? +msgid "Input _Methods" +msgstr "Enigaj _metodoj" -msgid "E20: Mark not set" -msgstr "E20: Marko ne estas agordita" +msgid "VIM - Search and Replace..." +msgstr "VIM - Serĉi kaj anstataŭigi..." -msgid "E21: Cannot make changes, 'modifiable' is off" -msgstr "E21: Ne eblas fari ŝanĝojn, 'modifiable' estas malŝaltita" +msgid "VIM - Search..." +msgstr "VIM- Serĉi..." -msgid "E22: Scripts nested too deep" -msgstr "E22: Tro profunde ingitaj skriptoj" +msgid "Find what:" +msgstr "Serĉi kion:" -msgid "E23: No alternate file" -msgstr "E23: Neniu alterna dosiero" +msgid "Replace with:" +msgstr "Anstataŭigi per:" -msgid "E24: No such abbreviation" -msgstr "E24: Ne estas tia mallongigo" +#. whole word only button +msgid "Match whole word only" +msgstr "Kongrui kun nur plena vorto" -msgid "E477: No ! allowed" -msgstr "E477: Neniu ! permesebla" +#. match case button +msgid "Match case" +msgstr "Uskleca kongruo" -msgid "E25: Nvim does not have a built-in GUI" -msgstr "E25: Grafika interfaco ne uzeblas: Malŝaltita dum kompilado" +msgid "Direction" +msgstr "Direkto" -#, c-format -msgid "E28: No such highlight group name: %s" -msgstr "E28: Neniu grupo de emfazo kiel: %s" +#. 'Up' and 'Down' buttons +msgid "Up" +msgstr "Supren" -msgid "E29: No inserted text yet" -msgstr "E29: Ankoraŭ neniu enmetita teksto" +msgid "Down" +msgstr "Suben" -msgid "E30: No previous command line" -msgstr "E30: Neniu antaŭa komanda linio" +msgid "Find Next" +msgstr "Trovi sekvantan" -msgid "E31: No such mapping" -msgstr "E31: Neniu tiel mapo" +msgid "Replace" +msgstr "Anstataŭigi" -msgid "E479: No match" -msgstr "E479: Neniu kongruo" +msgid "Replace All" +msgstr "Anstataŭigi ĉiujn" -#, c-format -msgid "E480: No match: %s" -msgstr "E480: Neniu kongruo: %s" +msgid "_Close" +msgstr "_Fermi" -msgid "E32: No file name" -msgstr "E32: Neniu dosiernomo" +msgid "Vim: Received \"die\" request from session manager\n" +msgstr "Vim: Ricevis peton \"die\" (morti) el la seanca administrilo\n" -msgid "E33: No previous substitute regular expression" -msgstr "E33: Neniu antaŭa regulesprimo de anstataŭigo" +msgid "Close tab" +msgstr "Fermi langeton" -msgid "E34: No previous command" -msgstr "E34: Neniu antaŭa komando" +msgid "New tab" +msgstr "Nova langeto" -msgid "E35: No previous regular expression" -msgstr "E35: Neniu antaŭa regulesprimo" - -msgid "E481: No range allowed" -msgstr "E481: Amplekso nepermesebla" - -msgid "E36: Not enough room" -msgstr "E36: Ne sufiĉe da spaco" - -#, c-format -msgid "E482: Can't create file %s" -msgstr "E482: Ne eblas krei dosieron %s" +msgid "Open Tab..." +msgstr "Malfermi langeton..." -msgid "E483: Can't get temp file name" -msgstr "E483: Ne eblas akiri provizoran dosiernomon" +msgid "Vim: Main window unexpectedly destroyed\n" +msgstr "Vim: Ĉefa fenestro neatendite detruiĝis\n" -#, c-format -msgid "E484: Can't open file %s" -msgstr "E484: Ne eblas malfermi dosieron %s" +msgid "&Filter" +msgstr "&Filtri" -#, c-format -msgid "E485: Can't read file %s" -msgstr "E485: Ne eblas legi dosieron %s" +msgid "&Cancel" +msgstr "&Rezigni" -msgid "E37: No write since last change (add ! to override)" -msgstr "E37: Neniu skribo de post lasta ŝanĝo (aldonu ! por transpasi)" +msgid "Directories" +msgstr "Dosierujoj" -#, fuzzy -#~ msgid "E37: No write since last change" -#~ msgstr "[Neniu skribo de post lasta ŝanĝo]\n" +msgid "Filter" +msgstr "Filtri" -msgid "E38: Null argument" -msgstr "E38: Nula argumento" +msgid "&Help" +msgstr "&Helpo" -msgid "E39: Number expected" -msgstr "E39: Nombro atendita" +msgid "Files" +msgstr "Dosieroj" -#, c-format -msgid "E40: Can't open errorfile %s" -msgstr "E40: Ne eblas malfermi eraran dosieron %s" +msgid "&OK" +msgstr "&Bone" -msgid "E41: Out of memory!" -msgstr "E41: Ne plu restas memoro!" +msgid "Selection" +msgstr "Apartigo" -msgid "Pattern not found" -msgstr "Ŝablono ne trovita" +msgid "Find &Next" +msgstr "Trovi &Sekvanta" -#, c-format -msgid "E486: Pattern not found: %s" -msgstr "E486: Ŝablono ne trovita: %s" +msgid "&Replace" +msgstr "&Anstataŭigi" -msgid "E487: Argument must be positive" -msgstr "E487: La argumento devas esti pozitiva" +msgid "Replace &All" +msgstr "Anstataŭigi ĉi&on" -msgid "E459: Cannot go back to previous directory" -msgstr "E459: Ne eblas reiri al antaŭa dosierujo" +msgid "&Undo" +msgstr "&Malfari" -msgid "E42: No Errors" -msgstr "E42: Neniu eraro" +msgid "Open tab..." +msgstr "Malfermi langeton..." -msgid "E776: No location list" -msgstr "E776: Neniu listo de loko" +msgid "Find string (use '\\\\' to find a '\\')" +msgstr "Trovi ĉenon (uzu '\\\\' por trovi '\\')" -msgid "E43: Damaged match string" -msgstr "E43: Difekta kongruenda ĉeno" +msgid "Find & Replace (use '\\\\' to find a '\\')" +msgstr "Trovi kaj anstataŭigi (uzu '\\\\' por trovi '\\')" -msgid "E44: Corrupted regexp program" -msgstr "E44: Difekta programo de regulesprimo" +#. We fake this: Use a filter that doesn't select anything and a default +#. * file name that won't be used. +msgid "Not Used" +msgstr "Ne uzata" -msgid "E45: 'readonly' option is set (add ! to override)" -msgstr "E45: La opcio 'readonly' estas ŝaltita '(aldonu ! por transpasi)" +msgid "Directory\t*.nothing\n" +msgstr "Dosierujo\t*.nenio\n" #, c-format -msgid "E46: Cannot change read-only variable \"%s\"" -msgstr "E46: Ne eblas ŝanĝi nurlegeblan variablon \"%s\"" +msgid "E671: Cannot find window title \"%s\"" +msgstr "E671: Ne eblas trovi titolon de fenestro \"%s\"" #, c-format -msgid "E794: Cannot set variable in the sandbox: \"%s\"" -msgstr "E794: Ne eblas agordi variablon en la sabloludejo: \"%s\"" - -msgid "E713: Cannot use empty key for Dictionary" -msgstr "E713: Ne eblas uzi malplenan ŝlosilon de Vortaro" - -msgid "E47: Error while reading errorfile" -msgstr "E47: Eraro dum legado de erardosiero" - -msgid "E48: Not allowed in sandbox" -msgstr "E48: Nepermesebla en sabloludejo" - -msgid "E523: Not allowed here" -msgstr "E523: Nepermesebla tie" - -msgid "E359: Screen mode setting not supported" -msgstr "E359: Reĝimo de ekrano ne subtenata" - -msgid "E49: Invalid scroll size" -msgstr "E49: Nevalida grando de rulumo" - -msgid "E91: 'shell' option is empty" -msgstr "E91: La opcio 'shell' estas malplena" - -msgid "E255: Couldn't read in sign data!" -msgstr "E255: Ne eblis legi datumojn de simboloj!" - -msgid "E72: Close error on swap file" -msgstr "E72: Eraro dum malfermo de permutodosiero .swp" +msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." +msgstr "E243: Ne subtenata argumento: \"-%s\"; Uzu la version OLE." -msgid "E73: tag stack empty" -msgstr "E73: malplena stako de etikedo" - -msgid "E74: Command too complex" -msgstr "E74: Komando tro kompleksa" +msgid "E672: Unable to open window inside MDI application" +msgstr "E672: Ne eblas malfermi fenestron interne de aplikaĵo MDI" -msgid "E75: Name too long" -msgstr "E75: Nomo tro longa" +msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" +msgstr "" +"Vim E458: Ne eblas disponigi rikordon de kolormapo, iuj koloroj estas eble " +"neĝustaj" -msgid "E76: Too many [" -msgstr "E76: Tro da [" +#, c-format +msgid "E250: Fonts for the following charsets are missing in fontset %s:" +msgstr "E250: Tiparoj de tiuj signaroj mankas en aro de tiparo %s:" -msgid "E77: Too many file names" -msgstr "E77: Tro da dosiernomoj" +#, c-format +msgid "E252: Fontset name: %s" +msgstr "E252: Nomo de tiparo: %s" -msgid "E488: Trailing characters" -msgstr "E488: Vostaj signoj" +#, c-format +msgid "Font '%s' is not fixed-width" +msgstr "Tiparo '%s' ne estas egallarĝa" -msgid "E78: Unknown mark" -msgstr "E78: Nekonata marko" +#, c-format +msgid "E253: Fontset name: %s" +msgstr "E253: Nomo de tiparo: %s" -msgid "E79: Cannot expand wildcards" -msgstr "E79: Ne eblas malvolvi ĵokerojn" +#, c-format +msgid "Font0: %s" +msgstr "Font0: %s" -msgid "E591: 'winheight' cannot be smaller than 'winminheight'" -msgstr "E591: 'winheight' ne rajtas esti malpli ol 'winminheight'" +#, c-format +msgid "Font1: %s" +msgstr "Font1: %s" -msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" -msgstr "E592: 'winwidth' ne rajtas esti malpli ol 'winminwidth'" +#, c-format +msgid "Font%ld width is not twice that of font0" +msgstr "Font%ld ne estas duoble pli larĝa ol font0" -msgid "E80: Error while writing" -msgstr "E80: Eraro dum skribado" +#, c-format +msgid "Font0 width: %ld" +msgstr "Larĝo de font0: %ld" -msgid "Zero count" -msgstr "Nul kvantoro" +#, c-format +msgid "Font1 width: %ld" +msgstr "Larĝo de Font1: %ld" -msgid "E81: Using not in a script context" -msgstr "E81: Uzo de ekster kunteksto de skripto" +msgid "Invalid font specification" +msgstr "Nevalida tiparo specifita" -#, c-format -msgid "E685: Internal error: %s" -msgstr "E685: Interna eraro: %s" +msgid "&Dismiss" +msgstr "&Forlasi" -msgid "E363: pattern uses more memory than 'maxmempattern'" -msgstr "E363: ŝablono uzas pli da memoro ol 'maxmempattern'" +msgid "no specific match" +msgstr "Neniu specifa kongruo" -msgid "E749: empty buffer" -msgstr "E749: malplena bufro" +msgid "Vim - Font Selector" +msgstr "Vim - Elektilo de tiparo" -#, c-format -msgid "E86: Buffer % does not exist" -msgstr "E86: La bufro % ne ekzistas" +msgid "Name:" +msgstr "Nomo:" -msgid "E682: Invalid search pattern or delimiter" -msgstr "E682: Nevalida serĉa ŝablono aŭ disigilo" +#. create toggle button +msgid "Show size in Points" +msgstr "Montri grandon en punktoj" -msgid "E139: File is loaded in another buffer" -msgstr "E139: Dosiero estas ŝargita en alia bufro" +msgid "Encoding:" +msgstr "Kodoprezento:" -#, c-format -msgid "E764: Option '%s' is not set" -msgstr "E764: La opcio '%s' ne estas ŝaltita" +msgid "Font:" +msgstr "Tiparo:" -msgid "E850: Invalid register name" -msgstr "E850: Nevalida nomo de reĝistro" +msgid "Style:" +msgstr "Stilo:" -msgid "search hit TOP, continuing at BOTTOM" -msgstr "serĉo atingis SUPRON, daŭrigonte al SUBO" +msgid "Size:" +msgstr "Grando:" -msgid "search hit BOTTOM, continuing at TOP" -msgstr "serĉo atingis SUBON, daŭrigonte al SUPRO" +msgid "E256: Hangul automata ERROR" +msgstr "E256: ERARO en aŭtomato de korea alfabeto" msgid "E550: Missing colon" msgstr "E550: Mankas dupunkto" @@ -2551,7 +2459,7 @@ msgid "Sending to printer..." msgstr "Sendas al presilo..." msgid "E365: Failed to print PostScript file" -msgstr "E365: Presado de PostSkripta dosiero fiaskis" +msgstr "E365: Presado de PostSkripta dosiero malsukcesis" msgid "Print job sent." msgstr "Laboro de presado sendita." @@ -2591,6 +2499,9 @@ msgstr "E257: cstag: etikedo netrovita" msgid "E563: stat(%s) error: %d" msgstr "E563: Eraro de stat(%s): %d" +msgid "E563: stat error" +msgstr "E563: Eraro de stat" + #, c-format msgid "E564: %s is not a directory or a valid cscope database" msgstr "E564: %s ne estas dosierujo aŭ valida datumbazo de cscope" @@ -2600,8 +2511,8 @@ msgid "Added cscope database %s" msgstr "Aldonis datumbazon de cscope %s" #, c-format -msgid "E262: error reading cscope connection %" -msgstr "E262: eraro dum legado de konekto de cscope %" +msgid "E262: error reading cscope connection %ld" +msgstr "E262: eraro dum legado de konekto de cscope %ld" msgid "E561: unknown cscope search type" msgstr "E561: nekonata tipo de serĉo de cscope" @@ -2612,18 +2523,17 @@ msgstr "E566: Ne eblis krei duktojn de cscope" msgid "E622: Could not fork for cscope" msgstr "E622: Ne eblis forki cscope" -#, fuzzy -#~ msgid "cs_create_connection setpgid failed" -#~ msgstr "plenumo de cs_create_connection fiaskis" +msgid "cs_create_connection setpgid failed" +msgstr "plenumo de cs_create_connection-setgpid malsukcesis" msgid "cs_create_connection exec failed" -msgstr "plenumo de cs_create_connection fiaskis" +msgstr "plenumo de cs_create_connection malsukcesis" msgid "cs_create_connection: fdopen for to_fp failed" -msgstr "cs_create_connection: fdopen de to_fp fiaskis" +msgstr "cs_create_connection: fdopen de to_fp malsukcesis" msgid "cs_create_connection: fdopen for fr_fp failed" -msgstr "cs_create_connection: fdopen de fr_fp fiaskis" +msgstr "cs_create_connection: fdopen de fr_fp malsukcesis" msgid "E623: Could not spawn cscope process" msgstr "E623: Ne eblis naskigi procezon cscope" @@ -2669,6 +2579,13 @@ msgstr "" " s: Trovi tiun C-simbolon\n" " t: Trovi tiun ĉenon\n" +#, c-format +msgid "E625: cannot open cscope database: %s" +msgstr "E625: ne eblas malfermi datumbazon de cscope: %s" + +msgid "E626: cannot get cscope database information" +msgstr "E626: ne eblas akiri informojn pri la datumbazo de cscope" + msgid "E568: duplicate cscope database not added" msgstr "E568: ripetita datumbazo de cscope ne aldonita" @@ -2711,6 +2628,222 @@ msgstr "neniu konekto de cscope\n" msgid " # pid database name prepend path\n" msgstr " # pid nomo de datumbazo prefiksa vojo\n" +msgid "Lua library cannot be loaded." +msgstr "La biblioteko Lua no ŝargeblis." + +msgid "cannot save undo information" +msgstr "ne eblas konservi informojn de malfaro" + +msgid "" +"E815: Sorry, this command is disabled, the MzScheme libraries could not be " +"loaded." +msgstr "" +"E815: Bedaŭrinde, tiu komando estas malŝaltita, ne eblis ŝargi la " +"bibliotekojn." + +msgid "" +"E895: Sorry, this command is disabled, the MzScheme's racket/base module " +"could not be loaded." +msgstr "" +"E895: Bedaŭrinde, tiu komando estas malŝaltita, ne eblis ŝargi la modulon de " +"MzScheme racket/base." + +msgid "invalid expression" +msgstr "nevalida esprimo" + +msgid "expressions disabled at compile time" +msgstr "esprimoj malŝaltitaj dum kompilado" + +msgid "hidden option" +msgstr "kaŝita opcio" + +msgid "unknown option" +msgstr "nekonata opcio" + +msgid "window index is out of range" +msgstr "indekso de fenestro estas ekster limoj" + +msgid "couldn't open buffer" +msgstr "ne eblis malfermi bufron" + +msgid "cannot delete line" +msgstr "ne eblas forviŝi linion" + +msgid "cannot replace line" +msgstr "ne eblas anstataŭigi linion" + +msgid "cannot insert line" +msgstr "ne eblas enmeti linion" + +msgid "string cannot contain newlines" +msgstr "ĉeno ne rajtas enhavi liniavancojn" + +msgid "error converting Scheme values to Vim" +msgstr "eraro dum konverto de Scheme-valoro al Vim" + +msgid "Vim error: ~a" +msgstr "Eraro de Vim: ~a" + +msgid "Vim error" +msgstr "Eraro de Vim" + +msgid "buffer is invalid" +msgstr "bufro estas nevalida" + +msgid "window is invalid" +msgstr "fenestro estas nevalida" + +msgid "linenr out of range" +msgstr "numero de linio ekster limoj" + +msgid "not allowed in the Vim sandbox" +msgstr "nepermesebla en sabloludejo de Vim" + +msgid "E836: This Vim cannot execute :python after using :py3" +msgstr "E836: Vim ne povas plenumi :python post uzo de :py3" + +msgid "" +"E263: Sorry, this command is disabled, the Python library could not be " +"loaded." +msgstr "" +"E263: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Pitono ne " +"ŝargeblis." + +msgid "" +"E887: Sorry, this command is disabled, the Python's site module could not be " +"loaded." +msgstr "" +"E887` Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Pitono ne " +"ŝargeblis." + +msgid "E659: Cannot invoke Python recursively" +msgstr "E659: Ne eblas alvoki Pitonon rekursie" + +msgid "E837: This Vim cannot execute :py3 after using :python" +msgstr "E837: Vim ne povas plenumi :py3 post uzo de :python" + +msgid "E265: $_ must be an instance of String" +msgstr "E265: $_ devas esti apero de Ĉeno" + +msgid "" +"E266: Sorry, this command is disabled, the Ruby library could not be loaded." +msgstr "" +"E266: Bedaŭrinde tiu komando estas malŝaltita, la biblioteko Ruby ne " +"ŝargeblis." + +msgid "E267: unexpected return" +msgstr "E267: \"return\" neatendita" + +msgid "E268: unexpected next" +msgstr "E268: \"next\" neatendita" + +msgid "E269: unexpected break" +msgstr "E269: \"break\" neatendita" + +msgid "E270: unexpected redo" +msgstr "E270: \"redo\" neatendita" + +msgid "E271: retry outside of rescue clause" +msgstr "E271: \"retry\" ekster klaŭzo \"rescue\"" + +msgid "E272: unhandled exception" +msgstr "E272: netraktita escepto" + +#, c-format +msgid "E273: unknown longjmp status %d" +msgstr "E273: nekonata stato de longjmp: %d" + +msgid "invalid buffer number" +msgstr "nevalida numero de bufro" + +msgid "not implemented yet" +msgstr "ankoraŭ ne realigita" + +#. ??? +msgid "cannot set line(s)" +msgstr "ne eblas meti la linio(j)n" + +msgid "invalid mark name" +msgstr "nevalida nomo de marko" + +msgid "mark not set" +msgstr "marko ne estas metita" + +#, c-format +msgid "row %d column %d" +msgstr "linio %d kolumno %d" + +msgid "cannot insert/append line" +msgstr "ne eblas enmeti/postaldoni linion" + +msgid "line number out of range" +msgstr "numero de linio ekster limoj" + +msgid "unknown flag: " +msgstr "nekonata flago: " + +# DP: ĉu traduki vimOption +msgid "unknown vimOption" +msgstr "nekonata vimOption" + +msgid "keyboard interrupt" +msgstr "klavara interrompo" + +msgid "vim error" +msgstr "eraro de Vim" + +msgid "cannot create buffer/window command: object is being deleted" +msgstr "ne eblas krei komandon de bufro/fenestro: objekto estas forviŝiĝanta" + +msgid "" +"cannot register callback command: buffer/window is already being deleted" +msgstr "" +"ne eblas registri postalvokan komandon: bufro/fenestro estas jam forviŝiĝanta" + +#. This should never happen. Famous last word? +msgid "" +"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim." +"org" +msgstr "" +"E280: NERIPAREBLA TCL-ERARO: reflist difekta!? Bv. retpoŝti al vim-dev@vim." +"org" + +msgid "cannot register callback command: buffer/window reference not found" +msgstr "" +"ne eblas registri postalvokan komandon: referenco de bufro/fenestro ne " +"troveblas" + +msgid "" +"E571: Sorry, this command is disabled: the Tcl library could not be loaded." +msgstr "" +"E571: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko Tcl ne " +"ŝargeblis." + +#, c-format +msgid "E572: exit code %d" +msgstr "E572: elira kodo %d" + +msgid "cannot get line" +msgstr "ne eblas akiri linion" + +msgid "Unable to register a command server name" +msgstr "Ne eblas registri nomon de komanda servilo" + +msgid "E248: Failed to send command to the destination program" +msgstr "E248: Sendo de komando al cela programo malsukcesis" + +#, c-format +msgid "E573: Invalid server id used: %s" +msgstr "E573: Nevalida identigilo de servilo uzita: %s" + +msgid "E251: VIM instance registry property is badly formed. Deleted!" +msgstr "" +"E251: Ecoj de registro de apero de VIM estas nevalide formata. Forviŝita!" + +#, c-format +msgid "E938: Duplicate key in JSON: \"%s\"" +msgstr "E938: Ripetita ŝlosilo en JSON: \"%s\"" + #, c-format msgid "E696: Missing comma in List: %s" msgstr "E696: Mankas komo en Listo: %s" @@ -2741,6 +2874,15 @@ msgstr "Nevalida argumento por" msgid "%d files to edit\n" msgstr "%d redaktendaj dosieroj\n" +msgid "netbeans is not supported with this GUI\n" +msgstr "netbeans ne estas subtenata kun tiu grafika interfaco\n" + +msgid "'-nb' cannot be used: not enabled at compile time\n" +msgstr "'-nb' ne uzeblas: malŝaltita dum kompilado\n" + +msgid "This Vim was not compiled with the diff feature." +msgstr "Tiu Vim ne estis kompilita kun la kompara eblo." + msgid "Attempt to open script file again: \"" msgstr "Provas malfermi skriptan dosieron denove: \"" @@ -2750,6 +2892,12 @@ msgstr "Ne eblas malfermi en lega reĝimo: \"" msgid "Cannot open for script output: \"" msgstr "Ne eblas malfermi por eligo de skripto: \"" +msgid "Vim: Error: Failure to start gvim from NetBeans\n" +msgstr "Vim: Eraro: malsukcesis lanĉi gvim el NetBeans\n" + +msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n" +msgstr "Vim: Eraro: Tiu versio de Vim ne ruliĝas en terminalo Cygwin\n" + msgid "Vim: Warning: Output is not to a terminal\n" msgstr "Vim: Averto: Eligo ne estas al terminalo\n" @@ -2803,6 +2951,13 @@ msgstr "" "\n" " aŭ:" +msgid "" +"\n" +"Where case is ignored prepend / to make flag upper case" +msgstr "" +"\n" +"Kie uskleco estas ignorita antaŭaldonu / por igi flagon majuskla" + msgid "" "\n" "\n" @@ -2818,6 +2973,18 @@ msgstr "--\t\t\tNur dosiernomoj post tio" msgid "--literal\t\tDon't expand wildcards" msgstr "--literal\t\tNe malvolvi ĵokerojn" +msgid "-register\t\tRegister this gvim for OLE" +msgstr "-register\t\tRegistri tiun gvim al OLE" + +msgid "-unregister\t\tUnregister gvim for OLE" +msgstr "-unregister\t\tMalregistri gvim de OLE" + +msgid "-g\t\t\tRun using GUI (like \"gvim\")" +msgstr "-g\t\t\tRuli per grafika interfaco (kiel \"gvim\")" + +msgid "-f or --nofork\tForeground: Don't fork when starting GUI" +msgstr "-f aŭ --nofork\tMalfono: ne forki kiam lanĉas grafikan interfacon" + msgid "-v\t\t\tVi mode (like \"vi\")" msgstr "-v\t\t\tReĝimo Vi (kiel \"vi\")" @@ -2879,6 +3046,12 @@ msgstr "-r (kun dosiernomo)\tRestaŭri kolapsintan seancon" msgid "-L\t\t\tSame as -r" msgstr "-L\t\t\tKiel -r" +msgid "-f\t\t\tDon't use newcli to open window" +msgstr "-f\t\t\tNe uzi newcli por malfermi fenestrojn" + +msgid "-dev \t\tUse for I/O" +msgstr "-dev \t\tUzi -n por eneligo" + msgid "-A\t\t\tstart in Arabic mode" msgstr "-A\t\t\tKomenci en araba reĝimo" @@ -2891,9 +3064,20 @@ msgstr "-F\t\t\tKomenci en persa reĝimo" msgid "-T \tSet terminal type to " msgstr "-T \tAgordi terminalon al " +msgid "--not-a-term\t\tSkip warning for input/output not being a terminal" +msgstr "" +"--not-a-term\t\tPreterpasi averton por enigo/eligo, kiu ne estas terminalo" + +msgid "--ttyfail\t\tExit if input or output is not a terminal" +msgstr "" +"--ttyfail\t\tEliri se le eniro aŭ eliro ne estas terminalo" + msgid "-u \t\tUse instead of any .vimrc" msgstr "-u \t\tUzi anstataŭ iun ajn .vimrc" +msgid "-U \t\tUse instead of any .gvimrc" +msgstr "-U \t\tUzi anstataŭ iun ajn .gvimrc" + msgid "--noplugin\t\tDon't load plugin scripts" msgstr "--noplugin\t\tNe ŝargi kromaĵajn skriptojn" @@ -2935,19 +3119,175 @@ msgid "-W \tWrite all typed commands to file " msgstr "" "-W \tSkribi ĉiujn tajpitajn komandojn al dosiero " -msgid "--startuptime \tWrite startup timing messages to " -msgstr "" -"--startuptime Skribi mesaĝojn de komenca tempomezurado al " -"" +msgid "-x\t\t\tEdit encrypted files" +msgstr "-x\t\t\tRedakti ĉifradan dosieron" -msgid "-i \t\tUse instead of .viminfo" -msgstr "-i \t\tUzi anstataŭ .viminfo" +msgid "-display \tConnect vim to this particular X-server" +msgstr "-display \tKonekti Vim al tiu X-servilo" -msgid "-h or --help\tPrint Help (this message) and exit" -msgstr "-h aŭ --help\tAfiŝi Helpon (tiun mesaĝon) kaj eliri" +msgid "-X\t\t\tDo not connect to X server" +msgstr "-X\t\t\tNe konekti al X-servilo" -msgid "--version\t\tPrint version information and exit" -msgstr "--version\t\tAfiŝi informon de versio kaj eliri" +msgid "--remote \tEdit in a Vim server if possible" +msgstr "--remote \tRedakti -n en Vim-servilo se eblas" + +msgid "--remote-silent Same, don't complain if there is no server" +msgstr "--remote-silent Same, sed ne plendi se ne estas servilo" + +msgid "" +"--remote-wait As --remote but wait for files to have been edited" +msgstr "" +"--remote-wait Kiel --remote sed atendi ĝis dosieroj estas " +"redaktitaj" + +msgid "" +"--remote-wait-silent Same, don't complain if there is no server" +msgstr "" +"--remote-wait-silent Same, sed ne plendi se ne estas servilo" + +msgid "" +"--remote-tab[-wait][-silent] As --remote but use tab page per file" +msgstr "" +"--remote-tab[-wait][-silent] Kiel --remote sed uzi langeton por " +"ĉiu dosiero" + +msgid "--remote-send \tSend to a Vim server and exit" +msgstr "--remote-send Sendi -n al Vim-servilo kaj eliri" + +msgid "--remote-expr \tEvaluate in a Vim server and print result" +msgstr "--remote-expr \tKomputi en Vim-servilo kaj afiŝi rezulton" + +msgid "--serverlist\t\tList available Vim server names and exit" +msgstr "--serverlist\t\tListigi haveblajn nomojn de Vim-serviloj kaj eliri" + +msgid "--servername \tSend to/become the Vim server " +msgstr "--servername \tSendu al/iĝi la Vim-servilo " + +msgid "--startuptime \tWrite startup timing messages to " +msgstr "" +"--startuptime Skribi mesaĝojn de komenca tempomezurado al " +"" + +msgid "-i \t\tUse instead of .viminfo" +msgstr "-i \t\tUzi anstataŭ .viminfo" + +msgid "-h or --help\tPrint Help (this message) and exit" +msgstr "-h aŭ --help\tAfiŝi Helpon (tiun mesaĝon) kaj eliri" + +msgid "--version\t\tPrint version information and exit" +msgstr "--version\t\tAfiŝi informon de versio kaj eliri" + +msgid "" +"\n" +"Arguments recognised by gvim (Motif version):\n" +msgstr "" +"\n" +"Argumentoj agnoskitaj de gvim (versio Motif):\n" + +msgid "" +"\n" +"Arguments recognised by gvim (neXtaw version):\n" +msgstr "" +"\n" +"Argumentoj agnoskitaj de gvim (versio neXtaw):\n" + +msgid "" +"\n" +"Arguments recognised by gvim (Athena version):\n" +msgstr "" +"\n" +"Argumentoj agnoskitaj de gvim (versio Athena):\n" + +msgid "-display \tRun vim on " +msgstr "-display \tLanĉi vim sur " + +msgid "-iconic\t\tStart vim iconified" +msgstr "-iconic\t\tLanĉi vim piktograme" + +msgid "-background \tUse for the background (also: -bg)" +msgstr "-background \tUzi -n por la fona koloro (ankaŭ: -bg)" + +msgid "-foreground \tUse for normal text (also: -fg)" +msgstr "" +"-foreground \tUzi -n por la malfona koloro (ankaŭ: -fg)" + +msgid "-font \t\tUse for normal text (also: -fn)" +msgstr "-font \tUzi -n por normala teksto (ankaŭ: -fn)" + +msgid "-boldfont \tUse for bold text" +msgstr "-boldfont \tUzi -n por grasa teksto" + +msgid "-italicfont \tUse for italic text" +msgstr "-italicfont \tUzi -n por kursiva teksto" + +msgid "-geometry \tUse for initial geometry (also: -geom)" +msgstr "-geometry \tUzi kiel komenca geometrio (ankaŭ: -geom)" + +msgid "-borderwidth \tUse a border width of (also: -bw)" +msgstr "-borderwidth \tUzi -n kiel larĝo de bordero (ankaŭ: -bw)" + +msgid "-scrollbarwidth Use a scrollbar width of (also: -sw)" +msgstr "" +"-scrollbarwidth Uzi -n kiel larĝo de rulumskalo (ankaŭ: -sw)" + +msgid "-menuheight \tUse a menu bar height of (also: -mh)" +msgstr "" +"-menuheight \tUzi -n kiel alto de menuzona alto (ankaŭ: -mh)" + +msgid "-reverse\t\tUse reverse video (also: -rv)" +msgstr "-reverse\t\tUzi inversan videon (ankaŭ: -rv)" + +msgid "+reverse\t\tDon't use reverse video (also: +rv)" +msgstr "+reverse\t\tNe uzi inversan videon (ankaŭ: +rv)" + +msgid "-xrm \tSet the specified resource" +msgstr "-xrm \tAgordi la specifitan -n" + +msgid "" +"\n" +"Arguments recognised by gvim (GTK+ version):\n" +msgstr "" +"\n" +"Argumentoj agnoskitaj de gvim (versio GTK+):\n" + +msgid "-display \tRun vim on (also: --display)" +msgstr "-display \tLanĉi Vim sur tiu (ankaŭ: --display)" + +msgid "--role \tSet a unique role to identify the main window" +msgstr "--role \tDoni unikan rolon por identigi la ĉefan fenestron" + +msgid "--socketid \tOpen Vim inside another GTK widget" +msgstr "--socketid \tMalfermi Vim en alia GTK fenestraĵo" + +msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout" +msgstr "--echo-wid\t\tIgas gvim afiŝi la identigilon de vindozo sur stdout" + +msgid "-P \tOpen Vim inside parent application" +msgstr "-P \tMalfermi Vim en gepatra aplikaĵo" + +msgid "--windowid \tOpen Vim inside another win32 widget" +msgstr "--windowid \tMalfermi Vim en alia win32 fenestraĵo" + +msgid "No display" +msgstr "Neniu ekrano" + +#. Failed to send, abort. +msgid ": Send failed.\n" +msgstr ": Sendo malsukcesis.\n" + +#. Let vim start normally. +msgid ": Send failed. Trying to execute locally\n" +msgstr ": Sendo malsukcesis. Provo de loka plenumo\n" + +#, c-format +msgid "%d of %d edited" +msgstr "%d de %d redaktita(j)" + +msgid "No display: Send expression failed.\n" +msgstr "Neniu ekrano: Sendado de esprimo malsukcesis.\n" + +msgid ": Send expression failed.\n" +msgstr ": Sendado de esprimo malsukcesis.\n" msgid "No marks set" msgstr "Neniu marko" @@ -3005,6 +3345,28 @@ msgstr "" msgid "Missing '>'" msgstr "Mankas '>'" +msgid "E543: Not a valid codepage" +msgstr "E543: Nevalida kodpaĝo" + +msgid "E284: Cannot set IC values" +msgstr "E284: Ne eblas agordi valorojn de IC" + +msgid "E285: Failed to create input context" +msgstr "E285: Kreado de eniga kunteksto malsukcesis" + +msgid "E286: Failed to open input method" +msgstr "E286: Malfermo de eniga metodo malsukcesis" + +msgid "E287: Warning: Could not set destroy callback to IM" +msgstr "E287: Averto: Ne eblis agordi detruan reagfunkcion al IM" + +msgid "E288: input method doesn't support any style" +msgstr "E288: eniga metodo subtenas neniun stilon" + +# DP: mi ne scias, kio estas "preedit" +msgid "E289: input method doesn't support my preedit type" +msgstr "E289: eniga metodo ne subtenas mian antaŭredaktan tipon" + msgid "E293: block was not locked" msgstr "E293: bloko ne estis ŝlosita" @@ -3032,6 +3394,9 @@ msgstr "E298: Ĉu ne akiris blokon n-ro 1?" msgid "E298: Didn't get block nr 2?" msgstr "E298: Ĉu ne akiris blokon n-ro 2?" +msgid "E843: Error while updating swap file crypt" +msgstr "E843: Eraro dum ĝisdatigo de ĉifrada permutodosiero .swp" + #. could not (re)open the swap file, what can we do???? msgid "E301: Oops, lost the swap file!!!" msgstr "E301: Ve, perdis la permutodosieron .swp!!!" @@ -3047,7 +3412,6 @@ msgstr "" msgid "E304: ml_upd_block0(): Didn't get block 0??" msgstr "E304: ml_upd_block0(): Ne akiris blokon 0??" -#. no swap files found #, c-format msgid "E305: No swap file found for %s" msgstr "E305: Neniu permutodosiero .swp trovita por %s" @@ -3092,6 +3456,11 @@ msgstr "" ",\n" "aŭ la dosiero estas difekta." +#, c-format +msgid "" +"E833: %s is encrypted and this version of Vim does not support encryption" +msgstr "E833: %s estas ĉifrata kaj tiu versio de Vim ne subtenas ĉifradon" + msgid " has been damaged (page size is smaller than minimum value).\n" msgstr " difektiĝis (paĝa grando pli malgranda ol minimuma valoro).\n" @@ -3106,6 +3475,39 @@ msgstr "Originala dosiero \"%s\"" msgid "E308: Warning: Original file may have been changed" msgstr "E308: Averto: Originala dosiero eble ŝanĝiĝis" +#, c-format +msgid "Swap file is encrypted: \"%s\"" +msgstr "Perumutodosiero .swp estas ĉifrata: \"%s\"" + +msgid "" +"\n" +"If you entered a new crypt key but did not write the text file," +msgstr "" +"\n" +"Se vi tajpis novan ŝlosilon de ĉifrado sed ne skribis la tekstan dosieron," + +msgid "" +"\n" +"enter the new crypt key." +msgstr "" +"\n" +"tajpu la novan ŝlosilon de ĉifrado." + +msgid "" +"\n" +"If you wrote the text file after changing the crypt key press enter" +msgstr "" +"\n" +"Se vi skribis la tekstan dosieron post ŝanĝo de la ŝlosilo de ĉifrado, premu " +"enenklavon" + +msgid "" +"\n" +"to use the same key for text file and swap file" +msgstr "" +"\n" +"por uzi la saman ŝlosilon por la teksta dosiero kaj permuto dosiero .swp" + #, c-format msgid "E309: Unable to read block 1 from %s" msgstr "E309: Ne eblas legi blokon 1 de %s" @@ -3175,6 +3577,10 @@ msgstr "" "La dosiero .swp nun forviŝindas.\n" "\n" +msgid "Using crypt key from swap file for the text file.\n" +msgstr "" +"Uzas ŝlosilon de ĉifrado el permuto dosiero .swp por la teksta dosiero.\n" + #. use msg() to start the scrolling properly msgid "Swap files found:" msgstr "Permutodosiero .swp trovita:" @@ -3249,6 +3655,13 @@ msgstr "" msgid " (still running)" msgstr " (ankoraŭ ruliĝas)" +msgid "" +"\n" +" [not usable with this version of Vim]" +msgstr "" +"\n" +" [ne uzebla per tiu versio de Vim]" + msgid "" "\n" " [not usable on this computer]" @@ -3269,15 +3682,15 @@ msgid "File preserved" msgstr "Dosiero konservita" msgid "E314: Preserve failed" -msgstr "E314: Konservo fiaskis" +msgstr "E314: Konservo malsukcesis" #, c-format -msgid "E315: ml_get: invalid lnum: %" -msgstr "E315: ml_get: nevalida lnum: %" +msgid "E315: ml_get: invalid lnum: %ld" +msgstr "E315: ml_get: nevalida lnum: %ld" #, c-format -msgid "E316: ml_get: cannot find line %" -msgstr "E316: ml_get: ne eblas trovi linion %" +msgid "E316: ml_get: cannot find line %ld" +msgstr "E316: ml_get: ne eblas trovi linion %ld" msgid "E317: pointer block id wrong 3" msgstr "E317: nevalida referenco de bloko id 3" @@ -3295,8 +3708,8 @@ msgid "deleted block 1?" msgstr "ĉu forviŝita bloko 1?" #, c-format -msgid "E320: Cannot find line %" -msgstr "E320: Ne eblas trovi linion %" +msgid "E320: Cannot find line %ld" +msgstr "E320: Ne eblas trovi linion %ld" msgid "E317: pointer block id wrong" msgstr "E317: nevalida referenco de bloko id" @@ -3305,12 +3718,12 @@ msgid "pe_line_count is zero" msgstr "pe_line_count estas nul" #, c-format -msgid "E322: line number out of range: % past the end" -msgstr "E322: numero de linio ekster limoj: % preter la fino" +msgid "E322: line number out of range: %ld past the end" +msgstr "E322: numero de linio ekster limoj: %ld preter la fino" #, c-format -msgid "E323: line count wrong in block %" -msgstr "E323: nevalida nombro de linioj en bloko %" +msgid "E323: line count wrong in block %ld" +msgstr "E323: nevalida nombro de linioj en bloko %ld" msgid "Stack size increases" msgstr "Stako pligrandiĝas" @@ -3338,6 +3751,8 @@ msgstr "Dum malfermo de dosiero \"" msgid " NEWER than swap file!\n" msgstr " PLI NOVA ol permutodosiero .swp!\n" +#. Some of these messages are long to allow translation to +#. * other languages. msgid "" "\n" "(1) Another program may be editing the same file. If this is the case,\n" @@ -3349,9 +3764,6 @@ msgstr "" " por ne havi du malsamajn aperojn de la sama dosiero, kiam vi faros\n" " ŝanĝojn. Eliru aŭ daŭrigu singarde.\n" -msgid " Quit, or continue with caution.\n" -msgstr " Eliru, aŭ daŭrigu singarde.\n" - msgid "(2) An edit session for this file crashed.\n" msgstr "(2) Redakta seanco de tiu dosiero kolapsis.\n" @@ -3417,21 +3829,9 @@ msgstr "" "&Eliri\n" "Ĉe&sigi" -#. -#. * Change the ".swp" extension to find another file that can be used. -#. * First decrement the last char: ".swo", ".swn", etc. -#. * If that still isn't enough decrement the last but one char: ".svz" -#. * Can happen when editing many "No Name" buffers. -#. -#. ".s?a" -#. ".saa": tried enough, give up msgid "E326: Too many swap files found" msgstr "E326: Tro da dosieroj trovitaj" -#, c-format -msgid "E342: Out of memory! (allocating % bytes)" -msgstr "E342: Ne plu restas memoro! (disponigo de % bajtoj)" - msgid "E327: Part of menu-item path is not sub-menu" msgstr "E327: Parto de vojo de menuero ne estas sub-menuo" @@ -3464,6 +3864,9 @@ msgstr "" "\n" "--- Menuoj ---" +msgid "Tear off this menu" +msgstr "Disigi tiun menuon" + msgid "E333: Menu path must lead to a menu item" msgstr "E333: Vojo de menuo devas konduki al menuero" @@ -3493,6 +3896,9 @@ msgstr "linio %4ld:" msgid "E354: Invalid register name: '%s'" msgstr "E354: Nevalida nomo de reĝistro: '%s'" +msgid "Messages maintainer: Bram Moolenaar " +msgstr "Flegado de mesaĝoj: Dominique PELLÉ " + msgid "Interrupt: " msgstr "Interrompo: " @@ -3500,8 +3906,8 @@ msgid "Press ENTER or type command to continue" msgstr "Premu ENEN-KLAVON aŭ tajpu komandon por daŭrigi" #, c-format -msgid "%s line %" -msgstr "%s linio %" +msgid "%s line %ld" +msgstr "%s linio %ld" msgid "-- More --" msgstr "-- Pli --" @@ -3519,15 +3925,6 @@ msgstr "" "&Jes\n" "&Ne" -msgid "" -"&Yes\n" -"&No\n" -"&Cancel" -msgstr "" -"&Jes\n" -"&Ne\n" -"&Rezigni" - # AM: ĉu Vim konvertos unuliterajn respondojn? # DP: jes, '&' bone funkcias (mi kontrolis) msgid "" @@ -3543,11 +3940,24 @@ msgstr "" "&Forlasi Ĉion\n" "&Rezigni" +msgid "Select Directory dialog" +msgstr "Dialogujo de dosiera elekto" + +msgid "Save File dialog" +msgstr "Dialogujo de dosiera konservo" + +msgid "Open File dialog" +msgstr "Dialogujo de dosiera malfermo" + +#. TODO: non-GUI file selector here +msgid "E338: Sorry, no file browser in console mode" +msgstr "E338: Bedaŭrinde ne estas dosierfoliumilo en konzola reĝimo" + msgid "E766: Insufficient arguments for printf()" msgstr "E766: Ne sufiĉaj argumentoj por printf()" msgid "E807: Expected Float argument for printf()" -msgstr "E807: Atendis Glitpunktnombron kiel argumento de printf()" +msgstr "E807: Atendis Glitpunktnombron kiel argumenton de printf()" msgid "E767: Too many arguments to printf()" msgstr "E767: Tro da argumentoj al printf()" @@ -3569,12 +3979,12 @@ msgid "1 line less" msgstr "1 malplia linio" #, c-format -msgid "% more lines" -msgstr "% pliaj linioj" +msgid "%ld more lines" +msgstr "%ld pliaj linioj" #, c-format -msgid "% fewer lines" -msgstr "% malpliaj linioj" +msgid "%ld fewer lines" +msgstr "%ld malpliaj linioj" msgid " (Interrupted)" msgstr " (Interrompita)" @@ -3582,16 +3992,112 @@ msgstr " (Interrompita)" msgid "Beep!" msgstr "Bip!" +msgid "ERROR: " +msgstr "ERARO: " + +#, c-format +msgid "" +"\n" +"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n" +msgstr "" +"\n" +"[bajtoj] totalaj disponigitaj/maldisponigitaj %lu-%lu, nun uzataj %lu, " +"kulmina uzo %lu\n" + +#, c-format +msgid "" +"[calls] total re/malloc()'s %lu, total free()'s %lu\n" +"\n" +msgstr "" +"[alvokoj] totalaj re/malloc() %lu, totalaj free() %lu\n" +"\n" + +msgid "E340: Line is becoming too long" +msgstr "E340: Linio iĝas tro longa" + +#, c-format +msgid "E341: Internal error: lalloc(%ld, )" +msgstr "E341: Interna eraro: lalloc(%ld, )" + +#, c-format +msgid "E342: Out of memory! (allocating %lu bytes)" +msgstr "E342: Ne plu restas memoro! (disponigo de %lu bajtoj)" + #, c-format msgid "Calling shell to execute: \"%s\"" msgstr "Alvokas ŝelon por plenumi: \"%s\"" +msgid "E545: Missing colon" +msgstr "E545: Mankas dupunkto" + +msgid "E546: Illegal mode" +msgstr "E546: Reĝimo nepermesata" + +msgid "E547: Illegal mouseshape" +msgstr "E547: Nevalida formo de muskursoro" + +msgid "E548: digit expected" +msgstr "E548: cifero atendata" + +msgid "E549: Illegal percentage" +msgstr "E549: Nevalida procento" + +msgid "E854: path too long for completion" +msgstr "E854: tro longa vojo por kompletigo" + +#, c-format +msgid "" +"E343: Invalid path: '**[number]' must be at the end of the path or be " +"followed by '%s'." +msgstr "" +"E343: Nevalida vojo: '**[nombro]' devas esti ĉe la fino de la vojo aŭ " +"sekvita de '%s'." + +#, c-format +msgid "E344: Can't find directory \"%s\" in cdpath" +msgstr "E344: Ne eblas trovi dosierujon \"%s\" en cdpath" + +#, c-format +msgid "E345: Can't find file \"%s\" in path" +msgstr "E345: Ne eblas trovi dosieron \"%s\" en serĉvojo" + +#, c-format +msgid "E346: No more directory \"%s\" found in cdpath" +msgstr "E346: Ne plu trovis dosierujon \"%s\" en cdpath" + +#, c-format +msgid "E347: No more file \"%s\" found in path" +msgstr "E347: Ne plu trovis dosieron \"%s\" en serĉvojo" + +#, c-format +msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" +msgstr "" +"E668: Nevalida permeso de dosiero de informo de konekto NetBeans: \"%s\"" + +#, c-format +msgid "E658: NetBeans connection lost for buffer %ld" +msgstr "E658: Konekto de NetBeans perdita por bufro %ld" + +msgid "E838: netbeans is not supported with this GUI" +msgstr "E838: netbeans ne estas subtenata kun tiu grafika interfaco" + +msgid "E511: netbeans already connected" +msgstr "E511: nebeans jam konektata" + +#, c-format +msgid "E505: %s is read-only (add ! to override)" +msgstr "E505: %s estas nurlegebla (aldonu ! por transpasi)" + msgid "E349: No identifier under cursor" msgstr "E349: Neniu identigilo sub la kursoro" msgid "E774: 'operatorfunc' is empty" msgstr "E774: 'operatorfunc' estas malplena" +# DP: ĉu Eval devas esti tradukita? +msgid "E775: Eval feature not available" +msgstr "E775: Eval eblo ne disponeblas" + msgid "Warning: terminal cannot highlight" msgstr "Averto: terminalo ne povas emfazi" @@ -3610,7 +4116,7 @@ msgstr "E662: Ĉe komenco de ŝanĝlisto" msgid "E663: At end of changelist" msgstr "E663: Ĉe fino de ŝanĝlisto" -msgid "Type :quit to exit Nvim" +msgid "Type :quit to exit Vim" msgstr "Tajpu \":quit\" por eliri el Vim" #, c-format @@ -3622,37 +4128,41 @@ msgid "1 line %sed %d times" msgstr "1 linio %sita %d foje" #, c-format -msgid "% lines %sed 1 time" -msgstr "% linio %sita 1 foje" +msgid "%ld lines %sed 1 time" +msgstr "%ld linio %sita 1 foje" #, c-format -msgid "% lines %sed %d times" -msgstr "% linioj %sitaj %d foje" +msgid "%ld lines %sed %d times" +msgstr "%ld linioj %sitaj %d foje" #, c-format -msgid "% lines to indent... " -msgstr "% krommarĝenendaj linioj... " +msgid "%ld lines to indent... " +msgstr "%ld krommarĝenendaj linioj... " msgid "1 line indented " msgstr "1 linio krommarĝenita " #, c-format -msgid "% lines indented " -msgstr "% linioj krommarĝenitaj " +msgid "%ld lines indented " +msgstr "%ld linioj krommarĝenitaj " msgid "E748: No previously used register" msgstr "E748: Neniu reĝistro antaŭe uzata" #. must display the prompt msgid "cannot yank; delete anyway" -msgstr "ne eblas kopii; forviŝi tamene" +msgstr "ne eblas kopii; tamen forviŝi" msgid "1 line changed" msgstr "1 linio ŝanĝita" #, c-format -msgid "% lines changed" -msgstr "% linioj ŝanĝitaj" +msgid "%ld lines changed" +msgstr "%ld linioj ŝanĝitaj" + +#, c-format +msgid "freeing %ld lines" +msgstr "malokupas %ld liniojn" msgid "block of 1 line yanked" msgstr "bloko de 1 linio kopiita" @@ -3661,12 +4171,12 @@ msgid "1 line yanked" msgstr "1 linio kopiita" #, c-format -msgid "block of % lines yanked" -msgstr "bloko de % linioj kopiita" +msgid "block of %ld lines yanked" +msgstr "bloko de %ld linioj kopiita" #, c-format -msgid "% lines yanked" -msgstr "% linioj kopiitaj" +msgid "%ld lines yanked" +msgstr "%ld linioj kopiitaj" #, c-format msgid "E353: Nothing in register %s" @@ -3694,45 +4204,44 @@ msgstr "" msgid "E574: Unknown register type %d" msgstr "E574: Nekonata tipo de reĝistro %d" +msgid "" +"E883: search pattern and expression register may not contain two or more " +"lines" +msgstr "" +"E883: serĉa ŝablono kaj esprima reĝistro ne povas enhavi du aŭ pliajn liniojn" + #, c-format -msgid "% Cols; " -msgstr "% Kolumnoj; " +msgid "%ld Cols; " +msgstr "%ld Kolumnoj; " #, c-format -msgid "" -"Selected %s% of % Lines; % of % Words; " -"% of % Bytes" +msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes" msgstr "" -"Apartigis %s% de % Linioj; % de % Vortoj; " -"% de % Bajtoj" +"Apartigis %s%ld de %ld Linioj; %lld de %lld Vortoj; %lld de %lld Bajtoj" #, c-format msgid "" -"Selected %s% of % Lines; % of % Words; " -"% of % Chars; % of % Bytes" +"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of " +"%lld Bytes" msgstr "" -"Apartigis %s% de % Linioj; % de % Vortoj; " -"% de % Signoj; % de % Bajtoj" +"Apartigis %s%ld de %ld Linioj; %lld de %lld Vortoj; %lld de %lld Signoj; " +"%lld de %lld Bajtoj" #, c-format -msgid "" -"Col %s of %s; Line % of %; Word % of %; Byte " -"% of %" -msgstr "" -"Kol %s de %s; Linio % de %; Vorto % de %; " -"Bajto % de %" +msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld" +msgstr "Kol %s de %s; Linio %ld de %ld; Vorto %lld de %lld; Bajto %lld de %lld" #, c-format msgid "" -"Col %s of %s; Line % of %; Word % of %; Char " -"% of %; Byte % of %" +"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte " +"%lld of %lld" msgstr "" -"Kol %s de %s; Linio % de %; Vorto % de %; " -"Signo % de %; Bajto % de %" +"Kol %s de %s; Linio %ld de %ld; Vorto %lld de %lld; Signo %lld de %lld; " +"Bajto %lld de %lld" #, c-format -msgid "(+% for BOM)" -msgstr "(+% por BOM)" +msgid "(+%ld for BOM)" +msgstr "(+%ld por BOM)" msgid "%<%f%h%m%=Page %N" msgstr "%<%f%h%m%=Folio %N" @@ -3740,7 +4249,6 @@ msgstr "%<%f%h%m%=Folio %N" msgid "Thanks for flying Vim" msgstr "Dankon pro flugi per Vim" -#. found a mismatch: skip msgid "E518: Unknown option" msgstr "E518: Nekonata opcio" @@ -3770,6 +4278,12 @@ msgstr "Por opcio %s" msgid "E529: Cannot set 'term' to empty string" msgstr "E529: Ne eblas agordi 'term' al malplena ĉeno" +msgid "E530: Cannot change term in GUI" +msgstr "E530: term ne ŝanĝeblas en grafika interfaco" + +msgid "E531: Use \":gui\" to start the GUI" +msgstr "E531: Uzu \":gui\" por lanĉi la grafikan interfacon" + msgid "E589: 'backupext' and 'patchmode' are equal" msgstr "E589: 'backupext' kaj 'patchmode' estas egalaj" @@ -3779,6 +4293,9 @@ msgstr "E834: Konfliktoj kun la valoro de 'listchars'" msgid "E835: Conflicts with value of 'fillchars'" msgstr "E835: Konfliktoj kun la valoro de 'fillchars'" +msgid "E617: Cannot be changed in the GTK+ 2 GUI" +msgstr "E617: Ne ŝanĝeblas en la grafika interfaco GTK+ 2" + msgid "E524: Missing colon" msgstr "E524: Mankas dupunkto" @@ -3798,6 +4315,21 @@ msgstr "E528: Devas specifi ' valoron" msgid "E595: contains unprintable or wide character" msgstr "E595: enhavas nepreseblan aŭ plurĉellarĝan signon" +msgid "E596: Invalid font(s)" +msgstr "E596: Nevalida(j) tiparo(j)" + +msgid "E597: can't select fontset" +msgstr "E597: ne eblas elekti tiparon" + +msgid "E598: Invalid fontset" +msgstr "E598: Nevalida tiparo" + +msgid "E533: can't select wide font" +msgstr "E533: ne eblas elekti larĝan tiparon" + +msgid "E534: Invalid wide font" +msgstr "E534: Nevalida larĝa tiparo" + #, c-format msgid "E535: Illegal character after <%c>" msgstr "E535: Nevalida signo post <%c>" @@ -3809,6 +4341,9 @@ msgstr "E536: komo bezonata" msgid "E537: 'commentstring' must be empty or contain %s" msgstr "E537: 'commentstring' devas esti malplena aŭ enhavi %s" +msgid "E538: No mouse support" +msgstr "E538: Neniu muso subtenata" + msgid "E540: Unclosed expression sequence" msgstr "E540: '}' mankas" @@ -3816,7 +4351,7 @@ msgid "E541: too many items" msgstr "E541: tro da elementoj" msgid "E542: unbalanced groups" -msgstr "E542: misekvilibritaj grupoj" +msgstr "E542: misekvilibraj grupoj" msgid "E590: A preview window already exists" msgstr "E590: Antaŭvida fenestro jam ekzistas" @@ -3882,50 +4417,237 @@ msgstr "E357: 'langmap': Kongrua signo mankas por %s" msgid "E358: 'langmap': Extra characters after semicolon: %s" msgstr "E358: 'langmap': Ekstraj signoj post punktokomo: %s" -msgid "" -"\n" -"Cannot execute shell " -msgstr "" -"\n" -"Ne eblas plenumi ŝelon " - -msgid "" -"\n" -"shell returned " -msgstr "" -"\n" -"ŝelo liveris " +msgid "cannot open " +msgstr "ne eblas malfermi " -msgid "" -"\n" -"Could not get security context for " -msgstr "" -"\n" -"Ne povis akiri kuntekston de sekureco por " +msgid "VIM: Can't open window!\n" +msgstr "VIM: Ne eblas malfermi fenestron!\n" -msgid "" -"\n" -"Could not set security context for " -msgstr "" -"\n" -"Ne povis ŝalti kuntekston de sekureco por " +msgid "Need Amigados version 2.04 or later\n" +msgstr "Bezonas version 2.04 de Amigados aŭ pli novan\n" #, c-format -msgid "Could not set security context %s for %s" -msgstr "Ne povis ŝalti kuntekston de sekureco %s por %s" +msgid "Need %s version %ld\n" +msgstr "Bezonas %s-on versio %ld\n" -#, c-format -msgid "Could not get security context %s for %s. Removing it!" -msgstr "" -"Ne povis akiri kuntekston de sekureco %s por %s. Gi nun estas forigata!" +msgid "Cannot open NIL:\n" +msgstr "Ne eblas malfermi NIL:\n" + +msgid "Cannot create " +msgstr "Ne eblas krei " + +#, c-format +msgid "Vim exiting with %d\n" +msgstr "Vim eliras kun %d\n" + +msgid "cannot change console mode ?!\n" +msgstr "ne eblas ŝanĝi reĝimon de konzolo?!\n" + +msgid "mch_get_shellsize: not a console??\n" +msgstr "mch_get_shellsize: ne estas konzolo??\n" + +#. if Vim opened a window: Executing a shell may cause crashes +msgid "E360: Cannot execute shell with -f option" +msgstr "E360: Ne eblas plenumi ŝelon kun opcio -f" + +msgid "Cannot execute " +msgstr "Ne eblas plenumi " + +msgid "shell " +msgstr "ŝelo " + +msgid " returned\n" +msgstr " liveris\n" + +msgid "ANCHOR_BUF_SIZE too small." +msgstr "ANCHOR_BUF_SIZE tro malgranda." + +msgid "I/O ERROR" +msgstr "ERARO DE ENIGO/ELIGO" + +msgid "Message" +msgstr "Mesaĝo" + +msgid "E237: Printer selection failed" +msgstr "E237: Elekto de presilo malsukcesis" + +#, c-format +msgid "to %s on %s" +msgstr "al %s de %s" + +#, c-format +msgid "E613: Unknown printer font: %s" +msgstr "E613: Nekonata tiparo de presilo: %s" + +#, c-format +msgid "E238: Print error: %s" +msgstr "E238: Eraro de presado: %s" + +#, c-format +msgid "Printing '%s'" +msgstr "Presas '%s'" + +#, c-format +msgid "E244: Illegal charset name \"%s\" in font name \"%s\"" +msgstr "E244: Nevalida nomo de signaro \"%s\" en nomo de tiparo \"%s\"" + +#, c-format +msgid "E244: Illegal quality name \"%s\" in font name \"%s\"" +msgstr "E244: Nevalida nomo de kvalito \"%s\" en nomo de tiparo \"%s\"" + +#, c-format +msgid "E245: Illegal char '%c' in font name \"%s\"" +msgstr "E245: Nevalida signo '%c' en nomo de tiparo \"%s\"" + +#, c-format +msgid "Opening the X display took %ld msec" +msgstr "Malfermo de vidigo X daŭris %ld msek" + +msgid "" +"\n" +"Vim: Got X error\n" +msgstr "" +"\n" +"Vim: Alvenis X eraro\n" + +msgid "Testing the X display failed" +msgstr "Testo de la vidigo X malsukcesis" + +msgid "Opening the X display timed out" +msgstr "Tempolimo okazis dum malfermo de vidigo X" + +msgid "" +"\n" +"Could not get security context for " +msgstr "" +"\n" +"Ne povis akiri kuntekston de sekureco por " + +msgid "" +"\n" +"Could not set security context for " +msgstr "" +"\n" +"Ne povis ŝalti kuntekston de sekureco por " + +#, c-format +msgid "Could not set security context %s for %s" +msgstr "Ne povis ŝalti kuntekston de sekureco %s por %s" + +#, c-format +msgid "Could not get security context %s for %s. Removing it!" +msgstr "" +"Ne povis akiri kuntekston de sekureco %s por %s. Gi nun estas forigata!" + +msgid "" +"\n" +"Cannot execute shell sh\n" +msgstr "" +"\n" +"Ne eblas plenumi ŝelon sh\n" + +msgid "" +"\n" +"shell returned " +msgstr "" +"\n" +"ŝelo liveris " + +msgid "" +"\n" +"Cannot create pipes\n" +msgstr "" +"\n" +"Ne eblas krei duktojn\n" + +msgid "" +"\n" +"Cannot fork\n" +msgstr "" +"\n" +"Ne eblas forki\n" + +msgid "" +"\n" +"Cannot execute shell " +msgstr "" +"\n" +"Ne eblas plenumi ŝelon " + +msgid "" +"\n" +"Command terminated\n" +msgstr "" +"\n" +"Komando terminigita\n" + +msgid "XSMP lost ICE connection" +msgstr "XSMP perdis la konekton ICE" #, c-format msgid "dlerror = \"%s\"" msgstr "dlerror = \"%s\"" +msgid "Opening the X display failed" +msgstr "Malfermo de vidigo X malsukcesis" + +msgid "XSMP handling save-yourself request" +msgstr "XSMP: traktado de peto konservi-mem" + +msgid "XSMP opening connection" +msgstr "XSMP: malfermo de konekto" + +msgid "XSMP ICE connection watch failed" +msgstr "XSMP: kontrolo de konekto ICE malsukcesis" + #, c-format -msgid "E447: Can't find file \"%s\" in path" -msgstr "E447: Ne eblas trovi dosieron \"%s\" en serĉvojo" +msgid "XSMP SmcOpenConnection failed: %s" +msgstr "XSMP: SmcOpenConnection malsukcesis: %s" + +msgid "At line" +msgstr "Ĉe linio" + +msgid "Could not load vim32.dll!" +msgstr "Ne eblis ŝargi vim32.dll!" + +msgid "VIM Error" +msgstr "Eraro de VIM" + +msgid "Could not fix up function pointers to the DLL!" +msgstr "Ne eblis ripari referencojn de funkcioj al la DLL!" + +# DP: la eventoj estas tiuj, kiuj estas en la sekvantaj ĉenoj +#, c-format +msgid "Vim: Caught %s event\n" +msgstr "Vim: Kaptis eventon %s\n" + +msgid "close" +msgstr "fermo" + +msgid "logoff" +msgstr "elsaluto" + +msgid "shutdown" +msgstr "sistemfermo" + +msgid "E371: Command not found" +msgstr "E371: Netrovebla komando" + +msgid "" +"VIMRUN.EXE not found in your $PATH.\n" +"External commands will not pause after completion.\n" +"See :help win32-vimrun for more information." +msgstr "" +"VIMRUN.EXE ne troveblas en via $PATH.\n" +"Eksteraj komandoj ne paŭzos post kompletigo.\n" +"Vidu :help win32-vimrun por pliaj informoj." + +msgid "Vim Warning" +msgstr "Averto de Vim" + +#, c-format +msgid "shell returned %d" +msgstr "la ŝelo liveris %d" #, c-format msgid "E372: Too many %%%c in format string" @@ -3960,6 +4682,15 @@ msgstr "E379: Nomo de dosierujo mankas aŭ estas malplena" msgid "E553: No more items" msgstr "E553: Ne plu estas eroj" +msgid "E924: Current window was closed" +msgstr "E924: Aktuala vindozo fermiĝis" + +msgid "E925: Current quickfix was changed" +msgstr "E925: Aktuala rapidriparo ŝanĝiĝis" + +msgid "E926: Current location list was changed" +msgstr "E926: Aktuala listo de lokoj ŝanĝiĝis" + #, c-format msgid "(%d of %d)%s%s: " msgstr "(%d de %d)%s%s: " @@ -3983,6 +4714,9 @@ msgstr "Neniu ano" msgid "E382: Cannot write, 'buftype' option is set" msgstr "E382: Ne eblas skribi, opcio 'buftype' estas ŝaltita" +msgid "Error file" +msgstr "Erara Dosiero" + msgid "E683: File name missing or invalid pattern" msgstr "E683: Dosiernomo mankas aŭ nevalida ŝablono" @@ -4017,7 +4751,7 @@ msgid "E55: Unmatched %s)" msgstr "E55: Neekvilibra %s" msgid "E66: \\z( not allowed here" -msgstr "E66: \\z( estas permesebla tie" +msgstr "E66: \\z( estas nepermesebla tie" # DP: vidu http://www.thefreedictionary.com/et+al. msgid "E67: \\z1 et al. not allowed here" @@ -4088,6 +4822,10 @@ msgstr "E554: Sintaksa eraro en %s{...}" msgid "External submatches:\n" msgstr "Eksteraj subkongruoj:\n" +#, c-format +msgid "E888: (NFA regexp) cannot repeat %s" +msgstr "E888: (NFA-regulesprimo) ne eblas ripeti %s" + msgid "" "E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be " "used " @@ -4095,6 +4833,9 @@ msgstr "" "E864: \\%#= povas nur esti sekvita de 0, 1, aŭ 2. La aŭtomata motoro de " "regulesprimo estos uzata " +msgid "Switching to backtracking RE engine for pattern: " +msgstr "Ŝangota al malavanca motoro de regulesprimo por ŝablono: " + msgid "E865: (NFA) Regexp end encountered prematurely" msgstr "E865: (NFA) Trovis finon de regulesprimo tro frue" @@ -4102,17 +4843,21 @@ msgstr "E865: (NFA) Trovis finon de regulesprimo tro frue" msgid "E866: (NFA regexp) Misplaced %c" msgstr "E866: (NFA-regulesprimo) Mispoziciigita %c" -#, fuzzy, c-format -#~ msgid "E877: (NFA regexp) Invalid character class: %" -#~ msgstr "E877: (NFA-regulesprimo) Nevalida klaso de signo " +#, c-format +msgid "E877: (NFA regexp) Invalid character class: %ld" +msgstr "E877: (NFA-regulesprimo) Nevalida klaso de signo: %ld" #, c-format msgid "E867: (NFA) Unknown operator '\\z%c'" msgstr "E867: (NFA) Nekonata operatoro '\\z%c'" -#, fuzzy, c-format -#~ msgid "E867: (NFA) Unknown operator '\\%%%c'" -#~ msgstr "E867: (NFA) Nekonata operatoro '\\z%c'" +#, c-format +msgid "E867: (NFA) Unknown operator '\\%%%c'" +msgstr "E867: (NFA) Nekonata operatoro '\\%%%c'" + +#. should never happen +msgid "E868: Error building NFA with equivalence class!" +msgstr "E868: Eraro dum prekomputado de NFA kun ekvivalentoklaso!" #, c-format msgid "E869: (NFA) Unknown operator '\\@%c'" @@ -4131,9 +4876,8 @@ msgstr "" msgid "E872: (NFA regexp) Too many '('" msgstr "E872: (NFA-regulesprimo) tro da '('" -#, fuzzy -#~ msgid "E879: (NFA regexp) Too many \\z(" -#~ msgstr "E872: (NFA-regulesprimo) tro da '('" +msgid "E879: (NFA regexp) Too many \\z(" +msgstr "E879: (NFA-regulesprimo) tro da \\z(" msgid "E873: (NFA regexp) proper termination error" msgstr "E873: (NFA-regulesprimo) propra end-eraro" @@ -4151,6 +4895,9 @@ msgstr "" msgid "E876: (NFA regexp) Not enough space to store the whole NFA " msgstr "E876: (NFA-regulesprimo) ne sufiĉa spaco por enmomorigi la tutan NFA " +msgid "E878: (NFA) Could not allocate memory for branch traversal!" +msgstr "E878: (NFA) Ne povis asigni memoron por traigi branĉojn!" + msgid "" "Could not open temporary log file for writing, displaying on stderr ... " msgstr "" @@ -4347,13 +5094,6 @@ msgstr "E762: Signo en FOL, LOW aŭ UPP estas ekster limoj" msgid "Compressing word tree..." msgstr "Densigas arbon de vortoj..." -msgid "E756: Spell checking is not enabled" -msgstr "E756: Literumilo ne estas ŝaltita" - -#, c-format -msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\"" -msgstr "Averto: Ne eblas trovi vortliston \"%s.%s.spl\" aŭ \"%s.ascii.spl\"" - #, c-format msgid "Reading spell file \"%s\"" msgstr "Legado de literuma dosiero \"%s\"" @@ -4402,6 +5142,10 @@ msgstr "Malsukceso dum konverto de vorto en %s linio %d: %s" msgid "Conversion in %s not supported: from %s to %s" msgstr "Konverto en %s nesubtenata: de %s al %s" +#, c-format +msgid "Conversion in %s not supported" +msgstr "Konverto en %s nesubtenata" + #, c-format msgid "Invalid value for FLAG in %s line %d: %s" msgstr "Nevalida valoro de FLAG en %s linio %d: %s" @@ -4586,6 +5330,9 @@ msgstr "Nekonata flago en %s linio %d: %s" msgid "Ignored %d words with non-ASCII characters" msgstr "Ignoris %d vorto(j)n kun neaskiaj signoj" +msgid "E845: Insufficient memory, word list will be incomplete" +msgstr "E845: Ne sufiĉe da memoro, vortlisto estos nekompleta." + #, c-format msgid "Compressed %d of %d nodes; %d (%d%%) remaining" msgstr "Densigis %d de %d nodoj; %d (%d%%) restantaj" @@ -4593,14 +5340,16 @@ msgstr "Densigis %d de %d nodoj; %d (%d%%) restantaj" msgid "Reading back spell file..." msgstr "Relegas la dosieron de literumo..." -#. Go through the trie of good words, soundfold each word and add it to -#. the soundfold trie. +#. +#. * Go through the trie of good words, soundfold each word and add it to +#. * the soundfold trie. +#. msgid "Performing soundfolding..." msgstr "Fonetika analizado..." #, c-format -msgid "Number of words after soundfolding: %" -msgstr "Nombro de vortoj post fonetika analizado: %" +msgid "Number of words after soundfolding: %ld" +msgstr "Nombro de vortoj post fonetika analizado: %ld" #, c-format msgid "Total number of words: %d" @@ -4635,66 +5384,22 @@ msgid "Done!" msgstr "Farita!" #, c-format -msgid "E765: 'spellfile' does not have % entries" -msgstr "E765: 'spellfile' ne havas % rikordojn" - -#, fuzzy, c-format -#~ msgid "Word '%.*s' removed from %s" -#~ msgstr "Vorto fortirita el %s" - -#, fuzzy, c-format -#~ msgid "Word '%.*s' added to %s" -#~ msgstr "Vorto aldonita al %s" - -msgid "E763: Word characters differ between spell files" -msgstr "E763: Signoj de vorto malsamas tra literumaj dosieroj" - -msgid "Sorry, no suggestions" -msgstr "Bedaŭrinde ne estas sugestoj" - -#, c-format -msgid "Sorry, only % suggestions" -msgstr "Bedaŭrinde estas nur % sugestoj" - -#. for when 'cmdheight' > 1 -#. avoid more prompt -#, c-format -msgid "Change \"%.*s\" to:" -msgstr "Anstataŭigi \"%.*s\" per:" - -#, c-format -msgid " < \"%.*s\"" -msgstr " < \"%.*s\"" - -msgid "E752: No previous spell replacement" -msgstr "E752: Neniu antaŭa literuma anstataŭigo" - -#, c-format -msgid "E753: Not found: %s" -msgstr "E753: Netrovita: %s" - -#, c-format -msgid "E778: This does not look like a .sug file: %s" -msgstr "E778: Tio ne ŝajnas esti dosiero .sug: %s" - -#, c-format -msgid "E779: Old .sug file, needs to be updated: %s" -msgstr "E779: Malnova dosiero .sug, bezonas ĝisdatigon: %s" +msgid "E765: 'spellfile' does not have %ld entries" +msgstr "E765: 'spellfile' ne havas %ld rikordojn" #, c-format -msgid "E780: .sug file is for newer version of Vim: %s" -msgstr "E780: Dosiero .sug estas por pli nova versio de Vim: %s" +msgid "Word '%.*s' removed from %s" +msgstr "Vorto '%.*s' fortirita el %s" #, c-format -msgid "E781: .sug file doesn't match .spl file: %s" -msgstr "E781: Dosiero .sug ne kongruas kun dosiero .spl: %s" +msgid "Word '%.*s' added to %s" +msgstr "Vorto '%.*s' aldonita al %s" -#, c-format -msgid "E782: error while reading .sug file: %s" -msgstr "E782: eraro dum legado de dosiero .sug: %s" +msgid "E763: Word characters differ between spell files" +msgstr "E763: Signoj de vorto malsamas tra literumaj dosieroj" #. This should have been checked when generating the .spl -#. file. +#. * file. msgid "E783: duplicate char in MAP entry" msgstr "E783: ripetita signo en rikordo MAP" @@ -4802,7 +5507,6 @@ msgstr "E848: Tro da sintaksaj grupoj" msgid "E400: No cluster specified" msgstr "E400: Neniu fasko specifita" -#. end delimiter not found #, c-format msgid "E401: Pattern delimiter not found: %s" msgstr "E401: Disigilo de ŝablono netrovita: %s" @@ -4842,9 +5546,10 @@ msgstr "E409: Nekonata nomo de grupo: %s" msgid "E410: Invalid :syntax subcommand: %s" msgstr "E410: Nevalida \":syntax\" subkomando: %s" -#~ msgid "" -#~ " TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN" -#~ msgstr "" +msgid "" +" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN" +msgstr "" +" TOTALO NOMBRO KONGRUO PLEJ MALRAPID MEZA NOMO ŜABLONO" msgid "E679: recursive loop loading syncolor.vim" msgstr "E679: rekursia buklo dum ŝargo de syncolor.vim" @@ -4859,7 +5564,7 @@ msgstr "E412: Ne sufiĉaj argumentoj: \":highlight link %s\"" #, c-format msgid "E413: Too many arguments: \":highlight link %s\"" -msgstr "E413: Tro argumentoj: \":highlight link %s\"" +msgstr "E413: Tro da argumentoj: \":highlight link %s\"" msgid "E414: group has settings, highlight link ignored" msgstr "E414: grupo havas agordojn, ligilo de emfazo ignorita" @@ -4967,6 +5672,10 @@ msgstr "" msgid "Searching tags file %s" msgstr "Serĉado de dosiero de etikedoj %s" +#, c-format +msgid "E430: Tag file path truncated for %s\n" +msgstr "E430: Vojo de etikeda dosiero trunkita por %s\n" + msgid "Ignoring long line in tags file" msgstr "Ignoro de longa linio en etikeda dosiero" @@ -4975,8 +5684,8 @@ msgid "E431: Format error in tags file \"%s\"" msgstr "E431: Eraro de formato en etikeda dosiero \"%s\"" #, c-format -msgid "Before byte %" -msgstr "Antaŭ bajto %" +msgid "Before byte %ld" +msgstr "Antaŭ bajto %ld" #, c-format msgid "E432: Tags file not sorted: %s" @@ -5026,14 +5735,26 @@ msgstr "" "\n" "--- Klavoj de terminalo ---" +msgid "Cannot open $VIMRUNTIME/rgb.txt" +msgstr "Ne povas malfermi $VIMRUNTIME/rgb.txt" + +msgid "new shell started\n" +msgstr "nova ŝelo lanĉita\n" + msgid "Vim: Error reading input, exiting...\n" msgstr "Vim: Eraro dum legado de eniro, elironta...\n" +msgid "Used CUT_BUFFER0 instead of empty selection" +msgstr "Uzis CUT_BUFFER0 anstataŭ malplenan apartigon" + #. This happens when the FileChangedRO autocommand changes the #. * file in a way it becomes shorter. -#, fuzzy -#~ msgid "E881: Line count changed unexpectedly" -#~ msgstr "E834: Nombro de linioj ŝanĝiĝis neatendite" +msgid "E881: Line count changed unexpectedly" +msgstr "E881: Nombro de linioj ŝanĝiĝis neatendite" + +#. must display the prompt +msgid "No undo possible; continue anyway" +msgstr "Malfaro neebla; tamen daŭrigi" #, c-format msgid "E828: Cannot open undo file for writing: %s" @@ -5081,6 +5802,18 @@ msgstr "E822: Ne eblas malfermi malfaran dosieron por legi: %s" msgid "E823: Not an undo file: %s" msgstr "E823: Ne estas malfara dosiero: %s" +#, c-format +msgid "E832: Non-encrypted file has encrypted undo file: %s" +msgstr "E832: Ne ĉifrata dosiero havas ĉifratan malfaran dosieron: %s" + +#, c-format +msgid "E826: Undo file decryption failed: %s" +msgstr "E826: Malĉifrado de malfara dosiero malsukcesis: %s" + +#, c-format +msgid "E827: Undo file is encrypted: %s" +msgstr "E827: Malfara dosiero estas ĉifrata: %s" + #, c-format msgid "E824: Incompatible undo file: %s" msgstr "E824: Malkongrua malfara dosiero: %s" @@ -5099,8 +5832,8 @@ msgid "Already at newest change" msgstr "Jam al la plej nova ŝanĝo" #, c-format -msgid "E830: Undo number % not found" -msgstr "E830: Malfara numero % netrovita" +msgid "E830: Undo number %ld not found" +msgstr "E830: Malfara numero %ld netrovita" msgid "E438: u_undo: line numbers wrong" msgstr "E438: u_undo: nevalidaj numeroj de linioj" @@ -5124,8 +5857,8 @@ msgid "changes" msgstr "ŝanĝoj" #, c-format -msgid "% %s; %s #% %s" -msgstr "% %s; %s #% %s" +msgid "%ld %s; %s #%ld %s" +msgstr "%ld %s; %s #%ld %s" msgid "before" msgstr "antaŭ" @@ -5140,8 +5873,8 @@ msgid "number changes when saved" msgstr "numero ŝanĝoj tempo konservita" #, c-format -msgid "% seconds ago" -msgstr "antaŭ % sekundoj" +msgid "%ld seconds ago" +msgstr "antaŭ %ld sekundoj" msgid "E790: undojoin is not allowed after undo" msgstr "E790: undojoin estas nepermesebla post malfaro" @@ -5152,51 +5885,295 @@ msgstr "E439: listo de malfaro estas difekta" msgid "E440: undo line missing" msgstr "E440: linio de malfaro mankas" -msgid "" -"\n" -"Included patches: " -msgstr "" -"\n" -"Flikaĵoj inkluzivitaj: " +#, c-format +msgid "E122: Function %s already exists, add ! to replace it" +msgstr "E122: La funkcio %s jam ekzistas (aldonu ! por anstataŭigi ĝin)" -msgid "" -"\n" -"Extra patches: " -msgstr "" -"\n" -"Ekstraj flikaĵoj: " +msgid "E717: Dictionary entry already exists" +msgstr "E717: Rikordo de vortaro jam ekzistas" -msgid "Modified by " -msgstr "Modifita de " +msgid "E718: Funcref required" +msgstr "E718: Funcref bezonata" -msgid "" -"\n" -"Compiled " -msgstr "" -"\n" -"Kompilita " +#, c-format +msgid "E130: Unknown function: %s" +msgstr "E130: Nekonata funkcio: %s" -msgid "by " -msgstr "de " +#, c-format +msgid "E125: Illegal argument: %s" +msgstr "E125: Nevalida argumento: %s" -msgid "" -"\n" -"Huge version " -msgstr "" -"\n" -"Grandega versio " +#, c-format +msgid "E853: Duplicate argument name: %s" +msgstr "E853: Ripetita nomo de argumento: %s" -msgid "without GUI." -msgstr "sen grafika interfaco." +#, c-format +msgid "E740: Too many arguments for function %s" +msgstr "E740: Tro da argumentoj por funkcio: %s" -msgid " Features included (+) or not (-):\n" -msgstr " Ebloj inkluzivitaj (+) aŭ ne (-):\n" +#, c-format +msgid "E116: Invalid arguments for function %s" +msgstr "E116: Nevalidaj argumentoj por funkcio: %s" -msgid " system vimrc file: \"" -msgstr " sistema dosiero vimrc: \"" +msgid "E132: Function call depth is higher than 'maxfuncdepth'" +msgstr "E132: Profundo de funkcia alvoko superas 'maxfuncdepth'" -msgid " user vimrc file: \"" -msgstr " dosiero vimrc de uzanto: \"" +#, c-format +msgid "calling %s" +msgstr "alvokas %s" + +#, c-format +msgid "%s aborted" +msgstr "%s ĉesigita" + +#, c-format +msgid "%s returning #%ld" +msgstr "%s liveras #%ld" + +#, c-format +msgid "%s returning %s" +msgstr "%s liveras %s" + +msgid "E699: Too many arguments" +msgstr "E699: Tro da argumentoj" + +#, c-format +msgid "E117: Unknown function: %s" +msgstr "E117: Nekonata funkcio: %s" + +#, c-format +msgid "E933: Function was deleted: %s" +msgstr "E933: funkcio estis forviŝita: %s" + +#, c-format +msgid "E119: Not enough arguments for function: %s" +msgstr "E119: Ne sufiĉe da argumentoj por funkcio: %s" + +#, c-format +msgid "E120: Using not in a script context: %s" +msgstr "E120: estas uzata ekster kunteksto de skripto: %s" + +#, c-format +msgid "E725: Calling dict function without Dictionary: %s" +msgstr "E725: Alvoko de funkcio dict sen Vortaro: %s" + +msgid "E129: Function name required" +msgstr "E129: Nomo de funkcio bezonata" + +#, c-format +msgid "E128: Function name must start with a capital or \"s:\": %s" +msgstr "E128: Nomo de funkcio devas eki per majusklo aŭ per \"s:\": %s" + +#, c-format +msgid "E884: Function name cannot contain a colon: %s" +msgstr "E884: Nomo de funkcio ne povas enhavi dupunkton: %s" + +#, c-format +msgid "E123: Undefined function: %s" +msgstr "E123: Nedifinita funkcio: %s" + +#, c-format +msgid "E124: Missing '(': %s" +msgstr "E124: Mankas '(': %s" + +msgid "E862: Cannot use g: here" +msgstr "E862: Ne eblas uzi g: ĉi tie" + +#, c-format +msgid "E932: Closure function should not be at top level: %s" +msgstr "E932: Fermo-funkcio devus esti je la plej alta nivelo: %s" + +msgid "E126: Missing :endfunction" +msgstr "E126: Mankas \":endfunction\"" + +#, c-format +msgid "E707: Function name conflicts with variable: %s" +msgstr "E707: Nomo de funkcio konfliktas kun variablo: %s" + +#, c-format +msgid "E127: Cannot redefine function %s: It is in use" +msgstr "E127: Ne eblas redifini funkcion %s: Estas nuntempe uzata" + +#, c-format +msgid "E746: Function name does not match script file name: %s" +msgstr "E746: Nomo de funkcio ne kongruas kun dosiernomo de skripto: %s" + +#, c-format +msgid "E131: Cannot delete function %s: It is in use" +msgstr "E131: Ne eblas forviŝi funkcion %s: Estas nuntempe uzata" + +msgid "E133: :return not inside a function" +msgstr "E133: \":return\" ekster funkcio" + +#, c-format +msgid "E107: Missing parentheses: %s" +msgstr "E107: Mankas krampoj: %s" + +msgid "" +"\n" +"MS-Windows 64-bit GUI version" +msgstr "" +"\n" +"Grafika versio MS-Vindozo 64-bitoj" + +msgid "" +"\n" +"MS-Windows 32-bit GUI version" +msgstr "" +"\n" +"Grafika versio MS-Vindozo 32-bitoj" + +msgid " with OLE support" +msgstr " kun subteno de OLE" + +msgid "" +"\n" +"MS-Windows 64-bit console version" +msgstr "" +"\n" +"Versio konzola MS-Vindozo 64-bitoj" + +msgid "" +"\n" +"MS-Windows 32-bit console version" +msgstr "" +"\n" +"Versio konzola MS-Vindozo 32-bitoj" + +msgid "" +"\n" +"MacOS X (unix) version" +msgstr "" +"\n" +"Versio Mak OS X (unikso)" + +msgid "" +"\n" +"MacOS X version" +msgstr "" +"\n" +"Versio Mak OS X" + +msgid "" +"\n" +"MacOS version" +msgstr "" +"\n" +"Versio Mak OS" + +msgid "" +"\n" +"OpenVMS version" +msgstr "" +"\n" +"Versio OpenVMS" + +msgid "" +"\n" +"Included patches: " +msgstr "" +"\n" +"Flikaĵoj inkluzivitaj: " + +msgid "" +"\n" +"Extra patches: " +msgstr "" +"\n" +"Ekstraj flikaĵoj: " + +msgid "Modified by " +msgstr "Modifita de " + +msgid "" +"\n" +"Compiled " +msgstr "" +"\n" +"Kompilita " + +msgid "by " +msgstr "de " + +msgid "" +"\n" +"Huge version " +msgstr "" +"\n" +"Grandega versio " + +msgid "" +"\n" +"Big version " +msgstr "" +"\n" +"Granda versio " + +msgid "" +"\n" +"Normal version " +msgstr "" +"\n" +"Normala versio " + +msgid "" +"\n" +"Small version " +msgstr "" +"\n" +"Malgranda versio " + +msgid "" +"\n" +"Tiny version " +msgstr "" +"\n" +"Malgrandega versio " + +msgid "without GUI." +msgstr "sen grafika interfaco." + +msgid "with GTK3 GUI." +msgstr "kun grafika interfaco GTK3." + +msgid "with GTK2-GNOME GUI." +msgstr "kun grafika interfaco GTK2-GNOME." + +msgid "with GTK2 GUI." +msgstr "kun grafika interfaco GTK2." + +msgid "with X11-Motif GUI." +msgstr "kun grafika interfaco X11-Motif." + +msgid "with X11-neXtaw GUI." +msgstr "kun grafika interfaco X11-neXtaw." + +msgid "with X11-Athena GUI." +msgstr "kun grafika interfaco X11-Athena." + +msgid "with Photon GUI." +msgstr "kun grafika interfaco Photon." + +msgid "with GUI." +msgstr "sen grafika interfaco." + +msgid "with Carbon GUI." +msgstr "kun grafika interfaco Carbon." + +msgid "with Cocoa GUI." +msgstr "kun grafika interfaco Cocoa." + +msgid "with (classic) GUI." +msgstr "kun (klasika) grafika interfaco." + +msgid " Features included (+) or not (-):\n" +msgstr " Ebloj inkluzivitaj (+) aŭ ne (-):\n" + +msgid " system vimrc file: \"" +msgstr " sistema dosiero vimrc: \"" + +msgid " user vimrc file: \"" +msgstr " dosiero vimrc de uzanto: \"" msgid " 2nd user vimrc file: \"" msgstr " 2-a dosiero vimrc de uzanto: \"" @@ -5210,6 +6187,24 @@ msgstr " dosiero exrc de uzanto: \"" msgid " 2nd user exrc file: \"" msgstr " 2-a dosiero exrc de uzanto: \"" +msgid " system gvimrc file: \"" +msgstr " sistema dosiero gvimrc: \"" + +msgid " user gvimrc file: \"" +msgstr " dosiero gvimrc de uzanto: \"" + +msgid "2nd user gvimrc file: \"" +msgstr " 2-a dosiero gvimrc de uzanto: \"" + +msgid "3rd user gvimrc file: \"" +msgstr " 3-a dosiero gvimrc de uzanto: \"" + +msgid " defaults file: \"" +msgstr " dosiero de defaŭltoj: \"" + +msgid " system menu file: \"" +msgstr " dosiero de sistema menuo: \"" + msgid " fall-back for $VIM: \"" msgstr " defaŭlto de $VIM: \"" @@ -5219,6 +6214,9 @@ msgstr " defaŭlto de VIMRUNTIME: \"" msgid "Compilation: " msgstr "Kompilado: " +msgid "Compiler: " +msgstr "Kompililo: " + msgid "Linking: " msgstr "Ligado: " @@ -5254,8 +6252,8 @@ msgid "type :help or for on-line help" msgstr "tajpu :help por aliri la helpon " # DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon -msgid "type :help version7 for version info" -msgstr "tajpu :help version7 por informo de versio" +msgid "type :help version8 for version info" +msgstr "tajpu :help version8 por informo de versio" msgid "Running in Vi compatible mode" msgstr "Ruliĝas en reĝimo kongrua kun Vi" @@ -5268,6 +6266,30 @@ msgstr "tajpu :set nocp por Vim defaŭltoj " msgid "type :help cp-default for info on this" msgstr "tajpu :help cp-default por pliaj informoj " +# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon +msgid "menu Help->Orphans for information " +msgstr "menuo Help->Orfinoj por pliaj informoj " + +msgid "Running modeless, typed text is inserted" +msgstr "Ruliĝas senreĝime, tajpita teksto estas enmetita" + +# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon +msgid "menu Edit->Global Settings->Toggle Insert Mode " +msgstr "menuo Redakti->Mallokaj Agordoj->Baskuligi Enmetan Reĝimon" + +# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon +msgid " for two modes " +msgstr " por du reĝimoj " + +# DP: tiu ĉeno pli longas (mi ne volas igi ĉiujn aliajn ĉenojn +# pli longajn) +msgid "menu Edit->Global Settings->Toggle Vi Compatible" +msgstr "menuo Redakti->Mallokaj Agordoj->Baskuligi Reĝimon Kongruan kun Vi" + +# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon +msgid " for Vim defaults " +msgstr " por defaŭltoj de Vim " + msgid "Sponsor Vim development!" msgstr "Subtenu la programadon de Vim!" @@ -5313,1737 +6335,703 @@ msgstr "E445: La alia fenestro enhavas ŝanĝojn" msgid "E446: No file name under cursor" msgstr "E446: Neniu dosiernomo sub la kursoro" -#~ msgid "E831: bf_key_init() called with empty password" -#~ msgstr "E831: bf_key_init() alvokita kun malplena pasvorto" - -#~ msgid "E820: sizeof(uint32_t) != 4" -#~ msgstr "E820: sizeof(uint32_t) != 4" - -#~ msgid "E817: Blowfish big/little endian use wrong" -#~ msgstr "E817: Misuzo de pezkomenca/pezfina en blowfish" - -#~ msgid "E818: sha256 test failed" -#~ msgstr "E818: Testo de sha256 fiaskis" - -#~ msgid "E819: Blowfish test failed" -#~ msgstr "E819: Testo de blowfish fiaskis" - -#~ msgid "Patch file" -#~ msgstr "Flika dosiero" - -#~ msgid "" -#~ "&OK\n" -#~ "&Cancel" -#~ msgstr "" -#~ "&Bone\n" -#~ "&Rezigni" - -#~ msgid "E240: No connection to Vim server" -#~ msgstr "E240: Neniu konekto al Vim-servilo" - -#~ msgid "E241: Unable to send to %s" -#~ msgstr "E241: Ne eblas sendi al %s" - -#~ msgid "E277: Unable to read a server reply" -#~ msgstr "E277: Ne eblas legi respondon de servilo" - -#~ msgid "E258: Unable to send to client" -#~ msgstr "E258: Ne eblas sendi al kliento" - -#~ msgid "Save As" -#~ msgstr "Konservi kiel" - -#~ msgid "Edit File" -#~ msgstr "Redakti dosieron" - -#~ msgid " (NOT FOUND)" -#~ msgstr " (NETROVITA)" - -#~ msgid "Source Vim script" -#~ msgstr "Ruli Vim-skripton" - -#~ msgid "unknown" -#~ msgstr "nekonata" - -#~ msgid "Edit File in new window" -#~ msgstr "Redakti Dosieron en nova fenestro" - -#~ msgid "Append File" -#~ msgstr "Postaldoni dosieron" - -#~ msgid "Window position: X %d, Y %d" -#~ msgstr "Pozicio de fenestro: X %d, Y %d" - -#~ msgid "Save Redirection" -#~ msgstr "Konservi alidirekton" - -# DP: mi ne certas pri superflugo -#~ msgid "Save View" -#~ msgstr "Konservi superflugon" - -#~ msgid "Save Session" -#~ msgstr "Konservi seancon" - -#~ msgid "Save Setup" -#~ msgstr "Konservi agordaron" - -#~ msgid "E809: #< is not available without the +eval feature" -#~ msgstr "E809: #< ne haveblas sen la eblo +eval" - -#~ msgid "E196: No digraphs in this version" -#~ msgstr "E196: Neniu duliteraĵo en tiu versio" - -#~ msgid "is a device (disabled with 'opendevice' option)" -#~ msgstr "estas aparatdosiero (malŝaltita per la opcio 'opendevice')" - -#~ msgid "Reading from stdin..." -#~ msgstr "Legado el stdin..." - -#~ msgid "[crypted]" -#~ msgstr "[ĉifrita]" - -#~ msgid "E821: File is encrypted with unknown method" -#~ msgstr "E821: Dosiero estas ĉifrata per nekonata metodo" - -#~ msgid "Warning: Using a weak encryption method; see :help 'cm'" -#~ msgstr "Averto: uzo de malfortika ĉifrada metodo; vidu :help 'cm'" - -#~ msgid "NetBeans disallows writes of unmodified buffers" -#~ msgstr "NetBeans malpermesas skribojn de neŝanĝitaj bufroj" - -#~ msgid "Partial writes disallowed for NetBeans buffers" -#~ msgstr "Partaj skriboj malpermesitaj ĉe bufroj NetBeans" - -#~ msgid "writing to device disabled with 'opendevice' option" -#~ msgstr "skribo al aparatdosiero malŝaltita per la opcio 'opendevice'" - -#~ msgid "E460: The resource fork would be lost (add ! to override)" -#~ msgstr "E460: La rimeda forko estus perdita (aldonu ! por transpasi)" - -#~ msgid "E851: Failed to create a new process for the GUI" -#~ msgstr "E851: Ne sukcesis krei novan procezon por la grafika interfaco" - -#~ msgid "E852: The child process failed to start the GUI" -#~ msgstr "E852: La ida procezo ne sukcesis startigi la grafikan interfacon" - -#~ msgid "E229: Cannot start the GUI" -#~ msgstr "E229: Ne eblas lanĉi la grafikan interfacon" - -#~ msgid "E230: Cannot read from \"%s\"" -#~ msgstr "E230: Ne eblas legi el \"%s\"" - -#~ msgid "E665: Cannot start GUI, no valid font found" -#~ msgstr "" -#~ "E665: Ne eblas startigi grafikan interfacon, neniu valida tiparo trovita" - -#~ msgid "E231: 'guifontwide' invalid" -#~ msgstr "E231: 'guifontwide' nevalida" - -#~ msgid "E599: Value of 'imactivatekey' is invalid" -#~ msgstr "E599: Valoro de 'imactivatekey' estas nevalida" - -#~ msgid "E254: Cannot allocate color %s" -#~ msgstr "E254: Ne eblas disponigi koloron %s" - -#~ msgid "No match at cursor, finding next" -#~ msgstr "Neniu kongruo ĉe kursorpozicio, trovas sekvan" - -#~ msgid " " -#~ msgstr " " - -#~ msgid "E616: vim_SelFile: can't get font %s" -#~ msgstr "E616: vim_SelFile: ne eblas akiri tiparon %s" - -#~ msgid "E614: vim_SelFile: can't return to current directory" -#~ msgstr "E614: vim_SelFile: ne eblas reveni al la aktuala dosierujo" - -#~ msgid "Pathname:" -#~ msgstr "Serĉvojo:" - -#~ msgid "E615: vim_SelFile: can't get current directory" -#~ msgstr "E615: vim_SelFile: ne eblas akiri aktualan dosierujon" - -#~ msgid "OK" -#~ msgstr "Bone" - -#~ msgid "Cancel" -#~ msgstr "Rezigni" - -#~ msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." -#~ msgstr "" -#~ "Fenestraĵo de rulumskalo: Ne eblis akiri geometrion de reduktita " -#~ "rastrumbildo" - -#~ msgid "Vim dialog" -#~ msgstr "Vim dialogo" - -#~ msgid "E232: Cannot create BalloonEval with both message and callback" -#~ msgstr "E232: Ne eblas krei BalloonEval kun ambaŭ mesaĝo kaj reagfunkcio" - -msgid "Yes" -msgstr "Jes" - -msgid "No" -msgstr "Ne" - -# todo '_' is for hotkey, i guess? -#~ msgid "Input _Methods" -#~ msgstr "Enigaj _metodoj" - -#~ msgid "VIM - Search and Replace..." -#~ msgstr "VIM - Serĉi kaj anstataŭigi..." - -#~ msgid "VIM - Search..." -#~ msgstr "VIM- Serĉi..." - -#~ msgid "Find what:" -#~ msgstr "Serĉi kion:" - -#~ msgid "Replace with:" -#~ msgstr "Anstataŭigi per:" - -#~ msgid "Match whole word only" -#~ msgstr "Kongrui kun nur plena vorto" - -#~ msgid "Match case" -#~ msgstr "Uskleca kongruo" - -#~ msgid "Direction" -#~ msgstr "Direkto" - -#~ msgid "Up" -#~ msgstr "Supren" - -#~ msgid "Down" -#~ msgstr "Suben" - -#~ msgid "Find Next" -#~ msgstr "Trovi sekvantan" - -#~ msgid "Replace" -#~ msgstr "Anstataŭigi" - -#~ msgid "Replace All" -#~ msgstr "Anstataŭigi ĉiujn" - -#~ msgid "Vim: Received \"die\" request from session manager\n" -#~ msgstr "Vim: Ricevis peton \"die\" (morti) el la seanca administrilo\n" - -#~ msgid "Close tab" -#~ msgstr "Fermi langeton" - -#~ msgid "New tab" -#~ msgstr "Nova langeto" - -#~ msgid "Open Tab..." -#~ msgstr "Malfermi langeton..." - -#~ msgid "Vim: Main window unexpectedly destroyed\n" -#~ msgstr "Vim: Ĉefa fenestro neatendite detruiĝis\n" - -#~ msgid "&Filter" -#~ msgstr "&Filtri" - -#~ msgid "&Cancel" -#~ msgstr "&Rezigni" - -#~ msgid "Directories" -#~ msgstr "Dosierujoj" - -#~ msgid "Filter" -#~ msgstr "Filtri" - -#~ msgid "&Help" -#~ msgstr "&Helpo" - -#~ msgid "Files" -#~ msgstr "Dosieroj" - -#~ msgid "&OK" -#~ msgstr "&Bone" - -#~ msgid "Selection" -#~ msgstr "Apartigo" - -#~ msgid "Find &Next" -#~ msgstr "Trovi &Sekvanta" - -#~ msgid "&Replace" -#~ msgstr "&Anstataŭigi" - -#~ msgid "Replace &All" -#~ msgstr "Anstataŭigi ĉi&on" - -#~ msgid "&Undo" -#~ msgstr "&Malfari" - -#~ msgid "E671: Cannot find window title \"%s\"" -#~ msgstr "E671: Ne eblas trovi titolon de fenestro \"%s\"" - -#~ msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." -#~ msgstr "E243: Ne subtenata argumento: \"-%s\"; Uzu la version OLE." - -#~ msgid "E672: Unable to open window inside MDI application" -#~ msgstr "E672: Ne eblas malfermi fenestron interne de aplikaĵo MDI" - -#~ msgid "Open tab..." -#~ msgstr "Malfermi langeton..." - -#~ msgid "Find string (use '\\\\' to find a '\\')" -#~ msgstr "Trovi ĉenon (uzu '\\\\' por trovi '\\')" - -#~ msgid "Find & Replace (use '\\\\' to find a '\\')" -#~ msgstr "Trovi kaj anstataŭigi (uzu '\\\\' por trovi '\\')" - -#~ msgid "Not Used" -#~ msgstr "Ne uzata" - -#~ msgid "Directory\t*.nothing\n" -#~ msgstr "Dosierujo\t*.nenio\n" - -#~ msgid "" -#~ "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" -#~ msgstr "" -#~ "Vim E458: Ne eblas disponigi rikordon de kolormapo, iuj koloroj estas " -#~ "eble neĝustaj" - -#~ msgid "E250: Fonts for the following charsets are missing in fontset %s:" -#~ msgstr "E250: Tiparoj de tiuj signaroj mankas en aro de tiparo %s:" - -#~ msgid "E252: Fontset name: %s" -#~ msgstr "E252: Nomo de tiparo: %s" - -#~ msgid "Font '%s' is not fixed-width" -#~ msgstr "Tiparo '%s' ne estas egallarĝa" - -#~ msgid "E253: Fontset name: %s\n" -#~ msgstr "E253: Nomo de tiparo: %s\n" - -#~ msgid "Font0: %s\n" -#~ msgstr "Font0: %s\n" - -#~ msgid "Font1: %s\n" -#~ msgstr "Font1: %s\n" - -#~ msgid "Font% width is not twice that of font0\n" -#~ msgstr "Font% ne estas duoble pli larĝa ol font0\n" - -#~ msgid "Font0 width: %\n" -#~ msgstr "Larĝo de font0: %\n" - -#~ msgid "" -#~ "Font1 width: %\n" -#~ "\n" -#~ msgstr "" -#~ "Larĝo de Font1: %\n" -#~ "\n" - -#~ msgid "Invalid font specification" -#~ msgstr "Nevalida tiparo specifita" - -#~ msgid "&Dismiss" -#~ msgstr "&Forlasi" - -#~ msgid "no specific match" -#~ msgstr "Neniu specifa kongruo" - -#~ msgid "Vim - Font Selector" -#~ msgstr "Vim - Elektilo de tiparo" - -#~ msgid "Name:" -#~ msgstr "Nomo:" - -#~ msgid "Show size in Points" -#~ msgstr "Montri grandon en punktoj" - -#~ msgid "Encoding:" -#~ msgstr "Kodoprezento:" - -#~ msgid "Font:" -#~ msgstr "Tiparo:" - -#~ msgid "Style:" -#~ msgstr "Stilo:" - -#~ msgid "Size:" -#~ msgstr "Grando:" - -#~ msgid "E256: Hangul automata ERROR" -#~ msgstr "E256: ERARO en aŭtomato de korea alfabeto" - -#~ msgid "E563: stat error" -#~ msgstr "E563: Eraro de stat" - -#~ msgid "E625: cannot open cscope database: %s" -#~ msgstr "E625: ne eblas malfermi datumbazon de cscope: %s" - -#~ msgid "E626: cannot get cscope database information" -#~ msgstr "E626: ne eblas akiri informojn pri la datumbazo de cscope" - -#~ msgid "Lua library cannot be loaded." -#~ msgstr "La biblioteko Lua no ŝargeblis." - -#~ msgid "cannot save undo information" -#~ msgstr "ne eblas konservi informojn de malfaro" - -#~ msgid "" -#~ "E815: Sorry, this command is disabled, the MzScheme libraries could not " -#~ "be loaded." -#~ msgstr "" -#~ "E815: Bedaŭrinde, tiu komando estas malŝaltita, ne eblis ŝargi la " -#~ "bibliotekojn." - -#~ msgid "invalid expression" -#~ msgstr "nevalida esprimo" - -#~ msgid "expressions disabled at compile time" -#~ msgstr "esprimoj malŝaltitaj dum kompilado" - -#~ msgid "hidden option" -#~ msgstr "kaŝita opcio" - -#~ msgid "unknown option" -#~ msgstr "nekonata opcio" - -#~ msgid "window index is out of range" -#~ msgstr "indekso de fenestro estas ekster limoj" - -#~ msgid "couldn't open buffer" -#~ msgstr "ne eblis malfermi bufron" - -#~ msgid "cannot delete line" -#~ msgstr "ne eblas forviŝi linion" - -#~ msgid "cannot replace line" -#~ msgstr "ne eblas anstataŭigi linion" - -#~ msgid "cannot insert line" -#~ msgstr "ne eblas enmeti linion" - -#~ msgid "string cannot contain newlines" -#~ msgstr "ĉeno ne rajtas enhavi liniavancojn" - -#~ msgid "error converting Scheme values to Vim" -#~ msgstr "eraro dum konverto de Scheme-valoro al Vim" - -#~ msgid "Vim error: ~a" -#~ msgstr "Eraro de Vim: ~a" - -#~ msgid "Vim error" -#~ msgstr "Eraro de Vim" - -#~ msgid "buffer is invalid" -#~ msgstr "bufro estas nevalida" - -#~ msgid "window is invalid" -#~ msgstr "fenestro estas nevalida" - -#~ msgid "linenr out of range" -#~ msgstr "numero de linio ekster limoj" - -#~ msgid "not allowed in the Vim sandbox" -#~ msgstr "nepermesebla en sabloludejo de Vim" - -#~ msgid "E836: This Vim cannot execute :python after using :py3" -#~ msgstr "E836: Vim ne povas plenumi :python post uzo de :py3" - -#~ msgid "only string keys are allowed" -#~ msgstr "nur ĉenaj ŝlosiloj estas permeseblaj" - -#~ msgid "" -#~ "E263: Sorry, this command is disabled, the Python library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E263: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Pitono ne " -#~ "ŝargeblis." - -#~ msgid "E659: Cannot invoke Python recursively" -#~ msgstr "E659: Ne eblas alvoki Pitonon rekursie" - -#~ msgid "E837: This Vim cannot execute :py3 after using :python" -#~ msgstr "E837: Vim ne povas plenumi :py3 post uzo de :python" - -#~ msgid "index must be int or slice" -#~ msgstr "indekso devas esti 'int' aŭ 'slice'" - -#~ msgid "E265: $_ must be an instance of String" -#~ msgstr "E265: $_ devas esti apero de Ĉeno" - -#~ msgid "" -#~ "E266: Sorry, this command is disabled, the Ruby library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E266: Bedaŭrinde tiu komando estas malŝaltita, la biblioteko Ruby ne " -#~ "ŝargeblis." - -#~ msgid "E267: unexpected return" -#~ msgstr "E267: \"return\" neatendita" - -#~ msgid "E268: unexpected next" -#~ msgstr "E268: \"next\" neatendita" - -#~ msgid "E269: unexpected break" -#~ msgstr "E269: \"break\" neatendita" - -#~ msgid "E270: unexpected redo" -#~ msgstr "E270: \"redo\" neatendita" - -#~ msgid "E271: retry outside of rescue clause" -#~ msgstr "E271: \"retry\" ekster klaŭzo \"rescue\"" - -#~ msgid "E272: unhandled exception" -#~ msgstr "E272: netraktita escepto" - -#~ msgid "E273: unknown longjmp status %d" -#~ msgstr "E273: nekonata stato de longjmp: %d" - -#~ msgid "Toggle implementation/definition" -#~ msgstr "Baskuligi realigon/difinon" - -#~ msgid "Show base class of" -#~ msgstr "Vidigi bazan klason de" - -#~ msgid "Show overridden member function" -#~ msgstr "Montri anajn homonimigajn funkciojn" - -#~ msgid "Retrieve from file" -#~ msgstr "Rekuperi el dosiero" - -#~ msgid "Retrieve from project" -#~ msgstr "Rekuperi el projekto" - -#~ msgid "Retrieve from all projects" -#~ msgstr "Rekuperi de ĉiuj projektoj" - -#~ msgid "Retrieve" -#~ msgstr "Rekuperi" - -#~ msgid "Show source of" -#~ msgstr "Vidigi fonton de" - -#~ msgid "Find symbol" -#~ msgstr "Trovi simbolon" - -#~ msgid "Browse class" -#~ msgstr "Foliumi klasojn" - -#~ msgid "Show class in hierarchy" -#~ msgstr "Montri klason en hierarkio" - -#~ msgid "Show class in restricted hierarchy" -#~ msgstr "Montri klason en hierarkio restriktita" - -# todo -#~ msgid "Xref refers to" -#~ msgstr "Xref ligas al" - -#~ msgid "Xref referred by" -#~ msgstr "Xref ligiĝas de" - -#~ msgid "Xref has a" -#~ msgstr "Xref havas" - -#~ msgid "Xref used by" -#~ msgstr "Xref uzita de" - -# DP: mi ne certas pri kio temas -#~ msgid "Show docu of" -#~ msgstr "Vidigi dokumentaron de" - -#~ msgid "Generate docu for" -#~ msgstr "Krei dokumentaron de" - -#~ msgid "" -#~ "Cannot connect to SNiFF+. Check environment (sniffemacs must be found in " -#~ "$PATH).\n" -#~ msgstr "" -#~ "Konekto al SNiFF+ neeblas. Kontrolu medion (sniffemacs trovendas en " -#~ "$PATH).\n" - -#~ msgid "E274: Sniff: Error during read. Disconnected" -#~ msgstr "E274: Sniff: Eraro dum lego. Malkonektita" - -# DP: Tiuj 3 mesaĝoj estas kune -#~ msgid "SNiFF+ is currently " -#~ msgstr "SNiFF+ estas aktuale " - -#~ msgid "not " -#~ msgstr "ne " - -#~ msgid "connected" -#~ msgstr "konektita" - -#~ msgid "E275: Unknown SNiFF+ request: %s" -#~ msgstr "E275: Nekonata peto de SNiFF+: %s" - -#~ msgid "E276: Error connecting to SNiFF+" -#~ msgstr "E276: Eraro dum konekto al SNiFF+" - -#~ msgid "E278: SNiFF+ not connected" -#~ msgstr "E278: SNiFF+ ne estas konektita" - -#~ msgid "E279: Not a SNiFF+ buffer" -#~ msgstr "E279: Ne estas bufro SNiFF+" - -#~ msgid "Sniff: Error during write. Disconnected" -#~ msgstr "Sniff: Eraro dum skribo. Malkonektita" - -#~ msgid "invalid buffer number" -#~ msgstr "nevalida numero de bufro" - -#~ msgid "not implemented yet" -#~ msgstr "ankoraŭ ne realigita" - -#~ msgid "cannot set line(s)" -#~ msgstr "ne eblas meti la linio(j)n" - -#~ msgid "invalid mark name" -#~ msgstr "nevalida nomo de marko" - -#~ msgid "mark not set" -#~ msgstr "marko ne estas metita" - -#~ msgid "row %d column %d" -#~ msgstr "linio %d kolumno %d" - -#~ msgid "cannot insert/append line" -#~ msgstr "ne eblas enmeti/postaldoni linion" - -#~ msgid "line number out of range" -#~ msgstr "numero de linio ekster limoj" - -#~ msgid "unknown flag: " -#~ msgstr "nekonata flago: " - -# DP: ĉu traduki vimOption -#~ msgid "unknown vimOption" -#~ msgstr "nekonata vimOption" - -#~ msgid "keyboard interrupt" -#~ msgstr "klavara interrompo" - -#~ msgid "vim error" -#~ msgstr "eraro de Vim" - -#~ msgid "cannot create buffer/window command: object is being deleted" -#~ msgstr "" -#~ "ne eblas krei komandon de bufro/fenestro: objekto estas forviŝiĝanta" - -#~ msgid "" -#~ "cannot register callback command: buffer/window is already being deleted" -#~ msgstr "" -#~ "ne eblas registri postalvokan komandon: bufro/fenestro estas jam " -#~ "forviŝiĝanta" - -#~ msgid "" -#~ "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-" -#~ "dev@vim.org" -#~ msgstr "" -#~ "E280: NERIPAREBLA TCL-ERARO: reflist difekta!? Bv. retpoŝti al vim-" -#~ "dev@vim.org" - -#~ msgid "cannot register callback command: buffer/window reference not found" -#~ msgstr "" -#~ "ne eblas registri postalvokan komandon: referenco de bufro/fenestro ne " -#~ "troveblas" - -#~ msgid "" -#~ "E571: Sorry, this command is disabled: the Tcl library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E571: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko Tcl ne " -#~ "ŝargeblis." - -#~ msgid "E572: exit code %d" -#~ msgstr "E572: elira kodo %d" - -#~ msgid "cannot get line" -#~ msgstr "ne eblas akiri linion" - -#~ msgid "Unable to register a command server name" -#~ msgstr "Ne eblas registri nomon de komanda servilo" - -#~ msgid "E248: Failed to send command to the destination program" -#~ msgstr "E248: Sendo de komando al cela programo fiaskis" - -#~ msgid "E573: Invalid server id used: %s" -#~ msgstr "E573: Nevalida identigilo de servilo uzita: %s" - -#~ msgid "E251: VIM instance registry property is badly formed. Deleted!" -#~ msgstr "" -#~ "E251: Ecoj de registro de apero de VIM estas nevalide formata. Forviŝita!" - -#~ msgid "netbeans is not supported with this GUI\n" -#~ msgstr "netbeans ne estas subtenata kun tiu grafika interfaco\n" - -#~ msgid "This Vim was not compiled with the diff feature." -#~ msgstr "Tiu Vim ne estis kompilita kun la kompara eblo." - -#~ msgid "'-nb' cannot be used: not enabled at compile time\n" -#~ msgstr "'-nb' ne uzeblas: malŝaltita dum kompilado\n" - -#~ msgid "Vim: Error: Failure to start gvim from NetBeans\n" -#~ msgstr "Vim: Eraro: Fiaskis lanĉi gvim el NetBeans\n" - -#~ msgid "" -#~ "\n" -#~ "Where case is ignored prepend / to make flag upper case" -#~ msgstr "" -#~ "\n" -#~ "Kie uskleco estas ignorita antaŭaldonu / por igi flagon majuskla" - -#~ msgid "-register\t\tRegister this gvim for OLE" -#~ msgstr "-register\t\tRegistri tiun gvim al OLE" - -#~ msgid "-unregister\t\tUnregister gvim for OLE" -#~ msgstr "-unregister\t\tMalregistri gvim de OLE" - -#~ msgid "-g\t\t\tRun using GUI (like \"gvim\")" -#~ msgstr "-g\t\t\tRuli per grafika interfaco (kiel \"gvim\")" - -#~ msgid "-f or --nofork\tForeground: Don't fork when starting GUI" -#~ msgstr "-f aŭ --nofork\tMalfono: ne forki kiam lanĉas grafikan interfacon" - -#~ msgid "-f\t\t\tDon't use newcli to open window" -#~ msgstr "-f\t\t\tNe uzi newcli por malfermi fenestrojn" - -#~ msgid "-dev \t\tUse for I/O" -#~ msgstr "-dev \t\tUzi -n por eneligo" - -#~ msgid "-U \t\tUse instead of any .gvimrc" -#~ msgstr "-U \t\tUzi anstataŭ iun ajn .gvimrc" - -#~ msgid "-x\t\t\tEdit encrypted files" -#~ msgstr "-x\t\t\tRedakti ĉifradan dosieron" - -#~ msgid "-display \tConnect vim to this particular X-server" -#~ msgstr "-display \tKonekti Vim al tiu X-servilo" - -#~ msgid "-X\t\t\tDo not connect to X server" -#~ msgstr "-X\t\t\tNe konekti al X-servilo" - -#~ msgid "--remote \tEdit in a Vim server if possible" -#~ msgstr "--remote \tRedakti -n en Vim-servilo se eblas" - -#~ msgid "--remote-silent Same, don't complain if there is no server" -#~ msgstr "--remote-silent Same, sed ne plendi se ne estas servilo" - -#~ msgid "" -#~ "--remote-wait As --remote but wait for files to have been edited" -#~ msgstr "" -#~ "--remote-wait Kiel --remote sed atendi ĝis dosieroj estas " -#~ "redaktitaj" - -#~ msgid "" -#~ "--remote-wait-silent Same, don't complain if there is no server" -#~ msgstr "" -#~ "--remote-wait-silent Same, sed ne plendi se ne estas servilo" - -#~ msgid "" -#~ "--remote-tab[-wait][-silent] As --remote but use tab page per " -#~ "file" -#~ msgstr "" -#~ "--remote-tab[-wait][-silent] Kiel --remote sed uzi langeton " -#~ "por ĉiu dosiero" - -#~ msgid "--remote-send \tSend to a Vim server and exit" -#~ msgstr "--remote-send Sendi -n al Vim-servilo kaj eliri" - -#~ msgid "" -#~ "--remote-expr \tEvaluate in a Vim server and print result" -#~ msgstr "" -#~ "--remote-expr \tKomputi en Vim-servilo kaj afiŝi rezulton" - -#~ msgid "--serverlist\t\tList available Vim server names and exit" -#~ msgstr "--serverlist\t\tListigi haveblajn nomojn de Vim-serviloj kaj eliri" - -#~ msgid "--servername \tSend to/become the Vim server " -#~ msgstr "--servername \tSendu al/iĝi la Vim-servilo " - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (Motif version):\n" -#~ msgstr "" -#~ "\n" -#~ "Argumentoj agnoskitaj de gvim (versio Motif):\n" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (neXtaw version):\n" -#~ msgstr "" -#~ "\n" -#~ "Argumentoj agnoskitaj de gvim (versio neXtaw):\n" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (Athena version):\n" -#~ msgstr "" -#~ "\n" -#~ "Argumentoj agnoskitaj de gvim (versio Athena):\n" - -#~ msgid "-display \tRun vim on " -#~ msgstr "-display \tLanĉi vim sur " - -#~ msgid "-iconic\t\tStart vim iconified" -#~ msgstr "-iconic\t\tLanĉi vim piktograme" - -#~ msgid "-background \tUse for the background (also: -bg)" -#~ msgstr "" -#~ "-background \tUzi -n por la fona koloro (ankaŭ: -bg)" - -#~ msgid "-foreground \tUse for normal text (also: -fg)" -#~ msgstr "" -#~ "-foreground \tUzi -n por la malfona koloro (ankaŭ: -fg)" - -#~ msgid "-font \t\tUse for normal text (also: -fn)" -#~ msgstr "-font \tUzi -n por normala teksto (ankaŭ: -fn)" - -#~ msgid "-boldfont \tUse for bold text" -#~ msgstr "-boldfont \tUzi -n por grasa teksto" - -#~ msgid "-italicfont \tUse for italic text" -#~ msgstr "-italicfont \tUzi -n por kursiva teksto" - -#~ msgid "-geometry \tUse for initial geometry (also: -geom)" -#~ msgstr "-geometry \tUzi kiel komenca geometrio (ankaŭ: -geom)" - -#~ msgid "-borderwidth \tUse a border width of (also: -bw)" -#~ msgstr "" -#~ "-borderwidth \tUzi -n kiel larĝo de bordero (ankaŭ: -bw)" - -#~ msgid "" -#~ "-scrollbarwidth Use a scrollbar width of (also: -sw)" -#~ msgstr "" -#~ "-scrollbarwidth Uzi -n kiel larĝo de rulumskalo (ankaŭ: -" -#~ "sw)" - -#~ msgid "-menuheight \tUse a menu bar height of (also: -mh)" -#~ msgstr "" -#~ "-menuheight \tUzi -n kiel alto de menuzona alto (ankaŭ: -mh)" - -#~ msgid "-reverse\t\tUse reverse video (also: -rv)" -#~ msgstr "-reverse\t\tUzi inversan videon (ankaŭ: -rv)" - -#~ msgid "+reverse\t\tDon't use reverse video (also: +rv)" -#~ msgstr "+reverse\t\tNe uzi inversan videon (ankaŭ: +rv)" +#, c-format +msgid "E447: Can't find file \"%s\" in path" +msgstr "E447: Ne eblas trovi dosieron \"%s\" en serĉvojo" -#~ msgid "-xrm \tSet the specified resource" -#~ msgstr "-xrm \tAgordi la specifitan -n" +#, c-format +msgid "E799: Invalid ID: %ld (must be greater than or equal to 1)" +msgstr "E799: Nevalida ID: %ld (devas esti egala aŭ pli granda ol 1)" -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (GTK+ version):\n" -#~ msgstr "" -#~ "\n" -#~ "Argumentoj agnoskitaj de gvim (versio GTK+):\n" +#, c-format +msgid "E801: ID already taken: %ld" +msgstr "E801: ID jam uzata: %ld" -#~ msgid "-display \tRun vim on (also: --display)" -#~ msgstr "-display \tLanĉi Vim sur tiu (ankaŭ: --display)" +msgid "List or number required" +msgstr "Listo aŭ nombro bezonata" -#~ msgid "--role \tSet a unique role to identify the main window" -#~ msgstr "--role \tDoni unikan rolon por identigi la ĉefan fenestron" +#, c-format +msgid "E802: Invalid ID: %ld (must be greater than or equal to 1)" +msgstr "E802: Nevalida ID: %ld (devas esti egala aŭ pli granda ol 1)" -#~ msgid "--socketid \tOpen Vim inside another GTK widget" -#~ msgstr "--socketid \tMalfermi Vim en alia GTK fenestraĵo" +#, c-format +msgid "E803: ID not found: %ld" +msgstr "E803: ID netrovita: %ld" -#~ msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout" -#~ msgstr "--echo-wid\t\tIgas gvim afiŝi la identigilon de vindozo sur stdout" +#, c-format +msgid "E370: Could not load library %s" +msgstr "E370: Ne eblis ŝargi bibliotekon %s" -#~ msgid "-P \tOpen Vim inside parent application" -#~ msgstr "-P \tMalfermi Vim en gepatra aplikaĵo" +msgid "Sorry, this command is disabled: the Perl library could not be loaded." +msgstr "" +"Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Perl ne ŝargeblis." -#~ msgid "--windowid \tOpen Vim inside another win32 widget" -#~ msgstr "--windowid \tMalfermi Vim en alia win32 fenestraĵo" +msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" +msgstr "" +"E299: Plenumo de Perl esprimoj malpermesata en sabloludejo sen la modulo Safe" -#~ msgid "No display" -#~ msgstr "Neniu ekrano" +msgid "Edit with &multiple Vims" +msgstr "Redakti per &pluraj Vim-oj" -#~ msgid ": Send failed.\n" -#~ msgstr ": Sendo fiaskis.\n" +msgid "Edit with single &Vim" +msgstr "Redakti per unuopa &Vim" -#~ msgid ": Send failed. Trying to execute locally\n" -#~ msgstr ": Sendo fiaskis. Provo de loka plenumo\n" +msgid "Diff with Vim" +msgstr "Kompari per Vim" -#~ msgid "%d of %d edited" -#~ msgstr "%d de %d redaktita(j)" +msgid "Edit with &Vim" +msgstr "Redakti per &Vim" -#~ msgid "No display: Send expression failed.\n" -#~ msgstr "Neniu ekrano: Sendado de esprimo fiaskis.\n" +#. Now concatenate +msgid "Edit with existing Vim - " +msgstr "Redakti per ekzistanta Vim - " -#~ msgid ": Send expression failed.\n" -#~ msgstr ": Sendado de esprimo fiaskis.\n" +msgid "Edits the selected file(s) with Vim" +msgstr "Redakti la apartigita(j)n dosiero(j)n per Vim" -#~ msgid "E543: Not a valid codepage" -#~ msgstr "E543: Nevalida kodpaĝo" +msgid "Error creating process: Check if gvim is in your path!" +msgstr "Eraro dum kreo de procezo: Kontrolu ĉu gvim estas en via serĉvojo!" -#~ msgid "E284: Cannot set IC values" -#~ msgstr "E284: Ne eblas agordi valorojn de IC" +msgid "gvimext.dll error" +msgstr "Eraro de gvimext.dll" -#~ msgid "E285: Failed to create input context" -#~ msgstr "E285: Ne eblis krei enigan kuntekston" +msgid "Path length too long!" +msgstr "Serĉvojo estas tro longa!" -#~ msgid "E286: Failed to open input method" -#~ msgstr "E286: Ne eblis malfermi enigan metodon" +msgid "--No lines in buffer--" +msgstr "--Neniu linio en bufro--" -#~ msgid "E287: Warning: Could not set destroy callback to IM" -#~ msgstr "E287: Averto: Ne eblis agordi detruan reagfunkcion al IM" +#. +#. * The error messages that can be shared are included here. +#. * Excluded are errors that are only used once and debugging messages. +#. +msgid "E470: Command aborted" +msgstr "E470: komando ĉesigita" -#~ msgid "E288: input method doesn't support any style" -#~ msgstr "E288: eniga metodo subtenas neniun stilon" +msgid "E471: Argument required" +msgstr "E471: Argumento bezonata" -# DP: mi ne scias, kio estas "preedit" -#~ msgid "E289: input method doesn't support my preedit type" -#~ msgstr "E289: eniga metodo ne subtenas mian antaŭredaktan tipon" - -#~ msgid "E843: Error while updating swap file crypt" -#~ msgstr "E843: Eraro dum ĝisdatigo de ĉifrada permutodosiero .swp" - -#~ msgid "" -#~ "E833: %s is encrypted and this version of Vim does not support encryption" -#~ msgstr "E833: %s estas ĉifrata kaj tiu versio de Vim ne subtenas ĉifradon" - -#~ msgid "Swap file is encrypted: \"%s\"" -#~ msgstr "Perumutodosiero .swp estas ĉifrata: \"%s\"" - -#~ msgid "" -#~ "\n" -#~ "If you entered a new crypt key but did not write the text file," -#~ msgstr "" -#~ "\n" -#~ "Se vi tajpis novan ŝlosilon de ĉifrado sed ne skribis la tekstan dosieron," - -#~ msgid "" -#~ "\n" -#~ "enter the new crypt key." -#~ msgstr "" -#~ "\n" -#~ "tajpu la novan ŝlosilon de ĉifrado." +msgid "E10: \\ should be followed by /, ? or &" +msgstr "E10: \\ devus esti sekvita de /, ? aŭ &" -#~ msgid "" -#~ "\n" -#~ "If you wrote the text file after changing the crypt key press enter" -#~ msgstr "" -#~ "\n" -#~ "Se vi skribis la tekstan dosieron post ŝanĝo de la ŝlosilo de ĉifrado, " -#~ "premu enenklavon" +msgid "E11: Invalid in command-line window; executes, CTRL-C quits" +msgstr "" +"E11: Nevalida en fenestro de komanda linio; plenumas, CTRL-C eliras" -#~ msgid "" -#~ "\n" -#~ "to use the same key for text file and swap file" -#~ msgstr "" -#~ "\n" -#~ "por uzi la saman ŝlosilon por la teksta dosiero kaj permuto dosiero .swp" +msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" +msgstr "" +"E12: Nepermesebla komando el exrc/vimrc en aktuala dosierujo aŭ etikeda serĉo" -#~ msgid "Using crypt key from swap file for the text file.\n" -#~ msgstr "" -#~ "Uzas ŝlosilon de ĉifrado el permuto dosiero .swp por la teksta dosiero.\n" +msgid "E171: Missing :endif" +msgstr "E171: Mankas \":endif\"" -#~ msgid "" -#~ "\n" -#~ " [not usable with this version of Vim]" -#~ msgstr "" -#~ "\n" -#~ " [ne uzebla per tiu versio de Vim]" +msgid "E600: Missing :endtry" +msgstr "E600: Mankas \":endtry\"" -#~ msgid "Tear off this menu" -#~ msgstr "Disigi tiun menuon" +msgid "E170: Missing :endwhile" +msgstr "E170: Mankas \":endwhile\"" -#~ msgid "Select Directory dialog" -#~ msgstr "Dialogujo de dosiera elekto" +msgid "E170: Missing :endfor" +msgstr "E170: Mankas \":endfor\"" -#~ msgid "Save File dialog" -#~ msgstr "Dialogujo de dosiera konservo" +msgid "E588: :endwhile without :while" +msgstr "E588: \":endwhile\" sen \":while\"" -#~ msgid "Open File dialog" -#~ msgstr "Dialogujo de dosiera malfermo" +msgid "E588: :endfor without :for" +msgstr "E588: \":endfor\" sen \":for\"" -#~ msgid "E338: Sorry, no file browser in console mode" -#~ msgstr "E338: Bedaŭrinde ne estas dosierfoliumilo en konzola reĝimo" +msgid "E13: File exists (add ! to override)" +msgstr "E13: Dosiero ekzistas (aldonu ! por transpasi)" -#~ msgid "Vim: preserving files...\n" -#~ msgstr "Vim: konservo de dosieroj...\n" +msgid "E472: Command failed" +msgstr "E472: La komando malsukcesis" -#~ msgid "Vim: Finished.\n" -#~ msgstr "Vim: Finita.\n" +#, c-format +msgid "E234: Unknown fontset: %s" +msgstr "E234: Nekonata familio de tiparo: %s" -#~ msgid "ERROR: " -#~ msgstr "ERARO: " +#, c-format +msgid "E235: Unknown font: %s" +msgstr "E235: Nekonata tiparo: %s" -#~ msgid "" -#~ "\n" -#~ "[bytes] total alloc-freed %-%, in use %, peak use " -#~ "%\n" -#~ msgstr "" -#~ "\n" -#~ "[bajtoj] totalaj disponigitaj/maldisponigitaj %-%, nun " -#~ "uzataj %, kulmina uzo %\n" +#, c-format +msgid "E236: Font \"%s\" is not fixed-width" +msgstr "E236: La tiparo \"%s\" ne estas egallarĝa" -#~ msgid "" -#~ "[calls] total re/malloc()'s %, total free()'s %\n" -#~ "\n" -#~ msgstr "" -#~ "[alvokoj] totalaj re/malloc() %, totalaj free() %\n" -#~ "\n" +msgid "E473: Internal error" +msgstr "E473: Interna eraro" -#~ msgid "E340: Line is becoming too long" -#~ msgstr "E340: Linio iĝas tro longa" +#, c-format +msgid "E685: Internal error: %s" +msgstr "E685: Interna eraro: %s" -#~ msgid "E341: Internal error: lalloc(%, )" -#~ msgstr "E341: Interna eraro: lalloc(%, )" +msgid "Interrupted" +msgstr "Interrompita" -#~ msgid "E547: Illegal mouseshape" -#~ msgstr "E547: Nevalida formo de muskursoro" +msgid "E14: Invalid address" +msgstr "E14: Nevalida adreso" -#~ msgid "Enter encryption key: " -#~ msgstr "Tajpu la ŝlosilon de ĉifrado: " +msgid "E474: Invalid argument" +msgstr "E474: Nevalida argumento" -#~ msgid "Enter same key again: " -#~ msgstr "Tajpu la ŝlosilon denove: " +#, c-format +msgid "E475: Invalid argument: %s" +msgstr "E475: Nevalida argumento: %s" -#~ msgid "Keys don't match!" -#~ msgstr "Ŝlosiloj ne kongruas!" +#, c-format +msgid "E15: Invalid expression: %s" +msgstr "E15: Nevalida esprimo: %s" -#~ msgid "Cannot connect to Netbeans #2" -#~ msgstr "Ne eblas konekti al Netbeans n-ro 2" +msgid "E16: Invalid range" +msgstr "E16: Nevalida amplekso" -#~ msgid "Cannot connect to Netbeans" -#~ msgstr "Ne eblas konekti al Netbeans" +msgid "E476: Invalid command" +msgstr "E476: Nevalida komando" -#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" -#~ msgstr "" -#~ "E668: Nevalida permeso de dosiero de informo de konekto NetBeans: \"%s\"" +#, c-format +msgid "E17: \"%s\" is a directory" +msgstr "E17: \"%s\" estas dosierujo" -#~ msgid "read from Netbeans socket" -#~ msgstr "lego el kontaktoskatolo de Netbeans" +#, c-format +msgid "E364: Library call failed for \"%s()\"" +msgstr "E364: Alvoko al biblioteko malsukcesis por \"%s()\"" -#~ msgid "E658: NetBeans connection lost for buffer %" -#~ msgstr "E658: Konekto de NetBeans perdita por bufro %" +#, c-format +msgid "E448: Could not load library function %s" +msgstr "E448: Ne eblis ŝargi bibliotekan funkcion %s" -#~ msgid "E838: netbeans is not supported with this GUI" -#~ msgstr "E838: netbeans ne estas subtenata kun tiu grafika interfaco" +msgid "E19: Mark has invalid line number" +msgstr "E19: Marko havas nevalidan numeron de linio" -#~ msgid "E511: netbeans already connected" -#~ msgstr "E511: nebeans jam konektata" +msgid "E20: Mark not set" +msgstr "E20: Marko ne estas agordita" -#~ msgid "E505: %s is read-only (add ! to override)" -#~ msgstr "E505: %s estas nurlegebla (aldonu ! por transpasi)" +msgid "E21: Cannot make changes, 'modifiable' is off" +msgstr "E21: Ne eblas fari ŝanĝojn, 'modifiable' estas malŝaltita" -# DP: ĉu Eval devas esti tradukita? -#~ msgid "E775: Eval feature not available" -#~ msgstr "E775: Eval eblo ne disponeblas" +msgid "E22: Scripts nested too deep" +msgstr "E22: Tro profunde ingitaj skriptoj" -#~ msgid "freeing % lines" -#~ msgstr "malokupas % liniojn" +msgid "E23: No alternate file" +msgstr "E23: Neniu alterna dosiero" -#~ msgid "E530: Cannot change term in GUI" -#~ msgstr "E530: term ne ŝanĝeblas en grafika interfaco" +msgid "E24: No such abbreviation" +msgstr "E24: Ne estas tia mallongigo" -#~ msgid "E531: Use \":gui\" to start the GUI" -#~ msgstr "E531: Uzu \":gui\" por lanĉi la grafikan interfacon" +msgid "E477: No ! allowed" +msgstr "E477: Neniu ! permesebla" -#~ msgid "E617: Cannot be changed in the GTK+ 2 GUI" -#~ msgstr "E617: Ne ŝanĝeblas en la grafika interfaco GTK+ 2" +msgid "E25: GUI cannot be used: Not enabled at compile time" +msgstr "E25: Grafika interfaco ne uzeblas: Malŝaltita dum kompilado" -#~ msgid "E596: Invalid font(s)" -#~ msgstr "E596: Nevalida(j) tiparo(j)" +msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" +msgstr "E26: La hebrea ne uzeblas: Malŝaltita dum kompilado\n" -#~ msgid "E597: can't select fontset" -#~ msgstr "E597: ne eblas elekti tiparon" +msgid "E27: Farsi cannot be used: Not enabled at compile time\n" +msgstr "E27: La persa ne uzeblas: Malŝaltita dum kompilado\n" -#~ msgid "E598: Invalid fontset" -#~ msgstr "E598: Nevalida tiparo" +msgid "E800: Arabic cannot be used: Not enabled at compile time\n" +msgstr "E800: La araba ne uzeblas: Malŝaltita dum kompilado\n" -#~ msgid "E533: can't select wide font" -#~ msgstr "E533: ne eblas elekti larĝan tiparon" +#, c-format +msgid "E28: No such highlight group name: %s" +msgstr "E28: Neniu grupo de emfazo kiel: %s" -#~ msgid "E534: Invalid wide font" -#~ msgstr "E534: Nevalida larĝa tiparo" +msgid "E29: No inserted text yet" +msgstr "E29: Ankoraŭ neniu enmetita teksto" -#~ msgid "E538: No mouse support" -#~ msgstr "E538: Neniu muso subtenata" +msgid "E30: No previous command line" +msgstr "E30: Neniu antaŭa komanda linio" -#~ msgid "cannot open " -#~ msgstr "ne eblas malfermi " +msgid "E31: No such mapping" +msgstr "E31: Neniu tiel mapo" -#~ msgid "VIM: Can't open window!\n" -#~ msgstr "VIM: Ne eblas malfermi fenestron!\n" +msgid "E479: No match" +msgstr "E479: Neniu kongruo" -#~ msgid "Need Amigados version 2.04 or later\n" -#~ msgstr "Bezonas version 2.04 de Amigados aŭ pli novan\n" +#, c-format +msgid "E480: No match: %s" +msgstr "E480: Neniu kongruo: %s" -#~ msgid "Need %s version %\n" -#~ msgstr "Bezonas %s-on versio %\n" +msgid "E32: No file name" +msgstr "E32: Neniu dosiernomo" -#~ msgid "Cannot open NIL:\n" -#~ msgstr "Ne eblas malfermi NIL:\n" +msgid "E33: No previous substitute regular expression" +msgstr "E33: Neniu antaŭa regulesprimo de anstataŭigo" -#~ msgid "Cannot create " -#~ msgstr "Ne eblas krei " +msgid "E34: No previous command" +msgstr "E34: Neniu antaŭa komando" -#~ msgid "Vim exiting with %d\n" -#~ msgstr "Vim eliras kun %d\n" +msgid "E35: No previous regular expression" +msgstr "E35: Neniu antaŭa regulesprimo" -#~ msgid "cannot change console mode ?!\n" -#~ msgstr "ne eblas ŝanĝi reĝimon de konzolo?!\n" +msgid "E481: No range allowed" +msgstr "E481: Amplekso nepermesebla" -#~ msgid "mch_get_shellsize: not a console??\n" -#~ msgstr "mch_get_shellsize: ne estas konzolo??\n" +msgid "E36: Not enough room" +msgstr "E36: Ne sufiĉe da spaco" -#~ msgid "E360: Cannot execute shell with -f option" -#~ msgstr "E360: Ne eblas plenumi ŝelon kun opcio -f" +#, c-format +msgid "E247: no registered server named \"%s\"" +msgstr "E247: neniu registrita servilo nomita \"%s\"" -#~ msgid "Cannot execute " -#~ msgstr "Ne eblas plenumi " +#, c-format +msgid "E482: Can't create file %s" +msgstr "E482: Ne eblas krei dosieron %s" -#~ msgid "shell " -#~ msgstr "ŝelo " +msgid "E483: Can't get temp file name" +msgstr "E483: Ne eblas akiri provizoran dosiernomon" -#~ msgid " returned\n" -#~ msgstr " liveris\n" +#, c-format +msgid "E484: Can't open file %s" +msgstr "E484: Ne eblas malfermi dosieron %s" -#~ msgid "ANCHOR_BUF_SIZE too small." -#~ msgstr "ANCHOR_BUF_SIZE tro malgranda." +#, c-format +msgid "E485: Can't read file %s" +msgstr "E485: Ne eblas legi dosieron %s" -#~ msgid "I/O ERROR" -#~ msgstr "ERARO DE ENIGO/ELIGO" +msgid "E37: No write since last change (add ! to override)" +msgstr "E37: Neniu skribo de post lasta ŝanĝo (aldonu ! por transpasi)" -#~ msgid "Message" -#~ msgstr "Mesaĝo" +msgid "E37: No write since last change" +msgstr "E37: Neniu skribo de post lasta ŝanĝo" -#~ msgid "'columns' is not 80, cannot execute external commands" -#~ msgstr "'columns' ne estas 80, ne eblas plenumi eksternajn komandojn" +msgid "E38: Null argument" +msgstr "E38: Nula argumento" -#~ msgid "E237: Printer selection failed" -#~ msgstr "E237: Elekto de presilo fiaskis" +msgid "E39: Number expected" +msgstr "E39: Nombro atendita" -#~ msgid "to %s on %s" -#~ msgstr "al %s de %s" +#, c-format +msgid "E40: Can't open errorfile %s" +msgstr "E40: Ne eblas malfermi eraran dosieron %s" -#~ msgid "E613: Unknown printer font: %s" -#~ msgstr "E613: Nekonata tiparo de presilo: %s" +msgid "E233: cannot open display" +msgstr "E233: ne eblas malfermi vidigon" -#~ msgid "E238: Print error: %s" -#~ msgstr "E238: Eraro de presado: %s" +msgid "E41: Out of memory!" +msgstr "E41: Ne plu restas memoro!" -#~ msgid "Printing '%s'" -#~ msgstr "Presas '%s'" +msgid "Pattern not found" +msgstr "Ŝablono ne trovita" -#~ msgid "E244: Illegal charset name \"%s\" in font name \"%s\"" -#~ msgstr "E244: Nevalida nomo de signaro \"%s\" en nomo de tiparo \"%s\"" +#, c-format +msgid "E486: Pattern not found: %s" +msgstr "E486: Ŝablono ne trovita: %s" -#~ msgid "E245: Illegal char '%c' in font name \"%s\"" -#~ msgstr "E245: Nevalida signo '%c' en nomo de tiparo \"%s\"" +msgid "E487: Argument must be positive" +msgstr "E487: La argumento devas esti pozitiva" -#~ msgid "Vim: Double signal, exiting\n" -#~ msgstr "Vim: Duobla signalo, eliranta\n" +msgid "E459: Cannot go back to previous directory" +msgstr "E459: Ne eblas reiri al antaŭa dosierujo" -#~ msgid "Vim: Caught deadly signal %s\n" -#~ msgstr "Vim: Kaptis mortigantan signalon %s\n" +msgid "E42: No Errors" +msgstr "E42: Neniu eraro" -#~ msgid "Vim: Caught deadly signal\n" -#~ msgstr "Vim: Kaptis mortigantan signalon\n" +msgid "E776: No location list" +msgstr "E776: Neniu listo de lokoj" -#~ msgid "Opening the X display took % msec" -#~ msgstr "Malfermo de vidigo X daŭris % msek" +msgid "E43: Damaged match string" +msgstr "E43: Difekta kongruenda ĉeno" -#~ msgid "" -#~ "\n" -#~ "Vim: Got X error\n" -#~ msgstr "" -#~ "\n" -#~ "Vim: Alvenis X eraro\n" +msgid "E44: Corrupted regexp program" +msgstr "E44: Difekta programo de regulesprimo" -#~ msgid "Testing the X display failed" -#~ msgstr "Testo de la vidigo X fiaskis" +msgid "E45: 'readonly' option is set (add ! to override)" +msgstr "E45: La opcio 'readonly' estas ŝaltita '(aldonu ! por transpasi)" -#~ msgid "Opening the X display timed out" -#~ msgstr "Tempolimo okazis dum malfermo de vidigo X" +#, c-format +msgid "E46: Cannot change read-only variable \"%s\"" +msgstr "E46: Ne eblas ŝanĝi nurlegeblan variablon \"%s\"" -#~ msgid "" -#~ "\n" -#~ "Cannot execute shell sh\n" -#~ msgstr "" -#~ "\n" -#~ "Ne eblas plenumi ŝelon sh\n" +#, c-format +msgid "E794: Cannot set variable in the sandbox: \"%s\"" +msgstr "E794: Ne eblas agordi variablon en la sabloludejo: \"%s\"" -#~ msgid "" -#~ "\n" -#~ "Cannot create pipes\n" -#~ msgstr "" -#~ "\n" -#~ "Ne eblas krei duktojn\n" +msgid "E713: Cannot use empty key for Dictionary" +msgstr "E713: Ne eblas uzi malplenan ŝlosilon de Vortaro" -#~ msgid "" -#~ "\n" -#~ "Cannot fork\n" -#~ msgstr "" -#~ "\n" -#~ "Ne eblas forki\n" +msgid "E715: Dictionary required" +msgstr "E715: Vortaro bezonata" -#~ msgid "" -#~ "\n" -#~ "Command terminated\n" -#~ msgstr "" -#~ "\n" -#~ "Komando terminigita\n" +#, c-format +msgid "E684: list index out of range: %ld" +msgstr "E684: indekso de listo ekster limoj: %ld" -#~ msgid "XSMP lost ICE connection" -#~ msgstr "XSMP perdis la konekton ICE" +#, c-format +msgid "E118: Too many arguments for function: %s" +msgstr "E118: Tro da argumentoj por funkcio: %s" -#~ msgid "Opening the X display failed" -#~ msgstr "Malfermo de vidigo X fiaskis" +#, c-format +msgid "E716: Key not present in Dictionary: %s" +msgstr "E716: Ŝlosilo malekzistas en Vortaro: %s" -#~ msgid "XSMP handling save-yourself request" -#~ msgstr "XSMP: traktado de peto konservi-mem" +msgid "E714: List required" +msgstr "E714: Listo bezonata" -#~ msgid "XSMP opening connection" -#~ msgstr "XSMP: malfermo de konekto" +#, c-format +msgid "E712: Argument of %s must be a List or Dictionary" +msgstr "E712: Argumento de %s devas esti Listo aŭ Vortaro" -#~ msgid "XSMP ICE connection watch failed" -#~ msgstr "XSMP: kontrolo de konekto ICE fiaskis" +msgid "E47: Error while reading errorfile" +msgstr "E47: Eraro dum legado de erardosiero" -#~ msgid "XSMP SmcOpenConnection failed: %s" -#~ msgstr "XSMP: SmcOpenConnection fiaskis: %s" +msgid "E48: Not allowed in sandbox" +msgstr "E48: Nepermesebla en sabloludejo" -#~ msgid "At line" -#~ msgstr "Ĉe linio" +msgid "E523: Not allowed here" +msgstr "E523: Nepermesebla tie" -#~ msgid "Could not load vim32.dll!" -#~ msgstr "Ne eblis ŝargi vim32.dll!" +msgid "E359: Screen mode setting not supported" +msgstr "E359: Reĝimo de ekrano ne subtenata" -#~ msgid "VIM Error" -#~ msgstr "Eraro de VIM" +msgid "E49: Invalid scroll size" +msgstr "E49: Nevalida grando de rulumo" -#~ msgid "Could not fix up function pointers to the DLL!" -#~ msgstr "Ne eblis ripari referencojn de funkcioj al la DLL!" +msgid "E91: 'shell' option is empty" +msgstr "E91: La opcio 'shell' estas malplena" -#~ msgid "shell returned %d" -#~ msgstr "la ŝelo liveris %d" +msgid "E255: Couldn't read in sign data!" +msgstr "E255: Ne eblis legi datumojn de simboloj!" -# DP: la eventoj estas tiuj, kiuj estas en la sekvantaj ĉenoj -#~ msgid "Vim: Caught %s event\n" -#~ msgstr "Vim: Kaptis eventon %s\n" +msgid "E72: Close error on swap file" +msgstr "E72: Eraro dum malfermo de permutodosiero .swp" -#~ msgid "close" -#~ msgstr "fermo" +msgid "E73: tag stack empty" +msgstr "E73: malplena stako de etikedo" -#~ msgid "logoff" -#~ msgstr "elsaluto" +msgid "E74: Command too complex" +msgstr "E74: Komando tro kompleksa" -#~ msgid "shutdown" -#~ msgstr "sistemfermo" +msgid "E75: Name too long" +msgstr "E75: Nomo tro longa" -#~ msgid "E371: Command not found" -#~ msgstr "E371: Netrovebla komando" +msgid "E76: Too many [" +msgstr "E76: Tro da [" -#~ msgid "" -#~ "VIMRUN.EXE not found in your $PATH.\n" -#~ "External commands will not pause after completion.\n" -#~ "See :help win32-vimrun for more information." -#~ msgstr "" -#~ "VIMRUN.EXE ne troveblas en via $PATH.\n" -#~ "Eksteraj komandoj ne paŭzos post kompletigo.\n" -#~ "Vidu :help win32-vimrun por pliaj informoj." - -#~ msgid "Vim Warning" -#~ msgstr "Averto de Vim" - -#~ msgid "Error file" -#~ msgstr "Erara Dosiero" - -#~ msgid "E868: Error building NFA with equivalence class!" -#~ msgstr "E868: Eraro dum prekomputado de NFA kun ekvivalentoklaso!" - -#~ msgid "E999: (NFA regexp internal error) Should not process NOT node !" -#~ msgstr "" -#~ "E999: (interna eraro de NFA-regulesprimo) Ne devus procezi nodon 'NOT'!" - -#~ msgid "E878: (NFA) Could not allocate memory for branch traversal!" -#~ msgstr "E878: (NFA) Ne povis asigni memoron por traigi branĉojn!" - -#~ msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\"" -#~ msgstr "Averto: Ne eblas trovi vortliston \"%s_%s.spl\" aŭ \"%s_ascii.spl\"" - -#~ msgid "Conversion in %s not supported" -#~ msgstr "Konverto en %s nesubtenata" - -#~ msgid "E845: Insufficient memory, word list will be incomplete" -#~ msgstr "E845: Ne sufiĉe da memoro, vortlisto estos nekompleta." - -#~ msgid "E430: Tag file path truncated for %s\n" -#~ msgstr "E430: Vojo de etikeda dosiero trunkita por %s\n" - -#~ msgid "new shell started\n" -#~ msgstr "nova ŝelo lanĉita\n" - -#~ msgid "Used CUT_BUFFER0 instead of empty selection" -#~ msgstr "Uzis CUT_BUFFER0 anstataŭ malplenan apartigon" - -#~ msgid "No undo possible; continue anyway" -#~ msgstr "Malfaro neebla; daŭrigi tamene" - -#~ msgid "E832: Non-encrypted file has encrypted undo file: %s" -#~ msgstr "E832: Ne ĉifrata dosiero havas ĉifratan malfaran dosieron: %s" - -#~ msgid "E826: Undo file decryption failed: %s" -#~ msgstr "E826: Malĉifrado de malfara dosiero fiaskis: %s" - -#~ msgid "E827: Undo file is encrypted: %s" -#~ msgstr "E827: Malfara dosiero estas ĉifrata: %s" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 16/32-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "Grafika versio MS-Vindozo 16/32-bitoj" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 64-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "Grafika versio MS-Vindozo 64-bitoj" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 32-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "Grafika versio MS-Vindozo 32-bitoj" - -#~ msgid " in Win32s mode" -#~ msgstr " en reĝimo Win32s" - -#~ msgid " with OLE support" -#~ msgstr " kun subteno de OLE" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 64-bit console version" -#~ msgstr "" -#~ "\n" -#~ "Versio konzola MS-Vindozo 64-bitoj" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 32-bit console version" -#~ msgstr "" -#~ "\n" -#~ "Versio konzola MS-Vindozo 32-bitoj" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 16-bit version" -#~ msgstr "" -#~ "\n" -#~ "Versio MS-Vindozo 16-bitoj" - -#~ msgid "" -#~ "\n" -#~ "32-bit MS-DOS version" -#~ msgstr "" -#~ "\n" -#~ "Versio MS-DOS 32-bitoj" - -#~ msgid "" -#~ "\n" -#~ "16-bit MS-DOS version" -#~ msgstr "" -#~ "\n" -#~ "Versio MS-DOS 16-bitoj" - -#~ msgid "" -#~ "\n" -#~ "MacOS X (unix) version" -#~ msgstr "" -#~ "\n" -#~ "Versio Mak OS X (unikso)" - -#~ msgid "" -#~ "\n" -#~ "MacOS X version" -#~ msgstr "" -#~ "\n" -#~ "Versio Mak OS X" - -#~ msgid "" -#~ "\n" -#~ "MacOS version" -#~ msgstr "" -#~ "\n" -#~ "Versio Mak OS" - -#~ msgid "" -#~ "\n" -#~ "OpenVMS version" -#~ msgstr "" -#~ "\n" -#~ "Versio OpenVMS" - -#~ msgid "" -#~ "\n" -#~ "Big version " -#~ msgstr "" -#~ "\n" -#~ "Granda versio " - -#~ msgid "" -#~ "\n" -#~ "Normal version " -#~ msgstr "" -#~ "\n" -#~ "Normala versio " - -#~ msgid "" -#~ "\n" -#~ "Small version " -#~ msgstr "" -#~ "\n" -#~ "Malgranda versio " - -#~ msgid "" -#~ "\n" -#~ "Tiny version " -#~ msgstr "" -#~ "\n" -#~ "Malgrandega versio " - -#~ msgid "with GTK2-GNOME GUI." -#~ msgstr "kun grafika interfaco GTK2-GNOME." - -#~ msgid "with GTK2 GUI." -#~ msgstr "kun grafika interfaco GTK2." - -#~ msgid "with X11-Motif GUI." -#~ msgstr "kun grafika interfaco X11-Motif." - -#~ msgid "with X11-neXtaw GUI." -#~ msgstr "kun grafika interfaco X11-neXtaw." - -#~ msgid "with X11-Athena GUI." -#~ msgstr "kun grafika interfaco X11-Athena." - -#~ msgid "with Photon GUI." -#~ msgstr "kun grafika interfaco Photon." - -#~ msgid "with GUI." -#~ msgstr "sen grafika interfaco." - -#~ msgid "with Carbon GUI." -#~ msgstr "kun grafika interfaco Carbon." - -#~ msgid "with Cocoa GUI." -#~ msgstr "kun grafika interfaco Cocoa." - -#~ msgid "with (classic) GUI." -#~ msgstr "kun (klasika) grafika interfaco." - -#~ msgid " system gvimrc file: \"" -#~ msgstr " sistema dosiero gvimrc: \"" - -#~ msgid " user gvimrc file: \"" -#~ msgstr " dosiero gvimrc de uzanto: \"" - -#~ msgid "2nd user gvimrc file: \"" -#~ msgstr " 2-a dosiero gvimrc de uzanto: \"" - -#~ msgid "3rd user gvimrc file: \"" -#~ msgstr " 3-a dosiero gvimrc de uzanto: \"" - -#~ msgid " system menu file: \"" -#~ msgstr " dosiero de sistema menuo: \"" - -#~ msgid "Compiler: " -#~ msgstr "Kompililo: " +msgid "E77: Too many file names" +msgstr "E77: Tro da dosiernomoj" -# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon -#~ msgid "menu Help->Orphans for information " -#~ msgstr "menuo Help->Orfinoj por pliaj informoj " +msgid "E488: Trailing characters" +msgstr "E488: Vostaj signoj" -#~ msgid "Running modeless, typed text is inserted" -#~ msgstr "Ruliĝas senreĝime, tajpita teksto estas enmetita" +msgid "E78: Unknown mark" +msgstr "E78: Nekonata marko" -# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon -#~ msgid "menu Edit->Global Settings->Toggle Insert Mode " -#~ msgstr "menuo Redakti->Mallokaj Agordoj->Baskuligi Enmetan Reĝimon" +msgid "E79: Cannot expand wildcards" +msgstr "E79: Ne eblas malvolvi ĵokerojn" -# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon -#~ msgid " for two modes " -#~ msgstr " por du reĝimoj " +msgid "E591: 'winheight' cannot be smaller than 'winminheight'" +msgstr "E591: 'winheight' ne rajtas esti malpli ol 'winminheight'" -# DP: tiu ĉeno pli longas (mi ne volas igi ĉiujn aliajn ĉenojn -# pli longajn) -#~ msgid "menu Edit->Global Settings->Toggle Vi Compatible" -#~ msgstr "menuo Redakti->Mallokaj Agordoj->Baskuligi Reĝimon Kongruan kun Vi" +msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" +msgstr "E592: 'winwidth' ne rajtas esti malpli ol 'winminwidth'" -# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon -#~ msgid " for Vim defaults " -#~ msgstr " por defaŭltoj de Vim " +msgid "E80: Error while writing" +msgstr "E80: Eraro dum skribado" -#~ msgid "WARNING: Windows 95/98/ME detected" -#~ msgstr "AVERTO: Trovis Vindozon 95/98/ME" +msgid "Zero count" +msgstr "Nul kvantoro" -# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon -#~ msgid "type :help windows95 for info on this" -#~ msgstr "tajpu :help windows95 por pliaj informoj " +msgid "E81: Using not in a script context" +msgstr "E81: Uzo de ekster kunteksto de skripto" -#~ msgid "E370: Could not load library %s" -#~ msgstr "E370: Ne eblis ŝargi bibliotekon %s" +msgid "E449: Invalid expression received" +msgstr "E449: Nevalida esprimo ricevita" -#~ msgid "" -#~ "Sorry, this command is disabled: the Perl library could not be loaded." -#~ msgstr "" -#~ "Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Perl ne " -#~ "ŝargeblis." +msgid "E463: Region is guarded, cannot modify" +msgstr "E463: Regiono estas gardita, ne eblas ŝanĝi" -#~ msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" -#~ msgstr "" -#~ "E299: Plenumo de Perl esprimoj malpermesata en sabloludejo sen la modulo " -#~ "Safe" +msgid "E744: NetBeans does not allow changes in read-only files" +msgstr "E744: NetBeans ne permesas ŝanĝojn en nurlegeblaj dosieroj" -#~ msgid "Edit with &multiple Vims" -#~ msgstr "Redakti per &pluraj Vim-oj" +msgid "E363: pattern uses more memory than 'maxmempattern'" +msgstr "E363: ŝablono uzas pli da memoro ol 'maxmempattern'" -#~ msgid "Edit with single &Vim" -#~ msgstr "Redakti per unuopa &Vim" +msgid "E749: empty buffer" +msgstr "E749: malplena bufro" -#~ msgid "Diff with Vim" -#~ msgstr "Kompari per Vim" +#, c-format +msgid "E86: Buffer %ld does not exist" +msgstr "E86: La bufro %ld ne ekzistas" -#~ msgid "Edit with &Vim" -#~ msgstr "Redakti per &Vim" +msgid "E682: Invalid search pattern or delimiter" +msgstr "E682: Nevalida serĉa ŝablono aŭ disigilo" -#~ msgid "Edit with existing Vim - " -#~ msgstr "Redakti per ekzistanta Vim - " +msgid "E139: File is loaded in another buffer" +msgstr "E139: Dosiero estas ŝargita en alia bufro" -#~ msgid "Edits the selected file(s) with Vim" -#~ msgstr "Redakti la apartigita(j)n dosiero(j)n per Vim" +#, c-format +msgid "E764: Option '%s' is not set" +msgstr "E764: La opcio '%s' ne estas ŝaltita" -#~ msgid "Error creating process: Check if gvim is in your path!" -#~ msgstr "Eraro dum kreo de procezo: Kontrolu ĉu gvim estas en via serĉvojo!" +msgid "E850: Invalid register name" +msgstr "E850: Nevalida nomo de reĝistro" -#~ msgid "gvimext.dll error" -#~ msgstr "Eraro de gvimext.dll" +#, c-format +msgid "E919: Directory not found in '%s': \"%s\"" +msgstr "E919: Dosierujo ne trovita en '%s': \"%s\"" -#~ msgid "Path length too long!" -#~ msgstr "Serĉvojo estas tro longa!" +msgid "search hit TOP, continuing at BOTTOM" +msgstr "serĉo atingis SUPRON, daŭrigonte al SUBO" -#~ msgid "E234: Unknown fontset: %s" -#~ msgstr "E234: Nekonata familio de tiparo: %s" +msgid "search hit BOTTOM, continuing at TOP" +msgstr "serĉo atingis SUBON, daŭrigonte al SUPRO" -#~ msgid "E235: Unknown font: %s" -#~ msgstr "E235: Nekonata tiparo: %s" +#, c-format +msgid "Need encryption key for \"%s\"" +msgstr "Ŝlosilo de ĉifrado bezonata por \"%s\"" -#~ msgid "E236: Font \"%s\" is not fixed-width" -#~ msgstr "E236: La tiparo \"%s\" ne estas egallarĝa" +msgid "empty keys are not allowed" +msgstr "malplenaj ŝlosiloj nepermeseblaj" -#~ msgid "E448: Could not load library function %s" -#~ msgstr "E448: Ne eblis ŝargi bibliotekan funkcion %s" +msgid "dictionary is locked" +msgstr "vortaro estas ŝlosita" -#~ msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" -#~ msgstr "E26: La hebrea ne uzeblas: Malŝaltita dum kompilado\n" +msgid "list is locked" +msgstr "listo estas ŝlosita" -#~ msgid "E27: Farsi cannot be used: Not enabled at compile time\n" -#~ msgstr "E27: La persa ne uzeblas: Malŝaltita dum kompilado\n" +#, c-format +msgid "failed to add key '%s' to dictionary" +msgstr "aldono de ŝlosilo '%s' al vortaro malsukcesis" -#~ msgid "E800: Arabic cannot be used: Not enabled at compile time\n" -#~ msgstr "E800: La araba ne uzeblas: Malŝaltita dum kompilado\n" +#, c-format +msgid "index must be int or slice, not %s" +msgstr "indekso devas esti 'int' aŭ 'slice', ne %s" -#~ msgid "E247: no registered server named \"%s\"" -#~ msgstr "E247: neniu registrita servilo nomita \"%s\"" +#, c-format +msgid "expected str() or unicode() instance, but got %s" +msgstr "atendis aperon de str() aŭ unicode(), sed ricevis %s" -#~ msgid "E233: cannot open display" -#~ msgstr "E233: ne eblas malfermi vidigon" +#, c-format +msgid "expected bytes() or str() instance, but got %s" +msgstr "atendis aperon de bytes() aŭ str(), sed ricevis %s" -#~ msgid "E449: Invalid expression received" -#~ msgstr "E449: Nevalida esprimo ricevita" +#, c-format +msgid "" +"expected int(), long() or something supporting coercing to long(), but got %s" +msgstr "atendis int(), long() aŭ ion konverteblan al long(), sed ricevis %s" -#~ msgid "E463: Region is guarded, cannot modify" -#~ msgstr "E463: Regiono estas gardita, ne eblas ŝanĝi" +#, c-format +msgid "expected int() or something supporting coercing to int(), but got %s" +msgstr "atendis int() aŭ ion konverteblan al int(), sed ricevis %s" -#~ msgid "E744: NetBeans does not allow changes in read-only files" -#~ msgstr "E744: NetBeans ne permesas ŝanĝojn en nurlegeblaj dosieroj" +msgid "value is too large to fit into C int type" +msgstr "valoro estas tro grada por C-tipo 'int'" -#~ msgid "Need encryption key for \"%s\"" -#~ msgstr "Ŝlosilo de ĉifrado bezonata por \"%s\"" +msgid "value is too small to fit into C int type" +msgstr "valoro estas tro malgranda por C-tipo 'int'" -#~ msgid "can't delete OutputObject attributes" -#~ msgstr "ne eblas forviŝi atributojn de OutputObject" +msgid "number must be greater than zero" +msgstr "nombro devas esti pli granda ol nul" -#~ msgid "softspace must be an integer" -#~ msgstr "malmolspaceto (softspace) devas esti entjero" +msgid "number must be greater or equal to zero" +msgstr "nombro devas esti egala aŭ pli granda ol nul" -#~ msgid "invalid attribute" -#~ msgstr "nevalida atributo" +msgid "can't delete OutputObject attributes" +msgstr "ne eblas forviŝi atributojn de OutputObject" -#~ msgid "writelines() requires list of strings" -#~ msgstr "writelines() bezonas liston de ĉenoj" +#, c-format +msgid "invalid attribute: %s" +msgstr "nevalida atributo: %s" -#~ msgid "E264: Python: Error initialising I/O objects" -#~ msgstr "E264: Pitono: Eraro de pravalorizo de eneligaj objektoj" +msgid "E264: Python: Error initialising I/O objects" +msgstr "E264: Pitono: Eraro de pravalorizo de eneligaj objektoj" -#~ msgid "empty keys are not allowed" -#~ msgstr "malplenaj ŝlosiloj nepermeseblaj" +msgid "failed to change directory" +msgstr "malsukcesis ŝanĝi dosierujon" -#~ msgid "Cannot delete DictionaryObject attributes" -#~ msgstr "ne eblas forviŝi atributojn de DictionaryObject" +#, c-format +msgid "expected 3-tuple as imp.find_module() result, but got %s" +msgstr "atendis 3-opon kiel rezulto de imp.find_module(), sed ricevis %s" -#~ msgid "Cannot modify fixed dictionary" -#~ msgstr "Ne eblas ŝanĝi fiksan vortaron" +#, c-format +msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d" +msgstr "atendis 3-opon kiel rezulto de imp.find_module(), sed ricevis %d-opon" -#~ msgid "Cannot set this attribute" -#~ msgstr "Ne eblas agordi tiun atributon" +msgid "internal error: imp.find_module returned tuple with NULL" +msgstr "interna eraro: imp.find_module liveris opon kun NULL" -#~ msgid "dict is locked" -#~ msgstr "vortaro estas ŝlosita" +msgid "cannot delete vim.Dictionary attributes" +msgstr "ne eblas forviŝi atributojn de 'vim.Dictionary'" -#~ msgid "failed to add key to dictionary" -#~ msgstr "aldono de ŝlosilo al vortaro fiaskis" +msgid "cannot modify fixed dictionary" +msgstr "ne eblas ŝanĝi fiksan vortaron" -#~ msgid "list index out of range" -#~ msgstr "indekso de listo ekster limoj" +#, c-format +msgid "cannot set attribute %s" +msgstr "ne eblas agordi atributon %s" -#~ msgid "internal error: failed to get vim list item" -#~ msgstr "interna eraro: obteno de vim-a listero fiaskis" +msgid "hashtab changed during iteration" +msgstr "hakettabelo ŝanĝiĝis dum iteracio" -#~ msgid "list is locked" -#~ msgstr "listo estas ŝlosita" +#, c-format +msgid "expected sequence element of size 2, but got sequence of size %d" +msgstr "atendis 2-longan sekvencon, sed ricevis %d-longan sekvencon" -#~ msgid "Failed to add item to list" -#~ msgstr "Aldono de listero fiaskis" +msgid "list constructor does not accept keyword arguments" +msgstr "konstruilo de listo ne akceptas ŝlosilvortajn argumentojn" -#~ msgid "can only assign lists to slice" -#~ msgstr "nur eblas pravalorizi listojn al segmento" +msgid "list index out of range" +msgstr "indekso de listo ekster limoj" -#~ msgid "internal error: failed to add item to list" -#~ msgstr "interna eraro: aldono de listero fiaskis" +#. No more suitable format specifications in python-2.3 +#, c-format +msgid "internal error: failed to get vim list item %d" +msgstr "interna eraro: obteno de vim-a listero %d malsukcesis" -#~ msgid "can only concatenate with lists" -#~ msgstr "eblas nur kunmeti kun listoj" +msgid "slice step cannot be zero" +msgstr "paŝo de sekco ne povas esti nul" -#~ msgid "cannot delete vim.dictionary attributes" -#~ msgstr "ne eblas forviŝi atributojn de 'vim.dictionary'" +#, c-format +msgid "attempt to assign sequence of size greater than %d to extended slice" +msgstr "provis valorizi sekvencon kun pli ol %d eroj en etendita sekco" -#~ msgid "cannot modify fixed list" -#~ msgstr "ne eblas ŝanĝi fiksan liston" +#, c-format +msgid "internal error: no vim list item %d" +msgstr "interna eraro: neniu vim-a listero %d" -#~ msgid "cannot set this attribute" -#~ msgstr "ne eblas agordi tiun atributon" +msgid "internal error: not enough list items" +msgstr "interna eraro: ne sufiĉaj listeroj" -#~ msgid "'self' argument must be a dictionary" -#~ msgstr "argumento 'self' devas esti vortaro" +msgid "internal error: failed to add item to list" +msgstr "interna eraro: aldono de listero malsukcesis" -#~ msgid "failed to run function" -#~ msgstr "fiaskis ruli funkcion" +#, c-format +msgid "attempt to assign sequence of size %d to extended slice of size %d" +msgstr "provis valorizi sekvencon kun %d eroj al etendita sekco kun %d eroj" -#~ msgid "unable to unset global option" -#~ msgstr "ne povis malŝalti mallokan opcion" +msgid "failed to add item to list" +msgstr "aldono de listero malsukcesis" -#~ msgid "unable to unset option without global value" -#~ msgstr "ne povis malŝalti opcion sen malloka valoro" +msgid "cannot delete vim.List attributes" +msgstr "ne eblas forviŝi atributojn de 'vim.List'" -#~ msgid "object must be integer" -#~ msgstr "objekto devas esti entjero." +msgid "cannot modify fixed list" +msgstr "ne eblas ŝanĝi fiksan liston" -#~ msgid "object must be string" -#~ msgstr "objekto devas esti ĉeno" +#, c-format +msgid "unnamed function %s does not exist" +msgstr "sennoma funkcio %s ne ekzistas" -#~ msgid "attempt to refer to deleted tab page" -#~ msgstr "provo de referenco al forviŝita langeto" +#, c-format +msgid "function %s does not exist" +msgstr "funkcio %s ne ekzistas" -#~ msgid "" -#~ msgstr "" +#, c-format +msgid "failed to run function %s" +msgstr "malsukcesis ruli funkcion %s" -#~ msgid "" -#~ msgstr "" +msgid "unable to get option value" +msgstr "malsukcesis akiri valoron de opcio" -#~ msgid "" -#~ msgstr "" +msgid "internal error: unknown option type" +msgstr "interna eraro: nekonata tipo de opcio" -#~ msgid "no such tab page" -#~ msgstr "ne estas tia langeto" +msgid "problem while switching windows" +msgstr "problemo dum salto al vindozoj" -#~ msgid "attempt to refer to deleted window" -#~ msgstr "provo de referenco al forviŝita fenestro" +#, c-format +msgid "unable to unset global option %s" +msgstr "ne povis malŝalti mallokan opcion %s" -#~ msgid "readonly attribute" -#~ msgstr "nurlegebla atributo" +#, c-format +msgid "unable to unset option %s which does not have global value" +msgstr "ne povis malŝalti opcion %s, kiu ne havas mallokan valoron" -#~ msgid "cursor position outside buffer" -#~ msgstr "kursoro poziciita ekster bufro" +msgid "attempt to refer to deleted tab page" +msgstr "provo de referenco al forviŝita langeto" -#~ msgid "" -#~ msgstr "" +msgid "no such tab page" +msgstr "ne estas tia langeto" -#~ msgid "" -#~ msgstr "" +msgid "attempt to refer to deleted window" +msgstr "provo de referenco al forviŝita fenestro" -#~ msgid "" -#~ msgstr "" +msgid "readonly attribute: buffer" +msgstr "nurlegebla atributo: buffer" -#~ msgid "no such window" -#~ msgstr "ne estas tia fenestro" +msgid "cursor position outside buffer" +msgstr "kursoro poziciita ekster bufro" -#~ msgid "attempt to refer to deleted buffer" -#~ msgstr "provo de referenco al forviŝita bufro" +msgid "no such window" +msgstr "ne estas tia fenestro" -#~ msgid "" -#~ msgstr "" +msgid "attempt to refer to deleted buffer" +msgstr "provo de referenco al forviŝita bufro" -#~ msgid "key must be integer" -#~ msgstr "ŝlosilo devas esti entjero." +msgid "failed to rename buffer" +msgstr "malsukcesis renomi bufron" -#~ msgid "expected vim.buffer object" -#~ msgstr "atendis objekton vim.buffer" +msgid "mark name must be a single character" +msgstr "nomo de marko devas esti unuopa signo" -#~ msgid "failed to switch to given buffer" -#~ msgstr "ne povis salti al la specifita bufro" +#, c-format +msgid "expected vim.Buffer object, but got %s" +msgstr "atendis objekton vim.Buffer, sed ricevis %s" -#~ msgid "expected vim.window object" -#~ msgstr "atendis objekton vim.window" +#, c-format +msgid "failed to switch to buffer %d" +msgstr "salto al la bufro %d malsukcesis" -#~ msgid "failed to find window in the current tab page" -#~ msgstr "ne povis trovi vindozon en la nuna langeto" +#, c-format +msgid "expected vim.Window object, but got %s" +msgstr "atendis objekton vim.window, sed ricevis %s" -#~ msgid "did not switch to the specified window" -#~ msgstr "ne saltis al la specifita vindozo" +msgid "failed to find window in the current tab page" +msgstr "malsukcesis trovi vindozon en la nuna langeto" -#~ msgid "expected vim.tabpage object" -#~ msgstr "atendis objekton vim.tabpage" +msgid "did not switch to the specified window" +msgstr "ne saltis al la specifita vindozo" -#~ msgid "did not switch to the specified tab page" -#~ msgstr "ne saltis al la specifita langeto" +#, c-format +msgid "expected vim.TabPage object, but got %s" +msgstr "atendis objekton vim.TabPage, sed ricevis %s" -#~ msgid "failed to run the code" -#~ msgstr "fiaskis ruli la kodon" +msgid "did not switch to the specified tab page" +msgstr "ne saltis al la specifita langeto" -#~ msgid "E858: Eval did not return a valid python object" -#~ msgstr "E858: Eval ne revenis kun valida python-objekto" +msgid "failed to run the code" +msgstr "malsukcesis ruli la kodon" -#~ msgid "E859: Failed to convert returned python object to vim value" -#~ msgstr "E859: Konverto de revena python-objekto al vim-valoro fiaskis" +msgid "E858: Eval did not return a valid python object" +msgstr "E858: Eval ne revenis kun valida python-objekto" -#~ msgid "unable to convert to vim structure" -#~ msgstr "ne povis konverti al vim-strukturo" +msgid "E859: Failed to convert returned python object to vim value" +msgstr "E859: Konverto de revena python-objekto al vim-valoro malsukcesis" -#~ msgid "NULL reference passed" -#~ msgstr "NULL-referenco argumento" +#, c-format +msgid "unable to convert %s to vim dictionary" +msgstr "ne povis konverti %s al vim-vortaro" -#~ msgid "internal error: invalid value type" -#~ msgstr "interna eraro: nevalida tipo de valoro" +#, c-format +msgid "unable to convert %s to vim list" +msgstr "ne povis konverti %s al vim-listo" -#~ msgid "E863: return value must be an instance of str" -#~ msgstr "E863: elira valoro devas esti apero de str" +#, c-format +msgid "unable to convert %s to vim structure" +msgstr "ne povis konverti %s al vim-strukturo" -#~ msgid "E860: Eval did not return a valid python 3 object" -#~ msgstr "E860: Eval ne revenis kun valida python3-objekto" +msgid "internal error: NULL reference passed" +msgstr "interna eraro: NULL-referenco argumento" -#~ msgid "E861: Failed to convert returned python 3 object to vim value" -#~ msgstr "E861: Konverto de revena python3-objekto al vim-valoro fiaskis" +msgid "internal error: invalid value type" +msgstr "interna eraro: nevalida tipo de valoro" -#~ msgid "Only boolean objects are allowed" -#~ msgstr "Nur buleaj objektoj estas permeseblaj" +msgid "" +"Failed to set path hook: sys.path_hooks is not a list\n" +"You should now do the following:\n" +"- append vim.path_hook to sys.path_hooks\n" +"- append vim.VIM_SPECIAL_PATH to sys.path\n" +msgstr "" +"Valorizo de sys.path_hooks malsukcesis: sys.path_hooks ne estas listo\n" +"Vi nun devas fari tion:\n" +"- postaldoni vim.path_hook al sys.path_hooks\n" +"- postaldoni vim.VIM_SPECIAL_PATH al sys.path\n" -#~ msgid "no such key in dictionary" -#~ msgstr "tiu ŝlosilo ne ekzistas en vortaro" +msgid "" +"Failed to set path: sys.path is not a list\n" +"You should now append vim.VIM_SPECIAL_PATH to sys.path" +msgstr "" +"Agordo de serĉvojo malsukcesis: sys.path ne estas listo\n" +"Vi nun devas aldoni vim.VIM_SPECIAL_PATH al sys.path" diff --git a/src/nvim/po/fr.po b/src/nvim/po/fr.po index 4b1b0476ca..c0df5f2170 100644 --- a/src/nvim/po/fr.po +++ b/src/nvim/po/fr.po @@ -1,3 +1,4 @@ + # French Translation for Vim # # Do ":help uganda" in Vim to read copying and usage conditions. @@ -6,7 +7,7 @@ # FIRST AUTHOR DindinX 2000. # SECOND AUTHOR Adrien Beau 2002, 2003. # THIRD AUTHOR David Blanchet 2006, 2008. -# FOURTH AUTHOR Dominique Pell 2008, 2015. +# FOURTH AUTHOR Dominique Pell 2008, 2017. # # Latest translation available at: # http://dominique.pelle.free.fr/vim-fr.php @@ -15,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: Vim(Franais)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-08-26 20:54+0200\n" -"PO-Revision-Date: 2016-08-26 20:34+0200\n" +"POT-Creation-Date: 2017-01-16 00:30+0100\n" +"PO-Revision-Date: 2017-01-16 00:51+0100\n" "Last-Translator: Dominique Pell \n" "Language-Team: \n" "Language: fr\n" @@ -24,13 +25,20 @@ msgstr "" "Content-Type: text/plain; charset=ISO_8859-15\n" "Content-Transfer-Encoding: 8bit\n" -#, fuzzy -#~ msgid "Unable to get option value" -#~ msgstr "impossible d'obtenir la valeur d'une option" +msgid "E831: bf_key_init() called with empty password" +msgstr "E831: bf_key_init() appele avec un mot de passe vide" + +msgid "E820: sizeof(uint32_t) != 4" +msgstr "E820: sizeof(uint32_t) != 4" + +msgid "E817: Blowfish big/little endian use wrong" +msgstr "E817: petit/gros boutisme incorrect dans blowfish" + +msgid "E818: sha256 test failed" +msgstr "E818: le test de sha256 a chou" -#, fuzzy -#~ msgid "internal error: unknown option type" -#~ msgstr "erreur interne : pas d'lment de liste vim" +msgid "E819: Blowfish test failed" +msgstr "E819: le test de blowfish a chou" # DB - TODO : Trouver une traduction valable et atteste pour "location". msgid "[Location List]" @@ -56,6 +64,9 @@ msgstr "" msgid "E931: Buffer cannot be registered" msgstr "E931: Le tampon ne peut pas tre enregistr" +msgid "E937: Attempt to delete a buffer that is in use" +msgstr "E937: Tentative de suppression d'un tampon en cours d'utilisation" + msgid "E515: No buffers were unloaded" msgstr "E515: Aucun tampon n'a t dcharg" @@ -106,20 +117,18 @@ msgid "E88: Cannot go before first buffer" msgstr "E88: Impossible d'aller avant le premier tampon" #, c-format -msgid "" -"E89: No write since last change for buffer % (add ! to override)" +msgid "E89: No write since last change for buffer %ld (add ! to override)" msgstr "" -"E89: Le tampon % n'a pas t enregistr (ajoutez ! pour passer outre)" +"E89: Le tampon %ld n'a pas t enregistr (ajoutez ! pour passer outre)" -#. wrap around (may cause duplicates) msgid "W14: Warning: List of file names overflow" msgstr "W14: Alerte : La liste des noms de fichier dborde" # AB - Vu le code source, la version franaise est meilleure que la # version anglaise. Ce message est similaire au message E86. #, c-format -msgid "E92: Buffer % not found" -msgstr "E92: Le tampon % n'existe pas" +msgid "E92: Buffer %ld not found" +msgstr "E92: Le tampon %ld n'existe pas" # AB - Il faut respecter l'esprit plus que la lettre. #, c-format @@ -131,8 +140,8 @@ msgid "E94: No matching buffer for %s" msgstr "E94: Aucun tampon ne correspond %s" #, c-format -msgid "line %" -msgstr "ligne %" +msgid "line %ld" +msgstr "ligne %ld" msgid "E95: Buffer with this name already exists" msgstr "E95: Un tampon porte dj ce nom" @@ -163,14 +172,14 @@ msgid "1 line --%d%%--" msgstr "1 ligne --%d%%--" #, c-format -msgid "% lines --%d%%--" -msgstr "% lignes --%d%%--" +msgid "%ld lines --%d%%--" +msgstr "%ld lignes --%d%%--" # AB - Faut-il remplacer "sur" par "de" ? # DB - Mon avis : oui. #, c-format -msgid "line % of % --%d%%-- col " -msgstr "ligne % sur % --%d%%-- col " +msgid "line %ld of %ld --%d%%-- col " +msgstr "ligne %ld sur %ld --%d%%-- col " # DB - Je trouvais [Aucun fichier] (VO : [No file]) plus naturel # lors du lancement de Vim en mode graphique (ce message @@ -223,6 +232,13 @@ msgstr "" msgid "Signs for %s:" msgstr "Symboles dans %s :" +#, c-format +msgid " line=%ld id=%d name=%s" +msgstr " ligne=%ld id=%d nom=%s" + +msgid "E902: Cannot connect to port" +msgstr "E902: Impossible de se connecter au port" + msgid "E901: gethostbyname() in channel_open()" msgstr "E901: gethostbyname() dans channel_open()" @@ -230,7 +246,7 @@ msgid "E898: socket() in channel_open()" msgstr "E898: socket() dans channel_open()" msgid "E903: received command with non-string argument" -msgstr "E903: commande reue avec une argument qui n'est pas une chane" +msgstr "E903: commande reue avec un argument qui n'est pas une chane" msgid "E904: last argument for expr/call must be a number" msgstr "E904: le dernier argument de expr/call doit tre un nombre" @@ -251,28 +267,72 @@ msgid "E631: %s(): write failed" msgstr "E631: %s() : erreur d'criture" #, c-format -msgid " line=% id=%d name=%s" -msgstr " ligne=% id=%d nom=%s" +msgid "E917: Cannot use a callback with %s()" +msgstr "E917: Impossible d'utiliser un callback avec %s()" -msgid "E545: Missing colon" -msgstr "E545: ':' manquant" +msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel" +msgstr "" +"E912: Impossible d'utiliser ch_evalexpr()/ch_sendexpr() avec un canal brut " +"ou nl" -msgid "E546: Illegal mode" -msgstr "E546: Mode non autoris" +msgid "E906: not an open channel" +msgstr "E906: pas un canal ouvert" -msgid "E548: digit expected" -msgstr "E548: chiffre attendu" +msgid "E920: _io file requires _name to be set" +msgstr "E920: fichier _io ncessite _name" -msgid "E549: Illegal percentage" -msgstr "E549: Pourcentage non autoris" +msgid "E915: in_io buffer requires in_buf or in_name to be set" +msgstr "E915: tampon in_io ncessite in_buf ou in_name " + +#, c-format +msgid "E918: buffer must be loaded: %s" +msgstr "E918: le tampon doit tre charg : %s" + +msgid "E821: File is encrypted with unknown method" +msgstr "E821: Le fichier est chiffr avec une mthode inconnue" + +msgid "Warning: Using a weak encryption method; see :help 'cm'" +msgstr "" +"Alerte : utilisation d'une mthode de chiffrage faible ; consultez :help 'cm'" + +msgid "Enter encryption key: " +msgstr "Tapez la cl de chiffrement : " + +msgid "Enter same key again: " +msgstr "Tapez la cl nouveau : " + +msgid "Keys don't match!" +msgstr "Les cls ne correspondent pas !" + +msgid "[crypted]" +msgstr "[chiffr]" + +#, c-format +msgid "E720: Missing colon in Dictionary: %s" +msgstr "E720: Il manque ':' dans le Dictionnaire %s" + +#, c-format +msgid "E721: Duplicate key in Dictionary: \"%s\"" +msgstr "E721: Cl duplique dans le Dictionnaire : %s" + +#, c-format +msgid "E722: Missing comma in Dictionary: %s" +msgstr "E722: Il manque une virgule dans le Dictionnaire : %s" + +#, c-format +msgid "E723: Missing end of Dictionary '}': %s" +msgstr "E723: Il manque '}' la fin du Dictionnaire : %s" + +msgid "extend() argument" +msgstr "argument de extend()" + +#, c-format +msgid "E737: Key already exists: %s" +msgstr "E737: La cl existe dj : %s" -# AB - Je n'ai pas trouv de traduction satisfaisante au verbe "diff". Comme -# Vim fait en pratique appel au programme "diff" pour evaluer les -# diffrences entre fichiers, "to diff" a t traduit par "utiliser diff" -# et d'autres expressions appropries. #, c-format -msgid "E96: Can not diff more than % buffers" -msgstr "E96: Impossible d'utiliser diff sur plus de % tampons" +msgid "E96: Cannot diff more than %ld buffers" +msgstr "E96: Impossible d'utiliser diff sur plus de %ld tampons" msgid "E810: Cannot read or write temp files" msgstr "E810: Impossible de lire ou crire des fichiers temporaires" @@ -281,6 +341,9 @@ msgstr "E810: Impossible de lire ou msgid "E97: Cannot create diffs" msgstr "E97: diff ne fonctionne pas" +msgid "Patch file" +msgstr "Fichier rustine" + msgid "E816: Cannot read patch output" msgstr "E816: Le fichier intermdiaire produit par patch n'a pu tre lu" @@ -459,13 +522,10 @@ msgstr "Correspondance %d sur %d" msgid "match %d" msgstr "Correspondance %d" +#. maximum nesting of lists and dicts msgid "E18: Unexpected characters in :let" msgstr "E18: Caractres inattendus avant '='" -#, c-format -msgid "E684: list index out of range: %" -msgstr "E684: index de Liste hors limites : % au-del de la fin" - #, c-format msgid "E121: Undefined variable: %s" msgstr "E121: Variable non dfinie : %s" @@ -473,45 +533,6 @@ msgstr "E121: Variable non d msgid "E111: Missing ']'" msgstr "E111: ']' manquant" -#, c-format -msgid "E686: Argument of %s must be a List" -msgstr "E686: L'argument de %s doit tre une Liste" - -#, c-format -msgid "E712: Argument of %s must be a List or Dictionary" -msgstr "E712: L'argument de %s doit tre une Liste ou un Dictionnaire" - -msgid "E713: Cannot use empty key for Dictionary" -msgstr "E713: Impossible d'utiliser une cl vide dans un Dictionnaire" - -msgid "E714: List required" -msgstr "E714: Liste requise" - -msgid "E715: Dictionary required" -msgstr "E715: Dictionnaire requis" - -msgid "E928: String required" -msgstr "E928: Chaine requis" - -# DB : Suggestion -#, c-format -msgid "E118: Too many arguments for function: %s" -msgstr "E118: La fonction %s a reu trop d'arguments" - -#, c-format -msgid "E716: Key not present in Dictionary: %s" -msgstr "E716: La cl %s n'existe pas dans le Dictionnaire" - -#, c-format -msgid "E122: Function %s already exists, add ! to replace it" -msgstr "E122: La fonction %s existe dj (ajoutez ! pour la remplacer)" - -msgid "E717: Dictionary entry already exists" -msgstr "E717: Une entre du Dictionnaire porte dj ce nom" - -msgid "E718: Funcref required" -msgstr "E718: Rfrence de fonction (Funcref) requise" - msgid "E719: Cannot use [:] with a Dictionary" msgstr "E719: Utilisation de [:] impossible avec un Dictionnaire" @@ -548,7 +569,7 @@ msgid "E708: [:] must come last" msgstr "E708: [:] ne peut tre spcifi qu'en dernier" msgid "E709: [:] requires a List value" -msgstr "E709: [:] n?cessite une Liste" +msgstr "E709: [:] ncessite une Liste" msgid "E710: List value has more items than target" msgstr "E710: La Liste a plus d'lments que la destination" @@ -574,8 +595,8 @@ msgstr "E109: Il manque ':' apr msgid "E691: Can only compare List with List" msgstr "E691: Une Liste ne peut tre compare qu'avec une Liste" -msgid "E692: Invalid operation for Lists" -msgstr "E692: Opration invalide avec les Listes" +msgid "E692: Invalid operation for List" +msgstr "E692: Opration invalide avec les Liste" msgid "E735: Can only compare Dictionary with Dictionary" msgstr "E735: Un Dictionnaire ne peut tre compar qu'avec un Dictionnaire" @@ -583,10 +604,6 @@ msgstr "E735: Un Dictionnaire ne peut msgid "E736: Invalid operation for Dictionary" msgstr "E736: Opration invalide avec les Dictionnaires" -# DB - todo : Traduction valable (et courte) pour Funcref ? -msgid "E693: Can only compare Funcref with Funcref" -msgstr "E693: Une Funcref ne peut tre compare qu' une Funcref" - msgid "E694: Invalid operation for Funcrefs" msgstr "E694: Opration invalide avec les Funcrefs" @@ -599,6 +616,9 @@ msgstr "E110: ')' manquant" msgid "E695: Cannot index a Funcref" msgstr "E695: Impossible d'indexer une Funcref" +msgid "E909: Cannot index a special variable" +msgstr "E909: Impossible d'indexer une variable spciale" + # AB - La version franaise est meilleure que la version anglaise. #, c-format msgid "E112: Option name missing: %s" @@ -745,30 +765,39 @@ msgstr "E785: complete() n'est utilisable que dans le mode Insertion" # AB - Texte par dfaut du bouton de la bote de dialogue affiche par la # fonction confirm(). +#. +#. * Yes this is ugly, I don't particularly like it either. But doing it +#. * this way has the compelling advantage that translations need not to +#. * be touched at all. See below what 'ok' and 'ync' are used for. +#. msgid "&Ok" msgstr "&Ok" -msgid "extend() argument" -msgstr "argument de extend()" - -#, c-format -msgid "E737: Key already exists: %s" -msgstr "E737: un mappage existe dj pour %s" - -msgid "map() argument" -msgstr "argument de map()" - -msgid "filter() argument" -msgstr "argument de filter()" - #, c-format -msgid "+-%s%3ld lines: " -msgstr "+-%s%3ld lignes : " +msgid "+-%s%3ld line: " +msgid_plural "+-%s%3ld lines: " +msgstr[0] "+-%s%3ld ligne : " +msgstr[1] "+-%s%3ld lignes : " #, c-format msgid "E700: Unknown function: %s" msgstr "E700: Fonction inconnue : %s" +msgid "E922: expected a dict" +msgstr "E922: dictionnaire attendu" + +msgid "E923: Second argument of function() must be a list or a dict" +msgstr "" +"E923: Le second argument de function() doit tre une liste ou un dictionnaire" + +# AB - Textes des boutons de la bote de dialogue affiche par inputdialog(). +msgid "" +"&OK\n" +"&Cancel" +msgstr "" +"&Ok\n" +"&Annuler" + # AB - La version franaise est meilleure que la version anglaise. msgid "called inputrestore() more often than inputsave()" msgstr "inputrestore() a t appel plus de fois qu'inputsave()" @@ -779,6 +808,9 @@ msgstr "argument de insert()" msgid "E786: Range not allowed" msgstr "E786: Les plages ne sont pas autorises" +msgid "E916: not a valid job" +msgstr "E916: tche invalide" + msgid "E701: Invalid type for len()" msgstr "E701: Type invalide avec len()" @@ -795,6 +827,19 @@ msgstr "E727: D msgid "" msgstr "" +# AB - mon avis, la version anglaise est errone. +# DB : Vrifier +msgid "E240: No connection to Vim server" +msgstr "E240: Pas de connexion au serveur X" + +# AB - La version franaise est meilleure que la version anglaise. +#, c-format +msgid "E241: Unable to send to %s" +msgstr "E241: L'envoi au serveur %s a chou" + +msgid "E277: Unable to read a server reply" +msgstr "E277: Impossible de lire la rponse du serveur" + msgid "remove() argument" msgstr "argument de remove()" @@ -804,6 +849,10 @@ msgstr "E655: Trop de liens symboliques (cycle ?)" msgid "reverse() argument" msgstr "argument de reverse()" +# AB - La version franaise est meilleure que la version anglaise. +msgid "E258: Unable to send to client" +msgstr "E258: La rponse n'a pas pu tre envoye au client" + #, c-format msgid "E927: Invalid action: '%s'" msgstr "E927: Action invalide : %s " @@ -811,290 +860,140 @@ msgstr "E927: Action invalide : msgid "sort() argument" msgstr "argument de sort()" -#, fuzzy -#~ msgid "uniq() argument" -#~ msgstr "argument de add()" +msgid "uniq() argument" +msgstr "argument de uniq()" msgid "E702: Sort compare function failed" msgstr "E702: La fonction de comparaison de sort() a chou" -#, fuzzy -#~ msgid "E882: Uniq compare function failed" -#~ msgstr "E702: La fonction de comparaison de sort() a chou" +msgid "E882: Uniq compare function failed" +msgstr "E882: La fonction de comparaison de uniq() a chou" msgid "(Invalid)" msgstr "(Invalide)" +#, c-format +msgid "E935: invalid submatch number: %d" +msgstr "E935: numro de submatch invalide : %d" + msgid "E677: Error writing temp file" msgstr "E677: Erreur lors de l'criture du fichier temporaire" -msgid "E805: Using a Float as a Number" -msgstr "E805: Utilisation d'un Flottant comme un Nombre" - -msgid "E703: Using a Funcref as a Number" -msgstr "E703: Utilisation d'une Funcref comme un Nombre" +msgid "E921: Invalid callback argument" +msgstr "E921: Argument de callback invalide" -msgid "E745: Using a List as a Number" -msgstr "E745: Utilisation d'une Liste comme un Nombre" +#, c-format +msgid "<%s>%s%s %d, Hex %02x, Octal %03o" +msgstr "<%s>%s%s %d, Hexa %02x, Octal %03o" -msgid "E728: Using a Dictionary as a Number" -msgstr "E728: Utilisation d'un Dictionnaire comme un Nombre" +#, c-format +msgid "> %d, Hex %04x, Octal %o" +msgstr "> %d, Hexa %04x, Octal %o" -msgid "E729: using Funcref as a String" -msgstr "E729: Utilisation d'une Funcref comme une Chane" +#, c-format +msgid "> %d, Hex %08x, Octal %o" +msgstr "> %d, Hexa %08x, Octal %o" -msgid "E730: using List as a String" -msgstr "E730: Utilisation d'une Liste comme une Chane" +# AB - La version anglaise est trs mauvaise, ce qui m'oblige a inventer une +# version franaise. +msgid "E134: Move lines into themselves" +msgstr "E134: La destination est dans la plage d'origine" -msgid "E731: using Dictionary as a String" -msgstr "E731: Utilisation d'un Dictionnaire comme une Chane" +msgid "1 line moved" +msgstr "1 ligne dplace" -# DB : On doit pouvoir trouver nettement mieux que a. #, c-format -msgid "E706: Variable type mismatch for: %s" -msgstr "E706: Type de variable incohrent pour %s" +msgid "%ld lines moved" +msgstr "%ld lignes dplaces" #, c-format -msgid "E795: Cannot delete variable %s" -msgstr "E795: Impossible de supprimer la variable %s" +msgid "%ld lines filtered" +msgstr "%ld lignes filtres" -#, c-format -msgid "E704: Funcref variable name must start with a capital: %s" -msgstr "E704: Le nom d'une Funcref doit commencer par une majuscule : %s" +# AB - J'ai volontairement omis l'astrisque initiale car je pense que le +# motif "Filter*" dcrit plus clairement les quatre autocommandes lies +# au filtrage (FilterReadPre, FilterReadPost, FilterWritePre et +# FilterWritePost) que "*Filter*" que l'on confond avec une tentative de +# mise en valeur. +msgid "E135: *Filter* Autocommands must not change current buffer" +msgstr "" +"E135: Les autocommandes Filter* ne doivent pas changer le tampon courant" -#, c-format -msgid "E705: Variable name conflicts with existing function: %s" -msgstr "E705: Le nom d'une variable entre en conflit avec la fonction %s" +# AB - Il faut respecter l'esprit plus que la lettre. Dans le cas prsent, +# nettement plus. +msgid "[No write since last change]\n" +msgstr "[Attention : tout n'est pas enregistr]\n" +# AB - Le numro et le message d'erreur (%s ci-dessous) et le "numro" de ligne +# sont des chanes de caractres dont le contenu est la discrtion de +# l'appelant de la fonction viminfo_error(). #, c-format -msgid "E741: Value is locked: %s" -msgstr "E741: La valeur de %s est verrouille" +msgid "%sviminfo: %s in line: " +msgstr "%sviminfo : %s la ligne " -msgid "Unknown" -msgstr "Inconnu" +# AB - La version franaise est meilleure que la version anglaise. +msgid "E136: viminfo: Too many errors, skipping rest of file" +msgstr "" +"E136: Il y a trop d'erreurs ; interruption de la lecture du fichier viminfo" +# AB - Ce texte fait partie d'un message de dbogage. +# DB - ... dont les valeurs possibles sont les messages +# qui suivent. #, c-format -msgid "E742: Cannot change value of %s" -msgstr "E742: Impossible de modifier la valeur de %s" +msgid "Reading viminfo file \"%s\"%s%s%s" +msgstr "Lecture du fichier viminfo \"%s\"%s%s%s" -msgid "E698: variable nested too deep for making a copy" -msgstr "E698: variable trop imbrique pour en faire une copie" +# AB - Ce texte fait partie d'un message de dbogage. +# DB - Voir ci-dessus. +msgid " info" +msgstr " info" -#, c-format -msgid "E123: Undefined function: %s" -msgstr "E123: Fonction non dfinie : %s" +# AB - Ce texte fait partie d'un message de dbogage. +# DB - Voir ci-dessus. +msgid " marks" +msgstr " marques" -# AB - La version franaise est plus consistante que la version anglaise. -# AB - Je suis partag entre la concision d'une traduction assez littrale et -# la lourdeur d'une traduction plus correcte. -#, c-format -msgid "E124: Missing '(': %s" -msgstr "E124: Il manque '(' aprs %s" +msgid " oldfiles" +msgstr " vieux fichiers" -msgid "E862: Cannot use g: here" -msgstr "E862: Impossible d'utiliser g: ici" +# AB - Ce texte fait partie d'un message de dbogage. +# DB - Voir ci-dessus. +msgid " FAILED" +msgstr " CHEC" +# AB - J'espre que la plupart des utilisateurs aura l'ide d'aller vrifier +# ses droits d'accs. +# AB - Le mot "viminfo" a t retir pour que le message ne dpasse pas 80 +# caractres dans le cas courant o %s = /home/12345678/.viminfo +#. avoid a wait_return for this message, it's annoying #, c-format -msgid "E125: Illegal argument: %s" -msgstr "E125: Argument invalide : %s" +msgid "E137: Viminfo file is not writable: %s" +msgstr "E137: L'criture dans le fichier %s est interdite" #, c-format -msgid "E853: Duplicate argument name: %s" -msgstr "E853: Nom d'argument dupliqu : %s" - -msgid "E126: Missing :endfunction" -msgstr "E126: Il manque :endfunction" +msgid "E929: Too many viminfo temp files, like %s!" +msgstr "E929: Trop de fichiers temporaires viminfo, comme %s!" +# AB - Le point d'exclamation est superflu. +# AB - Le mot "viminfo" a t retir pour que le message ne dpasse pas 80 +# caractres dans le cas courant o %s = /home/12345678/.viminfo #, c-format -msgid "E707: Function name conflicts with variable: %s" -msgstr "E707: Le nom de fonction entre en conflit avec la variable : %s" +msgid "E138: Can't write viminfo file %s!" +msgstr "E138: Impossible d'crire le fichier %s" +# AB - Ce texte est un message de dbogage. #, c-format -msgid "E127: Cannot redefine function %s: It is in use" -msgstr "E127: Impossible de redfinir fonction %s : dj utilise" +msgid "Writing viminfo file \"%s\"" +msgstr "criture du fichier viminfo \"%s\"" -# DB - Le contenu du "c-format" est le nom de la fonction. #, c-format -msgid "E746: Function name does not match script file name: %s" -msgstr "E746: Le nom de la fonction %s ne correspond pas le nom du script" +msgid "E886: Can't rename viminfo file to %s!" +msgstr "E886: Impossible de renommer viminfo en %s" -msgid "E129: Function name required" -msgstr "E129: Nom de fonction requis" - -#, fuzzy, c-format -#~ msgid "E128: Function name must start with a capital or \"s:\": %s" -#~ msgstr "E128: La fonction %s ne commence pas par une majuscule ou contient ':'" - -#, fuzzy, c-format -#~ msgid "E884: Function name cannot contain a colon: %s" -#~ msgstr "E128: La fonction %s ne commence pas par une majuscule ou contient ':'" - -# AB - Il est difficile de crer une version franaise qui fasse moins de 80 -# caractres de long, nom de la fonction compris : "It is in use" est une -# expression trs dense. Traductions possibles : "elle est utilise", -# "elle s'excute" ou "elle est occupe". -#, c-format -msgid "E131: Cannot delete function %s: It is in use" -msgstr "E131: Impossible d'effacer %s : cette fonction est utilise" - -# AB - Vrifier dans la littrature technique s'il n'existe pas une meilleure -# traduction pour "function call depth". -msgid "E132: Function call depth is higher than 'maxfuncdepth'" -msgstr "" -"E132: La profondeur d'appel de fonction est suprieure 'maxfuncdepth'" - -# AB - Ce texte fait partie d'un message de dbogage. -#, c-format -msgid "calling %s" -msgstr "appel de %s" - -# AB - Vrifier. -#, c-format -msgid "%s aborted" -msgstr "%s annule" - -# AB - Ce texte fait partie d'un message de dbogage. -#, c-format -msgid "%s returning #%" -msgstr "%s a retourn #%" - -# AB - Ce texte fait partie d'un message de dbogage. -#, c-format -msgid "%s returning %s" -msgstr "%s a retourn \"%s\"" - -# AB - Ce texte fait partie d'un message de dbogage. -#, c-format -msgid "continuing in %s" -msgstr "de retour dans %s" - -msgid "E133: :return not inside a function" -msgstr "E133: :return en dehors d'une fonction" - -# AB - La version franaise est capitalise pour tre en accord avec les autres -# commentaires enregistrs dans le fichier viminfo. -msgid "" -"\n" -"# global variables:\n" -msgstr "" -"\n" -"# Variables globales:\n" - -# DB - Plus prcis ("la dernire fois") ? -msgid "" -"\n" -"\tLast set from " -msgstr "" -"\n" -"\tModifi la dernire fois dans " - -msgid "No old files" -msgstr "Aucun vieux fichier" - -#, c-format -msgid "<%s>%s%s %d, Hex %02x, Octal %03o" -msgstr "<%s>%s%s %d, Hexa %02x, Octal %03o" - -#, c-format -msgid "> %d, Hex %04x, Octal %o" -msgstr "> %d, Hexa %04x, Octal %o" - -#, c-format -msgid "> %d, Hex %08x, Octal %o" -msgstr "> %d, Hexa %08x, Octal %o" - -# AB - La version anglaise est trs mauvaise, ce qui m'oblige a inventer une -# version franaise. -msgid "E134: Move lines into themselves" -msgstr "E134: La destination est dans la plage d'origine" - -msgid "1 line moved" -msgstr "1 ligne dplace" - -#, c-format -msgid "% lines moved" -msgstr "% lignes dplaces" - -#, c-format -msgid "% lines filtered" -msgstr "% lignes filtres" - -# AB - J'ai volontairement omis l'astrisque initiale car je pense que le -# motif "Filter*" dcrit plus clairement les quatre autocommandes lies -# au filtrage (FilterReadPre, FilterReadPost, FilterWritePre et -# FilterWritePost) que "*Filter*" que l'on confond avec une tentative de -# mise en valeur. -msgid "E135: *Filter* Autocommands must not change current buffer" -msgstr "" -"E135: Les autocommandes Filter* ne doivent pas changer le tampon courant" - -# AB - Il faut respecter l'esprit plus que la lettre. Dans le cas prsent, -# nettement plus. -msgid "[No write since last change]\n" -msgstr "[Attention : tout n'est pas enregistr]\n" - -# AB - Le numro et le message d'erreur (%s ci-dessous) et le "numro" de ligne -# sont des chanes de caractres dont le contenu est la discrtion de -# l'appelant de la fonction viminfo_error(). -#, c-format -msgid "%sviminfo: %s in line: " -msgstr "%sviminfo : %s la ligne " - -# AB - La version franaise est meilleure que la version anglaise. -msgid "E136: viminfo: Too many errors, skipping rest of file" -msgstr "" -"E136: Il y a trop d'erreurs ; interruption de la lecture du fichier viminfo" - -# AB - Ce texte fait partie d'un message de dbogage. -# DB - ... dont les valeurs possibles sont les messages -# qui suivent. -#, c-format -msgid "Reading viminfo file \"%s\"%s%s%s" -msgstr "Lecture du fichier viminfo \"%s\"%s%s%s" - -# AB - Ce texte fait partie d'un message de dbogage. -# DB - Voir ci-dessus. -msgid " info" -msgstr " info" - -# AB - Ce texte fait partie d'un message de dbogage. -# DB - Voir ci-dessus. -msgid " marks" -msgstr " marques" - -msgid " oldfiles" -msgstr " vieux fichiers" - -# AB - Ce texte fait partie d'un message de dbogage. -# DB - Voir ci-dessus. -msgid " FAILED" -msgstr " CHEC" - -# AB - J'espre que la plupart des utilisateurs aura l'ide d'aller vrifier -# ses droits d'accs. -# AB - Le mot "viminfo" a t retir pour que le message ne dpasse pas 80 -# caractres dans le cas courant o %s = /home/12345678/.viminfo -#. avoid a wait_return for this message, it's annoying -#, c-format -msgid "E137: Viminfo file is not writable: %s" -msgstr "E137: L'criture dans le fichier %s est interdite" - -# AB - Le point d'exclamation est superflu. -# AB - Le mot "viminfo" a t retir pour que le message ne dpasse pas 80 -# caractres dans le cas courant o %s = /home/12345678/.viminfo -#, c-format -msgid "E138: Can't write viminfo file %s!" -msgstr "E138: Impossible d'crire le fichier %s" - -# AB - Ce texte est un message de dbogage. -#, c-format -msgid "Writing viminfo file \"%s\"" -msgstr "criture du fichier viminfo \"%s\"" - -#. Write the info: -#, c-format -msgid "# This viminfo file was generated by Vim %s.\n" -msgstr "# Ce fichier viminfo a t gnr par Vim %s.\n" +#. Write the info: +#, c-format +msgid "# This viminfo file was generated by Vim %s.\n" +msgstr "# Ce fichier viminfo a t gnr par Vim %s.\n" # AB - Les deux versions, bien que diffrentes, se valent. msgid "" @@ -1112,6 +1011,19 @@ msgstr "# 'encoding' dans lequel ce fichier a msgid "Illegal starting char" msgstr "Caractre initial non valide" +msgid "" +"\n" +"# Bar lines, copied verbatim:\n" +msgstr "" +"\n" +"# Lignes commenant par |, copies littralement :\n" + +# AB - Ceci est un titre de bote de dialogue. Vrifier que la version +# franaise est correcte pour les trois rfrences ; j'ai un doute quant +# la troisime. +msgid "Save As" +msgstr "Enregistrer sous - Vim" + # AB - Ceci est un contenu de bote de dialogue (ventuellement en mode texte). # AB - La version franaise est meilleure que la version anglaise. msgid "Write partial file?" @@ -1136,8 +1048,8 @@ msgid "E768: Swap file exists: %s (:silent! overrides)" msgstr "E768: Le fichier d'change %s existe dj (:silent! pour passer outre)" #, c-format -msgid "E141: No file name for buffer %" -msgstr "E141: Pas de nom de fichier pour le tampon %" +msgid "E141: No file name for buffer %ld" +msgstr "E141: Pas de nom de fichier pour le tampon %ld" # AB - Il faut respecter l'esprit plus que la lettre. msgid "E142: File not written: Writing is disabled by 'write' option" @@ -1168,6 +1080,10 @@ msgstr "" msgid "E505: \"%s\" is read-only (add ! to override)" msgstr "E505: \"%s\" est en lecture seule (ajoutez ! pour passer outre)" +# AB - Ceci est un titre de bote de dialogue. +msgid "Edit File" +msgstr "Ouvrir un fichier - Vim" + # AB - Il faut respecter l'esprit plus que la lettre. # AB - J'hsite ajouter " sa cration" aprs le nom du tampon. Ce message # devrait n'tre affich qu'aprs une tentative d'ouverture de fichier, @@ -1205,19 +1121,19 @@ msgid "1 substitution" msgstr "1 substitution" #, c-format -msgid "% matches" -msgstr "% correspondances" +msgid "%ld matches" +msgstr "%ld correspondances" #, c-format -msgid "% substitutions" -msgstr "% substitutions" +msgid "%ld substitutions" +msgstr "%ld substitutions" msgid " on 1 line" msgstr " sur 1 ligne" #, c-format -msgid " on % lines" -msgstr " sur % lignes" +msgid " on %ld lines" +msgstr " sur %ld lignes" # AB - Il faut respecter l'esprit plus que la lettre. # AB - Ce message devrait contenir une rfrence :vglobal. @@ -1270,10 +1186,6 @@ msgstr "E149: D msgid "Sorry, help file \"%s\" not found" msgstr "Dsol, le fichier d'aide \"%s\" est introuvable" -#, c-format -msgid "E150: Not a directory: %s" -msgstr "E150: %s n'est pas un rpertoire" - #, c-format msgid "E151: No match: %s" msgstr "E151: Aucune correspondance : %s" @@ -1299,6 +1211,10 @@ msgstr "E670: Encodages diff msgid "E154: Duplicate tag \"%s\" in file %s/%s" msgstr "E154: Marqueur \"%s\" dupliqu dans le fichier %s/%s" +#, c-format +msgid "E150: Not a directory: %s" +msgstr "E150: %s n'est pas un rpertoire" + # AB - Il faut respecter l'esprit plus que la lettre. #, c-format msgid "E160: Unknown sign command: %s" @@ -1337,8 +1253,15 @@ msgstr "E934: Impossible de sauter # AB - Vu le code source, la version franaise est meilleure que la # version anglaise. #, c-format -msgid "E157: Invalid sign ID: %" -msgstr "E157: Le symbole % est introuvable" +msgid "E157: Invalid sign ID: %ld" +msgstr "E157: Le symbole %ld est introuvable" + +#, c-format +msgid "E885: Not possible to change sign %s" +msgstr "E885: Impossible de changer le symbole %s" + +msgid " (NOT FOUND)" +msgstr " (INTROUVABLE)" msgid " (not supported)" msgstr " (non support)" @@ -1355,16 +1278,23 @@ msgid "Entering Debug mode. Type \"cont\" to continue." msgstr "Mode dbogage activ. Tapez \"cont\" pour continuer." #, c-format -msgid "line %: %s" -msgstr "ligne % : %s" +msgid "line %ld: %s" +msgstr "ligne %ld : %s" #, c-format msgid "cmd: %s" msgstr "cmde : %s" +msgid "frame is zero" +msgstr "le cadre de pile est zro" + #, c-format -msgid "Breakpoint in \"%s%s\" line %" -msgstr "Point d'arrt dans %s%s ligne %" +msgid "frame at highest level: %d" +msgstr "cadre de pile au niveau le plus haut : %d" + +#, c-format +msgid "Breakpoint in \"%s%s\" line %ld" +msgstr "Point d'arrt dans %s%s ligne %ld" #, c-format msgid "E161: Breakpoint not found: %s" @@ -1376,8 +1306,8 @@ msgstr "Aucun point d'arr # AB - Le deuxime %s est remplac par "func" ou "file" sans que l'on puisse # traduire ces mots. #, c-format -msgid "%3d %s %s line %" -msgstr "%3d %s %s ligne %" +msgid "%3d %s %s line %ld" +msgstr "%3d %s %s ligne %ld" msgid "E750: First use \":profile start {fname}\"" msgstr "E750: Utilisez d'abord \":profile start {nomfichier}\"" @@ -1427,6 +1357,9 @@ msgstr "Recherche de \"%s\"" msgid "not found in '%s': \"%s\"" msgstr "introuvable dans '%s' : \"%s\"" +msgid "Source Vim script" +msgstr "Sourcer un script - Vim" + #, c-format msgid "Cannot source a directory: \"%s\"" msgstr "Impossible de sourcer un rpertoire : \"%s\"" @@ -1436,16 +1369,16 @@ msgid "could not source \"%s\"" msgstr "impossible de sourcer \"%s\"" #, c-format -msgid "line %: could not source \"%s\"" -msgstr "ligne % : impossible de sourcer \"%s\"" +msgid "line %ld: could not source \"%s\"" +msgstr "ligne %ld : impossible de sourcer \"%s\"" #, c-format msgid "sourcing \"%s\"" msgstr "sourcement \"%s\"" #, c-format -msgid "line %: sourcing \"%s\"" -msgstr "ligne % : sourcement de \"%s\"" +msgid "line %ld: sourcing \"%s\"" +msgstr "ligne %ld : sourcement de \"%s\"" #, c-format msgid "finished sourcing %s" @@ -1490,8 +1423,6 @@ msgstr "Langue courante pour %s : \"%s\"" msgid "E197: Cannot set language to \"%s\"" msgstr "E197: Impossible de choisir la langue \"%s\"" -#. don't redisplay the window -#. don't wait for return msgid "Entering Ex mode. Type \"visual\" to go to Normal mode." msgstr "Mode Ex activ. Tapez \"visual\" pour passer en mode Normal." @@ -1523,12 +1454,10 @@ msgstr "E493: La plage sp msgid "Backwards range given, OK to swap" msgstr "La plage spcifie est inverse, OK pour l'inverser" -#. append -#. typed wrong msgid "E494: Use w or w>>" msgstr "E494: Utilisez w ou w>>" -msgid "E319: The command is not available in this version" +msgid "E319: Sorry, the command is not available in this version" msgstr "E319: Dsol, cette commande n'est pas disponible dans cette version" msgid "E172: Only one file name allowed" @@ -1545,8 +1474,8 @@ msgid "E173: 1 more file to edit" msgstr "E173: encore 1 fichier diter" #, c-format -msgid "E173: % more files to edit" -msgstr "E173: encore % fichiers diter" +msgid "E173: %ld more files to edit" +msgstr "E173: encore %ld fichiers diter" msgid "E174: Command already exists: add ! to replace it" msgstr "E174: La commande existe dj : ajoutez ! pour la redfinir" @@ -1609,7 +1538,10 @@ msgid "E468: Completion argument only allowed for custom completion" msgstr "E468: Seul le compltement personnalis accepte un argument" msgid "E467: Custom completion requires a function argument" -msgstr "E467: Le compltement personnalis requiert une fonction en argument" +msgstr "E467: Le compltement personnalis ncessite une fonction en argument" + +msgid "unknown" +msgstr "inconnu" #, c-format msgid "E185: Cannot find color scheme '%s'" @@ -1624,6 +1556,9 @@ msgstr "E784: Impossible de fermer le dernier onglet" msgid "Already only one tab page" msgstr "Il ne reste dj plus qu'un seul onglet" +msgid "Edit File in new window" +msgstr "Ouvrir un fichier dans une nouvelle fentre - Vim" + #, c-format msgid "Tab page %d" msgstr "Onglet %d" @@ -1631,6 +1566,9 @@ msgstr "Onglet %d" msgid "No swap file" msgstr "Pas de fichier d'change" +msgid "Append File" +msgstr "Ajouter fichier" + msgid "E747: Cannot change directory, buffer is modified (add ! to override)" msgstr "" "E747: Tampon modifi : impossible de changer de rpertoire (ajoutez ! pour " @@ -1643,7 +1581,11 @@ msgid "E187: Unknown" msgstr "E187: Inconnu" msgid "E465: :winsize requires two number arguments" -msgstr "E465: :winsize requiert deux arguments numriques" +msgstr "E465: :winsize ncessite deux arguments numriques" + +#, c-format +msgid "Window position: X %d, Y %d" +msgstr "Position de la fentre : X %d, Y %d" # DB : Suggestion, sans doute perfectible. msgid "E188: Obtaining window position not implemented for this platform" @@ -1651,7 +1593,22 @@ msgstr "" "E188: Rcuprer la position de la fentre non implment dans cette version" msgid "E466: :winpos requires two number arguments" -msgstr "E466: :winpos requiert deux arguments numriques" +msgstr "E466: :winpos ncessite deux arguments numriques" + +msgid "E930: Cannot use :redir inside execute()" +msgstr "E930: Impossible d'utiliser :redir dans execute()" + +msgid "Save Redirection" +msgstr "Enregistrer la redirection" + +msgid "Save View" +msgstr "Enregistrer la vue - Vim" + +msgid "Save Session" +msgstr "Enregistrer la session - Vim" + +msgid "Save Setup" +msgstr "Enregistrer les rglages - Vim" #, c-format msgid "E739: Cannot create directory: %s" @@ -1672,6 +1629,9 @@ msgstr "E191: L'argument doit msgid "E192: Recursive use of :normal too deep" msgstr "E192: Appel rcursif de :normal trop important" +msgid "E809: #< is not available without the +eval feature" +msgstr "E809: #< n'est pas disponible sans la fonctionnalit +eval" + msgid "E194: No alternate file name to substitute for '#'" msgstr "E194: Aucun nom de fichier alternatif substituer '#'" @@ -1690,7 +1650,7 @@ msgstr "E498: Aucun nom de fichier :source msgid "E842: no line number to use for \"\"" msgstr "E842: aucun numro de ligne utiliser pour \"\"" -#, c-format +#, no-c-format msgid "E499: Empty file name for '%' or '#', only works with \":p:h\"" msgstr "E499: Nom de fichier vide pour '%' ou '#', ne marche qu'avec \":p:h\"" @@ -1700,6 +1660,9 @@ msgstr "E500: msgid "E195: Cannot open viminfo file for reading" msgstr "E195: Impossible d'ouvrir le viminfo en lecture" +msgid "E196: No digraphs in this version" +msgstr "E196: Pas de digraphes dans cette version" + msgid "E608: Cannot :throw exceptions with 'Vim' prefix" msgstr "E608: Impossible d'mettre des exceptions avec 'Vim' comme prfixe" @@ -1717,8 +1680,8 @@ msgid "Exception discarded: %s" msgstr "Exception limine : %s" #, c-format -msgid "%s, line %" -msgstr "%s, ligne %" +msgid "%s, line %ld" +msgstr "%s, ligne %ld" #. always scroll up, don't overwrite #, c-format @@ -1858,33 +1821,6 @@ msgstr "E198: cmd_pchar au-del msgid "E199: Active window or buffer deleted" msgstr "E199: Fentre ou tampon actif effac" -msgid "E854: path too long for completion" -msgstr "E854: chemin trop long pour compltement" - -#, c-format -msgid "" -"E343: Invalid path: '**[number]' must be at the end of the path or be " -"followed by '%s'." -msgstr "" -"E343: Chemin invalide : '**[nombre]' doit tre la fin du chemin ou tre " -"suivi de '%s'." - -#, c-format -msgid "E344: Can't find directory \"%s\" in cdpath" -msgstr "E344: Rpertoire \"%s\" introuvable dans 'cdpath'" - -#, c-format -msgid "E345: Can't find file \"%s\" in path" -msgstr "E345: Fichier \"%s\" introuvable dans 'path'" - -#, c-format -msgid "E346: No more directory \"%s\" found in cdpath" -msgstr "E346: Plus de rpertoire \"%s\" dans 'cdpath'" - -#, c-format -msgid "E347: No more file \"%s\" found in path" -msgstr "E347: Plus de fichier \"%s\" dans 'path'" - msgid "E812: Autocommands changed buffer or buffer name" msgstr "E812: Des autocommandes ont chang le tampon ou le nom du tampon" @@ -1897,6 +1833,9 @@ msgstr "est un r msgid "is not a file" msgstr "n'est pas un fichier" +msgid "is a device (disabled with 'opendevice' option)" +msgstr "est un priphrique (dsactiv par l'option 'opendevice')" + msgid "[New File]" msgstr "[Nouveau fichier]" @@ -1917,26 +1856,25 @@ msgstr "" "E201: Autocommandes *ReadPre ne doivent pas modifier le contenu du tampon " "courant" -msgid "Nvim: Reading from stdin...\n" +msgid "Vim: Reading from stdin...\n" msgstr "Vim : Lecture de stdin...\n" +msgid "Reading from stdin..." +msgstr "Lecture de stdin..." + #. Re-opening the original file failed! msgid "E202: Conversion made file unreadable!" msgstr "E202: La conversion a rendu le fichier illisible !" -#. fifo or socket msgid "[fifo/socket]" msgstr "[fifo/socket]" -#. fifo msgid "[fifo]" msgstr "[fifo]" -#. or socket msgid "[socket]" msgstr "[socket]" -#. or character special msgid "[character special]" msgstr "[caractre spcial]" @@ -1953,12 +1891,12 @@ msgid "[converted]" msgstr "[converti]" #, c-format -msgid "[CONVERSION ERROR in line %]" -msgstr "[ERREUR DE CONVERSION la ligne %]" +msgid "[CONVERSION ERROR in line %ld]" +msgstr "[ERREUR DE CONVERSION la ligne %ld]" #, c-format -msgid "[ILLEGAL BYTE in line %]" -msgstr "[OCTET INVALIDE la ligne %]" +msgid "[ILLEGAL BYTE in line %ld]" +msgstr "[OCTET INVALIDE la ligne %ld]" msgid "[READ ERRORS]" msgstr "[ERREURS DE LECTURE]" @@ -1983,9 +1921,18 @@ msgid "E204: Autocommand changed number of lines in unexpected way" msgstr "" "E204: L'autocommande a modifi le nombre de lignes de manire inattendue" +msgid "NetBeans disallows writes of unmodified buffers" +msgstr "NetBeans interdit l'criture des tampons non modifis" + +msgid "Partial writes disallowed for NetBeans buffers" +msgstr "Netbeans interdit l'criture partielle de ses tampons" + msgid "is not a file or writable device" msgstr "n'est pas un fichier ou un priphrique inscriptible" +msgid "writing to device disabled with 'opendevice' option" +msgstr "criture vers un priphrique dsactiv par l'option 'opendevice'" + msgid "is read-only (add ! to override)" msgstr "est en lecture seule (ajoutez ! pour passer outre)" @@ -2008,7 +1955,10 @@ msgid "E510: Can't make backup file (add ! to override)" msgstr "" "E510: Impossible de gnrer la copie de secours (ajoutez ! pour passer outre)" -#. Can't write without a tempfile! +msgid "E460: The resource fork would be lost (add ! to override)" +msgstr "" +"E460: Les ressources partages seraient perdues (ajoutez ! pour passer outre)" + msgid "E214: Can't find temp file for writing" msgstr "E214: Impossible de gnrer un fichier temporaire pour y crire" @@ -2033,11 +1983,11 @@ msgstr "" #, c-format msgid "" -"E513: write error, conversion failed in line % (make 'fenc' empty to " +"E513: write error, conversion failed in line %ld (make 'fenc' empty to " "override)" msgstr "" -"E513: Erreur d'criture, chec de conversion la ligne % (videz " -"'fenc' pour passer outre)" +"E513: Erreur d'criture, chec de conversion la ligne %ld (videz 'fenc' " +"pour passer outre)" msgid "E514: write error (file system full?)" msgstr "E514: erreur d'criture (systme de fichiers plein ?)" @@ -2046,8 +1996,8 @@ msgid " CONVERSION ERROR" msgstr " ERREUR DE CONVERSION" #, c-format -msgid " in line %;" -msgstr " la ligne %" +msgid " in line %ld;" +msgstr " la ligne %ld" msgid "[Device]" msgstr "[Priph.]" @@ -2111,15 +2061,15 @@ msgid "1 line, " msgstr "1 ligne, " #, c-format -msgid "% lines, " -msgstr "% lignes, " +msgid "%ld lines, " +msgstr "%ld lignes, " msgid "1 character" msgstr "1 caractre" #, c-format -msgid "% characters" -msgstr "% caractres" +msgid "%lld characters" +msgstr "%lld caractres" msgid "[noeol]" msgstr "[noeol]" @@ -2204,6 +2154,9 @@ msgstr "E462: Impossible de pr msgid "E321: Could not reload \"%s\"" msgstr "E321: Impossible de recharger \"%s\"" +msgid "--Deleted--" +msgstr "--Effac--" + #, c-format msgid "auto-removing autocommand: %s " msgstr "Autocommandes marques pour auto-suppression : %s " @@ -2213,12 +2166,12 @@ msgstr "Autocommandes marqu msgid "E367: No such group: \"%s\"" msgstr "E367: Aucun groupe \"%s\"" +msgid "E936: Cannot delete the current group" +msgstr "E936: Impossible de supprimer le groupe courant" + msgid "W19: Deleting augroup that is still in use" msgstr "W19: Effacement d'augroup toujours en usage" -msgid "--Deleted--" -msgstr "--Effac--" - #, c-format msgid "E215: Illegal character after *: %s" msgstr "E215: Caractre non valide aprs * : %s" @@ -2286,7 +2239,6 @@ msgid_plural "+--%3ld lines folded " msgstr[0] "+--%3ld ligne replie " msgstr[1] "+--%3ld lignes replies " -#. buffer has already been read msgid "E222: Add to read buffer" msgstr "E222: Ajout au tampon de lecture" @@ -2318,333 +2270,308 @@ msgstr "Aucun mappage trouv msgid "E228: makemap: Illegal mode" msgstr "E228: makemap : mode invalide" -# msgstr "--Pas de lignes dans le tampon--" -# DB - todo : ou encore : msgstr "--Aucune ligne dans le tampon--" -#. key value of 'cedit' option -#. type of cmdline window or 0 -#. result of cmdline window or 0 -msgid "--No lines in buffer--" -msgstr "--Le tampon est vide--" +msgid "E851: Failed to create a new process for the GUI" +msgstr "" +"E851: chec lors de la cration d'un nouveau processus pour l'interface " +"graphique" -#. -#. * The error messages that can be shared are included here. -#. * Excluded are errors that are only used once and debugging messages. -#. -msgid "E470: Command aborted" -msgstr "E470: Commande annule" +msgid "E852: The child process failed to start the GUI" +msgstr "" +"E852: Le processus fils n'a pas russi dmarrer l'interface graphique" -msgid "E471: Argument required" -msgstr "E471: Argument requis" +msgid "E229: Cannot start the GUI" +msgstr "E229: Impossible de dmarrer l'interface graphique" -msgid "E10: \\ should be followed by /, ? or &" -msgstr "E10: \\ devrait tre suivi de /, ? ou &" - -msgid "E11: Invalid in command-line window; executes, CTRL-C quits" -msgstr "" -"E11: Invalide dans la fentre ligne-de-commande ; excute, CTRL-C quitte" +#, c-format +msgid "E230: Cannot read from \"%s\"" +msgstr "E230: Impossible de lire \"%s\"" -msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" +msgid "E665: Cannot start GUI, no valid font found" msgstr "" -"E12: commande non autorise depuis un exrc/vimrc dans rpertoire courant ou " -"une recherche de marqueur" - -msgid "E171: Missing :endif" -msgstr "E171: :endif manquant" - -msgid "E600: Missing :endtry" -msgstr "E600: :endtry manquant" - -msgid "E170: Missing :endwhile" -msgstr "E170: :endwhile manquant" - -msgid "E170: Missing :endfor" -msgstr "E170: :endfor manquant" - -msgid "E588: :endwhile without :while" -msgstr "E588: :endwhile sans :while" - -msgid "E588: :endfor without :for" -msgstr "E588: :endfor sans :for" - -msgid "E13: File exists (add ! to override)" -msgstr "E13: Le fichier existe dj (ajoutez ! pour passer outre)" - -msgid "E472: Command failed" -msgstr "E472: La commande a chou" - -msgid "E473: Internal error" -msgstr "E473: Erreur interne" - -msgid "Interrupted" -msgstr "Interrompu" - -msgid "E14: Invalid address" -msgstr "E14: Adresse invalide" +"E665: Impossible de dmarrer l'IHM graphique, aucune police valide trouve" -msgid "E474: Invalid argument" -msgstr "E474: Argument invalide" +msgid "E231: 'guifontwide' invalid" +msgstr "E231: 'guifontwide' est invalide" -#, c-format -msgid "E475: Invalid argument: %s" -msgstr "E475: Argument invalide : %s" +msgid "E599: Value of 'imactivatekey' is invalid" +msgstr "E599: Valeur de 'imactivatekey' invalide" #, c-format -msgid "E15: Invalid expression: %s" -msgstr "E15: Expression invalide : %s" +msgid "E254: Cannot allocate color %s" +msgstr "E254: Impossible d'allouer la couleur %s" -msgid "E16: Invalid range" -msgstr "E16: Plage invalide" +msgid "No match at cursor, finding next" +msgstr "Aucune correspondance sous le curseur, recherche de la suivante" -msgid "E476: Invalid command" -msgstr "E476: Commande invalide" +msgid " " +msgstr " " #, c-format -msgid "E17: \"%s\" is a directory" -msgstr "E17: \"%s\" est un rpertoire" +msgid "E616: vim_SelFile: can't get font %s" +msgstr "E616: vim_SelFile : impossible d'obtenir la police %s" -#, fuzzy -#~ msgid "E900: Invalid job id" -#~ msgstr "E49: Valeur de dfilement invalide" +msgid "E614: vim_SelFile: can't return to current directory" +msgstr "E614: vim_SelFile : impossible de revenir dans le rpertoire courant" -#~ msgid "E901: Job table is full" -#~ msgstr "" +msgid "Pathname:" +msgstr "Chemin :" -#, c-format -msgid "E364: Library call failed for \"%s()\"" -msgstr "E364: L'appel la bibliothque a chou pour \"%s()\"" +msgid "E615: vim_SelFile: can't get current directory" +msgstr "E615: vim_SelFile : impossible d'obtenir le rpertoire courant" -msgid "E19: Mark has invalid line number" -msgstr "E19: La marque a un numro de ligne invalide" +msgid "OK" +msgstr "Ok" -msgid "E20: Mark not set" -msgstr "E20: Marque non positionne" +msgid "Cancel" +msgstr "Annuler" -msgid "E21: Cannot make changes, 'modifiable' is off" -msgstr "E21: Impossible de modifier, 'modifiable' est dsactiv" +msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." +msgstr "Widget scrollbar : Impossible d'obtenir la gomtrie du pixmap 'thumb'" -msgid "E22: Scripts nested too deep" -msgstr "E22: Trop de rcursion dans les scripts" +msgid "Vim dialog" +msgstr "Vim" -msgid "E23: No alternate file" -msgstr "E23: Pas de fichier alternatif" +msgid "E232: Cannot create BalloonEval with both message and callback" +msgstr "E232: Impossible de crer un BalloonEval avec message ET callback" -msgid "E24: No such abbreviation" -msgstr "E24: Cette abrviation n'existe pas" +msgid "_Cancel" +msgstr "_Annuler" -msgid "E477: No ! allowed" -msgstr "E477: Le ! n'est pas autoris" +msgid "_Save" +msgstr "_Enregistrer" -msgid "E25: Nvim does not have a built-in GUI" -msgstr "E25: L'interface graphique n'a pas t compile dans cette version" +msgid "_Open" +msgstr "_Ouvrir" -#, c-format -msgid "E28: No such highlight group name: %s" -msgstr "E28: Aucun nom de groupe de surbrillance %s" +msgid "_OK" +msgstr "_Ok" -msgid "E29: No inserted text yet" -msgstr "E29: Pas encore de texte insr" +msgid "" +"&Yes\n" +"&No\n" +"&Cancel" +msgstr "" +"&Oui\n" +"&Non\n" +"&Annuler" -msgid "E30: No previous command line" -msgstr "E30: Aucune ligne de commande prcdente" +msgid "Yes" +msgstr "Oui" -msgid "E31: No such mapping" -msgstr "E31: Mappage inexistant" +msgid "No" +msgstr "Non" -msgid "E479: No match" -msgstr "E479: Aucune correspondance" +# todo '_' is for hotkey, i guess? +msgid "Input _Methods" +msgstr "_Mthodes de saisie" -#, c-format -msgid "E480: No match: %s" -msgstr "E480: Aucune correspondance : %s" +msgid "VIM - Search and Replace..." +msgstr "Remplacer - Vim" -msgid "E32: No file name" -msgstr "E32: Aucun nom de fichier" +msgid "VIM - Search..." +msgstr "Rechercher - Vim" -msgid "E33: No previous substitute regular expression" -msgstr "E33: Aucune expression rgulire de substitution prcdente" +msgid "Find what:" +msgstr "Rechercher :" -msgid "E34: No previous command" -msgstr "E34: Aucune commande prcdente" +msgid "Replace with:" +msgstr "Remplacer par :" -msgid "E35: No previous regular expression" -msgstr "E35: Aucune expression rgulire prcdente" +#. whole word only button +msgid "Match whole word only" +msgstr "Mots entiers seulement" -msgid "E481: No range allowed" -msgstr "E481: Les plages ne sont pas autorises" +#. match case button +msgid "Match case" +msgstr "Respecter la casse" -msgid "E36: Not enough room" -msgstr "E36: Pas assez de place" +msgid "Direction" +msgstr "Direction" -#, c-format -msgid "E482: Can't create file %s" -msgstr "E482: Impossible de crer le fichier %s" +#. 'Up' and 'Down' buttons +msgid "Up" +msgstr "Haut" -msgid "E483: Can't get temp file name" -msgstr "E483: Impossible d'obtenir un nom de fichier temporaire" +msgid "Down" +msgstr "Bas" -#, c-format -msgid "E484: Can't open file %s" -msgstr "E484: Impossible d'ouvrir le fichier \"%s\"" +msgid "Find Next" +msgstr "Suivant" -#, c-format -msgid "E485: Can't read file %s" -msgstr "E485: Impossible de lire le fichier %s" +msgid "Replace" +msgstr "Remplacer" -msgid "E37: No write since last change (add ! to override)" -msgstr "E37: Modifications non enregistres (ajoutez ! pour passer outre)" +msgid "Replace All" +msgstr "Remplacer tout" -# AB - Il faut respecter l'esprit plus que la lettre. Dans le cas prsent, -# nettement plus. -#, fuzzy -#~ msgid "E37: No write since last change" -#~ msgstr "[Attention : tout n'est pas enregistr]\n" +msgid "_Close" +msgstr "_Fermer" -msgid "E38: Null argument" -msgstr "E38: Argument null" +msgid "Vim: Received \"die\" request from session manager\n" +msgstr "Vim : Une requte \"die\" a t reue par le gestionnaire de session\n" -msgid "E39: Number expected" -msgstr "E39: Nombre attendu" +msgid "Close tab" +msgstr "Fermer l'onglet" -#, c-format -msgid "E40: Can't open errorfile %s" -msgstr "E40: Impossible d'ouvrir le fichier d'erreurs %s" +msgid "New tab" +msgstr "Nouvel onglet" -msgid "E41: Out of memory!" -msgstr "E41: Mmoire puise" +# DB - todo : un peu long. Cet entre de menu permet d'ouvrir un fichier +# dans un nouvel onglet via le slecteur de fichiers graphique. +msgid "Open Tab..." +msgstr "Ouvrir dans un onglet..." -msgid "Pattern not found" -msgstr "Motif introuvable" +msgid "Vim: Main window unexpectedly destroyed\n" +msgstr "Vim : Fentre principale dtruite inopinment\n" -#, c-format -msgid "E486: Pattern not found: %s" -msgstr "E486: Motif introuvable : %s" +msgid "&Filter" +msgstr "&Filtrer" -msgid "E487: Argument must be positive" -msgstr "E487: L'argument doit tre positif" +msgid "&Cancel" +msgstr "&Annuler" -msgid "E459: Cannot go back to previous directory" -msgstr "E459: Impossible de retourner au rpertoire prcdent" +msgid "Directories" +msgstr "Rpertoires" -msgid "E42: No Errors" -msgstr "E42: Aucune erreur" +msgid "Filter" +msgstr "Filtre" -# DB - TODO : trouver une traduction valable et atteste pour "location". -msgid "E776: No location list" -msgstr "E776: Aucune liste d'emplacements" +msgid "&Help" +msgstr "&Aide" -msgid "E43: Damaged match string" -msgstr "E43: La chane de recherche est endommage" +msgid "Files" +msgstr "Fichiers" -msgid "E44: Corrupted regexp program" -msgstr "E44: L'automate de regexp est corrompu" +msgid "&OK" +msgstr "&Ok" -msgid "E45: 'readonly' option is set (add ! to override)" -msgstr "E45: L'option 'readonly' est active (ajoutez ! pour passer outre)" +msgid "Selection" +msgstr "Slection" -#, c-format -msgid "E46: Cannot change read-only variable \"%s\"" -msgstr "E46: La variable \"%s\" est en lecture seule" +msgid "Find &Next" +msgstr "Suiva&nt" -#, c-format -msgid "E794: Cannot set variable in the sandbox: \"%s\"" -msgstr "" -"E794: Impossible de modifier une variable depuis le bac sable : \"%s\"" +msgid "&Replace" +msgstr "&Remplacer" -msgid "E47: Error while reading errorfile" -msgstr "E47: Erreur lors de la lecture du fichier d'erreurs" +msgid "Replace &All" +msgstr "Rempl&acer tout" -msgid "E48: Not allowed in sandbox" -msgstr "E48: Opration interdite dans le bac sable" +msgid "&Undo" +msgstr "Ann&uler" -msgid "E523: Not allowed here" -msgstr "E523: Interdit cet endroit" +msgid "Open tab..." +msgstr "Ouvrir dans un onglet..." -msgid "E359: Screen mode setting not supported" -msgstr "E359: Choix du mode d'cran non support" +msgid "Find string (use '\\\\' to find a '\\')" +msgstr "Chercher une chane (utilisez '\\\\' pour chercher un '\\')" -msgid "E49: Invalid scroll size" -msgstr "E49: Valeur de dfilement invalide" +msgid "Find & Replace (use '\\\\' to find a '\\')" +msgstr "Chercher et remplacer (utilisez '\\\\' pour trouver un '\\')" -msgid "E91: 'shell' option is empty" -msgstr "E91: L'option 'shell' est vide" +# DB - Traduction non indispensable puisque le code indique qu'il s'agit d'un +# paramtrage bidon afin de slectionner un rpertoire plutt qu'un +# fichier. +#. We fake this: Use a filter that doesn't select anything and a default +#. * file name that won't be used. +msgid "Not Used" +msgstr "Non utilis" -msgid "E255: Couldn't read in sign data!" -msgstr "E255: Impossible de lire les donnes du symbole !" +# DB - Traduction non indispensable puisque le code indique qu'il s'agit d'un +# paramtrage bidon afin de slectionner un rpertoire plutt qu'un +# fichier. +msgid "Directory\t*.nothing\n" +msgstr "Rpertoire\t*.rien\n" -msgid "E72: Close error on swap file" -msgstr "E72: Erreur lors de la fermeture du fichier d'change" +#, c-format +msgid "E671: Cannot find window title \"%s\"" +msgstr "E671: Titre de fentre \"%s\" introuvable" -msgid "E73: tag stack empty" -msgstr "E73: La pile des marqueurs est vide" +#, c-format +msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." +msgstr "E243: Argument non support : \"-%s\" ; Utilisez la version OLE." -msgid "E74: Command too complex" -msgstr "E74: Commande trop complexe" +msgid "E672: Unable to open window inside MDI application" +msgstr "E672: Impossible d'ouvrir une fentre dans une application MDI" -msgid "E75: Name too long" -msgstr "E75: Nom trop long" +# DB - todo : perfectible. +msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" +msgstr "" +"Vim E458: Erreur d'allocation de couleurs, couleurs possiblement incorrectes" -msgid "E76: Too many [" -msgstr "E76: Trop de [" +# DB - todo : La VF est-elle comprhensible ? +#, c-format +msgid "E250: Fonts for the following charsets are missing in fontset %s:" +msgstr "" +"E250: Des polices manquent dans %s pour les jeux de caractres suivants :" -msgid "E77: Too many file names" -msgstr "E77: Trop de noms de fichiers" +#, c-format +msgid "E252: Fontset name: %s" +msgstr "E252: Nom du jeu de polices : %s" -msgid "E488: Trailing characters" -msgstr "E488: Caractres surnumraires" +#, c-format +msgid "Font '%s' is not fixed-width" +msgstr "La police '%s' n'a pas une largeur fixe" -msgid "E78: Unknown mark" -msgstr "E78: Marque inconnue" +#, c-format +msgid "E253: Fontset name: %s" +msgstr "E253: Nom du jeu de polices : %s" -msgid "E79: Cannot expand wildcards" -msgstr "E79: Impossible de dvelopper les mtacaractres" +#, c-format +msgid "Font0: %s" +msgstr "Font0: %s" -msgid "E591: 'winheight' cannot be smaller than 'winminheight'" -msgstr "E591: 'winheight' ne peut pas tre plus petit que 'winminheight'" +#, c-format +msgid "Font1: %s" +msgstr "Font1: %s" -msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" -msgstr "E592: 'winwidth' ne peut pas tre plus petit que 'winminwidth'" +#, c-format +msgid "Font%ld width is not twice that of font0" +msgstr "La largeur de Font%ld n'est pas le double de celle de Font0" -msgid "E80: Error while writing" -msgstr "E80: Erreur lors de l'criture" +#, c-format +msgid "Font0 width: %ld" +msgstr "Largeur de Font0 : %ld" -msgid "Zero count" -msgstr "Le quantificateur est nul" +#, c-format +msgid "Font1 width: %ld" +msgstr "Largeur de Font1 : %ld" -msgid "E81: Using not in a script context" -msgstr "E81: utilis en dehors d'un script" +# DB - todo : Pas certain de mon coup, ici... +msgid "Invalid font specification" +msgstr "La spcification de la police est invalide" -#, c-format -msgid "E685: Internal error: %s" -msgstr "E685: Erreur interne : %s" +msgid "&Dismiss" +msgstr "Aban&donner" -msgid "E363: pattern uses more memory than 'maxmempattern'" -msgstr "E363: le motif utilise plus de mmoire que 'maxmempattern'" +# DB - todo : Pas certain de mon coup, ici... +msgid "no specific match" +msgstr "aucune correspondance particulire" -msgid "E749: empty buffer" -msgstr "E749: tampon vide" +msgid "Vim - Font Selector" +msgstr "Choisir une police - Vim" -#, c-format -msgid "E86: Buffer % does not exist" -msgstr "E86: Le tampon % n'existe pas" +msgid "Name:" +msgstr "Nom :" -msgid "E682: Invalid search pattern or delimiter" -msgstr "E682: Dlimiteur ou motif de recherche invalide" +#. create toggle button +msgid "Show size in Points" +msgstr "Afficher la taille en Points" -msgid "E139: File is loaded in another buffer" -msgstr "E139: Le fichier est charg dans un autre tampon" +msgid "Encoding:" +msgstr "Encodage :" -#, c-format -msgid "E764: Option '%s' is not set" -msgstr "E764: L'option '%s' n'est pas active" +msgid "Font:" +msgstr "Police :" -msgid "E850: Invalid register name" -msgstr "E850: Nom de registre invalide" +msgid "Style:" +msgstr "Style :" -msgid "search hit TOP, continuing at BOTTOM" -msgstr "La recherche a atteint le HAUT, et continue en BAS" +msgid "Size:" +msgstr "Taille :" -msgid "search hit BOTTOM, continuing at TOP" -msgstr "La recherche a atteint le BAS, et continue en HAUT" +msgid "E256: Hangul automata ERROR" +msgstr "E256: ERREUR dans l'automate Hangul" msgid "E550: Missing colon" msgstr "E550: ':' manquant" @@ -2778,6 +2705,9 @@ msgstr "E257: cstag : marqueur introuvable" msgid "E563: stat(%s) error: %d" msgstr "E563: Erreur stat(%s) : %d" +msgid "E563: stat error" +msgstr "E563: Erreur stat" + #, c-format msgid "E564: %s is not a directory or a valid cscope database" msgstr "E564: %s n'est pas un rpertoire ou une base de donnes cscope valide" @@ -2787,8 +2717,8 @@ msgid "Added cscope database %s" msgstr "Base de donnes cscope %s ajoute" #, c-format -msgid "E262: error reading cscope connection %" -msgstr "E262: erreur lors de la lecture de la connexion cscope %" +msgid "E262: error reading cscope connection %ld" +msgstr "E262: erreur lors de la lecture de la connexion cscope %ld" msgid "E561: unknown cscope search type" msgstr "E561: type de recherche cscope inconnu" @@ -2799,9 +2729,8 @@ msgstr "E566: Impossible de cr msgid "E622: Could not fork for cscope" msgstr "E622: Impossible de forker pour cscope" -#, fuzzy -#~ msgid "cs_create_connection setpgid failed" -#~ msgstr "exec de cs_create_connection a chou" +msgid "cs_create_connection setpgid failed" +msgstr "cs_create_connection setpgid a chou" msgid "cs_create_connection exec failed" msgstr "exec de cs_create_connection a chou" @@ -2857,7 +2786,15 @@ msgstr "" " s: Trouver ce symbole C\n" " t: Trouver cette chane\n" -msgid "E568: duplicate cscope database not added" +#, c-format +msgid "E625: cannot open cscope database: %s" +msgstr "E625: impossible d'ouvrir la base de donnes cscope %s" + +msgid "E626: cannot get cscope database information" +msgstr "" +"E626: impossible d'obtenir des informations sur la base de donnes cscope" + +msgid "E568: duplicate cscope database not added" msgstr "E568: base de donnes cscope redondante non ajoute" #, c-format @@ -2900,6 +2837,221 @@ msgstr "aucune connexion cscope\n" msgid " # pid database name prepend path\n" msgstr " # pid nom de la base de donnes chemin\n" +msgid "Lua library cannot be loaded." +msgstr "La bibliothque Lua n'a pas pu tre charge." + +msgid "cannot save undo information" +msgstr "impossible d'enregistrer les informations d'annulation" + +msgid "" +"E815: Sorry, this command is disabled, the MzScheme libraries could not be " +"loaded." +msgstr "" +"E815: Dsol, cette commande est dsactive : les bibliothques MzScheme " +"n'ont pas pu tre charges." + +msgid "" +"E895: Sorry, this command is disabled, the MzScheme's racket/base module " +"could not be loaded." +msgstr "" +"E895: Dsol, cette commande est dsactive : le module MzScheme racket/base " +"ne peut pas tre charg." + +msgid "invalid expression" +msgstr "expression invalide" + +msgid "expressions disabled at compile time" +msgstr "expressions dsactives lors de la compilation" + +msgid "hidden option" +msgstr "option cache" + +msgid "unknown option" +msgstr "option inconnue" + +msgid "window index is out of range" +msgstr "numro de fentre hors limites" + +msgid "couldn't open buffer" +msgstr "impossible d'ouvrir le tampon" + +msgid "cannot delete line" +msgstr "impossible d'effacer la ligne" + +msgid "cannot replace line" +msgstr "impossible de remplacer la ligne" + +msgid "cannot insert line" +msgstr "impossible d'insrer la ligne" + +msgid "string cannot contain newlines" +msgstr "une chane ne peut pas contenir de saut-de-ligne" + +msgid "error converting Scheme values to Vim" +msgstr "erreur lors de la conversion d'une valeur de Scheme Vim" + +msgid "Vim error: ~a" +msgstr "Erreur Vim : ~a" + +msgid "Vim error" +msgstr "Erreur Vim" + +msgid "buffer is invalid" +msgstr "tampon invalide" + +msgid "window is invalid" +msgstr "fentre invalide" + +msgid "linenr out of range" +msgstr "numro de ligne hors limites" + +msgid "not allowed in the Vim sandbox" +msgstr "non autoris dans le bac sable" + +msgid "E836: This Vim cannot execute :python after using :py3" +msgstr "E836: Vim ne peut pas excuter :python aprs avoir utilis :py3" + +msgid "" +"E263: Sorry, this command is disabled, the Python library could not be " +"loaded." +msgstr "" +"E263: Dsol, commande dsactive : la bibliothque Python n'a pas pu tre " +"charge." + +msgid "" +"E887: Sorry, this command is disabled, the Python's site module could not be " +"loaded." +msgstr "" +"E887: Dsol, commande dsactive : la bibliothque Python n'a pas pu tre " +"charge." + +msgid "E659: Cannot invoke Python recursively" +msgstr "E659: Impossible d'invoquer Python rcursivement" + +msgid "E837: This Vim cannot execute :py3 after using :python" +msgstr "E837: Vim ne peut pas excuter :py3 aprs avoir utilis :python" + +msgid "E265: $_ must be an instance of String" +msgstr "E265: $_ doit tre une instance de chane (String)" + +msgid "" +"E266: Sorry, this command is disabled, the Ruby library could not be loaded." +msgstr "" +"E266: Dsol, commande dsactive : la bibliothque Ruby n'a pas pu tre " +"charge." + +msgid "E267: unexpected return" +msgstr "E267: return inattendu" + +msgid "E268: unexpected next" +msgstr "E268: next inattendu" + +msgid "E269: unexpected break" +msgstr "E269: break inattendu" + +msgid "E270: unexpected redo" +msgstr "E270: redo inattendu" + +msgid "E271: retry outside of rescue clause" +msgstr "E271: retry hors d'une clause rescue " + +msgid "E272: unhandled exception" +msgstr "E272: Exception non prise en charge" + +# DB - todo +#, c-format +msgid "E273: unknown longjmp status %d" +msgstr "E273: contexte de longjmp inconnu : %d" + +msgid "invalid buffer number" +msgstr "numro de tampon invalide" + +msgid "not implemented yet" +msgstr "pas encore implment" + +# DB - TODO : le contexte est celui d'une annulation. +#. ??? +msgid "cannot set line(s)" +msgstr "Impossible de remettre la/les ligne(s)" + +msgid "invalid mark name" +msgstr "nom de marque invalide" + +msgid "mark not set" +msgstr "marque non positionne" + +#, c-format +msgid "row %d column %d" +msgstr "ligne %d colonne %d" + +msgid "cannot insert/append line" +msgstr "Impossible d'insrer/ajouter de lignes" + +msgid "line number out of range" +msgstr "numro de ligne hors limites" + +msgid "unknown flag: " +msgstr "drapeau inconnu : " + +msgid "unknown vimOption" +msgstr "vimOption inconnue" + +msgid "keyboard interrupt" +msgstr "interruption clavier" + +msgid "vim error" +msgstr "erreur Vim" + +msgid "cannot create buffer/window command: object is being deleted" +msgstr "" +"Impossible de crer commande de tampon/fentre : objet en cours d'effacement" + +msgid "" +"cannot register callback command: buffer/window is already being deleted" +msgstr "" +"Impossible d'inscrire la commande de rappel : tampon/fentre en effacement" + +#. This should never happen. Famous last word? +msgid "" +"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim." +"org" +msgstr "" +"E280: ERREUR FATALE TCL: reflist corrompue ?! Contactez vim-dev@vim.org, SVP." + +msgid "cannot register callback command: buffer/window reference not found" +msgstr "" +"Impossible d'inscrire la commande de rappel : rf. tampon/fentre introuvable" + +msgid "" +"E571: Sorry, this command is disabled: the Tcl library could not be loaded." +msgstr "" +"E571: Dsol, commande dsactive: la bibliothque Tcl n'a pas pu tre " +"charge." + +#, c-format +msgid "E572: exit code %d" +msgstr "E572: code de sortie %d" + +msgid "cannot get line" +msgstr "Impossible d'obtenir la ligne" + +msgid "Unable to register a command server name" +msgstr "Impossible d'inscrire un nom de serveur de commande" + +msgid "E248: Failed to send command to the destination program" +msgstr "E248: chec de l'envoi de la commande au programme cible" + +#, c-format +msgid "E573: Invalid server id used: %s" +msgstr "E573: Id utilis pour le serveur invalide : %s" + +msgid "E251: VIM instance registry property is badly formed. Deleted!" +msgstr "E251: Entre registre de l'instance de Vim mal formate. Suppression !" + +#, c-format +msgid "E938: Duplicate key in JSON: \"%s\"" +msgstr "E938: Cl duplique dans le document JSON : \"%s\"" + #, c-format msgid "E696: Missing comma in List: %s" msgstr "E696: Il manque une virgule dans la Liste %s" @@ -2930,6 +3082,15 @@ msgstr "Argument invalide pour" msgid "%d files to edit\n" msgstr "%d fichiers diter\n" +msgid "netbeans is not supported with this GUI\n" +msgstr "netbeans n'est pas support avec cette interface graphique\n" + +msgid "'-nb' cannot be used: not enabled at compile time\n" +msgstr "'-nb' ne peut pas tre utilis : dsactiv la compilation\n" + +msgid "This Vim was not compiled with the diff feature." +msgstr "Ce Vim n'a pas t compil avec la fonctionnalit diff" + msgid "Attempt to open script file again: \"" msgstr "Nouvelle tentative pour ouvrir le script : \"" @@ -2939,6 +3100,14 @@ msgstr "Impossible d'ouvrir en lecture : \"" msgid "Cannot open for script output: \"" msgstr "Impossible d'ouvrir pour la sortie script : \"" +msgid "Vim: Error: Failure to start gvim from NetBeans\n" +msgstr "Vim : Erreur : Impossible de dmarrer gvim depuis NetBeans\n" + +msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n" +msgstr "" +"Vim : Erreur : Cette version de Vim ne fonctionne pas dans un terminal " +"Cygwin\n" + msgid "Vim: Warning: Output is not to a terminal\n" msgstr "Vim : Alerte : La sortie ne s'effectue pas sur un terminal\n" @@ -2991,6 +3160,15 @@ msgstr "" "\n" " ou :" +# DB - todo (VMS uniquement). +msgid "" +"\n" +"Where case is ignored prepend / to make flag upper case" +msgstr "" +"\n" +"pour lesquels la casse est indiffrente (/ pour que le drapeau soit " +"majuscule)" + msgid "" "\n" "\n" @@ -3006,6 +3184,20 @@ msgstr "--\t\tSeuls des noms de fichier sont sp msgid "--literal\t\tDon't expand wildcards" msgstr "--literal\tNe pas dvelopper les mtacaractres" +msgid "-register\t\tRegister this gvim for OLE" +msgstr "-register\tInscrire ce gvim pour OLE" + +msgid "-unregister\t\tUnregister gvim for OLE" +msgstr "-unregister\tDsinscrire gvim de OLE" + +msgid "-g\t\t\tRun using GUI (like \"gvim\")" +msgstr "-g\t\tLancer l'interface graphique (comme \"gvim\")" + +msgid "-f or --nofork\tForeground: Don't fork when starting GUI" +msgstr "" +"-f, --nofork\tPremier-plan : ne pas dtacher l'interface graphique du " +"terminal" + msgid "-v\t\t\tVi mode (like \"vi\")" msgstr "-v\t\tMode Vi (comme \"vi\")" @@ -3066,6 +3258,12 @@ msgstr "-r \tR msgid "-L\t\t\tSame as -r" msgstr "-L\t\tComme -r" +msgid "-f\t\t\tDon't use newcli to open window" +msgstr "-f\t\tNe pas utiliser newcli pour l'ouverture des fentres" + +msgid "-dev \t\tUse for I/O" +msgstr "-dev \tUtiliser pour les E/S" + msgid "-A\t\t\tstart in Arabic mode" msgstr "-A\t\tDmarrer en mode arabe" @@ -3078,9 +3276,20 @@ msgstr "-F\t\tD msgid "-T \tSet terminal type to " msgstr "-T \tRgler le type du terminal sur " +msgid "--not-a-term\t\tSkip warning for input/output not being a terminal" +msgstr "" +"--no-a-term\t\tAucun avertissement si l'entre/sortie n'est pas un terminal" + +msgid "--ttyfail\t\tExit if input or output is not a terminal" +msgstr "" +"--ttyfail\t\tQuitte si l'entre ou la sortie ne sont pas un terminal" + msgid "-u \t\tUse instead of any .vimrc" msgstr "-u \tUtiliser au lieu du vimrc habituel" +msgid "-U \t\tUse instead of any .gvimrc" +msgstr "-U \tUtiliser au lieu du gvimrc habituel" + msgid "--noplugin\t\tDon't load plugin scripts" msgstr "--noplugin\tNe charger aucun greffon" @@ -3118,6 +3327,53 @@ msgstr "-w \tAjouter toutes les commandes tap msgid "-W \tWrite all typed commands to file " msgstr "-W \tcrire toutes les commandes tapes dans le fichier " +msgid "-x\t\t\tEdit encrypted files" +msgstr "-x\t\t\tditer des fichiers chiffrs" + +msgid "-display \tConnect vim to this particular X-server" +msgstr "-display \tConnecter Vim au serveur X spcifi" + +msgid "-X\t\t\tDo not connect to X server" +msgstr "-X\t\t\tNe pas se connecter un serveur X" + +msgid "--remote \tEdit in a Vim server if possible" +msgstr "--remote \tditer les dans un serveur Vim si possible" + +msgid "--remote-silent Same, don't complain if there is no server" +msgstr "" +"--remote-silent ...\tPareil, mais pas d'erreur s'il n'y a aucun serveur" + +msgid "" +"--remote-wait As --remote but wait for files to have been edited" +msgstr "" +"--remote-wait \tComme --remote mais ne quitter qu' la fin de l'dition" + +msgid "" +"--remote-wait-silent Same, don't complain if there is no server" +msgstr "" +"--remote-wait-silent\tPareil, mais pas d'erreur s'il n'y a aucun serveur" + +msgid "" +"--remote-tab[-wait][-silent] As --remote but use tab page per file" +msgstr "" +"--remote-tab[-wait][-silent] \tComme --remote mais ouvrir un onglet " +"pour chaque fichier" + +msgid "--remote-send \tSend to a Vim server and exit" +msgstr "--remote-send \tEnvoyer un serveur Vim puis quitter" + +msgid "--remote-expr \tEvaluate in a Vim server and print result" +msgstr "" +"--remote-expr \tvaluer dans un serveur Vim, afficher le " +"rsultat" + +msgid "--serverlist\t\tList available Vim server names and exit" +msgstr "" +"--serverlist\t\tLister les noms des serveurs Vim disponibles et quitter" + +msgid "--servername \tSend to/become the Vim server " +msgstr "--servername \tEnvoyer au/devenir le serveur Vim nomm " + msgid "--startuptime \tWrite startup timing messages to " msgstr "" "--startuptime \tcrire les messages d'horodatage au dmarrage dans " @@ -3132,6 +3388,120 @@ msgstr "-h ou --help\t\tAfficher l'aide (ce message) puis quitter" msgid "--version\t\tPrint version information and exit" msgstr "--version\t\tAfficher les informations de version et quitter" +msgid "" +"\n" +"Arguments recognised by gvim (Motif version):\n" +msgstr "" +"\n" +"Arguments reconnus par gvim (version Motif) :\n" + +msgid "" +"\n" +"Arguments recognised by gvim (neXtaw version):\n" +msgstr "" +"\n" +"Arguments reconnus par gvim (version neXtaw) :\n" + +msgid "" +"\n" +"Arguments recognised by gvim (Athena version):\n" +msgstr "" +"\n" +"Arguments reconnus par gvim (version Athena) :\n" + +msgid "-display \tRun vim on " +msgstr "-display \tLancer Vim sur ce " + +msgid "-iconic\t\tStart vim iconified" +msgstr "-iconic\t\tIconifier Vim au dmarrage" + +msgid "-background \tUse for the background (also: -bg)" +msgstr "" +"-background \tUtiliser pour l'arrire-plan\t (abrv : -bg)" + +msgid "-foreground \tUse for normal text (also: -fg)" +msgstr "" +"-foreground \tUtiliser pour le texte normal\t (abrv : -fg)" + +msgid "-font \t\tUse for normal text (also: -fn)" +msgstr "-font \tUtiliser pour le texte normal\t (abrv : -fn)" + +msgid "-boldfont \tUse for bold text" +msgstr "-boldfont \tUtiliser pour le texte gras" + +msgid "-italicfont \tUse for italic text" +msgstr "-italicfont \tUtiliser pour le texte italique" + +msgid "-geometry \tUse for initial geometry (also: -geom)" +msgstr "-geometry \tUtiliser cette initiale\t (abrv : -geom)" + +msgid "-borderwidth \tUse a border width of (also: -bw)" +msgstr "" +"-borderwidth \tUtiliser cette de bordure\t (abrv : -bw)" + +msgid "-scrollbarwidth Use a scrollbar width of (also: -sw)" +msgstr "" +"-scrollbarwidth \tUtiliser cette de barre de dfil. (abrv: -sw)" + +msgid "-menuheight \tUse a menu bar height of (also: -mh)" +msgstr "-menuheight \tUtiliser cette de menu\t (abrv : -mh)" + +msgid "-reverse\t\tUse reverse video (also: -rv)" +msgstr "-reverse\t\tUtiliser la vido inverse\t\t (abrv : -rv)" + +msgid "+reverse\t\tDon't use reverse video (also: +rv)" +msgstr "+reverse\t\tNe pas utiliser de vido inverse\t (abrv : +rv)" + +msgid "-xrm \tSet the specified resource" +msgstr "-xrm \tConfigurer la spcifie" + +msgid "" +"\n" +"Arguments recognised by gvim (GTK+ version):\n" +msgstr "" +"\n" +"Arguments reconnus par gvim (version GTK+) :\n" + +msgid "-display \tRun vim on (also: --display)" +msgstr "" +"-display \tLancer Vim sur ce \t(galement : --display)" + +msgid "--role \tSet a unique role to identify the main window" +msgstr "--role \tDonner un rle pour identifier la fentre principale" + +msgid "--socketid \tOpen Vim inside another GTK widget" +msgstr "--socketid \tOuvrir Vim dans un autre widget GTK" + +msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout" +msgstr "--echo-wid\t\tGvim affiche l'ID de la fentre sur stdout" + +msgid "-P \tOpen Vim inside parent application" +msgstr "-P \tOuvrir Vim dans une application parente" + +msgid "--windowid \tOpen Vim inside another win32 widget" +msgstr "--windowid \tOuvrir Vim dans un autre widget win32" + +msgid "No display" +msgstr "Aucun display" + +#. Failed to send, abort. +msgid ": Send failed.\n" +msgstr " : L'envoi a chou.\n" + +#. Let vim start normally. +msgid ": Send failed. Trying to execute locally\n" +msgstr " : L'envoi a chou. Tentative d'excution locale\n" + +#, c-format +msgid "%d of %d edited" +msgstr "%d dits sur %d" + +msgid "No display: Send expression failed.\n" +msgstr "Aucun display : L'envoi de l'expression a chou.\n" + +msgid ": Send expression failed.\n" +msgstr " : L'envoi de l'expression a chou.\n" + msgid "No marks set" msgstr "Aucune marque positionne" @@ -3188,6 +3558,30 @@ msgstr "" msgid "Missing '>'" msgstr "'>' manquant" +msgid "E543: Not a valid codepage" +msgstr "E543: Page de codes non valide" + +msgid "E284: Cannot set IC values" +msgstr "E284: Impossible de rgler les valeurs IC" + +msgid "E285: Failed to create input context" +msgstr "E285: chec de la cration du contexte de saisie" + +msgid "E286: Failed to open input method" +msgstr "E286: chec de l'ouverture de la mthode de saisie" + +msgid "E287: Warning: Could not set destroy callback to IM" +msgstr "" +"E287: Alerte : Impossible d'inscrire le callback de destruction dans la MS" + +msgid "E288: input method doesn't support any style" +msgstr "E288: la mthode de saisie ne supporte aucun style" + +msgid "E289: input method doesn't support my preedit type" +msgstr "" +"E289: le type de prdition de Vim n'est pas support par la mthode de " +"saisie" + msgid "E293: block was not locked" msgstr "E293: le bloc n'tait pas verrouill" @@ -3215,6 +3609,9 @@ msgstr "E298: Bloc n msgid "E298: Didn't get block nr 2?" msgstr "E298: Bloc n2 non rcupr ?" +msgid "E843: Error while updating swap file crypt" +msgstr "E843: Erreur lors de la mise jour du fichier d'change crypt" + #. could not (re)open the swap file, what can we do???? msgid "E301: Oops, lost the swap file!!!" msgstr "E301: Oups, le fichier d'change a disparu !" @@ -3229,7 +3626,6 @@ msgstr "E303: Impossible d'ouvrir fichier .swp pour \"%s\", r msgid "E304: ml_upd_block0(): Didn't get block 0??" msgstr "E304: ml_upd_block0() : bloc 0 non rcupr ?!" -#. no swap files found #, c-format msgid "E305: No swap file found for %s" msgstr "E305: Aucun fichier d'change trouv pour %s" @@ -3275,6 +3671,12 @@ msgstr "" ",\n" "ou le fichier a t endommag." +#, c-format +msgid "" +"E833: %s is encrypted and this version of Vim does not support encryption" +msgstr "" +"E833: %s est chiffr et cette version de Vim ne supporte pas le chiffrement" + msgid " has been damaged (page size is smaller than minimum value).\n" msgstr " a t endommag (taille de page infrieure la valeur minimale).\n" @@ -3289,6 +3691,40 @@ msgstr "Fichier original \"%s\"" msgid "E308: Warning: Original file may have been changed" msgstr "E308: Alerte : Le fichier original a pu tre modifi" +#, c-format +msgid "Swap file is encrypted: \"%s\"" +msgstr "Fichier d'change chiffr : \"%s\"" + +msgid "" +"\n" +"If you entered a new crypt key but did not write the text file," +msgstr "" +"\n" +"Si vous avez tap une nouvelle cl de chiffrement mais n'avez pas enregistr " +"le fichier texte," + +msgid "" +"\n" +"enter the new crypt key." +msgstr "" +"\n" +"tapez la nouvelle cl de chiffrement." + +msgid "" +"\n" +"If you wrote the text file after changing the crypt key press enter" +msgstr "" +"\n" +"Si vous avez crit le fichier texte aprs avoir chang la cl de " +"chiffrement, appuyez sur entre" + +msgid "" +"\n" +"to use the same key for text file and swap file" +msgstr "" +"\n" +"afin d'utiliser la mme cl pour le fichier texte et le fichier d'change" + #, c-format msgid "E309: Unable to read block 1 from %s" msgstr "E309: Impossible de lire le bloc 1 de %s" @@ -3360,6 +3796,11 @@ msgstr "" "Il est conseill d'effacer maintenant le fichier .swp.\n" "\n" +msgid "Using crypt key from swap file for the text file.\n" +msgstr "" +"Utilisation de la cl de chiffrement du fichier d'change pour le fichier " +"texte.\n" + #. use msg() to start the scrolling properly msgid "Swap files found:" msgstr "Fichiers d'change trouvs :" @@ -3434,6 +3875,13 @@ msgstr "" msgid " (still running)" msgstr " (en cours d'excution)" +msgid "" +"\n" +" [not usable with this version of Vim]" +msgstr "" +"\n" +" [inutilisable avec cette version de Vim]" + msgid "" "\n" " [not usable on this computer]" @@ -3457,12 +3905,12 @@ msgid "E314: Preserve failed" msgstr "E314: chec de la prservation" #, c-format -msgid "E315: ml_get: invalid lnum: %" -msgstr "E315: ml_get : numro de ligne invalide : %" +msgid "E315: ml_get: invalid lnum: %ld" +msgstr "E315: ml_get : numro de ligne invalide : %ld" #, c-format -msgid "E316: ml_get: cannot find line %" -msgstr "E316: ml_get : ligne % introuvable" +msgid "E316: ml_get: cannot find line %ld" +msgstr "E316: ml_get : ligne %ld introuvable" msgid "E317: pointer block id wrong 3" msgstr "E317: mauvais id de pointeur de bloc 3" @@ -3480,8 +3928,8 @@ msgid "deleted block 1?" msgstr "bloc 1 effac ?" #, c-format -msgid "E320: Cannot find line %" -msgstr "E320: Ligne % introuvable" +msgid "E320: Cannot find line %ld" +msgstr "E320: Ligne %ld introuvable" msgid "E317: pointer block id wrong" msgstr "E317: mauvais id de pointeur de bloc" @@ -3490,12 +3938,12 @@ msgid "pe_line_count is zero" msgstr "pe_line_count vaut zro" #, c-format -msgid "E322: line number out of range: % past the end" -msgstr "E322: numro de ligne hors limites : % au-del de la fin" +msgid "E322: line number out of range: %ld past the end" +msgstr "E322: numro de ligne hors limites : %ld au-del de la fin" #, c-format -msgid "E323: line count wrong in block %" -msgstr "E323: nombre de lignes erron dans le bloc %" +msgid "E323: line count wrong in block %ld" +msgstr "E323: nombre de lignes erron dans le bloc %ld" msgid "Stack size increases" msgstr "La taille de la pile s'accrot" @@ -3523,19 +3971,19 @@ msgstr "Lors de l'ouverture du fichier \"" msgid " NEWER than swap file!\n" msgstr " PLUS RCENT que le fichier d'change !\n" +#. Some of these messages are long to allow translation to +#. * other languages. msgid "" "\n" "(1) Another program may be editing the same file. If this is the case,\n" " be careful not to end up with two different instances of the same\n" -" file when making changes." +" file when making changes. Quit, or continue with caution.\n" msgstr "" "\n" "(1) Un autre programme est peut-tre en train d'diter ce fichier.\n" " Si c'est le cas, faites attention ne pas vous retrouver avec\n" -" deux versions diffrentes du mme fichier en faisant des modifications." - -msgid " Quit, or continue with caution.\n" -msgstr " Quittez, ou continuez prudemment.\n" +" deux versions diffrentes du mme fichier en faisant des modifications.\n" +" Quitter ou continuer avec attention.\n" msgid "(2) An edit session for this file crashed.\n" msgstr "(2) Une session d'dition de ce fichier a plant.\n" @@ -3600,21 +4048,9 @@ msgstr "" "&Quitter\n" "&Abandonner" -#. -#. * Change the ".swp" extension to find another file that can be used. -#. * First decrement the last char: ".swo", ".swn", etc. -#. * If that still isn't enough decrement the last but one char: ".svz" -#. * Can happen when editing many "No Name" buffers. -#. -#. ".s?a" -#. ".saa": tried enough, give up msgid "E326: Too many swap files found" msgstr "E326: Trop de fichiers d'change trouvs" -#, c-format -msgid "E342: Out of memory! (allocating % bytes)" -msgstr "E342: Mmoire puise ! (allocation de % octets)" - msgid "E327: Part of menu-item path is not sub-menu" msgstr "E327: Une partie du chemin de l'lment de menu n'est pas un sous-menu" @@ -3649,6 +4085,9 @@ msgstr "" "\n" "--- Menus ---" +msgid "Tear off this menu" +msgstr "Dtacher ce menu" + msgid "E333: Menu path must lead to a menu item" msgstr "E333: Le chemin du menu doit conduire un lment de menu" @@ -3679,6 +4118,9 @@ msgid "E354: Invalid register name: '%s'" msgstr "E354: Nom de registre invalide : '%s'" # DB - todo : mettre jour ? +msgid "Messages maintainer: Bram Moolenaar " +msgstr "Maintenance des messages : Dominique Pell " + msgid "Interrupt: " msgstr "Interruption : " @@ -3686,8 +4128,8 @@ msgid "Press ENTER or type command to continue" msgstr "Appuyez sur ENTRE ou tapez une commande pour continuer" #, c-format -msgid "%s line %" -msgstr "%s, ligne %" +msgid "%s line %ld" +msgstr "%s, ligne %ld" msgid "-- More --" msgstr "-- Plus --" @@ -3706,15 +4148,6 @@ msgstr "" "&Oui\n" "&Non" -msgid "" -"&Yes\n" -"&No\n" -"&Cancel" -msgstr "" -"&Oui\n" -"&Non\n" -"&Annuler" - msgid "" "&Yes\n" "&No\n" @@ -3728,6 +4161,21 @@ msgstr "" "Tout aban&donner\n" "&Annuler" +# DB : Les trois messages qui suivent sont des titres de botes +# de dialogue par dfaut. +msgid "Select Directory dialog" +msgstr "Slecteur de rpertoire" + +msgid "Save File dialog" +msgstr "Enregistrer un fichier" + +msgid "Open File dialog" +msgstr "Ouvrir un fichier" + +#. TODO: non-GUI file selector here +msgid "E338: Sorry, no file browser in console mode" +msgstr "E338: Dsol, pas de slecteur de fichiers en mode console" + msgid "E766: Insufficient arguments for printf()" msgstr "E766: Pas assez d'arguments pour printf()" @@ -3753,12 +4201,12 @@ msgid "1 line less" msgstr "1 ligne en moins" #, c-format -msgid "% more lines" -msgstr "% lignes en plus" +msgid "%ld more lines" +msgstr "%ld lignes en plus" #, c-format -msgid "% fewer lines" -msgstr "% lignes en moins" +msgid "%ld fewer lines" +msgstr "%ld lignes en moins" msgid " (Interrupted)" msgstr " (Interrompu)" @@ -3766,16 +4214,111 @@ msgstr " (Interrompu)" msgid "Beep!" msgstr "Bip !" -#, c-format -msgid "Calling shell to execute: \"%s\"" -msgstr "Appel du shell pour excuter : \"%s\"" +msgid "ERROR: " +msgstr "ERREUR : " -msgid "E349: No identifier under cursor" -msgstr "E349: Aucun identifiant sous le curseur" +#, c-format +msgid "" +"\n" +"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n" +msgstr "" +"\n" +"[octets] total allou-libr %lu-%lu, utilis %lu, pic %lu\n" + +#, c-format +msgid "" +"[calls] total re/malloc()'s %lu, total free()'s %lu\n" +"\n" +msgstr "" +"[appels] total re/malloc() %lu, total free() %lu\n" +"\n" + +msgid "E340: Line is becoming too long" +msgstr "E340: La ligne devient trop longue" + +#, c-format +msgid "E341: Internal error: lalloc(%ld, )" +msgstr "E341: Erreur interne : lalloc(%ld, )" + +#, c-format +msgid "E342: Out of memory! (allocating %lu bytes)" +msgstr "E342: Mmoire puise ! (allocation de %lu octets)" + +#, c-format +msgid "Calling shell to execute: \"%s\"" +msgstr "Appel du shell pour excuter : \"%s\"" + +msgid "E545: Missing colon" +msgstr "E545: ':' manquant" + +msgid "E546: Illegal mode" +msgstr "E546: Mode non autoris" + +msgid "E547: Illegal mouseshape" +msgstr "E547: Forme de curseur invalide" + +msgid "E548: digit expected" +msgstr "E548: chiffre attendu" + +msgid "E549: Illegal percentage" +msgstr "E549: Pourcentage non autoris" + +msgid "E854: path too long for completion" +msgstr "E854: chemin trop long pour compltement" + +#, c-format +msgid "" +"E343: Invalid path: '**[number]' must be at the end of the path or be " +"followed by '%s'." +msgstr "" +"E343: Chemin invalide : '**[nombre]' doit tre la fin du chemin ou tre " +"suivi de '%s'." + +#, c-format +msgid "E344: Can't find directory \"%s\" in cdpath" +msgstr "E344: Rpertoire \"%s\" introuvable dans 'cdpath'" + +#, c-format +msgid "E345: Can't find file \"%s\" in path" +msgstr "E345: Fichier \"%s\" introuvable dans 'path'" + +#, c-format +msgid "E346: No more directory \"%s\" found in cdpath" +msgstr "E346: Plus de rpertoire \"%s\" dans 'cdpath'" + +#, c-format +msgid "E347: No more file \"%s\" found in path" +msgstr "E347: Plus de fichier \"%s\" dans 'path'" + +#, c-format +msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" +msgstr "" +"E668: Mode d'accs incorrect au fichier d'infos de connexion NetBeans : \"%s" +"\"" + +#, c-format +msgid "E658: NetBeans connection lost for buffer %ld" +msgstr "E658: Connexion NetBeans perdue pour le tampon %ld" + +msgid "E838: netbeans is not supported with this GUI" +msgstr "E838: netbeans n'est pas support avec cette interface graphique" + +msgid "E511: netbeans already connected" +msgstr "E511: netbeans dj connect" + +#, c-format +msgid "E505: %s is read-only (add ! to override)" +msgstr "E505: %s est en lecture seule (ajoutez ! pour passer outre)" + +msgid "E349: No identifier under cursor" +msgstr "E349: Aucun identifiant sous le curseur" msgid "E774: 'operatorfunc' is empty" msgstr "E774: 'operatorfunc' est vide" +msgid "E775: Eval feature not available" +msgstr "E775: La fonctionnalit d'valuation n'est pas disponible" + # DB : Il est ici question du mode Visuel. msgid "Warning: terminal cannot highlight" msgstr "Alerte : le terminal ne peut pas surligner" @@ -3795,7 +4338,7 @@ msgstr "E662: Au d msgid "E663: At end of changelist" msgstr "E663: la fin de la liste des modifications" -msgid "Type :quit to exit Nvim" +msgid "Type :quit to exit Vim" msgstr "tapez :q pour quitter Vim" #, c-format @@ -3807,23 +4350,23 @@ msgid "1 line %sed %d times" msgstr "1 ligne %se %d fois" #, c-format -msgid "% lines %sed 1 time" -msgstr "% lignes %ses 1 fois" +msgid "%ld lines %sed 1 time" +msgstr "%ld lignes %ses 1 fois" #, c-format -msgid "% lines %sed %d times" -msgstr "% lignes %ses %d fois" +msgid "%ld lines %sed %d times" +msgstr "%ld lignes %ses %d fois" #, c-format -msgid "% lines to indent... " -msgstr "% lignes indenter... " +msgid "%ld lines to indent... " +msgstr "%ld lignes indenter... " msgid "1 line indented " msgstr "1 ligne indente " #, c-format -msgid "% lines indented " -msgstr "% lignes indentes " +msgid "%ld lines indented " +msgstr "%ld lignes indentes " msgid "E748: No previously used register" msgstr "E748: Aucun registre n'a t prcdemment utilis" @@ -3837,8 +4380,12 @@ msgid "1 line changed" msgstr "1 ligne modifie" #, c-format -msgid "% lines changed" -msgstr "% lignes modifies" +msgid "%ld lines changed" +msgstr "%ld lignes modifies" + +#, c-format +msgid "freeing %ld lines" +msgstr "libration de %ld lignes" msgid "block of 1 line yanked" msgstr "bloc de 1 ligne copi" @@ -3847,12 +4394,12 @@ msgid "1 line yanked" msgstr "1 ligne copie" #, c-format -msgid "block of % lines yanked" -msgstr "bloc de % lignes copi" +msgid "block of %ld lines yanked" +msgstr "bloc de %ld lignes copi" #, c-format -msgid "% lines yanked" -msgstr "% lignes copies" +msgid "%ld lines yanked" +msgstr "%ld lignes copies" #, c-format msgid "E353: Nothing in register %s" @@ -3880,45 +4427,47 @@ msgstr "" msgid "E574: Unknown register type %d" msgstr "E574: Type de registre %d inconnu" +msgid "" +"E883: search pattern and expression register may not contain two or more " +"lines" +msgstr "" +"E883: le motif de recherche et le registre d'expression ne peuvent pas " +"contenir deux lignes ou plus" + #, c-format -msgid "% Cols; " -msgstr "% Colonnes ; " +msgid "%ld Cols; " +msgstr "%ld Colonnes ; " #, c-format -msgid "" -"Selected %s% of % Lines; % of % Words; " -"% of % Bytes" +msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes" msgstr "" -"%s% sur % Lignes ; % sur % Mots ; % " -"sur % Octets slectionns" +"%s%ld sur %ld Lignes ; %lld sur %lld Mots ; %lld sur %lld Octets slectionns" #, c-format msgid "" -"Selected %s% of % Lines; % of % Words; " -"% of % Chars; % of % Bytes" +"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of " +"%lld Bytes" msgstr "" -"%s% sur % Lignes ; % sur % Mots ; % " -"sur % Caractres ; % sur % octets slectionns" +"%s%ld sur %ld Lignes ; %lld sur %lld Mots ; %lld sur %lld Caractres ; %lld " +"sur %lld octets slectionns" #, c-format -msgid "" -"Col %s of %s; Line % of %; Word % of %; Byte " -"% of %" +msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld" msgstr "" -"Colonne %s sur %s ; Ligne % sur % ; Mot % sur " -"% ; Octet % sur %" +"Colonne %s sur %s ; Ligne %ld sur %ld ; Mot %lld sur %lld ; Octet %lld sur " +"%lld" #, c-format msgid "" -"Col %s of %s; Line % of %; Word % of %; Char " -"% of %; Byte % of %" +"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte " +"%lld of %lld" msgstr "" -"Colonne %s sur %s ; Ligne % sur % ; Mot % sur " -"% ; Caractre % sur % ; Octet % sur %" +"Colonne %s sur %s ; Ligne %ld sur %ld ; Mot %lld sur %lld ; Caractre %lld " +"sur %lld ; Octet %lld sur %lld" #, c-format -msgid "(+% for BOM)" -msgstr "(+% pour le BOM)" +msgid "(+%ld for BOM)" +msgstr "(+%ld pour le BOM)" msgid "%<%f%h%m%=Page %N" msgstr "%<%f%h%m%=Page %N" @@ -3926,7 +4475,6 @@ msgstr "%<%f%h%m%=Page %N" msgid "Thanks for flying Vim" msgstr "Merci d'avoir choisi Vim" -#. found a mismatch: skip msgid "E518: Unknown option" msgstr "E518: Option inconnue" @@ -3956,6 +4504,12 @@ msgstr "Pour l'option %s" msgid "E529: Cannot set 'term' to empty string" msgstr "E529: 'term' ne doit pas tre une chane vide" +msgid "E530: Cannot change term in GUI" +msgstr "E530: Impossible de modifier term dans l'interface graphique" + +msgid "E531: Use \":gui\" to start the GUI" +msgstr "E531: Utilisez \":gui\" pour dmarrer l'interface graphique" + msgid "E589: 'backupext' and 'patchmode' are equal" msgstr "E589: 'backupext' et 'patchmode' sont gaux" @@ -3965,6 +4519,9 @@ msgstr "E834: Conflits avec la valeur de 'listchars'" msgid "E835: Conflicts with value of 'fillchars'" msgstr "E835: Conflits avec la valeur de 'fillchars'" +msgid "E617: Cannot be changed in the GTK+ 2 GUI" +msgstr "E617: Non modifiable dans l'interface graphique GTK+ 2" + msgid "E524: Missing colon" msgstr "E524: ':' manquant" @@ -3984,6 +4541,21 @@ msgstr "E528: Une valeur ' doit msgid "E595: contains unprintable or wide character" msgstr "E595: contient des caractres largeur double non-imprimables" +msgid "E596: Invalid font(s)" +msgstr "E596: Police(s) invalide(s)" + +msgid "E597: can't select fontset" +msgstr "E597: Impossible de slectionner un jeu de polices" + +msgid "E598: Invalid fontset" +msgstr "E598: Jeu de polices invalide" + +msgid "E533: can't select wide font" +msgstr "E533: Impossible de slectionner une police largeur double" + +msgid "E534: Invalid wide font" +msgstr "E534: Police largeur double invalide" + #, c-format msgid "E535: Illegal character after <%c>" msgstr "E535: Caractre invalide aprs <%c>" @@ -3995,6 +4567,9 @@ msgstr "E536: virgule requise" msgid "E537: 'commentstring' must be empty or contain %s" msgstr "E537: 'commentstring' doit tre vide ou contenir %s" +msgid "E538: No mouse support" +msgstr "E538: La souris n'est pas supporte" + # DB - Le code est sans ambigut sur le caractre manquant. # dfaut d'une traduction valable, au moins comprend-on # ce qui se passe. @@ -4011,7 +4586,7 @@ msgid "E590: A preview window already exists" msgstr "E590: Il existe dj une fentre de prvisualisation" msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'" -msgstr "W17: L'arabe requiert l'UTF-8, tapez ':set encoding=utf-8'" +msgstr "W17: L'arabe ncessite l'UTF-8, tapez ':set encoding=utf-8'" #, c-format msgid "E593: Need at least %d lines" @@ -4071,12 +4646,135 @@ msgstr "E357: 'langmap' : Aucun caract msgid "E358: 'langmap': Extra characters after semicolon: %s" msgstr "E358: 'langmap' : Caractres surnumraires aprs point-virgule : %s" +msgid "cannot open " +msgstr "impossible d'ouvrir " + +msgid "VIM: Can't open window!\n" +msgstr "VIM : Impossible d'ouvrir la fentre !\n" + +msgid "Need Amigados version 2.04 or later\n" +msgstr "Amigados version 2.04 ou ultrieure est ncessaire\n" + +#, c-format +msgid "Need %s version %ld\n" +msgstr "%s version %ld est ncessaire\n" + +msgid "Cannot open NIL:\n" +msgstr "Impossible d'ouvrir NIL :\n" + +msgid "Cannot create " +msgstr "Impossible de crer " + +#, c-format +msgid "Vim exiting with %d\n" +msgstr "Vim quitte avec %d\n" + +msgid "cannot change console mode ?!\n" +msgstr "Impossible de modifier le mode de la console ?!\n" + +msgid "mch_get_shellsize: not a console??\n" +msgstr "mch_get_shellsize : pas une console ?!\n" + +#. if Vim opened a window: Executing a shell may cause crashes +msgid "E360: Cannot execute shell with -f option" +msgstr "E360: Impossible d'excuter un shell avec l'option -f" + +msgid "Cannot execute " +msgstr "Impossible d'excuter " + +msgid "shell " +msgstr "le shell " + +msgid " returned\n" +msgstr " a t retourn\n" + +msgid "ANCHOR_BUF_SIZE too small." +msgstr "ANCHOR_BUF_SIZE trop petit." + +msgid "I/O ERROR" +msgstr "ERREUR d'E/S" + +msgid "Message" +msgstr "Message" + +msgid "E237: Printer selection failed" +msgstr "E237: La slection de l'imprimante a chou" + +# DB - Contenu des c-formats : Imprimante puis Port. +#, c-format +msgid "to %s on %s" +msgstr "vers %s sur %s" + +#, c-format +msgid "E613: Unknown printer font: %s" +msgstr "E613: Police d'imprimante inconnue : %s" + +#, c-format +msgid "E238: Print error: %s" +msgstr "E238: Erreur d'impression : %s" + +#, c-format +msgid "Printing '%s'" +msgstr "Impression de '%s'" + +#, c-format +msgid "E244: Illegal charset name \"%s\" in font name \"%s\"" +msgstr "E244: Jeu de caractres \"%s\" invalide dans le nom de fonte \"%s\"" + +#, c-format +msgid "E244: Illegal quality name \"%s\" in font name \"%s\"" +msgstr "E244: Nom de qualit \"%s\" invalide dans le nom de fonte \"%s\"" + +#, c-format +msgid "E245: Illegal char '%c' in font name \"%s\"" +msgstr "E245: Caractre '%c' invalide dans le nom de fonte \"%s\"" + +#, c-format +msgid "Opening the X display took %ld msec" +msgstr "L'ouverture du display X a pris %ld ms" + msgid "" "\n" -"Cannot execute shell " +"Vim: Got X error\n" msgstr "" "\n" -"Impossible d'excuter le shell " +"Vim : Rception d'une erreur X\n" + +msgid "Testing the X display failed" +msgstr "Le test du display X a chou" + +msgid "Opening the X display timed out" +msgstr "L'ouverture du display X a dpass le dlai d'attente" + +msgid "" +"\n" +"Could not get security context for " +msgstr "" +"\n" +"Impossible d'obtenir le contexte de scurit pour " + +msgid "" +"\n" +"Could not set security context for " +msgstr "" +"\n" +"Impossible de modifier le contexte de scurit pour " + +#, c-format +msgid "Could not set security context %s for %s" +msgstr "Impossible d'initialiser le contexte de scurit %s pour %s" + +#, c-format +msgid "Could not get security context %s for %s. Removing it!" +msgstr "" +"Impossible d'obtenir le contexte de scurit %s pour %s. Il sera supprim !" + +msgid "" +"\n" +"Cannot execute shell sh\n" +msgstr "" +"\n" +"Impossible d'excuter le shell sh\n" msgid "" "\n" @@ -4087,25 +4785,99 @@ msgstr "" msgid "" "\n" -"Could not get security context for " +"Cannot create pipes\n" msgstr "" "\n" -"Impossible d'obtenir le contexte de scurit pour " +"Impossible de crer des tuyaux (pipes)\n" msgid "" "\n" -"Could not set security context for " +"Cannot fork\n" msgstr "" "\n" -"Impossible de modifier le contexte de scurit pour " +"Impossible de forker\n" + +msgid "" +"\n" +"Cannot execute shell " +msgstr "" +"\n" +"Impossible d'excuter le shell " + +msgid "" +"\n" +"Command terminated\n" +msgstr "" +"\n" +"Commande interrompue\n" + +msgid "XSMP lost ICE connection" +msgstr "XSMP a perdu la connexion ICE" #, c-format msgid "dlerror = \"%s\"" msgstr "dlerror = \"%s\"" +msgid "Opening the X display failed" +msgstr "L'ouverture du display X a chou" + +msgid "XSMP handling save-yourself request" +msgstr "XSMP : prise en charge d'une requte save-yourself" + +msgid "XSMP opening connection" +msgstr "XSMP : ouverture de la connexion" + +msgid "XSMP ICE connection watch failed" +msgstr "XSMP : chec de la surveillance de connexion ICE" + #, c-format -msgid "E447: Can't find file \"%s\" in path" -msgstr "E447: Le fichier \"%s\" est introuvable dans 'path'" +msgid "XSMP SmcOpenConnection failed: %s" +msgstr "XSMP : SmcOpenConnection a chou : %s" + +msgid "At line" +msgstr " la ligne" + +msgid "Could not load vim32.dll!" +msgstr "Impossible de charger vim32.dll !" + +msgid "VIM Error" +msgstr "Erreur VIM" + +msgid "Could not fix up function pointers to the DLL!" +msgstr "Impossible d'initialiser les pointeurs de fonction vers la DLL !" + +# DB - Les vnements en question sont ceux des messages qui suivent. +#, c-format +msgid "Vim: Caught %s event\n" +msgstr "Vim : vnement %s intercept\n" + +msgid "close" +msgstr "de fermeture" + +msgid "logoff" +msgstr "de dconnexion" + +msgid "shutdown" +msgstr "d'arrt" + +msgid "E371: Command not found" +msgstr "E371: Commande introuvable" + +msgid "" +"VIMRUN.EXE not found in your $PATH.\n" +"External commands will not pause after completion.\n" +"See :help win32-vimrun for more information." +msgstr "" +"VIMRUN.EXE est introuvable votre $PATH.\n" +"Les commandes externes ne feront pas de pause une fois termines.\n" +"Consultez :help win32-vimrun pour plus d'informations." + +msgid "Vim Warning" +msgstr "Alerte Vim" + +#, c-format +msgid "shell returned %d" +msgstr "le shell a retourn %d" #, c-format msgid "E372: Too many %%%c in format string" @@ -4140,6 +4912,15 @@ msgstr "E379: Nom de r msgid "E553: No more items" msgstr "E553: Plus d'lments" +msgid "E924: Current window was closed" +msgstr "E924: La fentre courante doit tre ferme" + +msgid "E925: Current quickfix was changed" +msgstr "E925: Le quickfix courant a chang" + +msgid "E926: Current location list was changed" +msgstr "E926: La liste d'emplacements courante a chang" + #, c-format msgid "(%d of %d)%s%s: " msgstr "(%d sur %d)%s%s : " @@ -4163,6 +4944,9 @@ msgstr "Aucune entr msgid "E382: Cannot write, 'buftype' option is set" msgstr "E382: criture impossible, l'option 'buftype' est active" +msgid "Error file" +msgstr "Fichier d'erreurs" + msgid "E683: File name missing or invalid pattern" msgstr "E683: Nom de fichier manquant ou motif invalide" @@ -4267,6 +5051,10 @@ msgstr "E554: Erreur de syntaxe dans %s{...}" msgid "External submatches:\n" msgstr "Sous-correspondances externes :\n" +#, c-format +msgid "E888: (NFA regexp) cannot repeat %s" +msgstr "E888: (regexp NFA) %s ne peut pas tre rpt" + msgid "" "E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be " "used " @@ -4274,6 +5062,9 @@ msgstr "" "E864: \\%#= peut tre suivi uniquement de 0, 1 ou 2. Le moteur automatique " "sera utilis " +msgid "Switching to backtracking RE engine for pattern: " +msgstr "Moteur RE avec backtracking utilis pour le motif : " + msgid "E865: (NFA) Regexp end encountered prematurely" msgstr "E865: (NFA) Fin de regexp rencontre prmaturment" @@ -4281,17 +5072,21 @@ msgstr "E865: (NFA) Fin de regexp rencontr msgid "E866: (NFA regexp) Misplaced %c" msgstr "E866: (regexp NFA) %c au mauvais endroit" -#, fuzzy, c-format -#~ msgid "E877: (NFA regexp) Invalid character class: %" -#~ msgstr "E877: (regexp NFA) Classe de caractre invalide " +#, c-format +msgid "E877: (NFA regexp) Invalid character class: %ld" +msgstr "E877: (regexp NFA) Classe de caractre invalide : %ld" #, c-format msgid "E867: (NFA) Unknown operator '\\z%c'" msgstr "E867: (NFA) Oprateur inconnu '\\z%c'" -#, fuzzy, c-format -#~ msgid "E867: (NFA) Unknown operator '\\%%%c'" -#~ msgstr "E867: (NFA) Oprateur inconnu '\\z%c'" +#, c-format +msgid "E867: (NFA) Unknown operator '\\%%%c'" +msgstr "E867: (NFA) Oprateur inconnu '\\%%%c'" + +#. should never happen +msgid "E868: Error building NFA with equivalence class!" +msgstr "E868: Erreur lors de la construction du NFA avec classe d'quivalence" #, c-format msgid "E869: (NFA) Unknown operator '\\@%c'" @@ -4308,9 +5103,8 @@ msgstr "E871: (regexp NFA) Un multi ne peut pas suivre un multi !" msgid "E872: (NFA regexp) Too many '('" msgstr "E872: (regexp NFA) Trop de '('" -#, fuzzy -#~ msgid "E879: (NFA regexp) Too many \\z(" -#~ msgstr "E872: (regexp NFA) Trop de '('" +msgid "E879: (NFA regexp) Too many \\z(" +msgstr "E879: (regexp NFA) Trop de \\z(" msgid "E873: (NFA regexp) proper termination error" msgstr "E873: (NFA regexp) erreur de terminaison" @@ -4328,6 +5122,10 @@ msgstr "" msgid "E876: (NFA regexp) Not enough space to store the whole NFA " msgstr "E876: (regexp NFA) Pas assez de mmoire pour stocker le NFA" +msgid "E878: (NFA) Could not allocate memory for branch traversal!" +msgstr "" +"E878: (NFA) Impossible d'allouer la mmoire pour parcourir les branches !" + msgid "" "Could not open temporary log file for writing, displaying on stderr ... " msgstr "" @@ -4526,13 +5324,6 @@ msgstr "E762: Un caract msgid "Compressing word tree..." msgstr "Compression de l'arbre des mots" -msgid "E756: Spell checking is not enabled" -msgstr "E756: La vrification orthographique n'est pas active" - -#, c-format -msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\"" -msgstr "Alerte : Liste de mots \"%s.%s.spl\" ou \"%s.ascii.spl\" introuvable" - #, c-format msgid "Reading spell file \"%s\"" msgstr "Lecture du fichier orthographique \"%s\"" @@ -4581,6 +5372,10 @@ msgstr " msgid "Conversion in %s not supported: from %s to %s" msgstr "La conversion dans %s non supporte : de %s vers %s" +#, c-format +msgid "Conversion in %s not supported" +msgstr "La conversion dans %s non supporte" + #, c-format msgid "Invalid value for FLAG in %s line %d: %s" msgstr "Valeur de FLAG invalide dans %s ligne %d : %s" @@ -4769,6 +5564,9 @@ msgstr "Drapeaux non reconnus dans %s ligne %d : %s" msgid "Ignored %d words with non-ASCII characters" msgstr "%d mot(s) ignor(s) avec des caractres non-ASCII" +msgid "E845: Insufficient memory, word list will be incomplete" +msgstr "E845: mmoire insuffisante, liste de mots peut-tre incomplte" + #, c-format msgid "Compressed %d of %d nodes; %d (%d%%) remaining" msgstr "%d noeuds compresss sur %d ; %d (%d%%) restants " @@ -4776,14 +5574,16 @@ msgstr "%d noeuds compress msgid "Reading back spell file..." msgstr "Relecture du fichier orthographique" -#. Go through the trie of good words, soundfold each word and add it to -#. the soundfold trie. +#. +#. * Go through the trie of good words, soundfold each word and add it to +#. * the soundfold trie. +#. msgid "Performing soundfolding..." msgstr "Analyse phontique en cours..." #, c-format -msgid "Number of words after soundfolding: %" -msgstr "Nombre de mots aprs l'analyse phontique : %" +msgid "Number of words after soundfolding: %ld" +msgstr "Nombre de mots aprs l'analyse phontique : %ld" #, c-format msgid "Total number of words: %d" @@ -4819,87 +5619,45 @@ msgstr "Termin # DB - todo : perfectible. #, c-format -msgid "E765: 'spellfile' does not have % entries" -msgstr "E765: 'spellfile' n'a pas % entres" +msgid "E765: 'spellfile' does not have %ld entries" +msgstr "E765: 'spellfile' n'a pas %ld entres" -#, fuzzy, c-format -#~ msgid "Word '%.*s' removed from %s" -#~ msgstr "Mot retir de %s" +#, c-format +msgid "Word '%.*s' removed from %s" +msgstr "Mot '%.*s' retir de %s" -#, fuzzy, c-format -#~ msgid "Word '%.*s' added to %s" -#~ msgstr "Mot ajout dans %s" +#, c-format +msgid "Word '%.*s' added to %s" +msgstr "Mot '%.*s' ajout dans %s" msgid "E763: Word characters differ between spell files" msgstr "" "E763: Les caractres de mots diffrent entre les fichiers orthographiques" -msgid "Sorry, no suggestions" -msgstr "Dsol, aucune suggestion" - -#, c-format -msgid "Sorry, only % suggestions" -msgstr "Dsol, seulement % suggestions" +#. This should have been checked when generating the .spl +#. * file. +msgid "E783: duplicate char in MAP entry" +msgstr "E783: caractre dupliqu dans l'entre MAP" -#. for when 'cmdheight' > 1 -#. avoid more prompt -#, c-format -msgid "Change \"%.*s\" to:" -msgstr "Remplacer \"%.*s\" par :" +msgid "No Syntax items defined for this buffer" +msgstr "Aucun lment de syntaxe dfini pour ce tampon" -# DB - todo : l'intrt de traduire ce message m'chappe. #, c-format -msgid " < \"%.*s\"" -msgstr " < \"%.*s\"" +msgid "E390: Illegal argument: %s" +msgstr "E390: Argument invalide : %s" -msgid "E752: No previous spell replacement" -msgstr "E752: Pas de suggestion orthographique prcdente" +msgid "syntax iskeyword " +msgstr "syntaxe iskeyword " #, c-format -msgid "E753: Not found: %s" -msgstr "E753: Introuvable : %s" +msgid "E391: No such syntax cluster: %s" +msgstr "E391: Aucune grappe de syntaxe %s" -#, c-format -msgid "E778: This does not look like a .sug file: %s" -msgstr "E778: %s ne semble pas tre un fichier .sug" +msgid "syncing on C-style comments" +msgstr "synchronisation sur les commentaires de type C" -#, c-format -msgid "E779: Old .sug file, needs to be updated: %s" -msgstr "E779: Fichier de suggestions obsolte, mise jour ncessaire : %s" - -#, c-format -msgid "E780: .sug file is for newer version of Vim: %s" -msgstr "E780: Fichier .sug prvu pour une version de Vim plus rcente : %s" - -#, c-format -msgid "E781: .sug file doesn't match .spl file: %s" -msgstr "E781: Le fichier .sug ne correspond pas au fichier .spl : %s" - -#, c-format -msgid "E782: error while reading .sug file: %s" -msgstr "E782: Erreur lors de la lecture de fichier de suggestions : %s" - -#. This should have been checked when generating the .spl -#. file. -msgid "E783: duplicate char in MAP entry" -msgstr "E783: caractres dupliqu dans l'entre MAP" - -msgid "No Syntax items defined for this buffer" -msgstr "Aucun lment de syntaxe dfini pour ce tampon" - -#, c-format -msgid "E390: Illegal argument: %s" -msgstr "E390: Argument invalide : %s" - -#, c-format -msgid "E391: No such syntax cluster: %s" -msgstr "E391: Aucune grappe de syntaxe %s" - -msgid "syncing on C-style comments" -msgstr "synchronisation sur les commentaires de type C" - -msgid "no syncing" -msgstr "Aucune synchronisation" +msgid "no syncing" +msgstr "Aucune synchronisation" # DB - Les deux messages qui suivent vont ensemble. msgid "syncing starts " @@ -4970,6 +5728,10 @@ msgstr "E847: Trop d'inclusions de syntaxe" msgid "E789: Missing ']': %s" msgstr "E789: ']' manquant : %s" +#, c-format +msgid "E890: trailing char after ']': %s]%s" +msgstr "E890: Caractre surnumraire aprs ']': %s]%s" + #, c-format msgid "E398: Missing '=': %s" msgstr "E398: '=' manquant : %s" @@ -4984,7 +5746,6 @@ msgstr "E848: Trop de grappes de syntaxe" msgid "E400: No cluster specified" msgstr "E400: Aucune grappe spcifie" -#. end delimiter not found #, c-format msgid "E401: Pattern delimiter not found: %s" msgstr "E401: Dlimiteur de motif introuvable : %s" @@ -5025,9 +5786,10 @@ msgstr "E409: Nom de groupe inconnu : %s" msgid "E410: Invalid :syntax subcommand: %s" msgstr "E410: Sous-commande de :syntax invalide : %s" -#~ msgid "" -#~ " TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN" -#~ msgstr "" +msgid "" +" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN" +msgstr "" +" TOTAL NOMBRE MATCH PLUS LENT MOYEN NOM MOTIF" msgid "E679: recursive loop loading syncolor.vim" msgstr "E679: boucle rcursive lors du chargement de syncolor.vim" @@ -5150,6 +5912,10 @@ msgstr "" msgid "Searching tags file %s" msgstr "Examen du fichier de marqueurs %s" +#, c-format +msgid "E430: Tag file path truncated for %s\n" +msgstr "E430: Chemin de fichiers de marqueurs tronqu pour %s\n" + msgid "Ignoring long line in tags file" msgstr "Ignore longue ligne dans le fichier de marqueurs" @@ -5158,8 +5924,8 @@ msgid "E431: Format error in tags file \"%s\"" msgstr "E431: Erreur de format dans le fichier de marqueurs \"%s\"" #, c-format -msgid "Before byte %" -msgstr "Avant l'octet %" +msgid "Before byte %ld" +msgstr "Avant l'octet %ld" #, c-format msgid "E432: Tags file not sorted: %s" @@ -5210,14 +5976,28 @@ msgstr "" "\n" "--- Touches du terminal ---" +msgid "Cannot open $VIMRUNTIME/rgb.txt" +msgstr "Impossible d'ouvrir $VIMRUNTIME/rgb.txt" + +msgid "new shell started\n" +msgstr "nouveau shell dmarr\n" + msgid "Vim: Error reading input, exiting...\n" msgstr "Vim : Erreur lors de la lecture de l'entre, sortie...\n" +# DB - Message de dbogage. +msgid "Used CUT_BUFFER0 instead of empty selection" +msgstr "CUT_BUFFER0 utilis plutt qu'une slection vide" + #. This happens when the FileChangedRO autocommand changes the #. * file in a way it becomes shorter. -#, fuzzy -#~ msgid "E881: Line count changed unexpectedly" -#~ msgstr "E834: Le nombre de lignes a t chang inopinment" +msgid "E881: Line count changed unexpectedly" +msgstr "E881: Le nombre de lignes a t chang inopinment" + +# DB - Question O/N. +#. must display the prompt +msgid "No undo possible; continue anyway" +msgstr "Annulation impossible ; continuer" #, c-format msgid "E828: Cannot open undo file for writing: %s" @@ -5267,6 +6047,18 @@ msgstr "E822: Impossible d'ouvrir le fichier d'annulations en lecture : %s" msgid "E823: Not an undo file: %s" msgstr "E823: Ce n'est pas un fichier d'annulations : %s" +#, c-format +msgid "E832: Non-encrypted file has encrypted undo file: %s" +msgstr "E832: Fichier non-chiffr a un fichier d'annulations chiffr : %s" + +#, c-format +msgid "E826: Undo file decryption failed: %s" +msgstr "E826: Dchiffrage du fichier d'annulation a chou : %s" + +#, c-format +msgid "E827: Undo file is encrypted: %s" +msgstr "E827: Le fichier d'annulations est chiffr : %s" + #, c-format msgid "E824: Incompatible undo file: %s" msgstr "E824: Fichier d'annulations incompatible : %s" @@ -5287,8 +6079,8 @@ msgid "Already at newest change" msgstr "Dj la modification la plus rcente" #, c-format -msgid "E830: Undo number % not found" -msgstr "E830: Annulation n % introuvable" +msgid "E830: Undo number %ld not found" +msgstr "E830: Annulation n %ld introuvable" msgid "E438: u_undo: line numbers wrong" msgstr "E438: u_undo : numros de ligne errons" @@ -5312,8 +6104,8 @@ msgid "changes" msgstr "modifications" #, c-format -msgid "% %s; %s #% %s" -msgstr "% %s ; %s #% ; %s" +msgid "%ld %s; %s #%ld %s" +msgstr "%ld %s ; %s #%ld ; %s" msgid "before" msgstr "avant" @@ -5329,8 +6121,8 @@ msgid "number changes when saved" msgstr "numro modif. instant enregistr" #, c-format -msgid "% seconds ago" -msgstr "il y a % secondes" +msgid "%ld seconds ago" +msgstr "il y a %ld secondes" msgid "E790: undojoin is not allowed after undo" msgstr "E790: undojoin n'est pas autoris aprs une annulation" @@ -5341,6 +6133,208 @@ msgstr "E439: la liste d'annulation est corrompue" msgid "E440: undo line missing" msgstr "E440: ligne d'annulation manquante" +#, c-format +msgid "E122: Function %s already exists, add ! to replace it" +msgstr "E122: La fonction %s existe dj (ajoutez ! pour la remplacer)" + +msgid "E717: Dictionary entry already exists" +msgstr "E717: Une entre du Dictionnaire porte dj ce nom" + +msgid "E718: Funcref required" +msgstr "E718: Rfrence de fonction (Funcref) requise" + +#, c-format +msgid "E130: Unknown function: %s" +msgstr "E130: Fonction inconnue : %s" + +#, c-format +msgid "E125: Illegal argument: %s" +msgstr "E125: Argument invalide : %s" + +#, c-format +msgid "E853: Duplicate argument name: %s" +msgstr "E853: Nom d'argument dupliqu : %s" + +#, c-format +msgid "E740: Too many arguments for function %s" +msgstr "E740: Trop d'arguments pour la fonction %s" + +#, c-format +msgid "E116: Invalid arguments for function %s" +msgstr "E116: Arguments invalides pour la fonction %s" + +# AB - Vrifier dans la littrature technique s'il n'existe pas une meilleure +# traduction pour "function call depth". +msgid "E132: Function call depth is higher than 'maxfuncdepth'" +msgstr "" +"E132: La profondeur d'appel de fonction est suprieure 'maxfuncdepth'" + +# AB - Ce texte fait partie d'un message de dbogage. +#, c-format +msgid "calling %s" +msgstr "appel de %s" + +# AB - Vrifier. +#, c-format +msgid "%s aborted" +msgstr "%s annule" + +# AB - Ce texte fait partie d'un message de dbogage. +#, c-format +msgid "%s returning #%ld" +msgstr "%s a retourn #%ld" + +# AB - Ce texte fait partie d'un message de dbogage. +#, c-format +msgid "%s returning %s" +msgstr "%s a retourn \"%s\"" + +msgid "E699: Too many arguments" +msgstr "E699: Trop d'arguments" + +#, c-format +msgid "E117: Unknown function: %s" +msgstr "E117: Fonction inconnue : %s" + +#, c-format +msgid "E933: Function was deleted: %s" +msgstr "E933: La fonction a t efface: %s" + +#, c-format +msgid "E119: Not enough arguments for function: %s" +msgstr "E119: La fonction %s n'a pas reu assez d'arguments" + +#, c-format +msgid "E120: Using not in a script context: %s" +msgstr "E120: utilis en dehors d'un script : %s" + +#, c-format +msgid "E725: Calling dict function without Dictionary: %s" +msgstr "E725: Appel d'une fonction dict sans Dictionnaire : %s" + +msgid "E129: Function name required" +msgstr "E129: Nom de fonction requis" + +#, c-format +msgid "E128: Function name must start with a capital or \"s:\": %s" +msgstr "" +"E128: Le nom de la fonction doit commencer par une majuscule ou \"s:\": %s" + +#, c-format +msgid "E884: Function name cannot contain a colon: %s" +msgstr "" +"E884: Le nom de la fonction ne peut pas contenir le caractre deux-points : " +"%s" + +#, c-format +msgid "E123: Undefined function: %s" +msgstr "E123: Fonction non dfinie : %s" + +# AB - La version franaise est plus consistante que la version anglaise. +# AB - Je suis partag entre la concision d'une traduction assez littrale et +# la lourdeur d'une traduction plus correcte. +#, c-format +msgid "E124: Missing '(': %s" +msgstr "E124: Il manque '(' aprs %s" + +msgid "E862: Cannot use g: here" +msgstr "E862: Impossible d'utiliser g: ici" + +#, c-format +msgid "E932: Closure function should not be at top level: %s" +msgstr "" +"E932: une fonction fermeture ne devrait pas tre au niveau principal : %s" + +msgid "E126: Missing :endfunction" +msgstr "E126: Il manque :endfunction" + +#, c-format +msgid "E707: Function name conflicts with variable: %s" +msgstr "E707: Le nom de fonction entre en conflit avec la variable : %s" + +#, c-format +msgid "E127: Cannot redefine function %s: It is in use" +msgstr "E127: Impossible de redfinir fonction %s : dj utilise" + +# DB - Le contenu du "c-format" est le nom de la fonction. +#, c-format +msgid "E746: Function name does not match script file name: %s" +msgstr "E746: Le nom de la fonction %s ne correspond pas le nom du script" + +# AB - Il est difficile de crer une version franaise qui fasse moins de 80 +# caractres de long, nom de la fonction compris : "It is in use" est une +# expression trs dense. Traductions possibles : "elle est utilise", +# "elle s'excute" ou "elle est occupe". +#, c-format +msgid "E131: Cannot delete function %s: It is in use" +msgstr "E131: Impossible d'effacer %s : cette fonction est utilise" + +msgid "E133: :return not inside a function" +msgstr "E133: :return en dehors d'une fonction" + +#, c-format +msgid "E107: Missing parentheses: %s" +msgstr "E107: Parenthses manquantes : %s" + +msgid "" +"\n" +"MS-Windows 64-bit GUI version" +msgstr "" +"\n" +"Version graphique MS-Windows 64 bits" + +msgid "" +"\n" +"MS-Windows 32-bit GUI version" +msgstr "" +"\n" +"Version graphique MS-Windows 32 bits" + +msgid " with OLE support" +msgstr " supportant l'OLE" + +msgid "" +"\n" +"MS-Windows 64-bit console version" +msgstr "" +"\n" +"Version console MS-Windows 64 bits" + +msgid "" +"\n" +"MS-Windows 32-bit console version" +msgstr "" +"\n" +"Version console MS-Windows 32 bits" + +msgid "" +"\n" +"MacOS X (unix) version" +msgstr "" +"\n" +"Version MaxOS X (unix)" + +msgid "" +"\n" +"MacOS X version" +msgstr "" +"\n" +"Version MacOS X" + +msgid "" +"\n" +"MacOS version" +msgstr "" +"\n" +"Version MacOS" + +msgid "" +"\n" +"OpenVMS version" +msgstr "" +"\n" +"Version OpenVMS" + msgid "" "\n" "Included patches: " @@ -5375,9 +6369,70 @@ msgstr "" "\n" "norme version " +msgid "" +"\n" +"Big version " +msgstr "" +"\n" +"Grosse version " + +msgid "" +"\n" +"Normal version " +msgstr "" +"\n" +"Version normale " + +msgid "" +"\n" +"Small version " +msgstr "" +"\n" +"Petite version " + +msgid "" +"\n" +"Tiny version " +msgstr "" +"\n" +"Version minuscule " + msgid "without GUI." msgstr "sans interface graphique." +msgid "with GTK3 GUI." +msgstr "avec interface graphique GTK3." + +msgid "with GTK2-GNOME GUI." +msgstr "avec interface graphique GTK2-GNOME." + +msgid "with GTK2 GUI." +msgstr "avec interface graphique GTK2." + +msgid "with X11-Motif GUI." +msgstr "avec interface graphique X11-Motif." + +msgid "with X11-neXtaw GUI." +msgstr "avec interface graphique X11-neXtaw." + +msgid "with X11-Athena GUI." +msgstr "avec interface graphique X11-Athena." + +msgid "with Photon GUI." +msgstr "avec interface graphique Photon." + +msgid "with GUI." +msgstr "avec une interface graphique." + +msgid "with Carbon GUI." +msgstr "avec interface graphique Carbon." + +msgid "with Cocoa GUI." +msgstr "avec interface graphique Cocoa." + +msgid "with (classic) GUI." +msgstr "avec interface graphique (classic)." + msgid " Features included (+) or not (-):\n" msgstr " Fonctionnalits incluses (+) ou non (-) :\n" @@ -5399,6 +6454,24 @@ msgstr " fichier exrc utilisateur : \"" msgid " 2nd user exrc file: \"" msgstr " 2me fichier exrc utilisateur : \"" +msgid " system gvimrc file: \"" +msgstr " fichier gvimrc systme : \"" + +msgid " user gvimrc file: \"" +msgstr " fichier gvimrc utilisateur : \"" + +msgid "2nd user gvimrc file: \"" +msgstr "2me fichier gvimrc utilisateur : \"" + +msgid "3rd user gvimrc file: \"" +msgstr "3me fichier gvimrc utilisateur : \"" + +msgid " defaults file: \"" +msgstr " fichier de valeurs par dfaut : \"" + +msgid " system menu file: \"" +msgstr " fichier menu systme : \"" + msgid " fall-back for $VIM: \"" msgstr " $VIM par dfaut : \"" @@ -5408,6 +6481,9 @@ msgstr " $VIMRUNTIME par d msgid "Compilation: " msgstr "Compilation : " +msgid "Compiler: " +msgstr "Compilateur : " + msgid "Linking: " msgstr "dition de liens : " @@ -5429,26 +6505,17 @@ msgstr "Vim est un logiciel libre" msgid "Help poor children in Uganda!" msgstr "Aidez les enfants pauvres d'Ouganda !" -msgid "type :help nvim if you are new! " -msgstr "tapez :help nvim si vous tes nouveau! " - -msgid "type :CheckHealth to optimize Nvim" -msgstr "tapez :CheckHealth pour optimiser Nvim " +msgid "type :help iccf for information " +msgstr "tapez :help iccf pour plus d'informations " msgid "type :q to exit " msgstr "tapez :q pour sortir du programme " -msgid "type :help for help " -msgstr "tapez :help pour obtenir de l'aide " - -msgid "type :help iccf for information " -msgstr "tapez :help iccf pour plus d'informations " - msgid "type :help or for on-line help" msgstr "tapez :help ou pour accder l'aide en ligne " -msgid "type :help version7 for version info" -msgstr "tapez :help version7 pour lire les notes de mise jour" +msgid "type :help version8 for version info" +msgstr "tapez :help version8 pour lire les notes de mise jour" # DB - Pour les trois messages qui suivent : # :set cp @@ -5462,17 +6529,38 @@ msgstr "tapez :set nocp for info on this" msgstr "tapez :help cp-default pour plus d'info" -msgid "Sponsor Vim development!" -msgstr "Sponsorisez le dveloppement de Vim !" +msgid "menu Help->Orphans for information " +msgstr "menu Aide->Orphelins pour plus d'info" -msgid "Become a registered Vim user!" -msgstr "Devenez un utilisateur de Vim enregistr !" +msgid "Running modeless, typed text is inserted" +msgstr "Les modes sont dsactivs, le texte saisi est insr" -msgid "type :help sponsor for information " -msgstr "tapez :help sponsor pour plus d'informations " +msgid "menu Edit->Global Settings->Toggle Insert Mode " +msgstr "menu dition->Rglages Globaux->Insertion Permanente" -msgid "type :help register for information " -msgstr "tapez :help register pour plus d'informations " +# DB - todo +msgid " for two modes " +msgstr " pour les modes " + +# DB - todo +msgid "menu Edit->Global Settings->Toggle Vi Compatible" +msgstr "menu dition->Rglages Globaux->Compatibilit Vi" + +# DB - todo +msgid " for Vim defaults " +msgstr " pour df. de Vim " + +msgid "Sponsor Vim development!" +msgstr "Sponsorisez le dveloppement de Vim !" + +msgid "Become a registered Vim user!" +msgstr "Devenez un utilisateur de Vim enregistr !" + +msgid "type :help sponsor for information " +msgstr "tapez :help sponsor pour plus d'informations " + +msgid "type :help register for information " +msgstr "tapez :help register pour plus d'informations " msgid "menu Help->Sponsor/Register for information " msgstr "menu Aide->Sponsor/Enregistrement pour plus d'info" @@ -5506,1711 +6594,724 @@ msgstr "E445: Les modifications de l'autre fen msgid "E446: No file name under cursor" msgstr "E446: Aucun nom de fichier sous le curseur" -#~ msgid "E831: bf_key_init() called with empty password" -#~ msgstr "E831: bf_key_init() appele avec un mot de passe vide" - -#~ msgid "E820: sizeof(uint32_t) != 4" -#~ msgstr "E820: sizeof(uint32_t) != 4" - -#~ msgid "E817: Blowfish big/little endian use wrong" -#~ msgstr "E817: petit/gros boutisme incorrect dans blowfish" - -#~ msgid "E818: sha256 test failed" -#~ msgstr "E818: le test de sha256 a chou" - -#~ msgid "E819: Blowfish test failed" -#~ msgstr "E819: le test de blowfish a chou" - -#~ msgid "Patch file" -#~ msgstr "Fichier rustine" - -# AB - Textes des boutons de la bote de dialogue affiche par inputdialog(). -#~ msgid "" -#~ "&OK\n" -#~ "&Cancel" -#~ msgstr "" -#~ "&Ok\n" -#~ "&Annuler" - -# AB - mon avis, la version anglaise est errone. -# DB : Vrifier -#~ msgid "E240: No connection to Vim server" -#~ msgstr "E240: Pas de connexion au serveur X" - -# AB - La version franaise est meilleure que la version anglaise. -#~ msgid "E241: Unable to send to %s" -#~ msgstr "E241: L'envoi au serveur %s chou" - -#~ msgid "E277: Unable to read a server reply" -#~ msgstr "E277: Impossible de lire la rponse du serveur" - -# AB - La version franaise est meilleure que la version anglaise. -#~ msgid "E258: Unable to send to client" -#~ msgstr "E258: La rponse n'a pas pu tre envoye au client" - -# AB - Ceci est un titre de bote de dialogue. Vrifier que la version -# franaise est correcte pour les trois rfrences ; j'ai un doute quant -# la troisime. -#~ msgid "Save As" -#~ msgstr "Enregistrer sous - Vim" - -# AB - Ceci est un titre de bote de dialogue. -#~ msgid "Edit File" -#~ msgstr "Ouvrir un fichier - Vim" - -#~ msgid " (NOT FOUND)" -#~ msgstr " (INTROUVABLE)" - -#~ msgid "Source Vim script" -#~ msgstr "Sourcer un script - Vim" - -#~ msgid "unknown" -#~ msgstr "inconnu" - -#~ msgid "Edit File in new window" -#~ msgstr "Ouvrir un fichier dans une nouvelle fentre - Vim" - -#~ msgid "Append File" -#~ msgstr "Ajouter fichier" - -#~ msgid "Window position: X %d, Y %d" -#~ msgstr "Position de la fentre : X %d, Y %d" - -#~ msgid "Save Redirection" -#~ msgstr "Enregistrer la redirection" - -#~ msgid "Save View" -#~ msgstr "Enregistrer la vue - Vim" - -#~ msgid "Save Session" -#~ msgstr "Enregistrer la session - Vim" - -#~ msgid "Save Setup" -#~ msgstr "Enregistrer les rglages - Vim" - -#~ msgid "E809: #< is not available without the +eval feature" -#~ msgstr "E809: #< n'est pas disponible sans la fonctionnalit +eval" - -#~ msgid "E196: No digraphs in this version" -#~ msgstr "E196: Pas de digraphes dans cette version" - -#~ msgid "is a device (disabled with 'opendevice' option)" -#~ msgstr "est un priphrique (dsactiv par l'option 'opendevice')" - -#~ msgid "Reading from stdin..." -#~ msgstr "Lecture de stdin..." - -#~ msgid "[crypted]" -#~ msgstr "[chiffr]" - -#~ msgid "E821: File is encrypted with unknown method" -#~ msgstr "E821: Le fichier est chiffr avec une mthode inconnue" - -#~ msgid "NetBeans disallows writes of unmodified buffers" -#~ msgstr "NetBeans interdit l'criture des tampons non modifis" - -#~ msgid "Partial writes disallowed for NetBeans buffers" -#~ msgstr "Netbeans interdit l'criture partielle de ses tampons" - -#~ msgid "writing to device disabled with 'opendevice' option" -#~ msgstr "criture vers un priphrique dsactiv par l'option 'opendevice'" - -#~ msgid "E460: The resource fork would be lost (add ! to override)" -#~ msgstr "" -#~ "E460: Les ressources partages seraient perdues (ajoutez ! pour passer " -#~ "outre)" - -#~ msgid "E851: Failed to create a new process for the GUI" -#~ msgstr "" -#~ "E851: chec lors de la cration d'un nouveau processus pour l'interface " -#~ "graphique" - -#~ msgid "E852: The child process failed to start the GUI" -#~ msgstr "" -#~ "E852: Le processus fils n'a pas russi dmarrer l'interface graphique" - -#~ msgid "E229: Cannot start the GUI" -#~ msgstr "E229: Impossible de dmarrer l'interface graphique" - -#~ msgid "E230: Cannot read from \"%s\"" -#~ msgstr "E230: Impossible de lire \"%s\"" - -#~ msgid "E665: Cannot start GUI, no valid font found" -#~ msgstr "" -#~ "E665: Impossible de dmarrer l'IHM graphique, aucune police valide trouve" - -#~ msgid "E231: 'guifontwide' invalid" -#~ msgstr "E231: 'guifontwide' est invalide" - -#~ msgid "E599: Value of 'imactivatekey' is invalid" -#~ msgstr "E599: Valeur de 'imactivatekey' invalide" - -#~ msgid "E254: Cannot allocate color %s" -#~ msgstr "E254: Impossible d'allouer la couleur %s" - -#~ msgid "No match at cursor, finding next" -#~ msgstr "Aucune correspondance sous le curseur, recherche de la suivante" - -#~ msgid " " -#~ msgstr " " - -#~ msgid "E616: vim_SelFile: can't get font %s" -#~ msgstr "E616: vim_SelFile : impossible d'obtenir la police %s" - -#~ msgid "E614: vim_SelFile: can't return to current directory" -#~ msgstr "" -#~ "E614: vim_SelFile : impossible de revenir dans le rpertoire courant" - -#~ msgid "Pathname:" -#~ msgstr "Chemin :" - -#~ msgid "E615: vim_SelFile: can't get current directory" -#~ msgstr "E615: vim_SelFile : impossible d'obtenir le rpertoire courant" - -#~ msgid "OK" -#~ msgstr "Ok" - -#~ msgid "Cancel" -#~ msgstr "Annuler" - -#~ msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." -#~ msgstr "" -#~ "Widget scrollbar : Impossible d'obtenir la gomtrie du pixmap 'thumb'" - -#~ msgid "Vim dialog" -#~ msgstr "Vim" - -#~ msgid "E232: Cannot create BalloonEval with both message and callback" -#~ msgstr "E232: Impossible de crer un BalloonEval avec message ET callback" - -msgid "Yes" -msgstr "Oui" - -msgid "No" -msgstr "Non" - -# todo '_' is for hotkey, i guess? -#~ msgid "Input _Methods" -#~ msgstr "_Mthodes de saisie" - -#~ msgid "VIM - Search and Replace..." -#~ msgstr "Remplacer - Vim" - -#~ msgid "VIM - Search..." -#~ msgstr "Rechercher - Vim" - -#~ msgid "Find what:" -#~ msgstr "Rechercher :" - -#~ msgid "Replace with:" -#~ msgstr "Remplacer par :" - -#~ msgid "Match whole word only" -#~ msgstr "Mots entiers seulement" - -#~ msgid "Match case" -#~ msgstr "Respecter la casse" - -#~ msgid "Direction" -#~ msgstr "Direction" - -#~ msgid "Up" -#~ msgstr "Haut" - -#~ msgid "Down" -#~ msgstr "Bas" - -#~ msgid "Find Next" -#~ msgstr "Suivant" - -#~ msgid "Replace" -#~ msgstr "Remplacer" - -#~ msgid "Replace All" -#~ msgstr "Remplacer tout" - -#~ msgid "Vim: Received \"die\" request from session manager\n" -#~ msgstr "" -#~ "Vim : Une requte \"die\" a t reue par le gestionnaire de session\n" - -#~ msgid "Close tab" -#~ msgstr "Fermer l'onglet" - -#~ msgid "New tab" -#~ msgstr "Nouvel onglet" - -# DB - todo : un peu long. Cet entre de menu permet d'ouvrir un fichier -# dans un nouvel onglet via le slecteur de fichiers graphique. -#~ msgid "Open Tab..." -#~ msgstr "Ouvrir dans un onglet..." - -#~ msgid "Vim: Main window unexpectedly destroyed\n" -#~ msgstr "Vim : Fentre principale dtruite inopinment\n" - -#~ msgid "&Filter" -#~ msgstr "&Filtrer" - -#~ msgid "&Cancel" -#~ msgstr "&Annuler" - -#~ msgid "Directories" -#~ msgstr "Rpertoires" - -#~ msgid "Filter" -#~ msgstr "Filtre" - -#~ msgid "&Help" -#~ msgstr "&Aide" - -#~ msgid "Files" -#~ msgstr "Fichiers" - -#~ msgid "&OK" -#~ msgstr "&Ok" - -#~ msgid "Selection" -#~ msgstr "Slection" - -#~ msgid "Find &Next" -#~ msgstr "Suiva&nt" - -#~ msgid "&Replace" -#~ msgstr "&Remplacer" - -#~ msgid "Replace &All" -#~ msgstr "Rempl&acer tout" - -#~ msgid "&Undo" -#~ msgstr "Ann&uler" - -#~ msgid "E671: Cannot find window title \"%s\"" -#~ msgstr "E671: Titre de fentre \"%s\" introuvable" - -#~ msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." -#~ msgstr "E243: Argument non support : \"-%s\" ; Utilisez la version OLE." - -#~ msgid "E672: Unable to open window inside MDI application" -#~ msgstr "E672: Impossible d'ouvrir une fentre dans une application MDI" - -#~ msgid "Open tab..." -#~ msgstr "Ouvrir dans un onglet..." - -#~ msgid "Find string (use '\\\\' to find a '\\')" -#~ msgstr "Chercher une chane (utilisez '\\\\' pour chercher un '\\')" - -#~ msgid "Find & Replace (use '\\\\' to find a '\\')" -#~ msgstr "Chercher et remplacer (utilisez '\\\\' pour trouver un '\\')" - -# DB - Traduction non indispensable puisque le code indique qu'il s'agit d'un -# paramtrage bidon afin de slectionner un rpertoire plutt qu'un -# fichier. -#~ msgid "Not Used" -#~ msgstr "Non utilis" - -# DB - Traduction non indispensable puisque le code indique qu'il s'agit d'un -# paramtrage bidon afin de slectionner un rpertoire plutt qu'un -# fichier. -#~ msgid "Directory\t*.nothing\n" -#~ msgstr "Rpertoire\t*.rien\n" - -# DB - todo : perfectible. -#~ msgid "" -#~ "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" -#~ msgstr "" -#~ "Vim E458: Erreur d'allocation de couleurs, couleurs possiblement " -#~ "incorrectes" - -# DB - todo : La VF est-elle comprhensible ? -#~ msgid "E250: Fonts for the following charsets are missing in fontset %s:" -#~ msgstr "" -#~ "E250: Des polices manquent dans %s pour les jeux de caractres suivants :" - -#~ msgid "E252: Fontset name: %s" -#~ msgstr "E252: Nom du jeu de polices : %s" - -#~ msgid "Font '%s' is not fixed-width" -#~ msgstr "La police '%s' n'a pas une largeur fixe" - -#~ msgid "E253: Fontset name: %s\n" -#~ msgstr "E253: Nom du jeu de polices : %s\n" - -#~ msgid "Font0: %s\n" -#~ msgstr "Font0: %s\n" - -#~ msgid "Font1: %s\n" -#~ msgstr "Font1: %s\n" - -#~ msgid "Font% width is not twice that of font0\n" -#~ msgstr "La largeur de Font% n'est pas le double de celle de Font0\n" - -#~ msgid "Font0 width: %\n" -#~ msgstr "Largeur de Font0 : %\n" - -#~ msgid "" -#~ "Font1 width: %\n" -#~ "\n" -#~ msgstr "" -#~ "Largeur de Font1 : %\n" -#~ "\n" - -# DB - todo : Pas certain de mon coup, ici... -#~ msgid "Invalid font specification" -#~ msgstr "La spcification de la police est invalide" - -#~ msgid "&Dismiss" -#~ msgstr "Aban&donner" - -# DB - todo : Pas certain de mon coup, ici... -#~ msgid "no specific match" -#~ msgstr "aucune correspondance particulire" - -#~ msgid "Vim - Font Selector" -#~ msgstr "Choisir une police - Vim" - -#~ msgid "Name:" -#~ msgstr "Nom :" - -#~ msgid "Show size in Points" -#~ msgstr "Afficher la taille en Points" - -#~ msgid "Encoding:" -#~ msgstr "Encodage :" - -#~ msgid "Font:" -#~ msgstr "Police :" - -#~ msgid "Style:" -#~ msgstr "Style :" - -#~ msgid "Size:" -#~ msgstr "Taille :" - -#~ msgid "E256: Hangul automata ERROR" -#~ msgstr "E256: ERREUR dans l'automate Hangul" - -#~ msgid "E563: stat error" -#~ msgstr "E563: Erreur stat" - -#~ msgid "E625: cannot open cscope database: %s" -#~ msgstr "E625: impossible d'ouvrir la base de donnes cscope %s" - -#~ msgid "E626: cannot get cscope database information" -#~ msgstr "" -#~ "E626: impossible d'obtenir des informations sur la base de donnes cscope" - -#~ msgid "Lua library cannot be loaded." -#~ msgstr "La bibliothque Lua n'a pas pu tre charge." - -#~ msgid "cannot save undo information" -#~ msgstr "impossible d'enregistrer les informations d'annulation" - -#~ msgid "" -#~ "E815: Sorry, this command is disabled, the MzScheme libraries could not " -#~ "be loaded." -#~ msgstr "" -#~ "E815: Dsol, cette commande est dsactive : les bibliothques MzScheme " -#~ "n'ont pas pu tre charges." - -#~ msgid "invalid expression" -#~ msgstr "expression invalide" - -#~ msgid "expressions disabled at compile time" -#~ msgstr "expressions dsactive lors de la compilation" - -#~ msgid "hidden option" -#~ msgstr "option cache" - -#~ msgid "unknown option" -#~ msgstr "option inconnue" - -#~ msgid "window index is out of range" -#~ msgstr "numro de fentre hors limites" - -#~ msgid "couldn't open buffer" -#~ msgstr "impossible d'ouvrir le tampon" - -#~ msgid "cannot delete line" -#~ msgstr "impossible d'effacer la ligne" - -#~ msgid "cannot replace line" -#~ msgstr "impossible de remplacer la ligne" - -#~ msgid "cannot insert line" -#~ msgstr "impossible d'insrer la ligne" - -#~ msgid "string cannot contain newlines" -#~ msgstr "une chane ne peut pas contenir de saut-de-ligne" - -#~ msgid "error converting Scheme values to Vim" -#~ msgstr "erreur lors de la conversion d'une valeur de Scheme Vim" - -#~ msgid "Vim error: ~a" -#~ msgstr "Erreur Vim : ~a" - -#~ msgid "Vim error" -#~ msgstr "Erreur Vim" - -#~ msgid "buffer is invalid" -#~ msgstr "tampon invalide" - -#~ msgid "window is invalid" -#~ msgstr "fentre invalide" - -#~ msgid "linenr out of range" -#~ msgstr "numro de ligne hors limites" - -#~ msgid "not allowed in the Vim sandbox" -#~ msgstr "non autoris dans le bac sable" - -#~ msgid "E836: This Vim cannot execute :python after using :py3" -#~ msgstr "E836: Vim ne peut pas excuter :python aprs avoir utilis :py3" - -#~ msgid "" -#~ "E263: Sorry, this command is disabled, the Python library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E263: Dsol, commande dsactive : la bibliothque Python n'a pas pu " -#~ "tre charge." - -#~ msgid "E659: Cannot invoke Python recursively" -#~ msgstr "E659: Impossible d'invoquer Python rcursivement" - -#~ msgid "E837: This Vim cannot execute :py3 after using :python" -#~ msgstr "E837: Vim ne peut pas excuter :py3 aprs avoir utilis :python" - -#~ msgid "index must be int or slice" -#~ msgstr "index doit tre int ou slice" - -#~ msgid "E265: $_ must be an instance of String" -#~ msgstr "E265: $_ doit tre une instance de chane (String)" - -#~ msgid "" -#~ "E266: Sorry, this command is disabled, the Ruby library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E266: Dsol, commande dsactive : la bibliothque Ruby n'a pas pu tre " -#~ "charge." - -#~ msgid "E267: unexpected return" -#~ msgstr "E267: return inattendu" - -#~ msgid "E268: unexpected next" -#~ msgstr "E268: next inattendu" - -#~ msgid "E269: unexpected break" -#~ msgstr "E269: break inattendu" - -#~ msgid "E270: unexpected redo" -#~ msgstr "E270: redo inattendu" - -#~ msgid "E271: retry outside of rescue clause" -#~ msgstr "E271: retry hors d'une clause rescue " - -#~ msgid "E272: unhandled exception" -#~ msgstr "E272: Exception non prise en charge" - -# DB - todo -#~ msgid "E273: unknown longjmp status %d" -#~ msgstr "E273: contexte de longjmp inconnu : %d" - -#~ msgid "Toggle implementation/definition" -#~ msgstr "Basculer implmentation/dfinition" - -#~ msgid "Show base class of" -#~ msgstr "Montrer la classe de base de" - -#~ msgid "Show overridden member function" -#~ msgstr "Montrer les fonctions membres surcharges" - -#~ msgid "Retrieve from file" -#~ msgstr "Rcuprer du fichier" - -#~ msgid "Retrieve from project" -#~ msgstr "Rcuprer du projet" - -#~ msgid "Retrieve from all projects" -#~ msgstr "Rcuprer de tous les projets" - -#~ msgid "Retrieve" -#~ msgstr "Rcuprer" - -#~ msgid "Show source of" -#~ msgstr "Montrer source de" - -#~ msgid "Find symbol" -#~ msgstr "Trouver symbole" - -#~ msgid "Browse class" -#~ msgstr "Parcourir classe" - -#~ msgid "Show class in hierarchy" -#~ msgstr "Montrer classe dans hirarchie" - -#~ msgid "Show class in restricted hierarchy" -#~ msgstr "Montrer classe dans hirarchie restreinte" - -# todo -#~ msgid "Xref refers to" -#~ msgstr "Xref rfrence" - -#~ msgid "Xref referred by" -#~ msgstr "Xref est rfrenc par" - -#~ msgid "Xref has a" -#~ msgstr "Xref a un(e)" - -#~ msgid "Xref used by" -#~ msgstr "Xref utilise par" - -#~ msgid "Show docu of" -#~ msgstr "Montrer doc de" - -#~ msgid "Generate docu for" -#~ msgstr "Gnrer la doc de" - -#~ msgid "" -#~ "Cannot connect to SNiFF+. Check environment (sniffemacs must be found in " -#~ "$PATH).\n" -#~ msgstr "" -#~ "Connexion SNiFF+ impossible. Vrifiez l'environnement (sniffemacs doit " -#~ "tre dans le $PATH).\n" - -#~ msgid "E274: Sniff: Error during read. Disconnected" -#~ msgstr "E274: Sniff : Erreur de lecture. Dconnexion" - -# DB - Les trois messages suivants vont ensembles. -#~ msgid "SNiFF+ is currently " -#~ msgstr "SNiFF+ est actuellement " - -#~ msgid "not " -#~ msgstr "d" - -#~ msgid "connected" -#~ msgstr "connect" - -#~ msgid "E275: Unknown SNiFF+ request: %s" -#~ msgstr "E275: Requte SNiFF+ inconnue : %s" - -#~ msgid "E276: Error connecting to SNiFF+" -#~ msgstr "E276: Erreur lors de la connexion SNiFF+" - -#~ msgid "E278: SNiFF+ not connected" -#~ msgstr "E278: SNiFF+ n'est pas connect" - -#~ msgid "E279: Not a SNiFF+ buffer" -#~ msgstr "E279: Ce tampon n'est pas un tampon SNiFF+" - -#~ msgid "Sniff: Error during write. Disconnected" -#~ msgstr "Sniff : Erreur lors d'une criture. Dconnexion" - -#~ msgid "invalid buffer number" -#~ msgstr "numro de tampon invalide" - -#~ msgid "not implemented yet" -#~ msgstr "pas encore implment" - -# DB - TODO : le contexte est celui d'une annulation. -#~ msgid "cannot set line(s)" -#~ msgstr "Impossible de remettre la/les ligne(s)" - -#~ msgid "invalid mark name" -#~ msgstr "nom de marque invalide" - -#~ msgid "mark not set" -#~ msgstr "marque non positionne" - -#~ msgid "row %d column %d" -#~ msgstr "ligne %d colonne %d" - -#~ msgid "cannot insert/append line" -#~ msgstr "Impossible d'insrer/ajouter de lignes" - -#~ msgid "line number out of range" -#~ msgstr "numro de ligne hors limites" - -#~ msgid "unknown flag: " -#~ msgstr "drapeau inconnu : " - -#~ msgid "unknown vimOption" -#~ msgstr "vimOption inconnue" +#, c-format +msgid "E447: Can't find file \"%s\" in path" +msgstr "E447: Le fichier \"%s\" est introuvable dans 'path'" -#~ msgid "keyboard interrupt" -#~ msgstr "interruption clavier" +#, c-format +msgid "E799: Invalid ID: %ld (must be greater than or equal to 1)" +msgstr "E799: ID invalide : %ld (doit tre plus grand ou gal 1)" -#~ msgid "vim error" -#~ msgstr "erreur Vim" +#, c-format +msgid "E801: ID already taken: %ld" +msgstr "E801: ID dj pris: %ld" -#~ msgid "cannot create buffer/window command: object is being deleted" -#~ msgstr "" -#~ "Impossible de crer commande de tampon/fentre : objet en cours " -#~ "d'effacement" +msgid "List or number required" +msgstr "Liste ou nombre requis" -#~ msgid "" -#~ "cannot register callback command: buffer/window is already being deleted" -#~ msgstr "" -#~ "Impossible d'inscrire la commande de rappel : tampon/fentre en effacement" +#, c-format +msgid "E802: Invalid ID: %ld (must be greater than or equal to 1)" +msgstr "E802: ID invalide : %ld (doit tre plus grand ou gal 1)" -#~ msgid "" -#~ "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-" -#~ "dev@vim.org" -#~ msgstr "" -#~ "E280: ERREUR FATALE TCL: reflist corrompue ?! Contactez vim-dev@vim.org, " -#~ "SVP." +#, c-format +msgid "E803: ID not found: %ld" +msgstr "E803: ID introuvable : %ld" -#~ msgid "cannot register callback command: buffer/window reference not found" -#~ msgstr "" -#~ "Impossible d'inscrire la commande de rappel : rf. tampon/fentre " -#~ "introuvable" +#, c-format +msgid "E370: Could not load library %s" +msgstr "E370: Impossible de charger la bibliothque %s" -#~ msgid "" -#~ "E571: Sorry, this command is disabled: the Tcl library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E571: Dsol, commande dsactive: la bibliothque Tcl n'a pas pu tre " -#~ "charge." +msgid "Sorry, this command is disabled: the Perl library could not be loaded." +msgstr "" +"Dsol, commande dsactive : la bibliothque Perl n'a pas pu tre charge." -#~ msgid "E572: exit code %d" -#~ msgstr "E572: code de sortie %d" +msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" +msgstr "E299: valuation Perl interdite dans bac sable sans le module Safe" -#~ msgid "cannot get line" -#~ msgstr "Impossible d'obtenir la ligne" +msgid "Edit with &multiple Vims" +msgstr "diter dans &plusieurs Vims" -#~ msgid "Unable to register a command server name" -#~ msgstr "Impossible d'inscrire un nom de serveur de commande" +msgid "Edit with single &Vim" +msgstr "diter dans un seul &Vim" -#~ msgid "E248: Failed to send command to the destination program" -#~ msgstr "E248: chec de l'envoi de la commande au programme cible" +msgid "Diff with Vim" +msgstr "&Comparer avec Vim" -#~ msgid "E573: Invalid server id used: %s" -#~ msgstr "E573: Id utilis pour le serveur invalide : %s" +msgid "Edit with &Vim" +msgstr "diter dans &Vim" -#~ msgid "E251: VIM instance registry property is badly formed. Deleted!" -#~ msgstr "" -#~ "E251: Entre registre de l'instance de Vim mal formate. Suppression !" +#. Now concatenate +msgid "Edit with existing Vim - " +msgstr "diter dans le Vim existant - " -#~ msgid "netbeans is not supported with this GUI\n" -#~ msgstr "netbeans n'est pas support avec cette interface graphique\n" +msgid "Edits the selected file(s) with Vim" +msgstr "dites le(s) fichier(s) slectionn(s) avec Vim" -#~ msgid "This Vim was not compiled with the diff feature." -#~ msgstr "Ce Vim n'a pas t compil avec la fonctionnalit diff" +# DB - MessageBox win32, la longueur n'est pas un problme ! +msgid "Error creating process: Check if gvim is in your path!" +msgstr "" +"Erreur de cration du processus : vrifiez que gvim est bien dans votre " +"chemin !" -#~ msgid "'-nb' cannot be used: not enabled at compile time\n" -#~ msgstr "'-nb' ne peut pas tre utilis : dsactiv la compilation\n" +msgid "gvimext.dll error" +msgstr "Erreur de gvimext.dll" -#~ msgid "Vim: Error: Failure to start gvim from NetBeans\n" -#~ msgstr "Vim : Erreur : Impossible de dmarrer gvim depuis NetBeans\n" +msgid "Path length too long!" +msgstr "Le chemin est trop long !" -# DB - todo (VMS uniquement). -#~ msgid "" -#~ "\n" -#~ "Where case is ignored prepend / to make flag upper case" -#~ msgstr "" -#~ "\n" -#~ "pour lesquels la casse est indiffrente (/ pour que le drapeau soit " -#~ "majuscule)" - -#~ msgid "-register\t\tRegister this gvim for OLE" -#~ msgstr "-register\tInscrire ce gvim pour OLE" - -#~ msgid "-unregister\t\tUnregister gvim for OLE" -#~ msgstr "-unregister\tDsinscrire gvim de OLE" - -#~ msgid "-g\t\t\tRun using GUI (like \"gvim\")" -#~ msgstr "-g\t\tLancer l'interface graphique (comme \"gvim\")" - -#~ msgid "-f or --nofork\tForeground: Don't fork when starting GUI" -#~ msgstr "" -#~ "-f, --nofork\tPremier-plan : ne pas dtacher l'interface graphique du " -#~ "terminal" - -#~ msgid "-f\t\t\tDon't use newcli to open window" -#~ msgstr "-f\t\tNe pas utiliser newcli pour l'ouverture des fentres" - -#~ msgid "-dev \t\tUse for I/O" -#~ msgstr "-dev \tUtiliser pour les E/S" - -#~ msgid "-U \t\tUse instead of any .gvimrc" -#~ msgstr "-U \tUtiliser au lieu du gvimrc habituel" - -#~ msgid "-x\t\t\tEdit encrypted files" -#~ msgstr "-x\t\t\tditer des fichiers chiffrs" - -#~ msgid "-display \tConnect vim to this particular X-server" -#~ msgstr "-display \tConnecter Vim au serveur X spcifi" - -#~ msgid "-X\t\t\tDo not connect to X server" -#~ msgstr "-X\t\t\tNe pas se connecter un serveur X" - -#~ msgid "--remote \tEdit in a Vim server if possible" -#~ msgstr "" -#~ "--remote \tditer les dans un serveur Vim si possible" - -#~ msgid "--remote-silent Same, don't complain if there is no server" -#~ msgstr "" -#~ "--remote-silent ...\tPareil, mais pas d'erreur s'il n'y a aucun serveur" - -#~ msgid "" -#~ "--remote-wait As --remote but wait for files to have been edited" -#~ msgstr "" -#~ "--remote-wait \tComme --remote mais ne quitter qu' la fin de " -#~ "l'dition" - -#~ msgid "" -#~ "--remote-wait-silent Same, don't complain if there is no server" -#~ msgstr "" -#~ "--remote-wait-silent\tPareil, mais pas d'erreur s'il n'y a aucun serveur" - -#~ msgid "" -#~ "--remote-tab[-wait][-silent] As --remote but use tab page per " -#~ "file" -#~ msgstr "" -#~ "--remote-tab[-wait][-silent] \tComme --remote mais ouvrir un onglet " -#~ "pour chaque fichier" - -#~ msgid "--remote-send \tSend to a Vim server and exit" -#~ msgstr "" -#~ "--remote-send \tEnvoyer un serveur Vim puis quitter" - -#~ msgid "" -#~ "--remote-expr \tEvaluate in a Vim server and print result" -#~ msgstr "" -#~ "--remote-expr \tvaluer dans un serveur Vim, afficher le " -#~ "rsultat" - -#~ msgid "--serverlist\t\tList available Vim server names and exit" -#~ msgstr "" -#~ "--serverlist\t\tLister les noms des serveurs Vim disponibles et quitter" - -#~ msgid "--servername \tSend to/become the Vim server " -#~ msgstr "--servername \tEnvoyer au/devenir le serveur Vim nomm " - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (Motif version):\n" -#~ msgstr "" -#~ "\n" -#~ "Arguments reconnus par gvim (version Motif) :\n" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (neXtaw version):\n" -#~ msgstr "" -#~ "\n" -#~ "Arguments reconnus par gvim (version neXtaw) :\n" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (Athena version):\n" -#~ msgstr "" -#~ "\n" -#~ "Arguments reconnus par gvim (version Athena) :\n" +# msgstr "--Pas de lignes dans le tampon--" +# DB - todo : ou encore : msgstr "--Aucune ligne dans le tampon--" +msgid "--No lines in buffer--" +msgstr "--Le tampon est vide--" -#~ msgid "-display \tRun vim on " -#~ msgstr "-display \tLancer Vim sur ce " +#. +#. * The error messages that can be shared are included here. +#. * Excluded are errors that are only used once and debugging messages. +#. +msgid "E470: Command aborted" +msgstr "E470: Commande annule" -#~ msgid "-iconic\t\tStart vim iconified" -#~ msgstr "-iconic\t\tIconifier Vim au dmarrage" +msgid "E471: Argument required" +msgstr "E471: Argument requis" -#~ msgid "-background \tUse for the background (also: -bg)" -#~ msgstr "" -#~ "-background \tUtiliser pour l'arrire-plan\t (abrv : -" -#~ "bg)" +msgid "E10: \\ should be followed by /, ? or &" +msgstr "E10: \\ devrait tre suivi de /, ? ou &" -#~ msgid "-foreground \tUse for normal text (also: -fg)" -#~ msgstr "" -#~ "-foreground \tUtiliser pour le texte normal\t (abrv : -" -#~ "fg)" +msgid "E11: Invalid in command-line window; executes, CTRL-C quits" +msgstr "" +"E11: Invalide dans la fentre ligne-de-commande ; excute, CTRL-C quitte" -#~ msgid "-font \t\tUse for normal text (also: -fn)" -#~ msgstr "" -#~ "-font \tUtiliser pour le texte normal\t (abrv : -fn)" +msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" +msgstr "" +"E12: commande non autorise depuis un exrc/vimrc dans rpertoire courant ou " +"une recherche de marqueur" -#~ msgid "-boldfont \tUse for bold text" -#~ msgstr "-boldfont \tUtiliser pour le texte gras" +msgid "E171: Missing :endif" +msgstr "E171: :endif manquant" -#~ msgid "-italicfont \tUse for italic text" -#~ msgstr "-italicfont \tUtiliser pour le texte italique" +msgid "E600: Missing :endtry" +msgstr "E600: :endtry manquant" -#~ msgid "-geometry \tUse for initial geometry (also: -geom)" -#~ msgstr "" -#~ "-geometry \tUtiliser cette initiale\t (abrv : -geom)" +msgid "E170: Missing :endwhile" +msgstr "E170: :endwhile manquant" -#~ msgid "-borderwidth \tUse a border width of (also: -bw)" -#~ msgstr "" -#~ "-borderwidth \tUtiliser cette de bordure\t (abrv : -" -#~ "bw)" +msgid "E170: Missing :endfor" +msgstr "E170: :endfor manquant" -#~ msgid "" -#~ "-scrollbarwidth Use a scrollbar width of (also: -sw)" -#~ msgstr "" -#~ "-scrollbarwidth \tUtiliser cette de barre de dfil. (abrv: -" -#~ "sw)" - -#~ msgid "-menuheight \tUse a menu bar height of (also: -mh)" -#~ msgstr "" -#~ "-menuheight \tUtiliser cette de menu\t (abrv : -mh)" - -#~ msgid "-reverse\t\tUse reverse video (also: -rv)" -#~ msgstr "-reverse\t\tUtiliser la vido inverse\t\t (abrv : -rv)" - -#~ msgid "+reverse\t\tDon't use reverse video (also: +rv)" -#~ msgstr "+reverse\t\tNe pas utiliser de vido inverse\t (abrv : +rv)" - -#~ msgid "-xrm \tSet the specified resource" -#~ msgstr "-xrm \tConfigurer la spcifie" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (GTK+ version):\n" -#~ msgstr "" -#~ "\n" -#~ "Arguments reconnus par gvim (version GTK+) :\n" - -#~ msgid "-display \tRun vim on (also: --display)" -#~ msgstr "" -#~ "-display \tLancer Vim sur ce \t(galement : --display)" - -#~ msgid "--role \tSet a unique role to identify the main window" -#~ msgstr "--role \tDonner un rle pour identifier la fentre principale" - -#~ msgid "--socketid \tOpen Vim inside another GTK widget" -#~ msgstr "--socketid \tOuvrir Vim dans un autre widget GTK" - -#~ msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout" -#~ msgstr "--echo-wid\t\tGvim affiche l'ID de la fentre sur stdout" - -#~ msgid "-P \tOpen Vim inside parent application" -#~ msgstr "-P \tOuvrir Vim dans une application parente" - -#~ msgid "--windowid \tOpen Vim inside another win32 widget" -#~ msgstr "--windowid \tOuvrir Vim dans un autre widget win32" - -#~ msgid "No display" -#~ msgstr "Aucun display" - -#~ msgid ": Send failed.\n" -#~ msgstr " : L'envoi a chou.\n" - -#~ msgid ": Send failed. Trying to execute locally\n" -#~ msgstr " : L'envoi a chou. Tentative d'excution locale\n" - -#~ msgid "%d of %d edited" -#~ msgstr "%d dits sur %d" - -#~ msgid "No display: Send expression failed.\n" -#~ msgstr "Aucun display : L'envoi de l'expression a chou.\n" - -#~ msgid ": Send expression failed.\n" -#~ msgstr " : L'envoi de l'expression a chou.\n" +msgid "E588: :endwhile without :while" +msgstr "E588: :endwhile sans :while" -#~ msgid "E543: Not a valid codepage" -#~ msgstr "E543: Page de codes non valide" +msgid "E588: :endfor without :for" +msgstr "E588: :endfor sans :for" -#~ msgid "E284: Cannot set IC values" -#~ msgstr "E284: Impossible de rgler les valeurs IC" - -#~ msgid "E285: Failed to create input context" -#~ msgstr "E285: chec de la cration du contexte de saisie" - -#~ msgid "E286: Failed to open input method" -#~ msgstr "E286: chec de l'ouverture de la mthode de saisie" +msgid "E13: File exists (add ! to override)" +msgstr "E13: Le fichier existe dj (ajoutez ! pour passer outre)" -#~ msgid "E287: Warning: Could not set destroy callback to IM" -#~ msgstr "" -#~ "E287: Alerte : Impossible d'inscrire la callback de destruction dans la MS" +msgid "E472: Command failed" +msgstr "E472: La commande a chou" -#~ msgid "E288: input method doesn't support any style" -#~ msgstr "E288: la mthode de saisie ne supporte aucun style" +#, c-format +msgid "E234: Unknown fontset: %s" +msgstr "E234: Jeu de police inconnu : %s" -#~ msgid "E289: input method doesn't support my preedit type" -#~ msgstr "" -#~ "E289: le type de prdition de Vim n'est pas support par la mthode de " -#~ "saisie" +#, c-format +msgid "E235: Unknown font: %s" +msgstr "E235: Police inconnue : %s" -#~ msgid "E843: Error while updating swap file crypt" -#~ msgstr "E843: Erreur lors de la mise jour du fichier d'change crypt" +#, c-format +msgid "E236: Font \"%s\" is not fixed-width" +msgstr "E236: La police \"%s\" n'a pas une chasse (largeur) fixe" -#~ msgid "" -#~ "E833: %s is encrypted and this version of Vim does not support encryption" -#~ msgstr "" -#~ "E833: %s est chiffr et cette version de Vim ne supporte pas le " -#~ "chiffrement" - -#~ msgid "Swap file is encrypted: \"%s\"" -#~ msgstr "Fichier d'change chiffr : \"%s\"" +msgid "E473: Internal error" +msgstr "E473: Erreur interne" -#~ msgid "" -#~ "\n" -#~ "If you entered a new crypt key but did not write the text file," -#~ msgstr "" -#~ "\n" -#~ "Si vous avez tap une nouvelle cl de chiffrement mais n'avez pas " -#~ "enregistr le fichier texte," +#, c-format +msgid "E685: Internal error: %s" +msgstr "E685: Erreur interne : %s" -#~ msgid "" -#~ "\n" -#~ "enter the new crypt key." -#~ msgstr "" -#~ "\n" -#~ "tapez la nouvelle cl de chiffrement." +msgid "Interrupted" +msgstr "Interrompu" -#~ msgid "" -#~ "\n" -#~ "If you wrote the text file after changing the crypt key press enter" -#~ msgstr "" -#~ "\n" -#~ "Si vous avez crit le fichier texte aprs avoir chang la cl de " -#~ "chiffrement, appuyez sur entre" +msgid "E14: Invalid address" +msgstr "E14: Adresse invalide" -#~ msgid "" -#~ "\n" -#~ "to use the same key for text file and swap file" -#~ msgstr "" -#~ "\n" -#~ "afin d'utiliser la mme cl pour le fichier texte et le fichier d'change" +msgid "E474: Invalid argument" +msgstr "E474: Argument invalide" -#~ msgid "Using crypt key from swap file for the text file.\n" -#~ msgstr "" -#~ "Utilisation de la cl de chiffrement du fichier d'change pour le fichier " -#~ "texte.\n" +#, c-format +msgid "E475: Invalid argument: %s" +msgstr "E475: Argument invalide : %s" -#~ msgid "" -#~ "\n" -#~ " [not usable with this version of Vim]" -#~ msgstr "" -#~ "\n" -#~ " [inutilisable avec cette version de Vim]" - -#~ msgid "Tear off this menu" -#~ msgstr "Dtacher ce menu" +#, c-format +msgid "E15: Invalid expression: %s" +msgstr "E15: Expression invalide : %s" -# DB : Les trois messages qui suivent sont des titres de botes -# de dialogue par dfaut. -#~ msgid "Select Directory dialog" -#~ msgstr "Slecteur de rpertoire" +msgid "E16: Invalid range" +msgstr "E16: Plage invalide" -#~ msgid "Save File dialog" -#~ msgstr "Enregistrer un fichier" +msgid "E476: Invalid command" +msgstr "E476: Commande invalide" -#~ msgid "Open File dialog" -#~ msgstr "Ouvrir un fichier" +#, c-format +msgid "E17: \"%s\" is a directory" +msgstr "E17: \"%s\" est un rpertoire" -#~ msgid "E338: Sorry, no file browser in console mode" -#~ msgstr "E338: Dsol, pas de slecteur de fichiers en mode console" +#, c-format +msgid "E364: Library call failed for \"%s()\"" +msgstr "E364: L'appel la bibliothque a chou pour \"%s()\"" -#~ msgid "ERROR: " -#~ msgstr "ERREUR : " +#, c-format +msgid "E448: Could not load library function %s" +msgstr "E448: Impossible de charger la fonction %s de la bibliothque" -#~ msgid "" -#~ "\n" -#~ "[bytes] total alloc-freed %-%, in use %, peak use " -#~ "%\n" -#~ msgstr "" -#~ "\n" -#~ "[octets] total allou-libr %-%, utilis %, pic " -#~ "%\n" +msgid "E19: Mark has invalid line number" +msgstr "E19: La marque a un numro de ligne invalide" -#~ msgid "" -#~ "[calls] total re/malloc()'s %, total free()'s %\n" -#~ "\n" -#~ msgstr "" -#~ "[appels] total re/malloc() %, total free() %\n" -#~ "\n" +msgid "E20: Mark not set" +msgstr "E20: Marque non positionne" -#~ msgid "E340: Line is becoming too long" -#~ msgstr "E340: La ligne devient trop longue" +msgid "E21: Cannot make changes, 'modifiable' is off" +msgstr "E21: Impossible de modifier, 'modifiable' est dsactiv" -#~ msgid "E341: Internal error: lalloc(%, )" -#~ msgstr "E341: Erreur interne : lalloc(%, )" +msgid "E22: Scripts nested too deep" +msgstr "E22: Trop de rcursion dans les scripts" -#~ msgid "E547: Illegal mouseshape" -#~ msgstr "E547: Forme de curseur invalide" +msgid "E23: No alternate file" +msgstr "E23: Pas de fichier alternatif" -#~ msgid "Warning: Using a weak encryption method; see :help 'cm'" -#~ msgstr "" -#~ "Alerte : utilisation d'une mthode de chiffrage faible ; consultez :help 'cm'" +msgid "E24: No such abbreviation" +msgstr "E24: Cette abrviation n'existe pas" -#~ msgid "Enter encryption key: " -#~ msgstr "Tapez la cl de chiffrement : " +msgid "E477: No ! allowed" +msgstr "E477: Le ! n'est pas autoris" -#~ msgid "Enter same key again: " -#~ msgstr "Tapez la cl nouveau : " +msgid "E25: GUI cannot be used: Not enabled at compile time" +msgstr "E25: L'interface graphique n'a pas t compile dans cette version" -#~ msgid "Keys don't match!" -#~ msgstr "Les cls ne correspondent pas !" +msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" +msgstr "E26: Le support de l'hbreu n'a pas t compil dans cette version\n" -#~ msgid "Cannot connect to Netbeans #2" -#~ msgstr "Impossible de se connecter Netbeans n2" +msgid "E27: Farsi cannot be used: Not enabled at compile time\n" +msgstr "E27: Le support du farsi n'a pas t compil dans cette version\n" -#~ msgid "Cannot connect to Netbeans" -#~ msgstr "Impossible de se connecter Netbeans" +msgid "E800: Arabic cannot be used: Not enabled at compile time\n" +msgstr "E800: Le support de l'arabe n'a pas t compil dans cette version\n" -#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" -#~ msgstr "" -#~ "E668: Mode d'accs incorrect au fichier d'infos de connexion NetBeans : " -#~ "\"%s\"" +#, c-format +msgid "E28: No such highlight group name: %s" +msgstr "E28: Aucun nom de groupe de surbrillance %s" -# DB : message d'un appel perror(). -#~ msgid "read from Netbeans socket" -#~ msgstr "read sur la socket Netbeans" +msgid "E29: No inserted text yet" +msgstr "E29: Pas encore de texte insr" -#~ msgid "E658: NetBeans connection lost for buffer %" -#~ msgstr "E658: Connexion NetBeans perdue pour le tampon %" +msgid "E30: No previous command line" +msgstr "E30: Aucune ligne de commande prcdente" -#~ msgid "E838: netbeans is not supported with this GUI" -#~ msgstr "E838: netbeans n'est pas support avec cette interface graphique" +msgid "E31: No such mapping" +msgstr "E31: Mappage inexistant" -#~ msgid "E511: netbeans already connected" -#~ msgstr "E511: netbeans dj connect" +msgid "E479: No match" +msgstr "E479: Aucune correspondance" -#~ msgid "E505: %s is read-only (add ! to override)" -#~ msgstr "E505: %s est en lecture seule (ajoutez ! pour passer outre)" +#, c-format +msgid "E480: No match: %s" +msgstr "E480: Aucune correspondance : %s" -#~ msgid "E775: Eval feature not available" -#~ msgstr "E775: La fonctionnalit d'valuation n'est pas disponible" +msgid "E32: No file name" +msgstr "E32: Aucun nom de fichier" -#~ msgid "freeing % lines" -#~ msgstr "libration de % lignes" +msgid "E33: No previous substitute regular expression" +msgstr "E33: Aucune expression rgulire de substitution prcdente" -#~ msgid "E530: Cannot change term in GUI" -#~ msgstr "E530: Impossible de modifier term dans l'interface graphique" +msgid "E34: No previous command" +msgstr "E34: Aucune commande prcdente" -#~ msgid "E531: Use \":gui\" to start the GUI" -#~ msgstr "E531: Utilisez \":gui\" pour dmarrer l'interface graphique" +msgid "E35: No previous regular expression" +msgstr "E35: Aucune expression rgulire prcdente" -#~ msgid "E617: Cannot be changed in the GTK+ 2 GUI" -#~ msgstr "E617: Non modifiable dans l'interface graphique GTK+ 2" +msgid "E481: No range allowed" +msgstr "E481: Les plages ne sont pas autorises" -#~ msgid "E596: Invalid font(s)" -#~ msgstr "E596: Police(s) invalide(s)" +msgid "E36: Not enough room" +msgstr "E36: Pas assez de place" -#~ msgid "E597: can't select fontset" -#~ msgstr "E597: Impossible de slectionner un jeu de polices" +#, c-format +msgid "E247: no registered server named \"%s\"" +msgstr "E247: aucun serveur nomm \"%s\" n'est enregistr" -#~ msgid "E598: Invalid fontset" -#~ msgstr "E598: Jeu de polices invalide" +#, c-format +msgid "E482: Can't create file %s" +msgstr "E482: Impossible de crer le fichier %s" -#~ msgid "E533: can't select wide font" -#~ msgstr "E533: Impossible de slectionner une police largeur double" +msgid "E483: Can't get temp file name" +msgstr "E483: Impossible d'obtenir un nom de fichier temporaire" -#~ msgid "E534: Invalid wide font" -#~ msgstr "E534: Police largeur double invalide" +#, c-format +msgid "E484: Can't open file %s" +msgstr "E484: Impossible d'ouvrir le fichier \"%s\"" -#~ msgid "E538: No mouse support" -#~ msgstr "E538: La souris n'est pas supporte" +#, c-format +msgid "E485: Can't read file %s" +msgstr "E485: Impossible de lire le fichier %s" -#~ msgid "cannot open " -#~ msgstr "impossible d'ouvrir " +msgid "E37: No write since last change (add ! to override)" +msgstr "E37: Modifications non enregistres (ajoutez ! pour passer outre)" -#~ msgid "VIM: Can't open window!\n" -#~ msgstr "VIM : Impossible d'ouvrir la fentre !\n" +msgid "E37: No write since last change" +msgstr "E37: Modifications non enregistres" -#~ msgid "Need Amigados version 2.04 or later\n" -#~ msgstr "Amigados version 2.04 ou ultrieure est ncessaire\n" +msgid "E38: Null argument" +msgstr "E38: Argument null" -#~ msgid "Need %s version %\n" -#~ msgstr "%s version % est ncessaire\n" +msgid "E39: Number expected" +msgstr "E39: Nombre attendu" -#~ msgid "Cannot open NIL:\n" -#~ msgstr "Impossible d'ouvrir NIL :\n" +#, c-format +msgid "E40: Can't open errorfile %s" +msgstr "E40: Impossible d'ouvrir le fichier d'erreurs %s" -#~ msgid "Cannot create " -#~ msgstr "Impossible de crer " +msgid "E233: cannot open display" +msgstr "E233: ouverture du display impossible" -#~ msgid "Vim exiting with %d\n" -#~ msgstr "Vim quitte avec %d\n" +msgid "E41: Out of memory!" +msgstr "E41: Mmoire puise" -#~ msgid "cannot change console mode ?!\n" -#~ msgstr "Impossible de modifier le mode de la console ?!\n" +msgid "Pattern not found" +msgstr "Motif introuvable" -#~ msgid "mch_get_shellsize: not a console??\n" -#~ msgstr "mch_get_shellsize : pas une console ?!\n" +#, c-format +msgid "E486: Pattern not found: %s" +msgstr "E486: Motif introuvable : %s" -#~ msgid "E360: Cannot execute shell with -f option" -#~ msgstr "E360: Impossible d'excuter un shell avec l'option -f" +msgid "E487: Argument must be positive" +msgstr "E487: L'argument doit tre positif" -#~ msgid "Cannot execute " -#~ msgstr "Impossible d'excuter " +msgid "E459: Cannot go back to previous directory" +msgstr "E459: Impossible de retourner au rpertoire prcdent" -#~ msgid "shell " -#~ msgstr "le shell " +msgid "E42: No Errors" +msgstr "E42: Aucune erreur" -#~ msgid " returned\n" -#~ msgstr " a t retourn\n" +# DB - TODO : trouver une traduction valable et atteste pour "location". +msgid "E776: No location list" +msgstr "E776: Aucune liste d'emplacements" -#~ msgid "ANCHOR_BUF_SIZE too small." -#~ msgstr "ANCHOR_BUF_SIZE trop petit." +msgid "E43: Damaged match string" +msgstr "E43: La chane de recherche est endommage" -#~ msgid "I/O ERROR" -#~ msgstr "ERREUR d'E/S" +msgid "E44: Corrupted regexp program" +msgstr "E44: L'automate de regexp est corrompu" -#~ msgid "Message" -#~ msgstr "Message" +msgid "E45: 'readonly' option is set (add ! to override)" +msgstr "E45: L'option 'readonly' est active (ajoutez ! pour passer outre)" -#~ msgid "'columns' is not 80, cannot execute external commands" -#~ msgstr "" -#~ "'columns' ne vaut pas 80, impossible d'excuter des commandes externes" +#, c-format +msgid "E46: Cannot change read-only variable \"%s\"" +msgstr "E46: La variable \"%s\" est en lecture seule" -#~ msgid "E237: Printer selection failed" -#~ msgstr "E237: La slection de l'imprimante a chou" +#, c-format +msgid "E794: Cannot set variable in the sandbox: \"%s\"" +msgstr "" +"E794: Impossible de modifier une variable depuis le bac sable : \"%s\"" -# DB - Contenu des c-formats : Imprimante puis Port. -#~ msgid "to %s on %s" -#~ msgstr "vers %s sur %s" +msgid "E713: Cannot use empty key for Dictionary" +msgstr "E713: Impossible d'utiliser une cl vide dans un Dictionnaire" -#~ msgid "E613: Unknown printer font: %s" -#~ msgstr "E613: Police d'imprimante inconnue : %s" +msgid "E715: Dictionary required" +msgstr "E715: Dictionnaire requis" -#~ msgid "E238: Print error: %s" -#~ msgstr "E238: Erreur d'impression : %s" +#, c-format +msgid "E684: list index out of range: %ld" +msgstr "E684: index de Liste hors limites : %ld au-del de la fin" -#~ msgid "Printing '%s'" -#~ msgstr "Impression de '%s'" +# DB : Suggestion +#, c-format +msgid "E118: Too many arguments for function: %s" +msgstr "E118: La fonction %s a reu trop d'arguments" -#~ msgid "E244: Illegal charset name \"%s\" in font name \"%s\"" -#~ msgstr "E244: Jeu de caractres \"%s\" invalide dans le nom de fonte \"%s\"" +#, c-format +msgid "E716: Key not present in Dictionary: %s" +msgstr "E716: La cl %s n'existe pas dans le Dictionnaire" -#~ msgid "E245: Illegal char '%c' in font name \"%s\"" -#~ msgstr "E245: Caractre '%c' invalide dans le nom de fonte \"%s\"" +msgid "E714: List required" +msgstr "E714: Liste requise" -#~ msgid "Opening the X display took % msec" -#~ msgstr "L'ouverture du display X a pris % ms" +#, c-format +msgid "E712: Argument of %s must be a List or Dictionary" +msgstr "E712: L'argument de %s doit tre une Liste ou un Dictionnaire" -#~ msgid "" -#~ "\n" -#~ "Vim: Got X error\n" -#~ msgstr "" -#~ "\n" -#~ "Vim : Rception d'une erreur X\n" +msgid "E47: Error while reading errorfile" +msgstr "E47: Erreur lors de la lecture du fichier d'erreurs" -#~ msgid "Testing the X display failed" -#~ msgstr "Le test du display X a chou" +msgid "E48: Not allowed in sandbox" +msgstr "E48: Opration interdite dans le bac sable" -#~ msgid "Opening the X display timed out" -#~ msgstr "L'ouverture du display X a dpass le dlai d'attente" +msgid "E523: Not allowed here" +msgstr "E523: Interdit cet endroit" -#~ msgid "" -#~ "\n" -#~ "Cannot execute shell sh\n" -#~ msgstr "" -#~ "\n" -#~ "Impossible d'excuter le shell sh\n" +msgid "E359: Screen mode setting not supported" +msgstr "E359: Choix du mode d'cran non support" -#~ msgid "" -#~ "\n" -#~ "Cannot create pipes\n" -#~ msgstr "" -#~ "\n" -#~ "Impossible de crer des tuyaux (pipes)\n" +msgid "E49: Invalid scroll size" +msgstr "E49: Valeur de dfilement invalide" -#~ msgid "" -#~ "\n" -#~ "Cannot fork\n" -#~ msgstr "" -#~ "\n" -#~ "Impossible de forker\n" +msgid "E91: 'shell' option is empty" +msgstr "E91: L'option 'shell' est vide" -#~ msgid "" -#~ "\n" -#~ "Command terminated\n" -#~ msgstr "" -#~ "\n" -#~ "Commande interrompue\n" +msgid "E255: Couldn't read in sign data!" +msgstr "E255: Impossible de lire les donnes du symbole !" -#~ msgid "XSMP lost ICE connection" -#~ msgstr "XSMP a perdu la connexion ICE" +msgid "E72: Close error on swap file" +msgstr "E72: Erreur lors de la fermeture du fichier d'change" -#~ msgid "Opening the X display failed" -#~ msgstr "L'ouverture du display X a chou" +msgid "E73: tag stack empty" +msgstr "E73: La pile des marqueurs est vide" -#~ msgid "XSMP handling save-yourself request" -#~ msgstr "XSMP : prise en charge d'une requte save-yourself" +msgid "E74: Command too complex" +msgstr "E74: Commande trop complexe" -#~ msgid "XSMP opening connection" -#~ msgstr "XSMP : ouverture de la connexion" +msgid "E75: Name too long" +msgstr "E75: Nom trop long" -#~ msgid "XSMP ICE connection watch failed" -#~ msgstr "XSMP : chec de la surveillance de connexion ICE" +msgid "E76: Too many [" +msgstr "E76: Trop de [" -#~ msgid "XSMP SmcOpenConnection failed: %s" -#~ msgstr "XSMP : SmcOpenConnection a chou : %s" +msgid "E77: Too many file names" +msgstr "E77: Trop de noms de fichiers" -#~ msgid "At line" -#~ msgstr " la ligne" +msgid "E488: Trailing characters" +msgstr "E488: Caractres surnumraires" -#~ msgid "Could not load vim32.dll!" -#~ msgstr "Impossible de charger vim32.dll !" +msgid "E78: Unknown mark" +msgstr "E78: Marque inconnue" -#~ msgid "VIM Error" -#~ msgstr "Erreur VIM" +msgid "E79: Cannot expand wildcards" +msgstr "E79: Impossible de dvelopper les mtacaractres" -#~ msgid "Could not fix up function pointers to the DLL!" -#~ msgstr "Impossible d'initialiser les pointeurs de fonction vers la DLL !" +msgid "E591: 'winheight' cannot be smaller than 'winminheight'" +msgstr "E591: 'winheight' ne peut pas tre plus petit que 'winminheight'" -#~ msgid "shell returned %d" -#~ msgstr "le shell a retourn %d" +msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" +msgstr "E592: 'winwidth' ne peut pas tre plus petit que 'winminwidth'" -# DB - Les vnements en question sont ceux des messages qui suivent. -#~ msgid "Vim: Caught %s event\n" -#~ msgstr "Vim : vnement %s intercept\n" +msgid "E80: Error while writing" +msgstr "E80: Erreur lors de l'criture" -#~ msgid "close" -#~ msgstr "de fermeture" +msgid "Zero count" +msgstr "Le quantificateur est nul" -#~ msgid "logoff" -#~ msgstr "de dconnexion" +msgid "E81: Using not in a script context" +msgstr "E81: utilis en dehors d'un script" -#~ msgid "shutdown" -#~ msgstr "d'arrt" +msgid "E449: Invalid expression received" +msgstr "E449: Expression invalide reue" -#~ msgid "E371: Command not found" -#~ msgstr "E371: Commande introuvable" +msgid "E463: Region is guarded, cannot modify" +msgstr "E463: Cette zone est verrouille et ne peut pas tre modifie" -#~ msgid "" -#~ "VIMRUN.EXE not found in your $PATH.\n" -#~ "External commands will not pause after completion.\n" -#~ "See :help win32-vimrun for more information." -#~ msgstr "" -#~ "VIMRUN.EXE est introuvable votre $PATH.\n" -#~ "Les commandes externes ne feront pas de pause une fois termines.\n" -#~ "Consultez :help win32-vimrun pour plus d'informations." +msgid "E744: NetBeans does not allow changes in read-only files" +msgstr "" +"E744: NetBeans n'autorise pas la modification des fichiers en lecture seule" -#~ msgid "Vim Warning" -#~ msgstr "Alerte Vim" +msgid "E363: pattern uses more memory than 'maxmempattern'" +msgstr "E363: le motif utilise plus de mmoire que 'maxmempattern'" -#~ msgid "Error file" -#~ msgstr "Fichier d'erreurs" +msgid "E749: empty buffer" +msgstr "E749: tampon vide" -#~ msgid "E868: Error building NFA with equivalence class!" -#~ msgstr "" -#~ "E868: Erreur lors de la construction du NFA avec classe d'quivalence" +#, c-format +msgid "E86: Buffer %ld does not exist" +msgstr "E86: Le tampon %ld n'existe pas" -#~ msgid "E878: (NFA) Could not allocate memory for branch traversal!" -#~ msgstr "" -#~ "E878: (NFA) Impossible d'allouer la mmoire pour parcourir les branches!" +msgid "E682: Invalid search pattern or delimiter" +msgstr "E682: Dlimiteur ou motif de recherche invalide" -#~ msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\"" -#~ msgstr "" -#~ "Alerte : Liste de mots \"%s_%s.spl\" ou \"%s_ascii.spl\" introuvable" +msgid "E139: File is loaded in another buffer" +msgstr "E139: Le fichier est charg dans un autre tampon" -#~ msgid "Conversion in %s not supported" -#~ msgstr "La conversion dans %s non supporte" +#, c-format +msgid "E764: Option '%s' is not set" +msgstr "E764: L'option '%s' n'est pas active" -#~ msgid "E845: Insufficient memory, word list will be incomplete" -#~ msgstr "E845: mmoire insuffisante, liste de mots peut-tre incomplte" +msgid "E850: Invalid register name" +msgstr "E850: Nom de registre invalide" -#~ msgid "E430: Tag file path truncated for %s\n" -#~ msgstr "E430: Chemin de fichiers de marqueurs tronqu pour %s\n" +#, c-format +msgid "E919: Directory not found in '%s': \"%s\"" +msgstr "E919: Rpertoire introuvable dans '%s' : \"%s\"" -#~ msgid "new shell started\n" -#~ msgstr "nouveau shell dmarr\n" +msgid "search hit TOP, continuing at BOTTOM" +msgstr "La recherche a atteint le HAUT, et continue en BAS" -# DB - Message de dbogage. -#~ msgid "Used CUT_BUFFER0 instead of empty selection" -#~ msgstr "CUT_BUFFER0 utilis plutt qu'une slection vide" +msgid "search hit BOTTOM, continuing at TOP" +msgstr "La recherche a atteint le BAS, et continue en HAUT" -# DB - Question O/N. -#~ msgid "No undo possible; continue anyway" -#~ msgstr "Annulation impossible ; continuer" - -#~ msgid "E832: Non-encrypted file has encrypted undo file: %s" -#~ msgstr "E832: Fichier non-chiffr a un fichier d'annulations chiffr : %s" - -#~ msgid "E826: Undo file decryption failed: %s" -#~ msgstr "E826: Dchiffrage du fichier d'annulation a chou : %s" - -#~ msgid "E827: Undo file is encrypted: %s" -#~ msgstr "E827: Le fichier d'annulations est chiffr : %s" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 16/32-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "Version graphique MS-Windows 16/32 bits" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 64-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "Version graphique MS-Windows 64 bits" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 32-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "Version graphique MS-Windows 32 bits" - -#~ msgid " in Win32s mode" -#~ msgstr " lance en mode Win32s" - -#~ msgid " with OLE support" -#~ msgstr " supportant l'OLE" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 64-bit console version" -#~ msgstr "" -#~ "\n" -#~ "Version console MS-Windows 64 bits" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 32-bit console version" -#~ msgstr "" -#~ "\n" -#~ "Version console MS-Windows 32 bits" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 16-bit version" -#~ msgstr "" -#~ "\n" -#~ "Version MS-Windows 16 bits" - -#~ msgid "" -#~ "\n" -#~ "32-bit MS-DOS version" -#~ msgstr "" -#~ "\n" -#~ "Version MS-DOS 32 bits" - -#~ msgid "" -#~ "\n" -#~ "16-bit MS-DOS version" -#~ msgstr "" -#~ "\n" -#~ "Version MS-DOS 16 bits" - -#~ msgid "" -#~ "\n" -#~ "MacOS X (unix) version" -#~ msgstr "" -#~ "\n" -#~ "Version MaxOS X (unix)" - -#~ msgid "" -#~ "\n" -#~ "MacOS X version" -#~ msgstr "" -#~ "\n" -#~ "Version MacOS X" - -#~ msgid "" -#~ "\n" -#~ "MacOS version" -#~ msgstr "" -#~ "\n" -#~ "Version MacOS" - -#~ msgid "" -#~ "\n" -#~ "OpenVMS version" -#~ msgstr "" -#~ "\n" -#~ "Version OpenVMS" - -#~ msgid "" -#~ "\n" -#~ "Big version " -#~ msgstr "" -#~ "\n" -#~ "Grosse version " - -#~ msgid "" -#~ "\n" -#~ "Normal version " -#~ msgstr "" -#~ "\n" -#~ "Version normale " - -#~ msgid "" -#~ "\n" -#~ "Small version " -#~ msgstr "" -#~ "\n" -#~ "Petite version " - -#~ msgid "" -#~ "\n" -#~ "Tiny version " -#~ msgstr "" -#~ "\n" -#~ "Version minuscule " - -#~ msgid "with GTK2-GNOME GUI." -#~ msgstr "avec interface graphique GTK2-GNOME." - -#~ msgid "with GTK2 GUI." -#~ msgstr "avec interface graphique GTK2." - -#~ msgid "with X11-Motif GUI." -#~ msgstr "avec interface graphique X11-Motif." - -#~ msgid "with X11-neXtaw GUI." -#~ msgstr "avec interface graphique X11-neXtaw." - -#~ msgid "with X11-Athena GUI." -#~ msgstr "avec interface graphique X11-Athena." - -#~ msgid "with Photon GUI." -#~ msgstr "avec interface graphique Photon." - -#~ msgid "with GUI." -#~ msgstr "avec une interface graphique." - -#~ msgid "with Carbon GUI." -#~ msgstr "avec interface graphique Carbon." - -#~ msgid "with Cocoa GUI." -#~ msgstr "avec interface graphique Cocoa." - -#~ msgid "with (classic) GUI." -#~ msgstr "avec interface graphique (classic)." - -#~ msgid " system gvimrc file: \"" -#~ msgstr " fichier gvimrc systme : \"" - -#~ msgid " user gvimrc file: \"" -#~ msgstr " fichier gvimrc utilisateur : \"" - -#~ msgid "2nd user gvimrc file: \"" -#~ msgstr "2me fichier gvimrc utilisateur : \"" - -#~ msgid "3rd user gvimrc file: \"" -#~ msgstr "3me fichier gvimrc utilisateur : \"" - -#~ msgid " system menu file: \"" -#~ msgstr " fichier menu systme : \"" - -#~ msgid "Compiler: " -#~ msgstr "Compilateur : " +#, c-format +msgid "Need encryption key for \"%s\"" +msgstr "Besoin de la cl de chiffrement pour \"%s\"" -#~ msgid "menu Help->Orphans for information " -#~ msgstr "menu Aide->Orphelins pour plus d'info" +msgid "empty keys are not allowed" +msgstr "les cls vides ne sont pas autorises" -#~ msgid "Running modeless, typed text is inserted" -#~ msgstr "Les modes sont dsactivs, le texte saisi est insr" +msgid "dictionary is locked" +msgstr "dictionnaire est verrouill" -#~ msgid "menu Edit->Global Settings->Toggle Insert Mode " -#~ msgstr "menu dition->Rglages Globaux->Insertion Permanente" +msgid "list is locked" +msgstr "liste verrouille" -# DB - todo -#~ msgid " for two modes " -#~ msgstr " pour les modes " +#, c-format +msgid "failed to add key '%s' to dictionary" +msgstr "l'ajout de cl '%s' au dictionnaire a chou" -# DB - todo -#~ msgid "menu Edit->Global Settings->Toggle Vi Compatible" -#~ msgstr "menu dition->Rglages Globaux->Compatibilit Vi" +#, c-format +msgid "index must be int or slice, not %s" +msgstr "index doit tre int ou slice, et non %s" -# DB - todo -#~ msgid " for Vim defaults " -#~ msgstr " pour df. de Vim " +#, c-format +msgid "expected str() or unicode() instance, but got %s" +msgstr "attendu instance de str() ou unicode(), mais reu %s" -#~ msgid "WARNING: Windows 95/98/ME detected" -#~ msgstr "ALERTE: Windows 95/98/ME dtect" +#, c-format +msgid "expected bytes() or str() instance, but got %s" +msgstr "attendu instance de bytes() ou str(), mais reu %s" -#~ msgid "type :help windows95 for info on this" -#~ msgstr "tapez :help windows95 pour plus d'information" +#, c-format +msgid "" +"expected int(), long() or something supporting coercing to long(), but got %s" +msgstr "" +"attendu int(), long() ou quelque chose qui peut tre transform en long(), " +"mais reu %s" -#~ msgid "E370: Could not load library %s" -#~ msgstr "E370: Impossible de charger la bibliothque %s" +#, c-format +msgid "expected int() or something supporting coercing to int(), but got %s" +msgstr "" +"attendu int() ou quelque chose qui peut tre transform en int(), mais reu " +"%s" -#~ msgid "" -#~ "Sorry, this command is disabled: the Perl library could not be loaded." -#~ msgstr "" -#~ "Dsol, commande dsactive : la bibliothque Perl n'a pas pu tre " -#~ "charge." +msgid "value is too large to fit into C int type" +msgstr "valeur trop grande pour tre stocke dans le type C int" -#~ msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" -#~ msgstr "" -#~ "E299: valuation Perl interdite dans bac sable sans le module Safe" +msgid "value is too small to fit into C int type" +msgstr "valeur trop petite pour tre stocke dans le type C int" -#~ msgid "Edit with &multiple Vims" -#~ msgstr "diter dans &plusieurs Vims" +msgid "number must be greater than zero" +msgstr "le nombre doit tre plus grand que zro" -#~ msgid "Edit with single &Vim" -#~ msgstr "diter dans un seul &Vim" +msgid "number must be greater or equal to zero" +msgstr "le nombre doit tre plus grand ou gal zro" -#~ msgid "Diff with Vim" -#~ msgstr "&Comparer avec Vim" +msgid "can't delete OutputObject attributes" +msgstr "impossible d'effacer les attributs d'OutputObject" -#~ msgid "Edit with &Vim" -#~ msgstr "diter dans &Vim" +#, c-format +msgid "invalid attribute: %s" +msgstr "attribut invalide : %s" -#~ msgid "Edit with existing Vim - " -#~ msgstr "diter dans le Vim existant - " +msgid "E264: Python: Error initialising I/O objects" +msgstr "E264: Python : Erreur d'initialisation des objets d'E/S" -#~ msgid "Edits the selected file(s) with Vim" -#~ msgstr "dites le(s) fichier(s) slectionn(s) avec Vim" +msgid "failed to change directory" +msgstr "changement de rpertoire a chou" -# DB - MessageBox win32, la longueur n'est pas un problme ! -#~ msgid "Error creating process: Check if gvim is in your path!" -#~ msgstr "" -#~ "Erreur de cration du processus : vrifiez que gvim est bien dans votre " -#~ "chemin !" +#, c-format +msgid "expected 3-tuple as imp.find_module() result, but got %s" +msgstr "attendu un 3-tuple comme rsultat de imp.find_module(), mais reu %s" -#~ msgid "gvimext.dll error" -#~ msgstr "Erreur de gvimext.dll" +#, c-format +msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d" +msgstr "" +"attendu un 3-tuple comme rsultat de imp.find_module(), mais reu un tuple " +"de taille %d" -#~ msgid "Path length too long!" -#~ msgstr "Le chemin est trop long !" +msgid "internal error: imp.find_module returned tuple with NULL" +msgstr "erreur interne : imp.find_module a retourn un tuple contenant NULL" -#~ msgid "E234: Unknown fontset: %s" -#~ msgstr "E234: Jeu de police inconnu : %s" +msgid "cannot delete vim.Dictionary attributes" +msgstr "impossible d'effacer les attributs de vim.Dictionary" -#~ msgid "E235: Unknown font: %s" -#~ msgstr "E235: Police inconnue : %s" +msgid "cannot modify fixed dictionary" +msgstr "impossible de modifier un dictionnaire fixe" -#~ msgid "E236: Font \"%s\" is not fixed-width" -#~ msgstr "E236: La police \"%s\" n'a pas une chasse (largeur) fixe" +#, c-format +msgid "cannot set attribute %s" +msgstr "impossible d'initialiser l'attribut %s" -#~ msgid "E448: Could not load library function %s" -#~ msgstr "E448: Impossible de charger la fonction %s de la bibliothque" +msgid "hashtab changed during iteration" +msgstr "la table de hachage a t change pendant une itration" -#~ msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" -#~ msgstr "" -#~ "E26: Le support de l'hbreu n'a pas t compil dans cette version\n" +#, c-format +msgid "expected sequence element of size 2, but got sequence of size %d" +msgstr "" +"attendu une squence d'lments de taille 2, mais reu une squence de " +"taille %d" -#~ msgid "E27: Farsi cannot be used: Not enabled at compile time\n" -#~ msgstr "E27: Le support du farsi n'a pas t compil dans cette version\n" +msgid "list constructor does not accept keyword arguments" +msgstr "le constructeur de liste n'accepte pas les arguments nomms" -#~ msgid "E800: Arabic cannot be used: Not enabled at compile time\n" -#~ msgstr "" -#~ "E800: Le support de l'arabe n'a pas t compil dans cette version\n" +msgid "list index out of range" +msgstr "index de liste hors limites" -#~ msgid "E247: no registered server named \"%s\"" -#~ msgstr "E247: aucun serveur nomm \"%s\" n'est enregistr" +#. No more suitable format specifications in python-2.3 +#, c-format +msgid "internal error: failed to get vim list item %d" +msgstr "erreur interne : accs un lment %d de liste a chou" -#~ msgid "E233: cannot open display" -#~ msgstr "E233: ouverture du display impossible" +msgid "slice step cannot be zero" +msgstr "le pas du dcoupage en tranche ne peut pas tre zro" -#~ msgid "E449: Invalid expression received" -#~ msgstr "E449: Expression invalide reue" +#, c-format +msgid "attempt to assign sequence of size greater than %d to extended slice" +msgstr "" +"tentative d'assigner une squence de taille plus grande que %d un " +"dcoupage en tranche tendu " -#~ msgid "E463: Region is guarded, cannot modify" -#~ msgstr "E463: Cette zone est verrouille et ne peut pas tre modifie" +#, c-format +msgid "internal error: no vim list item %d" +msgstr "erreur interne : pas d'lment %d de liste vim" -#~ msgid "E744: NetBeans does not allow changes in read-only files" -#~ msgstr "" -#~ "E744: NetBeans n'autorise pas la modification des fichiers en lecture " -#~ "seule" +msgid "internal error: not enough list items" +msgstr "erreur interne : pas assez d'lments de liste" -#~ msgid "Need encryption key for \"%s\"" -#~ msgstr "Besoin de la cl de chiffrement pour \"%s\"" +msgid "internal error: failed to add item to list" +msgstr "erreur interne : ajout d'lment la liste a chou" -#~ msgid "can't delete OutputObject attributes" -#~ msgstr "impossible d'effacer les attributs d'OutputObject" +#, c-format +msgid "attempt to assign sequence of size %d to extended slice of size %d" +msgstr "" +"tentative d'assigner une squence de taille %d un dcoupage en tranche " +"tendu de taille %d" -#~ msgid "invalid attribute" -#~ msgstr "attribut invalide" +msgid "failed to add item to list" +msgstr "ajout la liste a chou" -#~ msgid "E264: Python: Error initialising I/O objects" -#~ msgstr "E264: Python : Erreur d'initialisation des objets d'E/S" +msgid "cannot delete vim.List attributes" +msgstr "impossible d'effacer les attributs de vim.List" -#~ msgid "empty keys are not allowed" -#~ msgstr "les cls vides ne sont pas autorises" +msgid "cannot modify fixed list" +msgstr "impossible de modifier une liste fixe" -#~ msgid "Cannot modify fixed dictionary" -#~ msgstr "Impossible de modifier un dictionnaire fixe" +#, c-format +msgid "unnamed function %s does not exist" +msgstr "la fonction sans nom %s n'existe pas" -#~ msgid "dict is locked" -#~ msgstr "dictionnaire est verrouill" +#, c-format +msgid "function %s does not exist" +msgstr "la fonction %s n'existe pas" -#~ msgid "failed to add key to dictionary" -#~ msgstr "l'ajout de cl au dictionnaire a chou" +#, c-format +msgid "failed to run function %s" +msgstr "excution de la fonction %s a chou" -#~ msgid "list index out of range" -#~ msgstr "index de liste hors limites" +msgid "unable to get option value" +msgstr "impossible d'obtenir la valeur d'une option" -#~ msgid "internal error: failed to get vim list item" -#~ msgstr "erreur interne : accs un lment de liste a chou" +msgid "internal error: unknown option type" +msgstr "erreur interne : type d'option inconnu" -#~ msgid "list is locked" -#~ msgstr "liste verrouille" +msgid "problem while switching windows" +msgstr "problme lors du changement de fentres" -#~ msgid "Failed to add item to list" -#~ msgstr "Ajout la liste a chou" +#, c-format +msgid "unable to unset global option %s" +msgstr "impossible de dsactiver une option globale %s" -#~ msgid "internal error: failed to add item to list" -#~ msgstr "erreur interne : ajout d'lment la liste a chou" +#, c-format +msgid "unable to unset option %s which does not have global value" +msgstr "impossible de dsactiver l'option %s qui n'a pas de valeur globale" -#~ msgid "cannot delete vim.dictionary attributes" -#~ msgstr "impossible d'effacer les attributs de vim.dictionary" +msgid "attempt to refer to deleted tab page" +msgstr "tentative de rfrencer un onglet effac" -#~ msgid "cannot modify fixed list" -#~ msgstr "impossible de modifier une liste fixe" +msgid "no such tab page" +msgstr "cet onglet n'existe pas" -#~ msgid "cannot set this attribute" -#~ msgstr "impossible d'initialiser cet attribut" +msgid "attempt to refer to deleted window" +msgstr "tentative de rfrencer une fentre efface" -#~ msgid "failed to run function" -#~ msgstr "excution de la fonction a chou" +msgid "readonly attribute: buffer" +msgstr "attribut en lecture seule : tampon" -#~ msgid "unable to unset global option" -#~ msgstr "impossible de dsactiver une option globale" +msgid "cursor position outside buffer" +msgstr "curseur positionn en dehors du tampon" -#~ msgid "unable to unset option without global value" -#~ msgstr "impossible de dsactiver une option sans une valeur globale" +msgid "no such window" +msgstr "Cette fentre n'existe pas" -#~ msgid "attempt to refer to deleted tab page" -#~ msgstr "tentative de rfrencer un onglet effac" +msgid "attempt to refer to deleted buffer" +msgstr "tentative de rfrencer un tampon effac" -#~ msgid "no such tab page" -#~ msgstr "cet onglet n'existe pas" +msgid "failed to rename buffer" +msgstr "impossible de renommer le tampon" -#~ msgid "attempt to refer to deleted window" -#~ msgstr "tentative de rfrencer une fentre efface" +msgid "mark name must be a single character" +msgstr "le nom de marque doit tre un seul caractre" -#~ msgid "readonly attribute" -#~ msgstr "attribut en lecture seule" +#, c-format +msgid "expected vim.Buffer object, but got %s" +msgstr "attendu un objet vim.Buffer, mais reu %s" -#~ msgid "cursor position outside buffer" -#~ msgstr "curseur positionn en dehors du tampon" +#, c-format +msgid "failed to switch to buffer %d" +msgstr "impossible de se dplacer au tampon %d" -#~ msgid "no such window" -#~ msgstr "Cette fentre n'existe pas" +#, c-format +msgid "expected vim.Window object, but got %s" +msgstr "attendu un objet vim.Window, mais reu %s" -#~ msgid "attempt to refer to deleted buffer" -#~ msgstr "tentative de rfrencer un tampon effac" +msgid "failed to find window in the current tab page" +msgstr "impossible de trouver une fentre dans l'onglet courant" -#~ msgid "expected vim.buffer object" -#~ msgstr "objet vim.buffer attendu" +msgid "did not switch to the specified window" +msgstr "ne s'est pas dplac la fentre spcifie" -#~ msgid "failed to switch to given buffer" -#~ msgstr "impossible de se dplacer au tampon donn" +#, c-format +msgid "expected vim.TabPage object, but got %s" +msgstr "attendu un objet vim.TabPage, mais reu %s" -#~ msgid "expected vim.window object" -#~ msgstr "objet vim.window attendu" +msgid "did not switch to the specified tab page" +msgstr "impossible de se dplacer l'onglet spcifi" -#~ msgid "failed to find window in the current tab page" -#~ msgstr "impossible de trouver une fentre dans l'onglet courant" +msgid "failed to run the code" +msgstr "excution du code a chou" -#~ msgid "did not switch to the specified window" -#~ msgstr "ne s'est pas dplac la fentre spcifie" +msgid "E858: Eval did not return a valid python object" +msgstr "E858: Eval n'a pas retourn un objet python valide" -#~ msgid "expected vim.tabpage object" -#~ msgstr "objet vim.tabpage attendu" +msgid "E859: Failed to convert returned python object to vim value" +msgstr "E859: Conversion d'objet python une valeur de vim a chou" -#~ msgid "did not switch to the specified tab page" -#~ msgstr "impossible de se dplacer l'onglet spcifi" +#, c-format +msgid "unable to convert %s to vim dictionary" +msgstr "impossible de convertir %s un dictionnaire vim" -#~ msgid "failed to run the code" -#~ msgstr "excution du code a chou" +#, c-format +msgid "unable to convert %s to vim list" +msgstr "impossible de convertir %s une liste de vim" -#~ msgid "E858: Eval did not return a valid python object" -#~ msgstr "E858: Eval n'a pas retourn un objet python valide" +#, c-format +msgid "unable to convert %s to vim structure" +msgstr "impossible de convertir %s une structure de vim" -#~ msgid "E859: Failed to convert returned python object to vim value" -#~ msgstr "E859: Conversion d'objet python une valeur de vim a chou" +msgid "internal error: NULL reference passed" +msgstr "erreur interne : rfrence NULL passe" -#~ msgid "unable to convert to vim structure" -#~ msgstr "conversion une structure vim impossible" +msgid "internal error: invalid value type" +msgstr "erreur interne : type de valeur invalide" -#~ msgid "NULL reference passed" -#~ msgstr "rfrence NULL passe" +msgid "" +"Failed to set path hook: sys.path_hooks is not a list\n" +"You should now do the following:\n" +"- append vim.path_hook to sys.path_hooks\n" +"- append vim.VIM_SPECIAL_PATH to sys.path\n" +msgstr "" +"Impossible d'initialiser sys.path_hook qui n'est pas un liste\n" +"Vous devez maintenant :\n" +"- ajouter vim.path_hook sys.path_hooks\n" +"- ajouter vim.VIM_SPECIAL_PATH sys.path\n" -#~ msgid "internal error: invalid value type" -#~ msgstr "erreur interne : type de valeur invalide" +msgid "" +"Failed to set path: sys.path is not a list\n" +"You should now append vim.VIM_SPECIAL_PATH to sys.path" +msgstr "" +"Impossible d'initialiser le chemin : sys.math n'est pas une liste\n" +"Vous devez maintenant ajouter vim.VIM_SPECIAL_PATH sys.path" diff --git a/src/nvim/po/ja.euc-jp.po b/src/nvim/po/ja.euc-jp.po index c6425324b1..4b32096f1a 100644 --- a/src/nvim/po/ja.euc-jp.po +++ b/src/nvim/po/ja.euc-jp.po @@ -1,3 +1,4 @@ + # Japanese translation for Vim # # Do ":help uganda" in Vim to read copying and usage conditions. @@ -14,213 +15,176 @@ msgid "" msgstr "" "Project-Id-Version: Vim 7.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:02+0900\n" -"PO-Revision-Date: 2016-02-01 09:08+0900\n" +"POT-Creation-Date: 2016-09-10 21:10+0900\n" +"PO-Revision-Date: 2016-09-10 21:20+0900\n" "Last-Translator: MURAOKA Taro \n" "Language-Team: vim-jp (https://github.com/vim-jp/lang-ja)\n" "Language: Japanese\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=euc-jp\n" "Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" -#: ../api/private/helpers.c:201 -#, fuzzy -msgid "Unable to get option value" -msgstr "ץͤϼǤޤ" +msgid "E831: bf_key_init() called with empty password" +msgstr "E831: bf_key_init() ѥɤǸƤӽФޤ" -#: ../api/private/helpers.c:204 -msgid "internal error: unknown option type" -msgstr "顼: ̤ΤΥץ󷿤Ǥ" +msgid "E820: sizeof(uint32_t) != 4" +msgstr "E820: sizeof(uint32_t) != 4" + +msgid "E817: Blowfish big/little endian use wrong" +msgstr "E817: BlowfishŹΥӥå/ȥ륨ǥ󤬴ְäƤޤ" + +msgid "E818: sha256 test failed" +msgstr "E818: sha256ΥƥȤ˼Ԥޤ" + +msgid "E819: Blowfish test failed" +msgstr "E819: BlowfishŹΥƥȤ˼Ԥޤ" -#: ../buffer.c:92 msgid "[Location List]" msgstr "[ꥹ]" -#: ../buffer.c:93 msgid "[Quickfix List]" msgstr "[Quickfixꥹ]" -#: ../buffer.c:94 msgid "E855: Autocommands caused command to abort" msgstr "E855: autocommandޥɤߤޤ" -#: ../buffer.c:135 msgid "E82: Cannot allocate any buffer, exiting..." msgstr "E82: Хåե1ĤǤʤΤ, λޤ..." -#: ../buffer.c:138 msgid "E83: Cannot allocate buffer, using other one..." msgstr "E83: ХåեǤʤΤ, ¾ΤѤޤ..." -#: ../buffer.c:763 +msgid "E931: Buffer cannot be registered" +msgstr "E931: ХåեϿǤޤ" + +msgid "E937: Attempt to delete a buffer that is in use" +msgstr "E937: ΥХåե褦Ȼߤޤ" + msgid "E515: No buffers were unloaded" msgstr "E515: 줿ХåեϤޤ" -#: ../buffer.c:765 msgid "E516: No buffers were deleted" msgstr "E516: 줿ХåեϤޤ" -#: ../buffer.c:767 msgid "E517: No buffers were wiped out" msgstr "E517: ˴줿ХåեϤޤ" -#: ../buffer.c:772 msgid "1 buffer unloaded" msgstr "1 ĤΥХåեޤ" -#: ../buffer.c:774 #, c-format msgid "%d buffers unloaded" msgstr "%d ĤΥХåեޤ" -#: ../buffer.c:777 msgid "1 buffer deleted" msgstr "1 ĤΥХåեޤ" -#: ../buffer.c:779 #, c-format msgid "%d buffers deleted" msgstr "%d ĤΥХåեޤ" -#: ../buffer.c:782 msgid "1 buffer wiped out" msgstr "1 ĤΥХåե˴ޤ" -#: ../buffer.c:784 #, c-format msgid "%d buffers wiped out" msgstr "%d ĤΥХåե˴ޤ" -#: ../buffer.c:806 msgid "E90: Cannot unload last buffer" msgstr "E90: ǸΥХåեϲǤޤ" -#: ../buffer.c:874 msgid "E84: No modified buffer found" msgstr "E84: ѹ줿ХåեϤޤ" #. back where we started, didn't find anything. -#: ../buffer.c:903 msgid "E85: There is no listed buffer" msgstr "E85: ꥹɽХåեϤޤ" -#: ../buffer.c:913 -#, c-format -msgid "E86: Buffer % does not exist" -msgstr "E86: Хåե % Ϥޤ" - -#: ../buffer.c:915 msgid "E87: Cannot go beyond last buffer" msgstr "E87: ǸΥХåեۤưưϤǤޤ" -#: ../buffer.c:917 msgid "E88: Cannot go before first buffer" msgstr "E88: ǽΥХåեؤϰưǤޤ" -#: ../buffer.c:945 #, c-format -msgid "" -"E89: No write since last change for buffer % (add ! to override)" -msgstr "E89: Хåե % ѹ¸Ƥޤ (! ѹ˴)" +msgid "E89: No write since last change for buffer %ld (add ! to override)" +msgstr "E89: Хåե %ld ѹ¸Ƥޤ (! ѹ˴)" -#. wrap around (may cause duplicates) -#: ../buffer.c:1423 msgid "W14: Warning: List of file names overflow" msgstr "W14: ٹ: ե̾ΥꥹȤĹ᤮ޤ" -#: ../buffer.c:1555 ../quickfix.c:3361 #, c-format -msgid "E92: Buffer % not found" -msgstr "E92: Хåե % Ĥޤ" +msgid "E92: Buffer %ld not found" +msgstr "E92: Хåե %ld Ĥޤ" -#: ../buffer.c:1798 #, c-format msgid "E93: More than one match for %s" msgstr "E93: %s ʣγޤ" -#: ../buffer.c:1800 #, c-format msgid "E94: No matching buffer for %s" msgstr "E94: %s ˳ХåեϤޤǤ" -#: ../buffer.c:2161 #, c-format -msgid "line %" -msgstr " %" +msgid "line %ld" +msgstr " %ld" -#: ../buffer.c:2233 msgid "E95: Buffer with this name already exists" msgstr "E95: ̾ΥХåեϴˤޤ" -#: ../buffer.c:2498 msgid " [Modified]" msgstr " [ѹ]" -#: ../buffer.c:2501 msgid "[Not edited]" msgstr "[̤Խ]" -#: ../buffer.c:2504 msgid "[New file]" msgstr "[ե]" -#: ../buffer.c:2505 msgid "[Read errors]" msgstr "[ɹ顼]" -#: ../buffer.c:2506 ../buffer.c:3217 ../fileio.c:1807 ../screen.c:4895 msgid "[RO]" msgstr "[]" -#: ../buffer.c:2507 ../fileio.c:1807 msgid "[readonly]" msgstr "[ɹ]" -#: ../buffer.c:2524 #, c-format msgid "1 line --%d%%--" msgstr "1 --%d%%--" -#: ../buffer.c:2526 #, c-format -msgid "% lines --%d%%--" -msgstr "% --%d%%--" +msgid "%ld lines --%d%%--" +msgstr "%ld --%d%%--" -#: ../buffer.c:2530 #, c-format -msgid "line % of % --%d%%-- col " -msgstr " % ( %) --%d%%-- col " +msgid "line %ld of %ld --%d%%-- col " +msgstr " %ld ( %ld) --%d%%-- col " -#: ../buffer.c:2632 ../buffer.c:4292 ../memline.c:1554 msgid "[No Name]" msgstr "[̵̾]" #. must be a help buffer -#: ../buffer.c:2667 msgid "help" msgstr "إ" -#: ../buffer.c:3225 ../screen.c:4883 msgid "[Help]" msgstr "[إ]" -#: ../buffer.c:3254 ../screen.c:4887 msgid "[Preview]" msgstr "[ץӥ塼]" -#: ../buffer.c:3528 msgid "All" msgstr "" -#: ../buffer.c:3528 msgid "Bot" msgstr "" -#: ../buffer.c:3531 msgid "Top" msgstr "Ƭ" -#: ../buffer.c:4244 msgid "" "\n" "# Buffer list:\n" @@ -228,11 +192,9 @@ msgstr "" "\n" "# Хåեꥹ:\n" -#: ../buffer.c:4289 msgid "[Scratch]" msgstr "[]" -#: ../buffer.c:4529 msgid "" "\n" "--- Signs ---" @@ -240,200 +202,235 @@ msgstr "" "\n" "--- ---" -#: ../buffer.c:4538 #, c-format msgid "Signs for %s:" msgstr "%s Υ:" -#: ../buffer.c:4543 #, c-format -msgid " line=% id=%d name=%s" -msgstr " =% ̻=%d ̾=%s" +msgid " line=%ld id=%d name=%s" +msgstr " =%ld ̻=%d ̾=%s" -#: ../cursor_shape.c:68 -msgid "E545: Missing colon" -msgstr "E545: 󤬤ޤ" +msgid "E902: Cannot connect to port" +msgstr "E902: ݡȤ³Ǥޤ" -#: ../cursor_shape.c:70 ../cursor_shape.c:94 -msgid "E546: Illegal mode" -msgstr "E546: ʥ⡼ɤǤ" +msgid "E901: gethostbyname() in channel_open()" +msgstr "E901: channel_open() gethostbyname() Ԥޤ" -#: ../cursor_shape.c:134 -msgid "E548: digit expected" -msgstr "E548: ͤɬפǤ" +msgid "E898: socket() in channel_open()" +msgstr "E898: channel_open() socket() Ԥޤ" -#: ../cursor_shape.c:138 -msgid "E549: Illegal percentage" -msgstr "E549: ʥѡơǤ" +msgid "E903: received command with non-string argument" +msgstr "E903: ʸΰΥޥɤޤ" + +msgid "E904: last argument for expr/call must be a number" +msgstr "E904: expr/call κǸΰϿǤʤФʤޤ" + +msgid "E904: third argument for call must be a list" +msgstr "E904: call 3ܤΰϥꥹȷǤʤФʤޤ" + +#, c-format +msgid "E905: received unknown command: %s" +msgstr "E905: ̤ΤΥޥɤޤ: %s" + +#, c-format +msgid "E630: %s(): write while not connected" +msgstr "E630: %s(): ³֤ǽ񤭹ߤޤ" + +#, c-format +msgid "E631: %s(): write failed" +msgstr "E631: %s(): 񤭹ߤ˼Ԥޤ" + +#, c-format +msgid "E917: Cannot use a callback with %s()" +msgstr "E917: %s() ˥ХåϻȤޤ" + +msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel" +msgstr "E912: nl ͥ ch_evalexpr()/ch_sendexpr ϻȤޤ" + +msgid "E906: not an open channel" +msgstr "E906: ƤʤͥǤ" + +msgid "E920: _io file requires _name to be set" +msgstr "E920: _io ե _name ꤬ɬפǤ" + +msgid "E915: in_io buffer requires in_buf or in_name to be set" +msgstr "E915: in_io Хåե in_buf in_name ꤬ɬפǤ" + +#, c-format +msgid "E918: buffer must be loaded: %s" +msgstr "E918: ХåեɤƤʤФʤޤ: %s" + +msgid "E821: File is encrypted with unknown method" +msgstr "E821: ե뤬̤ΤˡǰŹ沽Ƥޤ" + +msgid "Warning: Using a weak encryption method; see :help 'cm'" +msgstr "ٹ: 夤ŹˡȤäƤޤ; :help 'cm' 򻲾ȤƤ" + +msgid "Enter encryption key: " +msgstr "Ź沽ѤΥϤƤ: " + +msgid "Enter same key again: " +msgstr "⤦ƱϤƤ: " + +msgid "Keys don't match!" +msgstr "פޤ" + +msgid "[crypted]" +msgstr "[Ź沽]" + +#, c-format +msgid "E720: Missing colon in Dictionary: %s" +msgstr "E720: 񷿤˥󤬤ޤ: %s" + +#, c-format +msgid "E721: Duplicate key in Dictionary: \"%s\"" +msgstr "E721: 񷿤˽ʣޤ: \"%s\"" + +#, c-format +msgid "E722: Missing comma in Dictionary: %s" +msgstr "E722: 񷿤˥ޤޤ: %s" + +#, c-format +msgid "E723: Missing end of Dictionary '}': %s" +msgstr "E723: 񷿤κǸ '}' ޤ: %s" + +msgid "extend() argument" +msgstr "extend() ΰ" + +#, c-format +msgid "E737: Key already exists: %s" +msgstr "E737: ϴ¸ߤޤ: %s" -#: ../diff.c:146 #, c-format -msgid "E96: Can not diff more than % buffers" -msgstr "E96: % ʾΥХåեdiffǤޤ" +msgid "E96: Cannot diff more than %ld buffers" +msgstr "E96: %ld ʾΥХåեdiffǤޤ" -#: ../diff.c:753 msgid "E810: Cannot read or write temp files" msgstr "E810: եɹ⤷ϽǤޤ" -#: ../diff.c:755 msgid "E97: Cannot create diffs" msgstr "E97: ʬǤޤ" -#: ../diff.c:966 +msgid "Patch file" +msgstr "ѥåե" + msgid "E816: Cannot read patch output" msgstr "E816: patchνϤɹޤ" -#: ../diff.c:1220 msgid "E98: Cannot read diff output" msgstr "E98: diffνϤɹޤ" -#: ../diff.c:2081 msgid "E99: Current buffer is not in diff mode" msgstr "E99: ߤΥХåեϺʬ⡼ɤǤϤޤ" -#: ../diff.c:2100 msgid "E793: No other buffer in diff mode is modifiable" msgstr "E793: ʬ⡼ɤǤ¾ΥХåեѹǤޤ" -#: ../diff.c:2102 msgid "E100: No other buffer in diff mode" msgstr "E100: ʬ⡼ɤǤ¾ΥХåեϤޤ" -#: ../diff.c:2112 msgid "E101: More than two buffers in diff mode, don't know which one to use" msgstr "" "E101: ʬ⡼ɤΥХåե2İʾ夢ΤǡɤȤǤޤ" -#: ../diff.c:2141 #, c-format msgid "E102: Can't find buffer \"%s\"" msgstr "E102: Хåե \"%s\" Ĥޤ" -#: ../diff.c:2152 #, c-format msgid "E103: Buffer \"%s\" is not in diff mode" msgstr "E103: Хåե \"%s\" Ϻʬ⡼ɤǤϤޤ" -#: ../diff.c:2193 msgid "E787: Buffer changed unexpectedly" msgstr "E787: ͽХåեѹѹޤ" -#: ../digraph.c:1598 msgid "E104: Escape not allowed in digraph" msgstr "E104: EscapeϻѤǤޤ" -#: ../digraph.c:1760 msgid "E544: Keymap file not found" msgstr "E544: ޥåץե뤬Ĥޤ" -#: ../digraph.c:1785 msgid "E105: Using :loadkeymap not in a sourced file" msgstr "E105: :source ǼեʳǤ :loadkeymap Ȥޤ" -#: ../digraph.c:1821 msgid "E791: Empty keymap entry" msgstr "E791: Υޥåץȥ" -#: ../edit.c:82 msgid " Keyword completion (^N^P)" msgstr " 䴰 (^N^P)" #. ctrl_x_mode == 0, ^P/^N compl. -#: ../edit.c:83 msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" msgstr " ^X ⡼ (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" -#: ../edit.c:85 msgid " Whole line completion (^L^N^P)" msgstr " ()䴰 (^L^N^P)" -#: ../edit.c:86 msgid " File name completion (^F^N^P)" msgstr " ե̾䴰 (^F^N^P)" -#: ../edit.c:87 msgid " Tag completion (^]^N^P)" msgstr " 䴰 (^]^N^P)" -#: ../edit.c:88 msgid " Path pattern completion (^N^P)" msgstr " ѥѥ䴰 (^N^P)" -#: ../edit.c:89 msgid " Definition completion (^D^N^P)" msgstr " 䴰 (^D^N^P)" -#: ../edit.c:91 msgid " Dictionary completion (^K^N^P)" msgstr " 䴰 (^K^N^P)" -#: ../edit.c:92 msgid " Thesaurus completion (^T^N^P)" msgstr " 饹䴰 (^T^N^P)" -#: ../edit.c:93 msgid " Command-line completion (^V^N^P)" msgstr " ޥɥ饤䴰 (^V^N^P)" -#: ../edit.c:94 msgid " User defined completion (^U^N^P)" msgstr " 桼䴰 (^U^N^P)" -#: ../edit.c:95 msgid " Omni completion (^O^N^P)" msgstr " 䴰 (^O^N^P)" -#: ../edit.c:96 msgid " Spelling suggestion (s^N^P)" msgstr " ֤꽤 (s^N^P)" -#: ../edit.c:97 msgid " Keyword Local completion (^N^P)" msgstr " ɽꥭ䴰 (^N^P)" -#: ../edit.c:100 msgid "Hit end of paragraph" msgstr "κǸ˥ҥå" -#: ../edit.c:101 msgid "E839: Completion function changed window" msgstr "E839: ִؿɥѹޤ" -#: ../edit.c:102 msgid "E840: Completion function deleted text" msgstr "E840: 䴰ؿƥȤޤ" -#: ../edit.c:1847 msgid "'dictionary' option is empty" msgstr "'dictionary' ץ󤬶Ǥ" -#: ../edit.c:1848 msgid "'thesaurus' option is empty" msgstr "'thesaurus' ץ󤬶Ǥ" -#: ../edit.c:2655 #, c-format msgid "Scanning dictionary: %s" msgstr "򥹥: %s" -#: ../edit.c:3079 msgid " (insert) Scroll (^E/^Y)" msgstr " () (^E/^Y)" -#: ../edit.c:3081 msgid " (replace) Scroll (^E/^Y)" msgstr " (ִ) (^E/^Y)" -#: ../edit.c:3587 #, c-format msgid "Scanning: %s" msgstr ": %s" -#: ../edit.c:3614 msgid "Scanning tags." msgstr "򥹥." -#: ../edit.c:4519 msgid " Adding" msgstr " ɲ" @@ -441,702 +438,447 @@ msgstr " #. * be called before line = ml_get(), or when this address is no #. * longer needed. -- Acevedo. #. -#: ../edit.c:4562 msgid "-- Searching..." msgstr "-- ..." -#: ../edit.c:4618 msgid "Back at original" msgstr "Ϥ" -#: ../edit.c:4621 msgid "Word from other line" msgstr "¾ιԤñ" -#: ../edit.c:4624 msgid "The only match" msgstr "ͣγ" -#: ../edit.c:4680 #, c-format msgid "match %d of %d" msgstr "%d ܤγ ( %d )" -#: ../edit.c:4684 #, c-format msgid "match %d" msgstr "%d ܤγ" -#: ../eval.c:137 +#. maximum nesting of lists and dicts msgid "E18: Unexpected characters in :let" msgstr "E18: ͽʸ :let ˤޤ" -#: ../eval.c:138 -#, c-format -msgid "E684: list index out of range: %" -msgstr "E684: ꥹȤΥǥåϰϳǤ: %" - -#: ../eval.c:139 #, c-format msgid "E121: Undefined variable: %s" msgstr "E121: ̤ѿǤ: %s" -#: ../eval.c:140 msgid "E111: Missing ']'" msgstr "E111: ']' Ĥޤ" -#: ../eval.c:141 -#, c-format -msgid "E686: Argument of %s must be a List" -msgstr "E686: %s ΰϥꥹȷǤʤФʤޤ" - -#: ../eval.c:143 -#, c-format -msgid "E712: Argument of %s must be a List or Dictionary" -msgstr "E712: %s ΰϥꥹȷޤϼ񷿤ǤʤФʤޤ" - -#: ../eval.c:144 -msgid "E713: Cannot use empty key for Dictionary" -msgstr "E713: 񷿤˶ΥȤȤϤǤޤ" - -#: ../eval.c:145 -msgid "E714: List required" -msgstr "E714: ꥹȷɬפǤ" - -#: ../eval.c:146 -msgid "E715: Dictionary required" -msgstr "E715: 񷿤ɬפǤ" - -#: ../eval.c:147 -#, c-format -msgid "E118: Too many arguments for function: %s" -msgstr "E118: ؿΰ¿᤮ޤ: %s" - -#: ../eval.c:148 -#, c-format -msgid "E716: Key not present in Dictionary: %s" -msgstr "E716: 񷿤˥¸ߤޤ: %s" - -#: ../eval.c:150 -#, c-format -msgid "E122: Function %s already exists, add ! to replace it" -msgstr "E122: ؿ %s ѤǤ, ˤ ! ɲäƤ" - -#: ../eval.c:151 -msgid "E717: Dictionary entry already exists" -msgstr "E717: ˥ȥ꤬¸ߤޤ" - -#: ../eval.c:152 -msgid "E718: Funcref required" -msgstr "E718: ؿȷ׵ᤵޤ" - -#: ../eval.c:153 msgid "E719: Cannot use [:] with a Dictionary" msgstr "E719: [:] 򼭽񷿤Ȥ߹碌ƤϻȤޤ" -#: ../eval.c:154 #, c-format msgid "E734: Wrong variable type for %s=" msgstr "E734: ۤʤäѿǤ %s=" -#: ../eval.c:155 -#, c-format -msgid "E130: Unknown function: %s" -msgstr "E130: ̤ΤδؿǤ: %s" - -#: ../eval.c:156 #, c-format msgid "E461: Illegal variable name: %s" msgstr "E461: ѿ̾Ǥ: %s" -#: ../eval.c:157 msgid "E806: using Float as a String" msgstr "E806: ưʸȤưäƤޤ" -#: ../eval.c:1830 msgid "E687: Less targets than List items" msgstr "E687: åȤꥹȷǤ⾯ʤǤ" -#: ../eval.c:1834 msgid "E688: More targets than List items" msgstr "E688: åȤꥹȷǤ¿Ǥ" -#: ../eval.c:1906 msgid "Double ; in list of variables" msgstr "ꥹȷͤ2İʾ ; Фޤ" -#: ../eval.c:2078 #, c-format msgid "E738: Can't list variables for %s" msgstr "E738: %s ͤɽǤޤ" -#: ../eval.c:2391 msgid "E689: Can only index a List or Dictionary" msgstr "E689: ꥹȷȼ񷿰ʳϥǥåǤޤ" -#: ../eval.c:2396 msgid "E708: [:] must come last" msgstr "E708: [:] ϺǸǤʤФޤ" -#: ../eval.c:2439 msgid "E709: [:] requires a List value" msgstr "E709: [:] ˤϥꥹȷͤɬפǤ" -#: ../eval.c:2674 msgid "E710: List value has more items than target" msgstr "E710: ꥹȷѿ˥åȤ¿Ǥޤ" -#: ../eval.c:2678 msgid "E711: List value has not enough items" msgstr "E711: ꥹȷѿ˽ʬʿǤޤ" # -#: ../eval.c:2867 msgid "E690: Missing \"in\" after :for" msgstr "E690: :for θ \"in\" ޤ" -#: ../eval.c:3063 -#, c-format -msgid "E107: Missing parentheses: %s" -msgstr "E107: å '(' ޤ: %s" - -#: ../eval.c:3263 #, c-format msgid "E108: No such variable: \"%s\"" msgstr "E108: ѿϤޤ: \"%s\"" -#: ../eval.c:3333 msgid "E743: variable nested too deep for (un)lock" msgstr "E743: ()åˤѿҤ᤮ޤ" -#: ../eval.c:3630 msgid "E109: Missing ':' after '?'" msgstr "E109: '?' θ ':' ޤ" -#: ../eval.c:3893 msgid "E691: Can only compare List with List" msgstr "E691: ꥹȷϥꥹȷȤӤǤޤ" -#: ../eval.c:3895 -msgid "E692: Invalid operation for Lists" +msgid "E692: Invalid operation for List" msgstr "E692: ꥹȷˤ̵Ǥ" -#: ../eval.c:3915 msgid "E735: Can only compare Dictionary with Dictionary" msgstr "E735: 񷿤ϼ񷿤ȤӤǤޤ" -#: ../eval.c:3917 msgid "E736: Invalid operation for Dictionary" msgstr "E736: 񷿤ˤ̵Ǥ" -#: ../eval.c:3932 -msgid "E693: Can only compare Funcref with Funcref" -msgstr "E693: ؿȷϴؿȷȤӤǤޤ" - -#: ../eval.c:3934 msgid "E694: Invalid operation for Funcrefs" msgstr "E694: ؿȷˤ̵Ǥ" -#: ../eval.c:4277 msgid "E804: Cannot use '%' with Float" msgstr "E804: '%' ưȤ߹碌ƤϻȤޤ" -#: ../eval.c:4478 msgid "E110: Missing ')'" msgstr "E110: ')' Ĥޤ" -#: ../eval.c:4609 msgid "E695: Cannot index a Funcref" msgstr "E695: ؿȷϥǥåǤޤ" -#: ../eval.c:4839 +msgid "E909: Cannot index a special variable" +msgstr "E909: üѿϥǥåǤޤ" + #, c-format msgid "E112: Option name missing: %s" msgstr "E112: ץ̾ޤ: %s" -#: ../eval.c:4855 #, c-format msgid "E113: Unknown option: %s" msgstr "E113: ̤ΤΥץǤ: %s" -#: ../eval.c:4904 #, c-format msgid "E114: Missing quote: %s" msgstr "E114: (\") ޤ: %s" -#: ../eval.c:5020 #, c-format msgid "E115: Missing quote: %s" msgstr "E115: (') ޤ: %s" -#: ../eval.c:5084 -#, c-format -msgid "E696: Missing comma in List: %s" -msgstr "E696: ꥹȷ˥ޤޤ: %s" - -#: ../eval.c:5091 -#, c-format -msgid "E697: Missing end of List ']': %s" -msgstr "E697: ꥹȷκǸ ']' ޤ: %s" - -#: ../eval.c:5807 msgid "Not enough memory to set references, garbage collection aborted!" msgstr "" "٥å쥯ߤޤ! ȤΤ˥꤬­ޤ" -#: ../eval.c:6475 -#, c-format -msgid "E720: Missing colon in Dictionary: %s" -msgstr "E720: 񷿤˥󤬤ޤ: %s" +msgid "E724: variable nested too deep for displaying" +msgstr "E724: ɽˤѿҤ᤮ޤ" -#: ../eval.c:6499 -#, c-format -msgid "E721: Duplicate key in Dictionary: \"%s\"" -msgstr "E721: 񷿤˽ʣޤ: \"%s\"" +msgid "E805: Using a Float as a Number" +msgstr "E805: ưͤȤưäƤޤ" -#: ../eval.c:6517 -#, c-format -msgid "E722: Missing comma in Dictionary: %s" -msgstr "E722: 񷿤˥ޤޤ: %s" +msgid "E703: Using a Funcref as a Number" +msgstr "E703: ؿȷͤȤưäƤޤ" -#: ../eval.c:6524 -#, c-format -msgid "E723: Missing end of Dictionary '}': %s" -msgstr "E723: 񷿤κǸ '}' ޤ: %s" +msgid "E745: Using a List as a Number" +msgstr "E745: ꥹȷͤȤưäƤޤ" -#: ../eval.c:6555 -msgid "E724: variable nested too deep for displaying" -msgstr "E724: ɽˤѿҤ᤮ޤ" +msgid "E728: Using a Dictionary as a Number" +msgstr "E728: 񷿤ͤȤưäƤޤ" + +msgid "E910: Using a Job as a Number" +msgstr "E910: ֤ͤȤưäƤޤ" + +msgid "E913: Using a Channel as a Number" +msgstr "E913: ͥͤȤưäƤޤ" + +msgid "E891: Using a Funcref as a Float" +msgstr "E891: ؿȷưȤưäƤޤ" + +msgid "E892: Using a String as a Float" +msgstr "E892: ʸưȤưäƤޤ" + +msgid "E893: Using a List as a Float" +msgstr "E893: ꥹȷưȤưäƤޤ" + +msgid "E894: Using a Dictionary as a Float" +msgstr "E894: 񷿤ưȤưäƤޤ" + +msgid "E907: Using a special value as a Float" +msgstr "E907: üͤưȤưäƤޤ" + +msgid "E911: Using a Job as a Float" +msgstr "E911: ֤ưȤưäƤޤ" + +msgid "E914: Using a Channel as a Float" +msgstr "E914: ͥưȤưäƤޤ" + +msgid "E729: using Funcref as a String" +msgstr "E729: ؿȷʸȤưäƤޤ" + +msgid "E730: using List as a String" +msgstr "E730: ꥹȷʸȤưäƤޤ" + +msgid "E731: using Dictionary as a String" +msgstr "E731: 񷿤ʸȤưäƤޤ" + +msgid "E908: using an invalid value as a String" +msgstr "E908: ̵ͤʸȤưäƤޤ" -#: ../eval.c:7188 #, c-format -msgid "E740: Too many arguments for function %s" -msgstr "E740: ؿΰ¿᤮ޤ: %s" +msgid "E795: Cannot delete variable %s" +msgstr "E795: ѿ %s Ǥޤ" -#: ../eval.c:7190 #, c-format -msgid "E116: Invalid arguments for function %s" -msgstr "E116: ؿ̵ʰǤ: %s" +msgid "E704: Funcref variable name must start with a capital: %s" +msgstr "E704: ؿȷѿ̾ʸǻϤޤʤФʤޤ: %s" -#: ../eval.c:7377 #, c-format -msgid "E117: Unknown function: %s" -msgstr "E117: ̤ΤδؿǤ: %s" +msgid "E705: Variable name conflicts with existing function: %s" +msgstr "E705: ѿ̾¸δؿ̾Ⱦͤޤ: %s" -#: ../eval.c:7383 #, c-format -msgid "E119: Not enough arguments for function: %s" -msgstr "E119: ؿΰ­ޤ: %s" +msgid "E741: Value is locked: %s" +msgstr "E741: ͤåƤޤ: %s" + +msgid "Unknown" +msgstr "" -#: ../eval.c:7387 #, c-format -msgid "E120: Using not in a script context: %s" -msgstr "E120: ץȰʳȤޤ: %s" +msgid "E742: Cannot change value of %s" +msgstr "E742: %s ͤѹǤޤ" + +msgid "E698: variable nested too deep for making a copy" +msgstr "E698: ԡˤѿҤ᤮ޤ" + +msgid "" +"\n" +"# global variables:\n" +msgstr "" +"\n" +"# Хѿ:\n" + +msgid "" +"\n" +"\tLast set from " +msgstr "" +"\n" +"\tǸ˥åȤץ: " + +msgid "map() argument" +msgstr "map() ΰ" + +msgid "filter() argument" +msgstr "filter() ΰ" -#: ../eval.c:7391 #, c-format -msgid "E725: Calling dict function without Dictionary: %s" -msgstr "E725: ѴؿƤФޤ񤬤ޤ: %s" +msgid "E686: Argument of %s must be a List" +msgstr "E686: %s ΰϥꥹȷǤʤФʤޤ" + +msgid "E928: String required" +msgstr "E928: ʸɬפǤ" -#: ../eval.c:7453 msgid "E808: Number or Float required" msgstr "E808: ͤưɬפǤ" -#: ../eval.c:7503 msgid "add() argument" msgstr "add() ΰ" -#: ../eval.c:7907 -msgid "E699: Too many arguments" -msgstr "E699: ¿᤮ޤ" - -#: ../eval.c:8073 msgid "E785: complete() can only be used in Insert mode" msgstr "E785: complete() ⡼ɤǤѤǤޤ" -#: ../eval.c:8156 +#. +#. * Yes this is ugly, I don't particularly like it either. But doing it +#. * this way has the compelling advantage that translations need not to +#. * be touched at all. See below what 'ok' and 'ync' are used for. +#. msgid "&Ok" msgstr "&Ok" -#: ../eval.c:8676 -#, c-format -msgid "E737: Key already exists: %s" -msgstr "E737: ϴ¸ߤޤ: %s" - -#: ../eval.c:8692 -msgid "extend() argument" -msgstr "extend() ΰ" - -#: ../eval.c:8915 -msgid "map() argument" -msgstr "map() ΰ" - -#: ../eval.c:8916 -msgid "filter() argument" -msgstr "filter() ΰ" - -#: ../eval.c:9229 #, c-format -msgid "+-%s%3ld lines: " -msgstr "+-%s%3ld : " +msgid "+-%s%3ld line: " +msgid_plural "+-%s%3ld lines: " +msgstr[0] "+-%s%3ld : " -#: ../eval.c:9291 #, c-format msgid "E700: Unknown function: %s" msgstr "E700: ̤ΤδؿǤ: %s" -#: ../eval.c:10729 +msgid "E922: expected a dict" +msgstr "E922: 񤬴ԤƤޤ" + +msgid "E923: Second argument of function() must be a list or a dict" +msgstr "E923: function() 2 ϥꥹȷޤϼ񷿤ǤʤФʤޤ" + +msgid "" +"&OK\n" +"&Cancel" +msgstr "" +"(&O)\n" +"󥻥(&C)" + msgid "called inputrestore() more often than inputsave()" msgstr "inputrestore() inputsave() ¿ƤФޤ" -#: ../eval.c:10771 msgid "insert() argument" msgstr "insert() ΰ" -#: ../eval.c:10841 msgid "E786: Range not allowed" msgstr "E786: ϰϻϵĤƤޤ" -#: ../eval.c:11140 +msgid "E916: not a valid job" +msgstr "E916: ͭʥ֤ǤϤޤ" + msgid "E701: Invalid type for len()" msgstr "E701: len() ˤ̵ʷǤ" -#: ../eval.c:11980 +#, c-format +msgid "E798: ID is reserved for \":match\": %ld" +msgstr "E798: ID \":match\" Τͽ󤵤Ƥޤ: %ld" + msgid "E726: Stride is zero" msgstr "E726: ȥ饤() 0 Ǥ" -#: ../eval.c:11982 msgid "E727: Start past end" msgstr "E727: ϰ֤λ֤ۤޤ" -#: ../eval.c:12024 ../eval.c:15297 msgid "" msgstr "<>" -#: ../eval.c:12282 +msgid "E240: No connection to Vim server" +msgstr "E240: Vim Сؤ³ޤ" + +#, c-format +msgid "E241: Unable to send to %s" +msgstr "E241: %s 뤳ȤǤޤ" + +msgid "E277: Unable to read a server reply" +msgstr "E277: Сαޤ" + msgid "remove() argument" msgstr "remove() ΰ" # Added at 10-Mar-2004. -#: ../eval.c:12466 msgid "E655: Too many symbolic links (cycle?)" msgstr "E655: ܥå󥯤¿᤮ޤ (۴ĤƤǽޤ)" -#: ../eval.c:12593 msgid "reverse() argument" msgstr "reverse() ΰ" -#: ../eval.c:13721 -msgid "sort() argument" +msgid "E258: Unable to send to client" +msgstr "E258: 饤Ȥ뤳ȤǤޤ" + +#, c-format +msgid "E927: Invalid action: '%s'" +msgstr "E927: ̵Ǥ: %s" + +msgid "sort() argument" msgstr "sort() ΰ" -#: ../eval.c:13721 msgid "uniq() argument" msgstr "uniq() ΰ" -#: ../eval.c:13776 msgid "E702: Sort compare function failed" msgstr "E702: ȤӴؿԤޤ" -#: ../eval.c:13806 msgid "E882: Uniq compare function failed" msgstr "E882: Uniq ӴؿԤޤ" -#: ../eval.c:14085 msgid "(Invalid)" msgstr "(̵)" -#: ../eval.c:14590 -msgid "E677: Error writing temp file" -msgstr "E677: ե˥顼ȯޤ" - -#: ../eval.c:16159 -msgid "E805: Using a Float as a Number" -msgstr "E805: ưͤȤưäƤޤ" - -#: ../eval.c:16162 -msgid "E703: Using a Funcref as a Number" -msgstr "E703: ؿȷͤȤưäƤޤ" - -#: ../eval.c:16170 -msgid "E745: Using a List as a Number" -msgstr "E745: ꥹȷͤȤưäƤޤ" - -#: ../eval.c:16173 -msgid "E728: Using a Dictionary as a Number" -msgstr "E728: 񷿤ͤȤưäƤޤ" - -msgid "E891: Using a Funcref as a Float" -msgstr "E891: ؿȷưȤưäƤޤ" - -msgid "E892: Using a String as a Float" -msgstr "E892: ʸưȤưäƤޤ" - -msgid "E893: Using a List as a Float" -msgstr "E893: ꥹȷưȤưäƤޤ" - -msgid "E894: Using a Dictionary as a Float" -msgstr "E894: 񷿤ưȤưäƤޤ" - -#: ../eval.c:16259 -msgid "E729: using Funcref as a String" -msgstr "E729: ؿȷʸȤưäƤޤ" - -#: ../eval.c:16262 -msgid "E730: using List as a String" -msgstr "E730: ꥹȷʸȤưäƤޤ" - -#: ../eval.c:16265 -msgid "E731: using Dictionary as a String" -msgstr "E731: 񷿤ʸȤưäƤޤ" - -#: ../eval.c:16619 -#, c-format -msgid "E706: Variable type mismatch for: %s" -msgstr "E706: ѿηפޤ: %s" - -#: ../eval.c:16705 -#, c-format -msgid "E795: Cannot delete variable %s" -msgstr "E795: ѿ %s Ǥޤ" - -#: ../eval.c:16724 -#, c-format -msgid "E704: Funcref variable name must start with a capital: %s" -msgstr "E704: ؿȷѿ̾ʸǻϤޤʤФʤޤ: %s" - -#: ../eval.c:16732 -#, c-format -msgid "E705: Variable name conflicts with existing function: %s" -msgstr "E705: ѿ̾¸δؿ̾Ⱦͤޤ: %s" - -#: ../eval.c:16763 -#, c-format -msgid "E741: Value is locked: %s" -msgstr "E741: ͤåƤޤ: %s" - -#: ../eval.c:16764 ../eval.c:16769 ../message.c:1839 -msgid "Unknown" -msgstr "" - -#: ../eval.c:16768 -#, c-format -msgid "E742: Cannot change value of %s" -msgstr "E742: %s ͤѹǤޤ" - -#: ../eval.c:16838 -msgid "E698: variable nested too deep for making a copy" -msgstr "E698: ԡˤѿҤ᤮ޤ" - -#: ../eval.c:17249 -#, c-format -msgid "E123: Undefined function: %s" -msgstr "E123: ̤δؿǤ: %s" - -#: ../eval.c:17260 -#, c-format -msgid "E124: Missing '(': %s" -msgstr "E124: '(' ޤ: %s" - -#: ../eval.c:17293 -msgid "E862: Cannot use g: here" -msgstr "E862: Ǥ g: ϻȤޤ" - -#: ../eval.c:17312 -#, c-format -msgid "E125: Illegal argument: %s" -msgstr "E125: ʰǤ: %s" - -#: ../eval.c:17323 -#, c-format -msgid "E853: Duplicate argument name: %s" -msgstr "E853: ̾ʣƤޤ: %s" - -#: ../eval.c:17416 -msgid "E126: Missing :endfunction" -msgstr "E126: :endfunction ޤ" - -#: ../eval.c:17537 -#, c-format -msgid "E707: Function name conflicts with variable: %s" -msgstr "E707: ؿ̾ѿ̾Ⱦͤޤ: %s" - -#: ../eval.c:17549 -#, c-format -msgid "E127: Cannot redefine function %s: It is in use" -msgstr "E127: ؿ %s Ǥޤ: Ǥ" - -#: ../eval.c:17604 -#, c-format -msgid "E746: Function name does not match script file name: %s" -msgstr "E746: ؿ̾ץȤΥե̾Ȱפޤ: %s" - -#: ../eval.c:17716 -msgid "E129: Function name required" -msgstr "E129: ؿ̾׵ᤵޤ" - -#: ../eval.c:17824 -#, c-format -msgid "E128: Function name must start with a capital or \"s:\": %s" -msgstr "E128: ؿ̾ʸ \"s:\" ǻϤޤʤФʤޤ: %s" - -#: ../eval.c:17833 -#, c-format -msgid "E884: Function name cannot contain a colon: %s" -msgstr "E884: ؿ̾ˤϥϴޤޤ: %s" - -#: ../eval.c:18336 -#, c-format -msgid "E131: Cannot delete function %s: It is in use" -msgstr "E131: ؿ %s Ǥޤ: Ǥ" - -#: ../eval.c:18441 -msgid "E132: Function call depth is higher than 'maxfuncdepth'" -msgstr "E132: ؿƽФҿ 'maxfuncdepth' Ķޤ" - -#: ../eval.c:18568 -#, c-format -msgid "calling %s" -msgstr "%s ¹Ǥ" - -#: ../eval.c:18651 -#, c-format -msgid "%s aborted" -msgstr "%s Ǥޤ" - -#: ../eval.c:18653 #, c-format -msgid "%s returning #%" -msgstr "%s #% ֤ޤ" +msgid "E935: invalid submatch number: %d" +msgstr "E935: ̵ʥ֥ޥåֹ: %d" -#: ../eval.c:18670 -#, c-format -msgid "%s returning %s" -msgstr "%s %s ֤ޤ" - -#: ../eval.c:18691 ../ex_cmds2.c:2695 -#, c-format -msgid "continuing in %s" -msgstr "%s μ¹Ԥ³Ǥ" - -#: ../eval.c:18795 -msgid "E133: :return not inside a function" -msgstr "E133: ؿ :return ޤ" - -#: ../eval.c:19159 -msgid "" -"\n" -"# global variables:\n" -msgstr "" -"\n" -"# Хѿ:\n" - -#: ../eval.c:19254 -msgid "" -"\n" -"\tLast set from " -msgstr "" -"\n" -"\tLast set from " +msgid "E677: Error writing temp file" +msgstr "E677: ե˥顼ȯޤ" -#: ../eval.c:19272 -msgid "No old files" -msgstr "ŤեϤޤ" +msgid "E921: Invalid callback argument" +msgstr "E921: ̵ʥХåǤ" -#: ../ex_cmds.c:122 #, c-format msgid "<%s>%s%s %d, Hex %02x, Octal %03o" msgstr "<%s>%s%s %d, 16ʿ %02x, 8ʿ %03o" -#: ../ex_cmds.c:145 #, c-format msgid "> %d, Hex %04x, Octal %o" msgstr "> %d, 16ʿ %04x, 8ʿ %o" -#: ../ex_cmds.c:146 #, c-format msgid "> %d, Hex %08x, Octal %o" msgstr "> %d, 16ʿ %08x, 8ʿ %o" -#: ../ex_cmds.c:684 msgid "E134: Move lines into themselves" msgstr "E134: Ԥ򤽤켫ȤˤϰưǤޤ" -#: ../ex_cmds.c:747 msgid "1 line moved" msgstr "1 Ԥưޤ" -#: ../ex_cmds.c:749 #, c-format -msgid "% lines moved" -msgstr "% Ԥưޤ" +msgid "%ld lines moved" +msgstr "%ld Ԥưޤ" -#: ../ex_cmds.c:1175 #, c-format -msgid "% lines filtered" -msgstr "% Ԥե륿ޤ" +msgid "%ld lines filtered" +msgstr "%ld Ԥե륿ޤ" -#: ../ex_cmds.c:1194 msgid "E135: *Filter* Autocommands must not change current buffer" msgstr "E135: *ե륿* autocommandϸߤΥХåեѹƤϤޤ" -#: ../ex_cmds.c:1244 msgid "[No write since last change]\n" msgstr "[Ǹѹ¸Ƥޤ]\n" -#: ../ex_cmds.c:1424 #, c-format msgid "%sviminfo: %s in line: " msgstr "%sviminfo: %s : " -#: ../ex_cmds.c:1431 msgid "E136: viminfo: Too many errors, skipping rest of file" msgstr "E136: viminfo: 顼¿᤮Τ, ʹߤϥåפޤ" -#: ../ex_cmds.c:1458 #, c-format msgid "Reading viminfo file \"%s\"%s%s%s" msgstr "viminfoե \"%s\"%s%s%s ɹ" -#: ../ex_cmds.c:1460 msgid " info" msgstr " " -#: ../ex_cmds.c:1461 msgid " marks" msgstr " ޡ" -#: ../ex_cmds.c:1462 msgid " oldfiles" msgstr " ե뷲" -#: ../ex_cmds.c:1463 msgid " FAILED" msgstr " " #. avoid a wait_return for this message, it's annoying -#: ../ex_cmds.c:1541 #, c-format msgid "E137: Viminfo file is not writable: %s" msgstr "E137: viminfoե뤬ߤǤޤ: %s" -#: ../ex_cmds.c:1626 +#, c-format +msgid "E929: Too many viminfo temp files, like %s!" +msgstr "E929: viminfoե뤬¿᤮ޤ! : %s" + #, c-format msgid "E138: Can't write viminfo file %s!" msgstr "E138: viminfoե %s ¸Ǥޤ!" -#: ../ex_cmds.c:1635 #, c-format msgid "Writing viminfo file \"%s\"" msgstr "viminfoե \"%s\" " +#, c-format +msgid "E886: Can't rename viminfo file to %s!" +msgstr "E886: viminfoե %s ̾ѹǤޤ!" + #. Write the info: -#: ../ex_cmds.c:1720 #, c-format msgid "# This viminfo file was generated by Vim %s.\n" msgstr "# viminfo ե Vim %s ˤäޤ.\n" -#: ../ex_cmds.c:1722 msgid "" "# You may edit it if you're careful!\n" "\n" @@ -1144,47 +886,47 @@ msgstr "" "# ѹݤˤϽʬդƤ!\n" "\n" -#: ../ex_cmds.c:1723 msgid "# Value of 'encoding' when this file was written\n" msgstr "# Υե뤬񤫤줿 'encoding' \n" -#: ../ex_cmds.c:1800 msgid "Illegal starting char" msgstr "ƬʸǤ" -#: ../ex_cmds.c:2162 +msgid "" +"\n" +"# Bar lines, copied verbatim:\n" +msgstr "" +"\n" +"# '|' ǻϤޤԤΡʸ̤Υԡ:\n" + +msgid "Save As" +msgstr "̾¸" + msgid "Write partial file?" msgstr "եʬŪ¸ޤ?" -#: ../ex_cmds.c:2166 msgid "E140: Use ! to write partial buffer" msgstr "E140: ХåեʬŪ¸ˤ ! ȤäƤ" -#: ../ex_cmds.c:2281 #, c-format msgid "Overwrite existing file \"%s\"?" msgstr "¸Υե \"%s\" 񤭤ޤ?" -#: ../ex_cmds.c:2317 #, c-format msgid "Swap file \"%s\" exists, overwrite anyway?" msgstr "åץե \"%s\" ¸ߤޤ. 񤭤ޤ?" -#: ../ex_cmds.c:2326 #, c-format msgid "E768: Swap file exists: %s (:silent! overrides)" msgstr "E768: åץե뤬¸ߤޤ: %s (:silent! ɲäǾ)" -#: ../ex_cmds.c:2381 #, c-format -msgid "E141: No file name for buffer %" -msgstr "E141: Хåե % ˤ̾ޤ" +msgid "E141: No file name for buffer %ld" +msgstr "E141: Хåե %ld ˤ̾ޤ" -#: ../ex_cmds.c:2412 msgid "E142: File not written: Writing is disabled by 'write' option" msgstr "E142: ե¸ޤǤ: 'write' ץˤ̵Ǥ" -#: ../ex_cmds.c:2434 #, c-format msgid "" "'readonly' option is set for \"%s\".\n" @@ -1193,7 +935,6 @@ msgstr "" "\"%s\" ˤ 'readonly' ץꤵƤޤ.\n" "񤭶򤷤ޤ?" -#: ../ex_cmds.c:2439 #, c-format msgid "" "File permissions of \"%s\" are read-only.\n" @@ -1204,83 +945,68 @@ msgstr "" "Ǥⶲ餯񤭹ळȤϲǽǤ.\n" "³ޤ?" -#: ../ex_cmds.c:2451 #, c-format msgid "E505: \"%s\" is read-only (add ! to override)" msgstr "E505: \"%s\" ɹѤǤ (ˤ ! ɲ)" -#: ../ex_cmds.c:3120 +msgid "Edit File" +msgstr "եԽ" + #, c-format msgid "E143: Autocommands unexpectedly deleted new buffer %s" msgstr "E143: autocommandͽХåե %s ޤ" -#: ../ex_cmds.c:3313 msgid "E144: non-numeric argument to :z" msgstr "E144: ǤϤʤ :z Ϥޤ" -#: ../ex_cmds.c:3404 msgid "E145: Shell commands not allowed in rvim" msgstr "E145: rvimǤϥ륳ޥɤȤޤ" -#: ../ex_cmds.c:3498 msgid "E146: Regular expressions can't be delimited by letters" msgstr "E146: ɽʸǶڤ뤳ȤǤޤ" -#: ../ex_cmds.c:3964 #, c-format msgid "replace with %s (y/n/a/q/l/^E/^Y)?" msgstr "%s ִޤ? (y/n/a/q/l/^E/^Y)" -#: ../ex_cmds.c:4379 msgid "(Interrupted) " msgstr "(ޤޤ) " -#: ../ex_cmds.c:4384 msgid "1 match" msgstr "1 ս곺ޤ" -#: ../ex_cmds.c:4384 msgid "1 substitution" msgstr "1 սִޤ" -#: ../ex_cmds.c:4387 #, c-format -msgid "% matches" -msgstr "% ս곺ޤ" +msgid "%ld matches" +msgstr "%ld ս곺ޤ" -#: ../ex_cmds.c:4388 #, c-format -msgid "% substitutions" -msgstr "% սִޤ" +msgid "%ld substitutions" +msgstr "%ld սִޤ" -#: ../ex_cmds.c:4392 msgid " on 1 line" msgstr " ( 1 )" -#: ../ex_cmds.c:4395 #, c-format -msgid " on % lines" -msgstr " ( % )" +msgid " on %ld lines" +msgstr " ( %ld )" -#: ../ex_cmds.c:4438 msgid "E147: Cannot do :global recursive" msgstr "E147: :global ƵŪˤϻȤޤ" -#: ../ex_cmds.c:4467 msgid "E148: Regular expression missing from global" msgstr "E148: globalޥɤɽꤵƤޤ" -#: ../ex_cmds.c:4508 #, c-format msgid "Pattern found in every line: %s" msgstr "ѥƤιԤǸĤޤ: %s" -#: ../ex_cmds.c:4510 #, c-format msgid "Pattern not found: %s" msgstr "ѥϸĤޤǤ: %s" -#: ../ex_cmds.c:4587 msgid "" "\n" "# Last Substitute String:\n" @@ -1290,110 +1016,102 @@ msgstr "" "# Ǹִ줿ʸ:\n" "$" -#: ../ex_cmds.c:4679 msgid "E478: Don't panic!" msgstr "E478: ƤʤǤ" -#: ../ex_cmds.c:4717 #, c-format msgid "E661: Sorry, no '%s' help for %s" msgstr "E661: ǰǤ '%s' Υإפ %s ˤϤޤ" -#: ../ex_cmds.c:4719 #, c-format msgid "E149: Sorry, no help for %s" msgstr "E149: ǰǤ %s ˤϥإפޤ" -#: ../ex_cmds.c:4751 #, c-format msgid "Sorry, help file \"%s\" not found" msgstr "ǰǤإץե \"%s\" Ĥޤ" -#: ../ex_cmds.c:5323 #, c-format -msgid "E150: Not a directory: %s" -msgstr "E150: ǥ쥯ȥǤϤޤ: %s" +msgid "E151: No match: %s" +msgstr "E151: ޥåϤޤ: %s" -#: ../ex_cmds.c:5446 #, c-format msgid "E152: Cannot open %s for writing" msgstr "E152: Ѥ %s 򳫤ޤ" -#: ../ex_cmds.c:5471 #, c-format msgid "E153: Unable to open %s for reading" msgstr "E153: ɹѤ %s 򳫤ޤ" # Added at 29-Apr-2004. -#: ../ex_cmds.c:5500 #, c-format msgid "E670: Mix of help file encodings within a language: %s" msgstr "E670: 1ĤθΥإץեʣΥ󥳡ɤߤƤޤ: %s" -#: ../ex_cmds.c:5565 #, c-format msgid "E154: Duplicate tag \"%s\" in file %s/%s" msgstr "E154: \"%s\" ե %s/%s ˽ʣƤޤ" -#: ../ex_cmds.c:5687 +#, c-format +msgid "E150: Not a directory: %s" +msgstr "E150: ǥ쥯ȥǤϤޤ: %s" + #, c-format msgid "E160: Unknown sign command: %s" msgstr "E160: ̤ΤsignޥɤǤ: %s" -#: ../ex_cmds.c:5704 msgid "E156: Missing sign name" msgstr "E156: sign̾ޤ" -#: ../ex_cmds.c:5746 msgid "E612: Too many signs defined" msgstr "E612: sign¿Ĥޤ" -#: ../ex_cmds.c:5813 #, c-format msgid "E239: Invalid sign text: %s" msgstr "E239: ̵signΥƥȤǤ: %s" -#: ../ex_cmds.c:5844 ../ex_cmds.c:6035 #, c-format msgid "E155: Unknown sign: %s" msgstr "E155: ̤ΤsignǤ: %s" -#: ../ex_cmds.c:5877 msgid "E159: Missing sign number" msgstr "E159: signֹ椬ޤ" -#: ../ex_cmds.c:5971 #, c-format msgid "E158: Invalid buffer name: %s" msgstr "E158: ̵ʥХåե̾Ǥ: %s" -#: ../ex_cmds.c:6008 +msgid "E934: Cannot jump to a buffer that does not have a name" +msgstr "E934: ̵̾ХåեؤϥפǤޤ" + #, c-format -msgid "E157: Invalid sign ID: %" -msgstr "E157: ̵sign̻ҤǤ: %" +msgid "E157: Invalid sign ID: %ld" +msgstr "E157: ̵sign̻ҤǤ: %ld" #, c-format msgid "E885: Not possible to change sign %s" msgstr "E885: ѹǤʤ sign Ǥ: %s" -#: ../ex_cmds.c:6066 +# Added at 27-Jan-2004. +msgid " (NOT FOUND)" +msgstr " (Ĥޤ)" + msgid " (not supported)" msgstr " (󥵥ݡ)" -#: ../ex_cmds.c:6169 msgid "[Deleted]" msgstr "[]" -#: ../ex_cmds2.c:139 +msgid "No old files" +msgstr "ŤեϤޤ" + msgid "Entering Debug mode. Type \"cont\" to continue." msgstr "ǥХå⡼ɤޤ. ³ˤ \"cont\" ϤƤ." -#: ../ex_cmds2.c:143 ../ex_docmd.c:759 #, c-format -msgid "line %: %s" -msgstr " %: %s" +msgid "line %ld: %s" +msgstr " %ld: %s" -#: ../ex_cmds2.c:145 #, c-format msgid "cmd: %s" msgstr "ޥ: %s" @@ -1405,232 +1123,184 @@ msgstr " msgid "frame at highest level: %d" msgstr "ǹ٥Υե졼: %d" -#: ../ex_cmds2.c:322 #, c-format -msgid "Breakpoint in \"%s%s\" line %" -msgstr "֥졼ݥ \"%s%s\" %" +msgid "Breakpoint in \"%s%s\" line %ld" +msgstr "֥졼ݥ \"%s%s\" %ld" -#: ../ex_cmds2.c:581 #, c-format msgid "E161: Breakpoint not found: %s" msgstr "E161: ֥졼ݥȤĤޤ: %s" -#: ../ex_cmds2.c:611 msgid "No breakpoints defined" msgstr "֥졼ݥȤƤޤ" -#: ../ex_cmds2.c:617 #, c-format -msgid "%3d %s %s line %" -msgstr "%3d %s %s %" +msgid "%3d %s %s line %ld" +msgstr "%3d %s %s %ld" -#: ../ex_cmds2.c:942 msgid "E750: First use \":profile start {fname}\"" msgstr "E750: \":profile start {fname}\" ¹ԤƤ" -#: ../ex_cmds2.c:1269 #, c-format msgid "Save changes to \"%s\"?" msgstr "ѹ \"%s\" ¸ޤ?" -#: ../ex_cmds2.c:1271 ../ex_docmd.c:8851 msgid "Untitled" msgstr "̵" -#: ../ex_cmds2.c:1421 #, c-format msgid "E162: No write since last change for buffer \"%s\"" msgstr "E162: Хåե \"%s\" ѹ¸Ƥޤ" -#: ../ex_cmds2.c:1480 msgid "Warning: Entered other buffer unexpectedly (check autocommands)" msgstr "ٹ: ͽ¾Хåեذưޤ (autocommands Ĵ٤Ƥ)" -#: ../ex_cmds2.c:1826 msgid "E163: There is only one file to edit" msgstr "E163: Խե1Ĥޤ" -#: ../ex_cmds2.c:1828 msgid "E164: Cannot go before first file" msgstr "E164: ǽΥեˤϹԤޤ" -#: ../ex_cmds2.c:1830 msgid "E165: Cannot go beyond last file" msgstr "E165: ǸΥեۤƸˤϹԤޤ" -#: ../ex_cmds2.c:2175 #, c-format msgid "E666: compiler not supported: %s" msgstr "E666: ΥѥˤбƤޤ: %s" -#: ../ex_cmds2.c:2257 #, c-format msgid "Searching for \"%s\" in \"%s\"" msgstr "\"%s\" \"%s\" 鸡" -#: ../ex_cmds2.c:2284 #, c-format msgid "Searching for \"%s\"" msgstr "\"%s\" 򸡺" -#: ../ex_cmds2.c:2307 #, c-format -msgid "not found in 'runtimepath': \"%s\"" -msgstr "'runtimepath' ˤϸĤޤ: \"%s\"" +msgid "not found in '%s': \"%s\"" +msgstr "'%s' ˤϤޤ: \"%s\"" + +msgid "Source Vim script" +msgstr "VimץȤμ" -#: ../ex_cmds2.c:2472 #, c-format msgid "Cannot source a directory: \"%s\"" msgstr "ǥ쥯ȥϼޤ: \"%s\"" -#: ../ex_cmds2.c:2518 #, c-format msgid "could not source \"%s\"" msgstr "\"%s\" ޤ" -#: ../ex_cmds2.c:2520 #, c-format -msgid "line %: could not source \"%s\"" -msgstr " %: \"%s\" ޤ" +msgid "line %ld: could not source \"%s\"" +msgstr " %ld: \"%s\" ޤ" -#: ../ex_cmds2.c:2535 #, c-format msgid "sourcing \"%s\"" msgstr "\"%s\" " -#: ../ex_cmds2.c:2537 #, c-format -msgid "line %: sourcing \"%s\"" -msgstr " %: %s " +msgid "line %ld: sourcing \"%s\"" +msgstr " %ld: %s " -#: ../ex_cmds2.c:2693 #, c-format msgid "finished sourcing %s" msgstr "%s μλ" -#: ../ex_cmds2.c:2765 +#, c-format +msgid "continuing in %s" +msgstr "%s μ¹Ԥ³Ǥ" + msgid "modeline" msgstr "⡼ɹ" -#: ../ex_cmds2.c:2767 msgid "--cmd argument" msgstr "--cmd " -#: ../ex_cmds2.c:2769 msgid "-c argument" msgstr "-c " -#: ../ex_cmds2.c:2771 msgid "environment variable" msgstr "Ķѿ" -#: ../ex_cmds2.c:2773 msgid "error handler" msgstr "顼ϥɥ" -#: ../ex_cmds2.c:3020 msgid "W15: Warning: Wrong line separator, ^M may be missing" msgstr "W15: ٹ: ԶڤǤ. ^M ʤΤǤ礦" -#: ../ex_cmds2.c:3139 msgid "E167: :scriptencoding used outside of a sourced file" msgstr "E167: :scriptencoding ץȰʳǻѤޤ" -#: ../ex_cmds2.c:3166 msgid "E168: :finish used outside of a sourced file" msgstr "E168: :finish ץȰʳǻѤޤ" -#: ../ex_cmds2.c:3389 #, c-format msgid "Current %slanguage: \"%s\"" msgstr "ߤ %s: \"%s\"" -#: ../ex_cmds2.c:3404 #, c-format msgid "E197: Cannot set language to \"%s\"" msgstr "E197: \"%s\" Ǥޤ" -#. don't redisplay the window -#. don't wait for return -#: ../ex_docmd.c:387 msgid "Entering Ex mode. Type \"visual\" to go to Normal mode." msgstr "" "Ex⡼ɤޤ. Ρޥ⡼ɤˤ\"visual\"ϤƤ." -#: ../ex_docmd.c:428 msgid "E501: At end-of-file" msgstr "E501: եνλ" -#: ../ex_docmd.c:513 msgid "E169: Command too recursive" msgstr "E169: ޥɤƵŪ᤮ޤ" -#: ../ex_docmd.c:1006 #, c-format msgid "E605: Exception not caught: %s" msgstr "E605: 㳰ªޤǤ: %s" -#: ../ex_docmd.c:1085 msgid "End of sourced file" msgstr "եκǸǤ" -#: ../ex_docmd.c:1086 msgid "End of function" msgstr "ؿκǸǤ" -#: ../ex_docmd.c:1628 msgid "E464: Ambiguous use of user-defined command" msgstr "E464: 桼ޥɤΤޤʻѤǤ" -#: ../ex_docmd.c:1638 msgid "E492: Not an editor command" msgstr "E492: ǥΥޥɤǤϤޤ" -#: ../ex_docmd.c:1729 msgid "E493: Backwards range given" msgstr "E493: դޤϰϤꤵޤ" -#: ../ex_docmd.c:1733 msgid "Backwards range given, OK to swap" msgstr "դޤϰϤꤵޤ, ؤޤ?" -#. append -#. typed wrong -#: ../ex_docmd.c:1787 msgid "E494: Use w or w>>" msgstr "E494: w ⤷ w>> ѤƤ" -#: ../ex_docmd.c:3454 -msgid "E319: The command is not available in this version" +msgid "E319: Sorry, the command is not available in this version" msgstr "E319: ΥСǤϤΥޥɤѤǤޤ, ʤ" -#: ../ex_docmd.c:3752 msgid "E172: Only one file name allowed" msgstr "E172: ե̾ 1 ĤˤƤ" -#: ../ex_docmd.c:4238 msgid "1 more file to edit. Quit anyway?" msgstr "Խ٤ե뤬 1 Ĥޤ, λޤ?" -#: ../ex_docmd.c:4242 #, c-format msgid "%d more files to edit. Quit anyway?" msgstr "Խ٤ե뤬 %d Ĥޤ, λޤ?" -#: ../ex_docmd.c:4248 msgid "E173: 1 more file to edit" msgstr "E173: Խ٤ե뤬 1 Ĥޤ" -#: ../ex_docmd.c:4250 #, c-format -msgid "E173: % more files to edit" -msgstr "E173: Խ٤ե뤬 % Ĥޤ" +msgid "E173: %ld more files to edit" +msgstr "E173: Խ٤ե뤬 %ld Ĥޤ" -#: ../ex_docmd.c:4320 msgid "E174: Command already exists: add ! to replace it" msgstr "E174: ޥɤˤޤ: ˤ ! ɲäƤ" -#: ../ex_docmd.c:4432 msgid "" "\n" " Name Args Address Complete Definition" @@ -1638,51 +1308,40 @@ msgstr "" "\n" " ̾ ɥ쥹 䴰 " -#: ../ex_docmd.c:4516 msgid "No user-defined commands found" msgstr "桼ޥɤĤޤǤ" -#: ../ex_docmd.c:4538 msgid "E175: No attribute specified" msgstr "E175: °Ƥޤ" -#: ../ex_docmd.c:4583 msgid "E176: Invalid number of arguments" msgstr "E176: ο̵Ǥ" -#: ../ex_docmd.c:4594 msgid "E177: Count cannot be specified twice" msgstr "E177: Ȥ2Żꤹ뤳ȤϤǤޤ" -#: ../ex_docmd.c:4603 msgid "E178: Invalid default value for count" msgstr "E178: Ȥξά̵ͤǤ" -#: ../ex_docmd.c:4625 msgid "E179: argument required for -complete" msgstr "E179: -complete ˤϰɬפǤ" msgid "E179: argument required for -addr" msgstr "E179: -addr ˤϰɬפǤ" -#: ../ex_docmd.c:4635 #, c-format msgid "E181: Invalid attribute: %s" msgstr "E181: ̵°Ǥ: %s" -#: ../ex_docmd.c:4678 msgid "E182: Invalid command name" msgstr "E182: ̵ʥޥ̾Ǥ" -#: ../ex_docmd.c:4691 msgid "E183: User defined commands must start with an uppercase letter" -msgstr "E183: 桼ޥɤϱʸǻϤޤʤФʤޤ" +msgstr "E183: 桼ޥɤϱʸǻϤޤʤФʤޤ" -#: ../ex_docmd.c:4696 msgid "E841: Reserved name, cannot be used for user defined command" msgstr "E841: ͽ̾ʤΤ, 桼ޥɤѤǤޤ" -#: ../ex_docmd.c:4751 #, c-format msgid "E184: No such user-defined command: %s" msgstr "E184: Υ桼ޥɤϤޤ: %s" @@ -1691,293 +1350,261 @@ msgstr "E184: msgid "E180: Invalid address type value: %s" msgstr "E180: ̵ʥɥ쥹ͤǤ: %s" -#: ../ex_docmd.c:5219 #, c-format msgid "E180: Invalid complete value: %s" msgstr "E180: ̵䴰Ǥ: %s" -#: ../ex_docmd.c:5225 msgid "E468: Completion argument only allowed for custom completion" msgstr "E468: 䴰ϥ䴰ǤѤǤޤ" -#: ../ex_docmd.c:5231 msgid "E467: Custom completion requires a function argument" msgstr "E467: 䴰ˤϰȤƴؿɬפǤ" -#: ../ex_docmd.c:5257 +msgid "unknown" +msgstr "" + #, c-format msgid "E185: Cannot find color scheme '%s'" msgstr "E185: 顼 '%s' Ĥޤ" -#: ../ex_docmd.c:5263 msgid "Greetings, Vim user!" msgstr "Vim Ȥ󡢤䤢!" -#: ../ex_docmd.c:5431 msgid "E784: Cannot close last tab page" msgstr "E784: ǸΥ֥ڡĤ뤳ȤϤǤޤ" -#: ../ex_docmd.c:5462 msgid "Already only one tab page" msgstr "˥֥ڡ1Ĥޤ" -#: ../ex_docmd.c:6004 +msgid "Edit File in new window" +msgstr "ɥǥեԽޤ" + #, c-format msgid "Tab page %d" msgstr "֥ڡ %d" -#: ../ex_docmd.c:6295 msgid "No swap file" msgstr "åץե뤬ޤ" -#: ../ex_docmd.c:6478 +msgid "Append File" +msgstr "ɲåե" + msgid "E747: Cannot change directory, buffer is modified (add ! to override)" msgstr "" "E747: ХåեƤΤ, ǥ쥯ȥѹǤޤ (! ɲä" ")" -#: ../ex_docmd.c:6485 msgid "E186: No previous directory" msgstr "E186: Υǥ쥯ȥϤޤ" -#: ../ex_docmd.c:6530 msgid "E187: Unknown" msgstr "E187: ̤" -#: ../ex_docmd.c:6610 msgid "E465: :winsize requires two number arguments" msgstr "E465: :winsize ˤ2ĤοͤΰɬפǤ" -#: ../ex_docmd.c:6655 +#, c-format +msgid "Window position: X %d, Y %d" +msgstr "ɥ: X %d, Y %d" + msgid "E188: Obtaining window position not implemented for this platform" msgstr "" "E188: Υץåȥۡˤϥɥ֤μǽϼƤޤ" -#: ../ex_docmd.c:6662 msgid "E466: :winpos requires two number arguments" msgstr "E466: :winpos ˤ2ĤοͤΰɬפǤ" -#: ../ex_docmd.c:7241 +msgid "E930: Cannot use :redir inside execute()" +msgstr "E930: execute() Ǥ :redir ϻȤޤ" + +msgid "Save Redirection" +msgstr "쥯Ȥ¸ޤ" + +msgid "Save View" +msgstr "ӥ塼¸ޤ" + +msgid "Save Session" +msgstr "å¸ޤ" + +msgid "Save Setup" +msgstr "¸ޤ" + #, c-format msgid "E739: Cannot create directory: %s" msgstr "E739: ǥ쥯ȥǤޤ: %s" -#: ../ex_docmd.c:7268 #, c-format msgid "E189: \"%s\" exists (add ! to override)" msgstr "E189: \"%s\" ¸ߤޤ (񤹤ˤ ! ɲäƤ)" -#: ../ex_docmd.c:7273 #, c-format msgid "E190: Cannot open \"%s\" for writing" msgstr "E190: \"%s\" ѤȤƳޤ" #. set mark -#: ../ex_docmd.c:7294 msgid "E191: Argument must be a letter or forward/backward quote" msgstr "E191: 1ʸαѻ (' `) ǤʤФޤ" -#: ../ex_docmd.c:7333 msgid "E192: Recursive use of :normal too deep" msgstr "E192: :normal κƵѤʤ᤮ޤ" -#: ../ex_docmd.c:7807 +msgid "E809: #< is not available without the +eval feature" +msgstr "E809: #< +eval ǽ̵ѤǤޤ" + msgid "E194: No alternate file name to substitute for '#'" msgstr "E194: '#'֤ե̾ޤ" -#: ../ex_docmd.c:7841 msgid "E495: no autocommand file name to substitute for \"\"" msgstr "E495: \"\"֤autocommandΥե̾ޤ" -#: ../ex_docmd.c:7850 msgid "E496: no autocommand buffer number to substitute for \"\"" msgstr "E496: \"\"֤autocommandХåեֹ椬ޤ" -#: ../ex_docmd.c:7861 msgid "E497: no autocommand match name to substitute for \"\"" msgstr "E497: \"\"֤autocommandγ̾ޤ" -#: ../ex_docmd.c:7870 msgid "E498: no :source file name to substitute for \"\"" msgstr "E498: \"\"֤ :source оݥե̾ޤ" -#: ../ex_docmd.c:7876 msgid "E842: no line number to use for \"\"" msgstr "E842: \"\"ֹ֤椬ޤ" -#: ../ex_docmd.c:7903 -#, fuzzy, c-format +#, no-c-format msgid "E499: Empty file name for '%' or '#', only works with \":p:h\"" msgstr "" "E499: '%' '#' ̵̾եʤΤ \":p:h\" ȼʤȤϤǤޤ" -#: ../ex_docmd.c:7905 msgid "E500: Evaluates to an empty string" msgstr "E500: ʸȤɾޤ" -#: ../ex_docmd.c:8838 msgid "E195: Cannot open viminfo file for reading" msgstr "E195: viminfoեɹѤȤƳޤ" -#: ../ex_eval.c:464 +msgid "E196: No digraphs in this version" +msgstr "E196: ΥС˹Ϥޤ" + msgid "E608: Cannot :throw exceptions with 'Vim' prefix" msgstr "E608: 'Vim' ǻϤޤ㳰 :throw Ǥޤ" #. always scroll up, don't overwrite -#: ../ex_eval.c:496 #, c-format msgid "Exception thrown: %s" msgstr "㳰ȯޤ: %s" -#: ../ex_eval.c:545 #, c-format msgid "Exception finished: %s" msgstr "㳰«ޤ: %s" -#: ../ex_eval.c:546 #, c-format msgid "Exception discarded: %s" msgstr "㳰˴ޤ: %s" -#: ../ex_eval.c:588 ../ex_eval.c:634 #, c-format -msgid "%s, line %" -msgstr "%s, %" +msgid "%s, line %ld" +msgstr "%s, %ld" #. always scroll up, don't overwrite -#: ../ex_eval.c:608 #, c-format msgid "Exception caught: %s" msgstr "㳰ªޤ: %s" -#: ../ex_eval.c:676 #, c-format msgid "%s made pending" msgstr "%s ˤ̤֤ޤ" -#: ../ex_eval.c:679 #, c-format msgid "%s resumed" msgstr "%s Ƴޤ" -#: ../ex_eval.c:683 #, c-format msgid "%s discarded" msgstr "%s ˴ޤ" -#: ../ex_eval.c:708 msgid "Exception" msgstr "㳰" -#: ../ex_eval.c:713 msgid "Error and interrupt" msgstr "顼ȳ" -#: ../ex_eval.c:715 msgid "Error" msgstr "顼" #. if (pending & CSTP_INTERRUPT) -#: ../ex_eval.c:717 msgid "Interrupt" msgstr "" -#: ../ex_eval.c:795 msgid "E579: :if nesting too deep" msgstr "E579: :if Ҥ᤮ޤ" -#: ../ex_eval.c:830 msgid "E580: :endif without :if" msgstr "E580: :if Τʤ :endif ޤ" -#: ../ex_eval.c:873 msgid "E581: :else without :if" msgstr "E581: :if Τʤ :else ޤ" -#: ../ex_eval.c:876 msgid "E582: :elseif without :if" msgstr "E582: :if Τʤ :elseif ޤ" -#: ../ex_eval.c:880 msgid "E583: multiple :else" msgstr "E583: ʣ :else ޤ" -#: ../ex_eval.c:883 msgid "E584: :elseif after :else" msgstr "E584: :else θ :elseif ޤ" -#: ../ex_eval.c:941 msgid "E585: :while/:for nesting too deep" msgstr "E585: :while :for Ҥ᤮ޤ" -#: ../ex_eval.c:1028 msgid "E586: :continue without :while or :for" msgstr "E586: :while :for Τʤ :continue ޤ" -#: ../ex_eval.c:1061 msgid "E587: :break without :while or :for" msgstr "E587: :while :for Τʤ :break ޤ" -#: ../ex_eval.c:1102 msgid "E732: Using :endfor with :while" msgstr "E732: :endfor :while Ȥ߹碌Ƥޤ" -#: ../ex_eval.c:1104 msgid "E733: Using :endwhile with :for" msgstr "E733: :endwhile :for Ȥ߹碌Ƥޤ" -#: ../ex_eval.c:1247 msgid "E601: :try nesting too deep" msgstr "E601: :try Ҥ᤮ޤ" -#: ../ex_eval.c:1317 msgid "E603: :catch without :try" msgstr "E603: :try Τʤ :catch ޤ" #. Give up for a ":catch" after ":finally" and ignore it. #. * Just parse. -#: ../ex_eval.c:1332 msgid "E604: :catch after :finally" msgstr "E604: :finally θ :catch ޤ" -#: ../ex_eval.c:1451 msgid "E606: :finally without :try" msgstr "E606: :try Τʤ :finally ޤ" #. Give up for a multiple ":finally" and ignore it. -#: ../ex_eval.c:1467 msgid "E607: multiple :finally" msgstr "E607: ʣ :finally ޤ" -#: ../ex_eval.c:1571 msgid "E602: :endtry without :try" msgstr "E602: :try Τʤ :endtry Ǥ" -#: ../ex_eval.c:2026 msgid "E193: :endfunction not inside a function" msgstr "E193: ؿγ :endfunction ޤ" -#: ../ex_getln.c:1643 msgid "E788: Not allowed to edit another buffer now" msgstr "E788: ߤ¾ΥХåեԽ뤳Ȥϵޤ" -#: ../ex_getln.c:1656 msgid "E811: Not allowed to change buffer information now" msgstr "E811: ߤϥХåեѹ뤳Ȥϵޤ" -#: ../ex_getln.c:3178 msgid "tagname" msgstr "̾" -#: ../ex_getln.c:3181 msgid " kind file\n" msgstr " ե\n" -#: ../ex_getln.c:4799 msgid "'history' option is zero" msgstr "ץ 'history' Ǥ" -#: ../ex_getln.c:5046 #, c-format msgid "" "\n" @@ -1986,303 +1613,224 @@ msgstr "" "\n" "# %s ܤ (ΤŤΤ):\n" -#: ../ex_getln.c:5047 msgid "Command Line" msgstr "ޥɥ饤" -#: ../ex_getln.c:5048 msgid "Search String" msgstr "ʸ" -#: ../ex_getln.c:5049 msgid "Expression" msgstr "" -#: ../ex_getln.c:5050 msgid "Input Line" msgstr "Ϲ" -#: ../ex_getln.c:5117 +msgid "Debug Line" +msgstr "ǥХå" + msgid "E198: cmd_pchar beyond the command length" msgstr "E198: cmd_pchar ޥĹĶޤ" -#: ../ex_getln.c:5279 msgid "E199: Active window or buffer deleted" msgstr "E199: ƥ֤ʥɥХåեޤ" -#: ../file_search.c:203 -msgid "E854: path too long for completion" -msgstr "E854: ѥĹ᤮䴰Ǥޤ" - -#: ../file_search.c:446 -#, c-format -msgid "" -"E343: Invalid path: '**[number]' must be at the end of the path or be " -"followed by '%s'." -msgstr "" -"E343: ̵ʥѥǤ: '**[]' pathκǸ夫 '%s' ³ƤʤȤޤ" -"." - -#: ../file_search.c:1505 -#, c-format -msgid "E344: Can't find directory \"%s\" in cdpath" -msgstr "E344: cdpathˤ \"%s\" Ȥե뤬ޤ" - -#: ../file_search.c:1508 -#, c-format -msgid "E345: Can't find file \"%s\" in path" -msgstr "E345: pathˤ \"%s\" Ȥե뤬ޤ" - -#: ../file_search.c:1512 -#, c-format -msgid "E346: No more directory \"%s\" found in cdpath" -msgstr "E346: cdpathˤϤʾ \"%s\" Ȥե뤬ޤ" - -#: ../file_search.c:1515 -#, c-format -msgid "E347: No more file \"%s\" found in path" -msgstr "E347: ѥˤϤʾ \"%s\" Ȥե뤬ޤ" - -#: ../fileio.c:137 msgid "E812: Autocommands changed buffer or buffer name" msgstr "E812: autocommandХåեХåե̾ѹޤ" -#: ../fileio.c:368 msgid "Illegal file name" msgstr "ʥե̾" -#: ../fileio.c:395 ../fileio.c:476 ../fileio.c:2543 ../fileio.c:2578 msgid "is a directory" msgstr "ϥǥ쥯ȥǤ" -#: ../fileio.c:397 msgid "is not a file" msgstr "ϥեǤϤޤ" -#: ../fileio.c:508 ../fileio.c:3522 +msgid "is a device (disabled with 'opendevice' option)" +msgstr "ϥǥХǤ ('opendevice' ץDzǤޤ)" + msgid "[New File]" msgstr "[ե]" -#: ../fileio.c:511 msgid "[New DIRECTORY]" msgstr "[ǥ쥯ȥ]" -#: ../fileio.c:529 ../fileio.c:532 msgid "[File too big]" msgstr "[ե]" -#: ../fileio.c:534 msgid "[Permission Denied]" msgstr "[¤ޤ]" -#: ../fileio.c:653 msgid "E200: *ReadPre autocommands made the file unreadable" msgstr "E200: *ReadPre autocommand եɹԲĤˤޤ" -#: ../fileio.c:655 msgid "E201: *ReadPre autocommands must not change current buffer" msgstr "E201: *ReadPre autocommand ϸߤΥХåեѤޤ" -#: ../fileio.c:672 -msgid "Nvim: Reading from stdin...\n" +msgid "Vim: Reading from stdin...\n" msgstr "Vim: ɸϤɹ...\n" +msgid "Reading from stdin..." +msgstr "ɸϤɹ..." + #. Re-opening the original file failed! -#: ../fileio.c:909 msgid "E202: Conversion made file unreadable!" msgstr "E202: ѴեɹԲĤˤޤ" -#. fifo or socket -#: ../fileio.c:1782 msgid "[fifo/socket]" msgstr "[FIFO/å]" -#. fifo -#: ../fileio.c:1788 msgid "[fifo]" msgstr "[FIFO]" -#. or socket -#: ../fileio.c:1794 msgid "[socket]" msgstr "[å]" -#. or character special -#: ../fileio.c:1801 msgid "[character special]" msgstr "[饯ǥХ]" -#: ../fileio.c:1815 msgid "[CR missing]" msgstr "[CR̵]" -#: ../fileio.c:1819 msgid "[long lines split]" msgstr "[Ĺʬ]" -#: ../fileio.c:1823 ../fileio.c:3512 msgid "[NOT converted]" msgstr "[̤Ѵ]" -#: ../fileio.c:1826 ../fileio.c:3515 msgid "[converted]" msgstr "[Ѵ]" -#: ../fileio.c:1831 #, c-format -msgid "[CONVERSION ERROR in line %]" -msgstr "[% ܤѴ顼]" +msgid "[CONVERSION ERROR in line %ld]" +msgstr "[%ld ܤѴ顼]" -#: ../fileio.c:1835 #, c-format -msgid "[ILLEGAL BYTE in line %]" -msgstr "[% ܤʥХ]" +msgid "[ILLEGAL BYTE in line %ld]" +msgstr "[%ld ܤʥХ]" -#: ../fileio.c:1838 msgid "[READ ERRORS]" msgstr "[ɹ顼]" -#: ../fileio.c:2104 msgid "Can't find temp file for conversion" msgstr "Ѵɬפʰե뤬Ĥޤ" -#: ../fileio.c:2110 msgid "Conversion with 'charconvert' failed" msgstr "'charconvert' ˤѴԤޤ" -#: ../fileio.c:2113 msgid "can't read output of 'charconvert'" msgstr "'charconvert' νϤɹޤǤ" -#: ../fileio.c:2437 msgid "E676: No matching autocommands for acwrite buffer" msgstr "E676: acwriteХåեγautocommand¸ߤޤ" -#: ../fileio.c:2466 msgid "E203: Autocommands deleted or unloaded buffer to be written" msgstr "E203: ¸Хåեautocommandޤ" -#: ../fileio.c:2486 msgid "E204: Autocommand changed number of lines in unexpected way" msgstr "E204: autocommandͽˡǹԿѹޤ" -#: ../fileio.c:2548 ../fileio.c:2565 +# Added at 19-Jan-2004. +msgid "NetBeans disallows writes of unmodified buffers" +msgstr "NetBeans̤ѹΥХåե񤹤뤳ȤϵĤƤޤ" + +msgid "Partial writes disallowed for NetBeans buffers" +msgstr "NetBeansХåեΰ񤭽ФȤϤǤޤ" + msgid "is not a file or writable device" msgstr "ϥեǤ߲ǽǥХǤ⤢ޤ" -#: ../fileio.c:2601 +msgid "writing to device disabled with 'opendevice' option" +msgstr "'opendevice' ץˤǥХؤν񤭹ߤϤǤޤ" + msgid "is read-only (add ! to override)" msgstr "ɹѤǤ (ˤ ! ɲ)" -#: ../fileio.c:2886 msgid "E506: Can't write to backup file (add ! to override)" msgstr "E506: Хååץե¸Ǥޤ (! ɲäǶ¸)" -#: ../fileio.c:2898 msgid "E507: Close error for backup file (add ! to override)" msgstr "" "E507: ХååץեĤݤ˥顼ȯޤ (! ɲäǶ)" -#: ../fileio.c:2901 msgid "E508: Can't read file for backup (add ! to override)" msgstr "E508: Хååѥեɹޤ (! ɲäǶɹ)" -#: ../fileio.c:2923 msgid "E509: Cannot create backup file (add ! to override)" msgstr "E509: Хååץեޤ (! ɲäǶ)" -#: ../fileio.c:3008 msgid "E510: Can't make backup file (add ! to override)" msgstr "E510: Хååץեޤ (! ɲäǶ)" -#. Can't write without a tempfile! -#: ../fileio.c:3121 +msgid "E460: The resource fork would be lost (add ! to override)" +msgstr "E460: ꥽ե뤫⤷ޤ (! ɲäǶ)" + msgid "E214: Can't find temp file for writing" msgstr "E214: ¸Ѱե뤬Ĥޤ" -#: ../fileio.c:3134 msgid "E213: Cannot convert (add ! to write without conversion)" msgstr "E213: ѴǤޤ (! ɲäѴ¸)" -#: ../fileio.c:3169 msgid "E166: Can't open linked file for writing" msgstr "E166: 󥯤줿ե˽ޤ" -#: ../fileio.c:3173 msgid "E212: Can't open file for writing" msgstr "E212: Ѥ˥ե򳫤ޤ" -#: ../fileio.c:3363 msgid "E667: Fsync failed" msgstr "E667: fsync ˼Ԥޤ" -#: ../fileio.c:3398 msgid "E512: Close failed" msgstr "E512: Ĥ뤳Ȥ˼" -#: ../fileio.c:3436 msgid "E513: write error, conversion failed (make 'fenc' empty to override)" msgstr "E513: ߥ顼, Ѵ (񤹤ˤ 'fenc' ˤƤ)" -#: ../fileio.c:3441 #, c-format msgid "" -"E513: write error, conversion failed in line % (make 'fenc' empty to " +"E513: write error, conversion failed in line %ld (make 'fenc' empty to " "override)" msgstr "" -"E513: ߥ顼, Ѵ, Կ % (񤹤ˤ 'fenc' ˤ" -")" +"E513: ߥ顼, Ѵ, Կ %ld (񤹤ˤ 'fenc' ˤƤ" +")" -#: ../fileio.c:3448 msgid "E514: write error (file system full?)" msgstr "E514: ߥ顼, (ե륷ƥब?)" -#: ../fileio.c:3506 msgid " CONVERSION ERROR" msgstr " Ѵ顼" -#: ../fileio.c:3509 #, c-format -msgid " in line %;" -msgstr " %;" +msgid " in line %ld;" +msgstr " %ld;" -#: ../fileio.c:3519 msgid "[Device]" msgstr "[ǥХ]" -#: ../fileio.c:3522 msgid "[New]" msgstr "[]" -#: ../fileio.c:3535 msgid " [a]" msgstr " [a]" -#: ../fileio.c:3535 msgid " appended" msgstr " ɲ" -#: ../fileio.c:3537 msgid " [w]" msgstr " [w]" -#: ../fileio.c:3537 msgid " written" msgstr " " -#: ../fileio.c:3579 msgid "E205: Patchmode: can't save original file" msgstr "E205: patchmode: ܥե¸Ǥޤ" -#: ../fileio.c:3602 msgid "E206: patchmode: can't touch empty original file" msgstr "E206: patchmode: θܥեtouchǤޤ" -#: ../fileio.c:3616 msgid "E207: Can't delete backup file" msgstr "E207: Хååץեäޤ" -#: ../fileio.c:3672 msgid "" "\n" "WARNING: Original file may be lost or damaged\n" @@ -2290,134 +1838,105 @@ msgstr "" "\n" "ٹ: ܥե뤬줿ѹޤ\n" -#: ../fileio.c:3675 msgid "don't quit the editor until the file is successfully written!" msgstr "ե¸ޤǥǥλʤǤ!" -#: ../fileio.c:3795 msgid "[dos]" msgstr "[dos]" -#: ../fileio.c:3795 msgid "[dos format]" msgstr "[dosեޥå]" -#: ../fileio.c:3801 msgid "[mac]" msgstr "[mac]" -#: ../fileio.c:3801 msgid "[mac format]" msgstr "[macեޥå]" -#: ../fileio.c:3807 msgid "[unix]" msgstr "[unix]" -#: ../fileio.c:3807 msgid "[unix format]" msgstr "[unixեޥå]" -#: ../fileio.c:3831 msgid "1 line, " msgstr "1 , " -#: ../fileio.c:3833 #, c-format -msgid "% lines, " -msgstr "% , " +msgid "%ld lines, " +msgstr "%ld , " -#: ../fileio.c:3836 msgid "1 character" msgstr "1 ʸ" -#: ../fileio.c:3838 #, c-format -msgid "% characters" -msgstr "% ʸ" +msgid "%lld characters" +msgstr "%lld ʸ" -#: ../fileio.c:3849 msgid "[noeol]" msgstr "[noeol]" -#: ../fileio.c:3849 msgid "[Incomplete last line]" msgstr "[ǽԤԴ]" #. don't overwrite messages here #. must give this prompt #. don't use emsg() here, don't want to flush the buffers -#: ../fileio.c:3865 msgid "WARNING: The file has been changed since reading it!!!" msgstr "ٹ: ɹ˥եѹޤ!!!" -#: ../fileio.c:3867 msgid "Do you really want to write to it" msgstr "˾񤭤ޤ" -#: ../fileio.c:4648 #, c-format msgid "E208: Error writing to \"%s\"" msgstr "E208: \"%s\" Υ顼Ǥ" -#: ../fileio.c:4655 #, c-format msgid "E209: Error closing \"%s\"" msgstr "E209: \"%s\" Ĥ˥顼Ǥ" -#: ../fileio.c:4657 #, c-format msgid "E210: Error reading \"%s\"" msgstr "E210: \"%s\" ɹΥ顼Ǥ" -#: ../fileio.c:4883 msgid "E246: FileChangedShell autocommand deleted buffer" msgstr "E246: autocommand FileChangedShell Хåեޤ" -#: ../fileio.c:4894 #, c-format msgid "E211: File \"%s\" no longer available" msgstr "E211: ե \"%s\" ϴ¸ߤޤ" -#: ../fileio.c:4906 #, c-format msgid "" "W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as " "well" msgstr "W12: ٹ: ե \"%s\" ѹVimΥХåեѹޤ" -#: ../fileio.c:4907 msgid "See \":help W12\" for more info." msgstr "ܺ٤ \":help W12\" 򻲾ȤƤ" -#: ../fileio.c:4910 #, c-format msgid "W11: Warning: File \"%s\" has changed since editing started" msgstr "W11: ٹ: ե \"%s\" Խϸѹޤ" -#: ../fileio.c:4911 msgid "See \":help W11\" for more info." msgstr "ܺ٤ \":help W11\" 򻲾ȤƤ" -#: ../fileio.c:4914 #, c-format msgid "W16: Warning: Mode of file \"%s\" has changed since editing started" msgstr "W16: ٹ: ե \"%s\" Υ⡼ɤԽϸѹޤ" -#: ../fileio.c:4915 msgid "See \":help W16\" for more info." msgstr "ܺ٤ \":help W16\" 򻲾ȤƤ" -#: ../fileio.c:4927 #, c-format msgid "W13: Warning: File \"%s\" has been created after editing started" msgstr "W13: ٹ: ե \"%s\" Խϸ˺ޤ" -#: ../fileio.c:4947 msgid "Warning" msgstr "ٹ" -#: ../fileio.c:4948 msgid "" "&OK\n" "&Load File" @@ -2425,48 +1944,45 @@ msgstr "" "&OK\n" "եɹ(&L)" -#: ../fileio.c:5065 #, c-format msgid "E462: Could not prepare for reloading \"%s\"" msgstr "E462: \"%s\" ɤǤޤǤ" -#: ../fileio.c:5078 #, c-format msgid "E321: Could not reload \"%s\"" msgstr "E321: \"%s\" ϥɤǤޤǤ" -#: ../fileio.c:5601 msgid "--Deleted--" msgstr "----" -#: ../fileio.c:5732 #, c-format msgid "auto-removing autocommand: %s " msgstr "autocommand: %s <Хåե=%d> ưŪ˺ޤ" #. the group doesn't exist -#: ../fileio.c:5772 #, c-format msgid "E367: No such group: \"%s\"" msgstr "E367: Υ롼פϤޤ: \"%s\"" -#: ../fileio.c:5897 +msgid "E936: Cannot delete the current group" +msgstr "E936: ߤΥ롼פϺǤޤ" + +msgid "W19: Deleting augroup that is still in use" +msgstr "W19: augroup äȤƤޤ" + #, c-format msgid "E215: Illegal character after *: %s" msgstr "E215: * θʸޤ: %s" -#: ../fileio.c:5905 #, c-format msgid "E216: No such event: %s" msgstr "E216: Τ褦ʥ٥ȤϤޤ: %s" -#: ../fileio.c:5907 #, c-format msgid "E216: No such group or event: %s" msgstr "E216: Τ褦ʥ롼פ⤷ϥ٥ȤϤޤ: %s" #. Highlight title -#: ../fileio.c:6090 msgid "" "\n" "--- Auto-Commands ---" @@ -2474,756 +1990,555 @@ msgstr "" "\n" "--- Auto-Commands ---" -#: ../fileio.c:6293 #, c-format msgid "E680: : invalid buffer number " msgstr "E680: <Хåե=%d>: ̵ʥХåեֹǤ " -#: ../fileio.c:6370 msgid "E217: Can't execute autocommands for ALL events" msgstr "E217: ƤΥ٥ȤФƤautocommandϼ¹ԤǤޤ" -#: ../fileio.c:6393 msgid "No matching autocommands" msgstr "autocommand¸ߤޤ" -#: ../fileio.c:6831 msgid "E218: autocommand nesting too deep" msgstr "E218: autocommandҤ᤮ޤ" -#: ../fileio.c:7143 #, c-format msgid "%s Auto commands for \"%s\"" msgstr "%s Auto commands for \"%s\"" -#: ../fileio.c:7149 #, c-format msgid "Executing %s" msgstr "%s ¹ԤƤޤ" -#: ../fileio.c:7211 #, c-format msgid "autocommand %s" msgstr "autocommand %s" -#: ../fileio.c:7795 msgid "E219: Missing {." msgstr "E219: { ޤ." -#: ../fileio.c:7797 msgid "E220: Missing }." msgstr "E220: } ޤ." -#: ../fold.c:93 msgid "E490: No fold found" msgstr "E490: ޾ߤޤ" -#: ../fold.c:544 msgid "E350: Cannot create fold with current 'foldmethod'" msgstr "E350: ߤ 'foldmethod' Ǥ޾ߤǤޤ" -#: ../fold.c:546 msgid "E351: Cannot delete fold with current 'foldmethod'" msgstr "E351: ߤ 'foldmethod' Ǥ޾ߤǤޤ" -#: ../fold.c:1784 #, c-format -msgid "+--%3ld lines folded " -msgstr "+--%3ld Ԥ޾ޤޤ " +msgid "+--%3ld line folded " +msgid_plural "+--%3ld lines folded " +msgstr[0] "+--%3ld Ԥ޾ޤޤ " -#. buffer has already been read -#: ../getchar.c:273 msgid "E222: Add to read buffer" msgstr "E222: ɹХåեɲ" -#: ../getchar.c:2040 msgid "E223: recursive mapping" msgstr "E223: ƵŪޥåԥ" -#: ../getchar.c:2849 #, c-format msgid "E224: global abbreviation already exists for %s" msgstr "E224: %s ȤХûϤϴ¸ߤޤ" -#: ../getchar.c:2852 #, c-format msgid "E225: global mapping already exists for %s" msgstr "E225: %s ȤХޥåԥ󥰤ϴ¸ߤޤ" -#: ../getchar.c:2952 #, c-format msgid "E226: abbreviation already exists for %s" msgstr "E226: %s ȤûϤϴ¸ߤޤ" -#: ../getchar.c:2955 #, c-format msgid "E227: mapping already exists for %s" msgstr "E227: %s Ȥޥåԥ󥰤ϴ¸ߤޤ" -#: ../getchar.c:3008 msgid "No abbreviation found" msgstr "ûϤϸĤޤǤ" -#: ../getchar.c:3010 msgid "No mapping found" msgstr "ޥåԥ󥰤ϸĤޤǤ" -#: ../getchar.c:3974 msgid "E228: makemap: Illegal mode" msgstr "E228: makemap: ʥ⡼" -#. key value of 'cedit' option -#. type of cmdline window or 0 -#. result of cmdline window or 0 -#: ../globals.h:924 -msgid "--No lines in buffer--" -msgstr "--Хåե˹Ԥޤ--" +msgid "E851: Failed to create a new process for the GUI" +msgstr "E851: GUIѤΥץεư˼Ԥޤ" -#. -#. * The error messages that can be shared are included here. -#. * Excluded are errors that are only used once and debugging messages. -#. -#: ../globals.h:996 -msgid "E470: Command aborted" -msgstr "E470: ޥɤǤޤ" +msgid "E852: The child process failed to start the GUI" +msgstr "E852: ҥץGUIεư˼Ԥޤ" -#: ../globals.h:997 -msgid "E471: Argument required" -msgstr "E471: ɬפǤ" +msgid "E229: Cannot start the GUI" +msgstr "E229: GUI򳫻ϤǤޤ" -#: ../globals.h:998 -msgid "E10: \\ should be followed by /, ? or &" -msgstr "E10: \\ θ / ? & ǤʤФʤޤ" +#, c-format +msgid "E230: Cannot read from \"%s\"" +msgstr "E230: \"%s\"ɹळȤǤޤ" -#: ../globals.h:1000 -msgid "E11: Invalid in command-line window; executes, CTRL-C quits" -msgstr "E11: ޥɥ饤Ǥ̵Ǥ; Ǽ¹, CTRL-CǤ" +msgid "E665: Cannot start GUI, no valid font found" +msgstr "E665: ͭʥեȤĤʤΤ, GUI򳫻ϤǤޤ" -#: ../globals.h:1002 -msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" -msgstr "" -"E12: ߤΥǥ쥯ȥ䥿Ǥexrc/vimrcΥޥɤϵĤޤ" +msgid "E231: 'guifontwide' invalid" +msgstr "E231: 'guifontwide' ̵Ǥ" -#: ../globals.h:1003 -msgid "E171: Missing :endif" -msgstr "E171: :endif ޤ" +msgid "E599: Value of 'imactivatekey' is invalid" +msgstr "E599: 'imactivatekey' ꤵ줿̵ͤǤ" -#: ../globals.h:1004 -msgid "E600: Missing :endtry" -msgstr "E600: :endtry ޤ" - -#: ../globals.h:1005 -msgid "E170: Missing :endwhile" -msgstr "E170: :endwhile ޤ" +#, c-format +msgid "E254: Cannot allocate color %s" +msgstr "E254: %s οƤޤ" -#: ../globals.h:1006 -msgid "E170: Missing :endfor" -msgstr "E170: :endfor ޤ" +msgid "No match at cursor, finding next" +msgstr "ΰ֤˥ޥåϤޤ, 򸡺Ƥޤ" -#: ../globals.h:1007 -msgid "E588: :endwhile without :while" -msgstr "E588: :while Τʤ :endwhile ޤ" +msgid " " +msgstr "<ޤ> " -#: ../globals.h:1008 -msgid "E588: :endfor without :for" -msgstr "E588: :endfor Τʤ :for ޤ" +#, c-format +msgid "E616: vim_SelFile: can't get font %s" +msgstr "E616: vim_SelFile: ե %s Ǥޤ" -#: ../globals.h:1009 -msgid "E13: File exists (add ! to override)" -msgstr "E13: ե뤬¸ߤޤ (! ɲäǾ)" +msgid "E614: vim_SelFile: can't return to current directory" +msgstr "E614: vim_SelFile: ߤΥǥ쥯ȥޤ" -#: ../globals.h:1010 -msgid "E472: Command failed" -msgstr "E472: ޥɤԤޤ" +msgid "Pathname:" +msgstr "ѥ̾:" -#: ../globals.h:1011 -msgid "E473: Internal error" -msgstr "E473: 顼Ǥ" +msgid "E615: vim_SelFile: can't get current directory" +msgstr "E615: vim_SelFile: ߤΥǥ쥯ȥǤޤ" -#: ../globals.h:1012 -msgid "Interrupted" -msgstr "ޤޤ" +msgid "OK" +msgstr "OK" -#: ../globals.h:1013 -msgid "E14: Invalid address" -msgstr "E14: ̵ʥɥ쥹Ǥ" +msgid "Cancel" +msgstr "󥻥" -#: ../globals.h:1014 -msgid "E474: Invalid argument" -msgstr "E474: ̵ʰǤ" +msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." +msgstr "С: ǤޤǤ." -#: ../globals.h:1015 -#, c-format -msgid "E475: Invalid argument: %s" -msgstr "E475: ̵ʰǤ: %s" +msgid "Vim dialog" +msgstr "Vim " -#: ../globals.h:1016 -#, c-format -msgid "E15: Invalid expression: %s" -msgstr "E15: ̵ʼǤ: %s" +msgid "E232: Cannot create BalloonEval with both message and callback" +msgstr "E232: åȥХåΤ BalloonEval Ǥޤ" -#: ../globals.h:1017 -msgid "E16: Invalid range" -msgstr "E16: ̵ϰϤǤ" +msgid "_Cancel" +msgstr "󥻥(_C)" -#: ../globals.h:1018 -msgid "E476: Invalid command" -msgstr "E476: ̵ʥޥɤǤ" +msgid "_Save" +msgstr "¸(_S)" -#: ../globals.h:1019 -#, c-format -msgid "E17: \"%s\" is a directory" -msgstr "E17: \"%s\" ϥǥ쥯ȥǤ" +msgid "_Open" +msgstr "(_O)" -#: ../globals.h:1020 -#, fuzzy -msgid "E900: Invalid job id" -msgstr "E49: ̵ʥ̤Ǥ" +msgid "_OK" +msgstr "_OK" -#: ../globals.h:1021 -msgid "E901: Job table is full" +msgid "" +"&Yes\n" +"&No\n" +"&Cancel" msgstr "" +"Ϥ(&Y)\n" +"(&N)\n" +"󥻥(&C)" -#: ../globals.h:1024 -#, c-format -msgid "E364: Library call failed for \"%s()\"" -msgstr "E364: \"%s\"() Υ饤֥ƽФ˼Ԥޤ" - -#: ../globals.h:1026 -msgid "E19: Mark has invalid line number" -msgstr "E19: ޡ̵ʹֹ椬ꤵƤޤ" - -#: ../globals.h:1027 -msgid "E20: Mark not set" -msgstr "E20: ޡꤵƤޤ" +msgid "Yes" +msgstr "Ϥ" -#: ../globals.h:1029 -msgid "E21: Cannot make changes, 'modifiable' is off" -msgstr "E21: 'modifiable' դʤΤ, ѹǤޤ" +msgid "No" +msgstr "" -#: ../globals.h:1030 -msgid "E22: Scripts nested too deep" -msgstr "E22: ץȤҤ᤮ޤ" +msgid "Input _Methods" +msgstr "ץåȥ᥽å" -#: ../globals.h:1031 -msgid "E23: No alternate file" -msgstr "E23: եϤޤ" +msgid "VIM - Search and Replace..." +msgstr "VIM - ִ..." -#: ../globals.h:1032 -msgid "E24: No such abbreviation" -msgstr "E24: Τ褦ûϤϤޤ" +msgid "VIM - Search..." +msgstr "VIM - ..." -#: ../globals.h:1033 -msgid "E477: No ! allowed" -msgstr "E477: ! ϵĤƤޤ" +msgid "Find what:" +msgstr "ʸ:" -#: ../globals.h:1035 -msgid "E25: Nvim does not have a built-in GUI" -msgstr "E25: GUIϻԲǽǤ: ѥ̵ˤƤޤ" +msgid "Replace with:" +msgstr "ִʸ:" -#: ../globals.h:1036 -#, c-format -msgid "E28: No such highlight group name: %s" -msgstr "E28: Τ褦̾Υϥ饤ȥ롼פϤޤ: %s" +#. whole word only button +msgid "Match whole word only" +msgstr "Τ˳Τ" -#: ../globals.h:1037 -msgid "E29: No inserted text yet" -msgstr "E29: ޤƥȤƤޤ" +#. match case button +msgid "Match case" +msgstr "ʸ/ʸ̤" -#: ../globals.h:1038 -msgid "E30: No previous command line" -msgstr "E30: ˥ޥɹԤޤ" +msgid "Direction" +msgstr "" -#: ../globals.h:1039 -msgid "E31: No such mapping" -msgstr "E31: Τ褦ʥޥåԥ󥰤Ϥޤ" +#. 'Up' and 'Down' buttons +msgid "Up" +msgstr "" -#: ../globals.h:1040 -msgid "E479: No match" -msgstr "E479: Ϥޤ" +msgid "Down" +msgstr "" -#: ../globals.h:1041 -#, c-format -msgid "E480: No match: %s" -msgstr "E480: Ϥޤ: %s" +msgid "Find Next" +msgstr "򸡺" -#: ../globals.h:1042 -msgid "E32: No file name" -msgstr "E32: ե̾ޤ" +msgid "Replace" +msgstr "ִ" -#: ../globals.h:1044 -msgid "E33: No previous substitute regular expression" -msgstr "E33: ɽִޤ¹ԤƤޤ" +msgid "Replace All" +msgstr "ִ" -#: ../globals.h:1045 -msgid "E34: No previous command" -msgstr "E34: ޥɤޤ¹ԤƤޤ" +msgid "_Close" +msgstr "Ĥ(_C)" -#: ../globals.h:1046 -msgid "E35: No previous regular expression" -msgstr "E35: ɽޤ¹ԤƤޤ" +msgid "Vim: Received \"die\" request from session manager\n" +msgstr "Vim: åޥ͡㤫 \"die\" ׵ޤ\n" -#: ../globals.h:1047 -msgid "E481: No range allowed" -msgstr "E481: ϰϻϵĤƤޤ" +msgid "Close tab" +msgstr "֥ڡĤ" -#: ../globals.h:1048 -msgid "E36: Not enough room" -msgstr "E36: ɥ˽ʬʹ⤵⤷ޤ" +msgid "New tab" +msgstr "֥ڡ" -#: ../globals.h:1049 -#, c-format -msgid "E482: Can't create file %s" -msgstr "E482: ե %s Ǥޤ" +msgid "Open Tab..." +msgstr "֥ڡ򳫤..." -#: ../globals.h:1050 -msgid "E483: Can't get temp file name" -msgstr "E483: ե̾Ǥޤ" +msgid "Vim: Main window unexpectedly destroyed\n" +msgstr "Vim: ᥤ󥦥ɥ԰դ˲ޤ\n" -#: ../globals.h:1051 -#, c-format -msgid "E484: Can't open file %s" -msgstr "E484: ե \"%s\" 򳫤ޤ" +msgid "&Filter" +msgstr "ե륿(&F)" -#: ../globals.h:1052 -#, c-format -msgid "E485: Can't read file %s" -msgstr "E485: ե %s ɹޤ" +msgid "&Cancel" +msgstr "󥻥(&C)" -#: ../globals.h:1054 -msgid "E37: No write since last change (add ! to override)" -msgstr "E37: Ǹѹ¸Ƥޤ (! ɲäѹ˴)" +msgid "Directories" +msgstr "ǥ쥯ȥ" -#: ../globals.h:1055 -msgid "E37: No write since last change" -msgstr "E37: Ǹѹ¸Ƥޤ" +msgid "Filter" +msgstr "ե륿" -#: ../globals.h:1056 -msgid "E38: Null argument" -msgstr "E38: Ǥ" +msgid "&Help" +msgstr "إ(&H)" -#: ../globals.h:1057 -msgid "E39: Number expected" -msgstr "E39: ͤ׵ᤵƤޤ" +msgid "Files" +msgstr "ե" -#: ../globals.h:1058 -#, c-format -msgid "E40: Can't open errorfile %s" -msgstr "E40: 顼ե %s 򳫤ޤ" +msgid "&OK" +msgstr "&OK" -#: ../globals.h:1059 -msgid "E41: Out of memory!" -msgstr "E41: ꤬Ԥ̤Ƥޤ!" +msgid "Selection" +msgstr "" -#: ../globals.h:1060 -msgid "Pattern not found" -msgstr "ѥϸĤޤǤ" +msgid "Find &Next" +msgstr "򸡺(&N)" -#: ../globals.h:1061 -#, c-format -msgid "E486: Pattern not found: %s" -msgstr "E486: ѥϸĤޤǤ: %s" +msgid "&Replace" +msgstr "ִ(&R)" -#: ../globals.h:1062 -msgid "E487: Argument must be positive" -msgstr "E487: ͤǤʤФʤޤ" +msgid "Replace &All" +msgstr "ִ(&A)" -#: ../globals.h:1064 -msgid "E459: Cannot go back to previous directory" -msgstr "E459: Υǥ쥯ȥޤ" +msgid "&Undo" +msgstr "ɥ(&U)" -#: ../globals.h:1066 -msgid "E42: No Errors" -msgstr "E42: 顼Ϥޤ" +msgid "Open tab..." +msgstr "֥ڡ򳫤" -#: ../globals.h:1067 -msgid "E776: No location list" -msgstr "E776: ꥹȤϤޤ" +msgid "Find string (use '\\\\' to find a '\\')" +msgstr "ʸ ('\\' 򸡺ˤ '\\\\')" -#: ../globals.h:1068 -msgid "E43: Damaged match string" -msgstr "E43: ʸ»Ƥޤ" +msgid "Find & Replace (use '\\\\' to find a '\\')" +msgstr "ִ ('\\' 򸡺ˤ '\\\\')" -#: ../globals.h:1069 -msgid "E44: Corrupted regexp program" -msgstr "E44: ɽץǤ" +#. We fake this: Use a filter that doesn't select anything and a default +#. * file name that won't be used. +msgid "Not Used" +msgstr "Ȥޤ" -#: ../globals.h:1071 -msgid "E45: 'readonly' option is set (add ! to override)" -msgstr "E45: 'readonly' ץꤵƤޤ (! ɲäǾ)" +msgid "Directory\t*.nothing\n" +msgstr "ǥ쥯ȥ\t*.nothing\n" -#: ../globals.h:1073 #, c-format -msgid "E46: Cannot change read-only variable \"%s\"" -msgstr "E46: ɼѿ \"%s\" ˤͤǤޤ" +msgid "E671: Cannot find window title \"%s\"" +msgstr "E671: ȥ뤬 \"%s\" ΥɥϸĤޤ" -#: ../globals.h:1075 #, c-format -msgid "E794: Cannot set variable in the sandbox: \"%s\"" -msgstr "E794: ɥܥåǤѿ \"%s\" ͤǤޤ" - -#: ../globals.h:1076 -msgid "E47: Error while reading errorfile" -msgstr "E47: 顼եɹ˥顼ȯޤ" - -#: ../globals.h:1078 -msgid "E48: Not allowed in sandbox" -msgstr "E48: ɥܥåǤϵޤ" - -#: ../globals.h:1080 -msgid "E523: Not allowed here" -msgstr "E523: ǤϵĤޤ" - -#: ../globals.h:1082 -msgid "E359: Screen mode setting not supported" -msgstr "E359: ꡼⡼ɤˤбƤޤ" - -#: ../globals.h:1083 -msgid "E49: Invalid scroll size" -msgstr "E49: ̵ʥ̤Ǥ" - -#: ../globals.h:1084 -msgid "E91: 'shell' option is empty" -msgstr "E91: 'shell' ץ󤬶Ǥ" - -#: ../globals.h:1085 -msgid "E255: Couldn't read in sign data!" -msgstr "E255: sign ΥǡɹޤǤ" - -#: ../globals.h:1086 -msgid "E72: Close error on swap file" -msgstr "E72: åץեΥ顼Ǥ" +msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." +msgstr "E243: ϥݡȤޤ: \"-%s\"; OLEǤѤƤ." -#: ../globals.h:1087 -msgid "E73: tag stack empty" -msgstr "E73: åǤ" +msgid "E672: Unable to open window inside MDI application" +msgstr "E672: MDIץǤϥɥ򳫤ޤ" -#: ../globals.h:1088 -msgid "E74: Command too complex" -msgstr "E74: ޥɤʣ᤮ޤ" +msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" +msgstr "Vim E458: ꤬ʤΤǥȥƤޤ" -#: ../globals.h:1089 -msgid "E75: Name too long" -msgstr "E75: ̾Ĺ᤮ޤ" +#, c-format +msgid "E250: Fonts for the following charsets are missing in fontset %s:" +msgstr "E250: ʲʸåȤΥեȤޤ %s:" -#: ../globals.h:1090 -msgid "E76: Too many [" -msgstr "E76: [ ¿᤮ޤ" +#, c-format +msgid "E252: Fontset name: %s" +msgstr "E252: եȥå̾: %s" -#: ../globals.h:1091 -msgid "E77: Too many file names" -msgstr "E77: ե̾¿᤮ޤ" +#, c-format +msgid "Font '%s' is not fixed-width" +msgstr "ե '%s' ϸǤϤޤ" -#: ../globals.h:1092 -msgid "E488: Trailing characters" -msgstr "E488: ;ʬʸˤޤ" +#, c-format +msgid "E253: Fontset name: %s" +msgstr "E253: եȥå̾: %s" -#: ../globals.h:1093 -msgid "E78: Unknown mark" -msgstr "E78: ̤ΤΥޡ" +#, c-format +msgid "Font0: %s" +msgstr "ե0: %s" -#: ../globals.h:1094 -msgid "E79: Cannot expand wildcards" -msgstr "E79: 磻ɥɤŸǤޤ" +#, c-format +msgid "Font1: %s" +msgstr "ե1: %s" -#: ../globals.h:1096 -msgid "E591: 'winheight' cannot be smaller than 'winminheight'" -msgstr "E591: 'winheight' 'winminheight' 꾮Ǥޤ" +#, c-format +msgid "Font%ld width is not twice that of font0" +msgstr "ե%ld ե02ܤǤϤޤ" -#: ../globals.h:1098 -msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" -msgstr "E592: 'winwidth' 'winminwidth' 꾮Ǥޤ" +#, c-format +msgid "Font0 width: %ld" +msgstr "ե0: %ld" -#: ../globals.h:1099 -msgid "E80: Error while writing" -msgstr "E80: Υ顼" +#, c-format +msgid "Font1 width: %ld" +msgstr "ե1: %ld" -#: ../globals.h:1100 -msgid "Zero count" -msgstr "" +msgid "Invalid font specification" +msgstr "̵ʥեȻǤ" -#: ../globals.h:1101 -msgid "E81: Using not in a script context" -msgstr "E81: ץȰʳȤޤ" +msgid "&Dismiss" +msgstr "Ѳ(&D)" -#: ../globals.h:1102 -#, c-format -msgid "E685: Internal error: %s" -msgstr "E685: 顼Ǥ: %s" +msgid "no specific match" +msgstr "ޥåΤޤ" -#: ../globals.h:1104 -msgid "E363: pattern uses more memory than 'maxmempattern'" -msgstr "E363: ѥ 'maxmempattern' ʾΥѤޤ" +msgid "Vim - Font Selector" +msgstr "Vim - ե" -#: ../globals.h:1105 -msgid "E749: empty buffer" -msgstr "E749: ХåեǤ" +msgid "Name:" +msgstr "̾:" -#: ../globals.h:1108 -msgid "E682: Invalid search pattern or delimiter" -msgstr "E682: ѥ󤫶ڤ국椬Ǥ" +#. create toggle button +msgid "Show size in Points" +msgstr "ݥȤɽ" -#: ../globals.h:1109 -msgid "E139: File is loaded in another buffer" -msgstr "E139: Ʊ̾Υե뤬¾ΥХåեɹޤƤޤ" +msgid "Encoding:" +msgstr "󥳡:" -#: ../globals.h:1110 -#, c-format -msgid "E764: Option '%s' is not set" -msgstr "E764: ץ '%s' ꤵƤޤ" +msgid "Font:" +msgstr "ե:" -#: ../globals.h:1111 -msgid "E850: Invalid register name" -msgstr "E850: ̵ʥ쥸̾Ǥ" +msgid "Style:" +msgstr ":" -#: ../globals.h:1114 -msgid "search hit TOP, continuing at BOTTOM" -msgstr "ޤǸΤDzޤ" +msgid "Size:" +msgstr ":" -#: ../globals.h:1115 -msgid "search hit BOTTOM, continuing at TOP" -msgstr "ޤǸΤǾޤ" +msgid "E256: Hangul automata ERROR" +msgstr "E256: ϥ󥰥륪ȥޥȥ󥨥顼" -#: ../hardcopy.c:240 msgid "E550: Missing colon" msgstr "E550: 󤬤ޤ" -#: ../hardcopy.c:252 msgid "E551: Illegal component" msgstr "E551: ʹʸǤǤ" -#: ../hardcopy.c:259 msgid "E552: digit expected" msgstr "E552: ͤɬפǤ" -#: ../hardcopy.c:473 #, c-format msgid "Page %d" msgstr "%d ڡ" -#: ../hardcopy.c:597 msgid "No text to be printed" msgstr "ƥȤޤ" -#: ../hardcopy.c:668 #, c-format msgid "Printing page %d (%d%%)" msgstr ": ڡ %d (%d%%)" -#: ../hardcopy.c:680 #, c-format msgid " Copy %d of %d" msgstr " ԡ %d ( %d )" -#: ../hardcopy.c:733 #, c-format msgid "Printed: %s" msgstr "ޤ: %s" -#: ../hardcopy.c:740 msgid "Printing aborted" msgstr "ߤޤ" -#: ../hardcopy.c:1365 msgid "E455: Error writing to PostScript output file" msgstr "E455: PostScriptϥեνߥ顼Ǥ" -#: ../hardcopy.c:1747 #, c-format msgid "E624: Can't open file \"%s\"" msgstr "E624: ե \"%s\" 򳫤ޤ" -#: ../hardcopy.c:1756 ../hardcopy.c:2470 #, c-format msgid "E457: Can't read PostScript resource file \"%s\"" msgstr "E457: PostScriptΥ꥽ե \"%s\" ɹޤ" -#: ../hardcopy.c:1772 #, c-format msgid "E618: file \"%s\" is not a PostScript resource file" msgstr "E618: ե \"%s\" PostScript ꥽եǤϤޤ" -#: ../hardcopy.c:1788 ../hardcopy.c:1805 ../hardcopy.c:1844 #, c-format msgid "E619: file \"%s\" is not a supported PostScript resource file" msgstr "E619: ե \"%s\" бƤʤ PostScript ꥽եǤ" -#: ../hardcopy.c:1856 #, c-format msgid "E621: \"%s\" resource file has wrong version" msgstr "E621: ꥽ե \"%s\" ϥС󤬰ۤʤޤ" -#: ../hardcopy.c:2225 msgid "E673: Incompatible multi-byte encoding and character set." msgstr "E673: ߴ̵ޥХȥ󥳡ǥ󥰤ʸåȤǤ" -#: ../hardcopy.c:2238 msgid "E674: printmbcharset cannot be empty with multi-byte encoding." msgstr "E674: ޥХȥ󥳡ǥ󥰤Ǥ printmbcharset ˤǤޤ" -#: ../hardcopy.c:2254 msgid "E675: No default font specified for multi-byte printing." msgstr "" "E675: ޥХʸ뤿ΥǥեȥեȤꤵƤޤ" -#: ../hardcopy.c:2426 msgid "E324: Can't open PostScript output file" msgstr "E324: PostScriptѤΥե򳫤ޤ" -#: ../hardcopy.c:2458 #, c-format msgid "E456: Can't open file \"%s\"" msgstr "E456: ե \"%s\" 򳫤ޤ" -#: ../hardcopy.c:2583 msgid "E456: Can't find PostScript resource file \"prolog.ps\"" msgstr "E456: PostScriptΥ꥽ե \"prolog.ps\" Ĥޤ" -#: ../hardcopy.c:2593 msgid "E456: Can't find PostScript resource file \"cidfont.ps\"" msgstr "E456: PostScriptΥ꥽ե \"cidfont.ps\" Ĥޤ" -#: ../hardcopy.c:2622 ../hardcopy.c:2639 ../hardcopy.c:2665 #, c-format msgid "E456: Can't find PostScript resource file \"%s.ps\"" msgstr "E456: PostScriptΥ꥽ե \"%s.ps\" Ĥޤ" -#: ../hardcopy.c:2654 #, c-format msgid "E620: Unable to convert to print encoding \"%s\"" msgstr "E620: 󥳡 \"%s\" ѴǤޤ" -#: ../hardcopy.c:2877 msgid "Sending to printer..." msgstr "ץ󥿤..." -#: ../hardcopy.c:2881 msgid "E365: Failed to print PostScript file" msgstr "E365: PostScriptեΰ˼Ԥޤ" -#: ../hardcopy.c:2883 msgid "Print job sent." msgstr "֤ޤ." -#: ../if_cscope.c:85 msgid "Add a new database" msgstr "ǡ١ɲ" -#: ../if_cscope.c:87 msgid "Query for a pattern" msgstr "ѥΥ꡼ɲ" -#: ../if_cscope.c:89 msgid "Show this message" msgstr "Υåɽ" -#: ../if_cscope.c:91 msgid "Kill a connection" msgstr "³λ" -#: ../if_cscope.c:93 msgid "Reinit all connections" msgstr "Ƥ³ƽ" -#: ../if_cscope.c:95 msgid "Show connections" msgstr "³ɽ" -#: ../if_cscope.c:101 #, c-format msgid "E560: Usage: cs[cope] %s" msgstr "E560: ˡ: cs[cope] %s" -#: ../if_cscope.c:225 msgid "This cscope command does not support splitting the window.\n" msgstr "cscopeޥɤʬ䥦ɥǤϥݡȤޤ.\n" -#: ../if_cscope.c:266 msgid "E562: Usage: cstag " msgstr "E562: ˡ: cstag " -#: ../if_cscope.c:313 msgid "E257: cstag: tag not found" msgstr "E257: cstag: Ĥޤ" -#: ../if_cscope.c:461 #, c-format msgid "E563: stat(%s) error: %d" msgstr "E563: stat(%s) 顼: %d" -#: ../if_cscope.c:551 +msgid "E563: stat error" +msgstr "E563: stat 顼" + #, c-format msgid "E564: %s is not a directory or a valid cscope database" msgstr "E564: %s ϥǥ쥯ȥڤͭcscopeΥǡ١ǤϤޤ" -#: ../if_cscope.c:566 #, c-format msgid "Added cscope database %s" msgstr "cscopeǡ١ %s ɲ" -#: ../if_cscope.c:616 #, c-format -msgid "E262: error reading cscope connection %" -msgstr "E262: cscope³ % ɹΥ顼Ǥ" +msgid "E262: error reading cscope connection %ld" +msgstr "E262: cscope³ %ld ɹΥ顼Ǥ" -#: ../if_cscope.c:711 msgid "E561: unknown cscope search type" msgstr "E561: ̤ΤcscopeǤ" -#: ../if_cscope.c:752 ../if_cscope.c:789 msgid "E566: Could not create cscope pipes" msgstr "E566: cscopeѥפǤޤǤ" -#: ../if_cscope.c:767 msgid "E622: Could not fork for cscope" msgstr "E622: cscopeεư(fork)˼Ԥޤ" -#: ../if_cscope.c:849 msgid "cs_create_connection setpgid failed" msgstr "cs_create_connection ؤ setpgid ˼Ԥޤ" -#: ../if_cscope.c:853 ../if_cscope.c:889 msgid "cs_create_connection exec failed" msgstr "cs_create_connection μ¹Ԥ˼Ԥޤ" -#: ../if_cscope.c:863 ../if_cscope.c:902 msgid "cs_create_connection: fdopen for to_fp failed" msgstr "cs_create_connection: to_fp fdopen ˼Ԥޤ" -#: ../if_cscope.c:865 ../if_cscope.c:906 msgid "cs_create_connection: fdopen for fr_fp failed" msgstr "cs_create_connection: fr_fp fdopen ˼Ԥޤ" -#: ../if_cscope.c:890 msgid "E623: Could not spawn cscope process" msgstr "E623: cscopeץưǤޤǤ" -#: ../if_cscope.c:932 msgid "E567: no cscope connections" msgstr "E567: cscope³˼Ԥޤ" -#: ../if_cscope.c:1009 #, c-format msgid "E469: invalid cscopequickfix flag %c for %c" msgstr "E469: ̵ cscopequickfix ե饰 %c %c Ǥ" -#: ../if_cscope.c:1058 #, c-format msgid "E259: no matches found for cscope query %s of %s" msgstr "E259: cscope꡼ %s of %s ˳ޤǤ" -#: ../if_cscope.c:1142 msgid "cscope commands:\n" msgstr "cscopeޥ:\n" -#: ../if_cscope.c:1150 #, c-format msgid "%-5s: %s%*s (Usage: %s)" msgstr "%-5s: %s%*s (ˡ: %s)" -#: ../if_cscope.c:1155 msgid "" "\n" +" a: Find assignments to this symbol\n" " c: Find functions calling this function\n" " d: Find functions called by this function\n" " e: Find this egrep pattern\n" @@ -3234,6 +2549,7 @@ msgid "" " t: Find this text string\n" msgstr "" "\n" +" a: ΥܥФõ\n" " c: δؿƤǤؿõ\n" " d: δؿƤǤؿõ\n" " e: egrepѥõ\n" @@ -3243,31 +2559,32 @@ msgstr "" " s: Cܥõ\n" " t: Υƥʸõ\n" -#: ../if_cscope.c:1226 +#, c-format +msgid "E625: cannot open cscope database: %s" +msgstr "E625: cscopeǡ١: %s 򳫤ȤǤޤ" + +msgid "E626: cannot get cscope database information" +msgstr "E626: cscopeǡ١ξǤޤ" + msgid "E568: duplicate cscope database not added" msgstr "E568: ʣcscopeǡ١ɲäޤǤ" -#: ../if_cscope.c:1335 #, c-format msgid "E261: cscope connection %s not found" msgstr "E261: cscope³ %s ĤޤǤ" -#: ../if_cscope.c:1364 #, c-format msgid "cscope connection %s closed" msgstr "cscope³ %s Ĥޤ" #. should not reach here -#: ../if_cscope.c:1486 msgid "E570: fatal error in cs_manage_matches" msgstr "E570: cs_manage_matches ̿Ūʥ顼Ǥ" -#: ../if_cscope.c:1693 #, c-format msgid "Cscope tag: %s" msgstr "Cscope : %s" -#: ../if_cscope.c:1711 msgid "" "\n" " # line" @@ -3275,111 +2592,319 @@ msgstr "" "\n" " # ֹ" -#: ../if_cscope.c:1713 msgid "filename / context / line\n" msgstr "ե̾ / ʸ̮ / \n" -#: ../if_cscope.c:1809 #, c-format msgid "E609: Cscope error: %s" msgstr "E609: cscope顼: %s" -#: ../if_cscope.c:2053 msgid "All cscope databases reset" msgstr "Ƥcscopeǡ١ꥻåȤޤ" -#: ../if_cscope.c:2123 msgid "no cscope connections\n" msgstr "cscope³ޤ\n" -#: ../if_cscope.c:2126 msgid " # pid database name prepend path\n" msgstr " # pid ǡ١̾ prepend ѥ\n" -#: ../main.c:144 -msgid "Unknown option argument" -msgstr "̤ΤΥץǤ" +msgid "Lua library cannot be loaded." +msgstr "Lua饤֥ɤǤޤ." -#: ../main.c:146 -msgid "Too many edit arguments" -msgstr "Խ¿᤮ޤ" +msgid "cannot save undo information" +msgstr "ɥ¸Ǥޤ" -#: ../main.c:148 -msgid "Argument missing after" -msgstr "ޤ" +msgid "" +"E815: Sorry, this command is disabled, the MzScheme libraries could not be " +"loaded." +msgstr "E815: Υޥɤ̵Ǥ. MzScheme 饤֥ɤǤޤ." -#: ../main.c:150 -msgid "Garbage after option argument" -msgstr "ץθ˥ߤޤ" +msgid "" +"E895: Sorry, this command is disabled, the MzScheme's racket/base module " +"could not be loaded." +msgstr "" +"E895: Υޥɤ̵Ǥ,ʤ. MzScheme racket/base ⥸塼" +"ɤǤޤǤ." -#: ../main.c:152 -msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments" -msgstr "\"+command\", \"-c command\", \"--cmd command\" ΰ¿᤮ޤ" +msgid "invalid expression" +msgstr "̵ʼǤ" -#: ../main.c:154 -msgid "Invalid argument for" -msgstr "̵ʰǤ: " +msgid "expressions disabled at compile time" +msgstr "ϥѥ̵ˤƤޤ" -#: ../main.c:294 -#, c-format -msgid "%d files to edit\n" -msgstr "%d ĤΥե뤬Խ򹵤Ƥޤ\n" +msgid "hidden option" +msgstr "ץ" -#: ../main.c:1342 -msgid "Attempt to open script file again: \"" -msgstr "ץȥեƤӳƤߤޤ: \"" +msgid "unknown option" +msgstr "̤ΤΥץǤ" -#: ../main.c:1350 -msgid "Cannot open for reading: \"" -msgstr "ɹѤȤƳޤ" +msgid "window index is out of range" +msgstr "ϰϳΥɥֹǤ" -#: ../main.c:1393 -msgid "Cannot open for script output: \"" -msgstr "ץȽѤ򳫤ޤ" +msgid "couldn't open buffer" +msgstr "Хåե򳫤ޤ" -#: ../main.c:1622 -msgid "Vim: Warning: Output is not to a terminal\n" -msgstr "Vim: ٹ: üؤνϤǤϤޤ\n" +msgid "cannot delete line" +msgstr "Ԥäޤ" -#: ../main.c:1624 -msgid "Vim: Warning: Input is not from a terminal\n" -msgstr "Vim: ٹ: üϤǤϤޤ\n" +msgid "cannot replace line" +msgstr "ԤִǤޤ" -#. just in case.. -#: ../main.c:1891 -msgid "pre-vimrc command line" -msgstr "vimrcΥޥɥ饤" +msgid "cannot insert line" +msgstr "ԤǤޤ" -#: ../main.c:1964 -#, c-format -msgid "E282: Cannot read from \"%s\"" -msgstr "E282: \"%s\"ɹळȤǤޤ" +msgid "string cannot contain newlines" +msgstr "ʸˤϲʸޤޤ" -#: ../main.c:2149 -msgid "" -"\n" +msgid "error converting Scheme values to Vim" +msgstr "SchemeͤVimؤѴ顼" + +msgid "Vim error: ~a" +msgstr "Vim 顼: ~a" + +msgid "Vim error" +msgstr "Vim 顼" + +msgid "buffer is invalid" +msgstr "Хåե̵Ǥ" + +msgid "window is invalid" +msgstr "ɥ̵Ǥ" + +msgid "linenr out of range" +msgstr "ϰϳιֹǤ" + +msgid "not allowed in the Vim sandbox" +msgstr "ɥܥåǤϵޤ" + +msgid "E836: This Vim cannot execute :python after using :py3" +msgstr "E836: VimǤ :py3 Ȥä :python Ȥޤ" + +msgid "" +"E263: Sorry, this command is disabled, the Python library could not be " +"loaded." +msgstr "" +"E263: Υޥɤ̵Ǥ,ʤ: Python饤֥ɤǤޤ" +"Ǥ." + +msgid "" +"E887: Sorry, this command is disabled, the Python's site module could not be " +"loaded." +msgstr "" +"E887: Υޥɤ̵Ǥ,ʤ. Python site ⥸塼" +"ǤޤǤ." + +# Added at 07-Feb-2004. +msgid "E659: Cannot invoke Python recursively" +msgstr "E659: Python ƵŪ˼¹Ԥ뤳ȤϤǤޤ" + +msgid "E837: This Vim cannot execute :py3 after using :python" +msgstr "E837: VimǤ :python Ȥä :py3 Ȥޤ" + +msgid "E265: $_ must be an instance of String" +msgstr "E265: $_ ʸΥ󥹥󥹤ǤʤФʤޤ" + +msgid "" +"E266: Sorry, this command is disabled, the Ruby library could not be loaded." +msgstr "" +"E266: Υޥɤ̵Ǥ,ʤ: Ruby饤֥ɤǤޤ" +"." + +msgid "E267: unexpected return" +msgstr "E267: ͽ return Ǥ" + +msgid "E268: unexpected next" +msgstr "E268: ͽ next Ǥ" + +msgid "E269: unexpected break" +msgstr "E269: ͽ break Ǥ" + +msgid "E270: unexpected redo" +msgstr "E270: ͽ redo Ǥ" + +msgid "E271: retry outside of rescue clause" +msgstr "E271: rescue γ retry Ǥ" + +msgid "E272: unhandled exception" +msgstr "E272: 갷ʤä㳰ޤ" + +#, c-format +msgid "E273: unknown longjmp status %d" +msgstr "E273: ̤Τlongjmp: %d" + +msgid "invalid buffer number" +msgstr "̵ʥХåեֹǤ" + +msgid "not implemented yet" +msgstr "ޤƤޤ" + +#. ??? +msgid "cannot set line(s)" +msgstr "ԤǤޤ" + +msgid "invalid mark name" +msgstr "̵ʥޡ̾Ǥ" + +msgid "mark not set" +msgstr "ޡꤵƤޤ" + +#, c-format +msgid "row %d column %d" +msgstr " %d %d" + +msgid "cannot insert/append line" +msgstr "Ԥ/ɲäǤޤ" + +msgid "line number out of range" +msgstr "ϰϳιֹǤ" + +msgid "unknown flag: " +msgstr "̤ΤΥե饰: " + +msgid "unknown vimOption" +msgstr "̤Τ vimOption Ǥ" + +msgid "keyboard interrupt" +msgstr "ܡɳ" + +msgid "vim error" +msgstr "vim 顼" + +msgid "cannot create buffer/window command: object is being deleted" +msgstr "" +"Хåե/ɥޥɤǤޤ: ֥ȤõƤ" +"" + +msgid "" +"cannot register callback command: buffer/window is already being deleted" +msgstr "" +"ХåޥɤϿǤޤ: Хåե/ɥ˾õޤ" + +#. This should never happen. Famous last word? +msgid "" +"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim." +"org" +msgstr "" +"E280: TCL ̿Ū顼: reflist !? vim-dev@vim.org 𤷤Ƥ" + +msgid "cannot register callback command: buffer/window reference not found" +msgstr "" +"ХåޥɤϿǤޤ: Хåե/ɥλȤĤޤ" +"" + +msgid "" +"E571: Sorry, this command is disabled: the Tcl library could not be loaded." +msgstr "" +"E571: Υޥɤ̵Ǥ,ʤ: Tcl饤֥ɤǤޤ" +"." + +#, c-format +msgid "E572: exit code %d" +msgstr "E572: λ %d" + +msgid "cannot get line" +msgstr "ԤǤޤ" + +msgid "Unable to register a command server name" +msgstr "̿᥵С̾ϿǤޤ" + +msgid "E248: Failed to send command to the destination program" +msgstr "E248: ŪΥץؤΥޥ˼Ԥޤ" + +#, c-format +msgid "E573: Invalid server id used: %s" +msgstr "E573: ̵ʥСIDȤޤ: %s" + +msgid "E251: VIM instance registry property is badly formed. Deleted!" +msgstr "E251: VIM ΤϿץѥƥǤ. õޤ!" + +#, c-format +msgid "E696: Missing comma in List: %s" +msgstr "E696: ꥹȷ˥ޤޤ: %s" + +#, c-format +msgid "E697: Missing end of List ']': %s" +msgstr "E697: ꥹȷκǸ ']' ޤ: %s" + +msgid "Unknown option argument" +msgstr "̤ΤΥץǤ" + +msgid "Too many edit arguments" +msgstr "Խ¿᤮ޤ" + +msgid "Argument missing after" +msgstr "ޤ" + +msgid "Garbage after option argument" +msgstr "ץθ˥ߤޤ" + +msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments" +msgstr "\"+command\", \"-c command\", \"--cmd command\" ΰ¿᤮ޤ" + +msgid "Invalid argument for" +msgstr "̵ʰǤ: " + +#, c-format +msgid "%d files to edit\n" +msgstr "%d ĤΥե뤬Խ򹵤Ƥޤ\n" + +msgid "netbeans is not supported with this GUI\n" +msgstr "netbeans ϤGUIǤѤǤޤ\n" + +msgid "'-nb' cannot be used: not enabled at compile time\n" +msgstr "'-nb' ԲǽǤ: ѥ̵ˤƤޤ\n" + +msgid "This Vim was not compiled with the diff feature." +msgstr "Vimˤdiffǽޤ(ѥ)." + +msgid "Attempt to open script file again: \"" +msgstr "ץȥեƤӳƤߤޤ: \"" + +msgid "Cannot open for reading: \"" +msgstr "ɹѤȤƳޤ" + +msgid "Cannot open for script output: \"" +msgstr "ץȽѤ򳫤ޤ" + +msgid "Vim: Error: Failure to start gvim from NetBeans\n" +msgstr "Vim: 顼: NetBeansgvim򥹥ȤǤޤ\n" + +msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n" +msgstr "Vim: 顼: ΥСVimCygwinüǤưޤ\n" + +msgid "Vim: Warning: Output is not to a terminal\n" +msgstr "Vim: ٹ: üؤνϤǤϤޤ\n" + +msgid "Vim: Warning: Input is not from a terminal\n" +msgstr "Vim: ٹ: üϤǤϤޤ\n" + +#. just in case.. +msgid "pre-vimrc command line" +msgstr "vimrcΥޥɥ饤" + +#, c-format +msgid "E282: Cannot read from \"%s\"" +msgstr "E282: \"%s\"ɹळȤǤޤ" + +msgid "" +"\n" "More info with: \"vim -h\"\n" msgstr "" "\n" "ܺ٤ʾ: \"vim -h\"\n" -#: ../main.c:2178 msgid "[file ..] edit specified file(s)" msgstr "[ե..] եԽ" -#: ../main.c:2179 msgid "- read text from stdin" msgstr "- ɸϤƥȤɹ" -#: ../main.c:2180 msgid "-t tag edit file where tag is defined" msgstr "-t 줿ȤԽ" -#: ../main.c:2181 msgid "-q [errorfile] edit file with first error" msgstr "-q [errorfile] ǽΥ顼Խ" -#: ../main.c:2187 msgid "" "\n" "\n" @@ -3389,11 +2914,9 @@ msgstr "" "\n" "ˡ:" -#: ../main.c:2189 msgid " vim [arguments] " msgstr " vim [] " -#: ../main.c:2193 msgid "" "\n" " or:" @@ -3401,7 +2924,13 @@ msgstr "" "\n" " ⤷:" -#: ../main.c:2196 +msgid "" +"\n" +"Where case is ignored prepend / to make flag upper case" +msgstr "" +"\n" +"羮ʸ̵뤵ʸˤ뤿 / ֤Ƥ" + msgid "" "\n" "\n" @@ -3411,189 +2940,319 @@ msgstr "" "\n" ":\n" -#: ../main.c:2197 msgid "--\t\t\tOnly file names after this" msgstr "--\t\t\tΤȤˤϥե̾" -#: ../main.c:2199 msgid "--literal\t\tDon't expand wildcards" msgstr "--literal\t\t磻ɥɤŸʤ" -#: ../main.c:2201 +msgid "-register\t\tRegister this gvim for OLE" +msgstr "-register\t\tgvimOLEȤϿ" + +msgid "-unregister\t\tUnregister gvim for OLE" +msgstr "-unregister\t\tgvimOLEϿ" + +msgid "-g\t\t\tRun using GUI (like \"gvim\")" +msgstr "-g\t\t\tGUIǵư (\"gvim\" Ʊ)" + +msgid "-f or --nofork\tForeground: Don't fork when starting GUI" +msgstr "-f or --nofork\tե饦: GUIϤȤforkʤ" + msgid "-v\t\t\tVi mode (like \"vi\")" msgstr "-v\t\t\tVi⡼ (\"vi\" Ʊ)" -#: ../main.c:2202 msgid "-e\t\t\tEx mode (like \"ex\")" msgstr "-e\t\t\tEx⡼ (\"ex\" Ʊ)" -#: ../main.c:2203 msgid "-E\t\t\tImproved Ex mode" msgstr "-E\t\t\tEx⡼" -#: ../main.c:2204 msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")" msgstr "-s\t\t\t(Хå)⡼ (\"ex\" )" -#: ../main.c:2205 msgid "-d\t\t\tDiff mode (like \"vimdiff\")" msgstr "-d\t\t\tʬ⡼ (\"vidiff\" Ʊ)" -#: ../main.c:2206 msgid "-y\t\t\tEasy mode (like \"evim\", modeless)" msgstr "-y\t\t\t⡼ (\"evim\" Ʊ, ⡼̵)" -#: ../main.c:2207 msgid "-R\t\t\tReadonly mode (like \"view\")" msgstr "-R\t\t\tɹѥ⡼ (\"view\" Ʊ)" -#: ../main.c:2208 msgid "-Z\t\t\tRestricted mode (like \"rvim\")" msgstr "-Z\t\t\t¥⡼ (\"rvim\" Ʊ)" -#: ../main.c:2209 msgid "-m\t\t\tModifications (writing files) not allowed" msgstr "-m\t\t\tѹ (ե¸) Ǥʤ褦ˤ" -#: ../main.c:2210 msgid "-M\t\t\tModifications in text not allowed" msgstr "-M\t\t\tƥȤԽԤʤʤ褦ˤ" -#: ../main.c:2211 msgid "-b\t\t\tBinary mode" msgstr "-b\t\t\tХʥ⡼" -#: ../main.c:2212 msgid "-l\t\t\tLisp mode" msgstr "-l\t\t\tLisp⡼" -#: ../main.c:2213 msgid "-C\t\t\tCompatible with Vi: 'compatible'" msgstr "-C\t\t\tViߴ⡼: 'compatible'" -#: ../main.c:2214 msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'" msgstr "-N\t\t\tViߴ⡼: 'nocompatible" -#: ../main.c:2215 msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]" msgstr "-V[N][fname]\t\t [٥ N] [ե̾ fname]" -#: ../main.c:2216 msgid "-D\t\t\tDebugging mode" msgstr "-D\t\t\tǥХå⡼" -#: ../main.c:2217 msgid "-n\t\t\tNo swap file, use memory only" msgstr "-n\t\t\tåץեѤ" -#: ../main.c:2218 msgid "-r\t\t\tList swap files and exit" msgstr "-r\t\t\tåץե󤷽λ" -#: ../main.c:2219 msgid "-r (with file name)\tRecover crashed session" msgstr "-r (ե̾)\tå夷å" -#: ../main.c:2220 msgid "-L\t\t\tSame as -r" msgstr "-L\t\t\t-rƱ" -#: ../main.c:2221 +msgid "-f\t\t\tDon't use newcli to open window" +msgstr "-f\t\t\tɥ򳫤Τ newcli Ѥʤ" + +msgid "-dev \t\tUse for I/O" +msgstr "-dev \t\tI/O Ѥ" + msgid "-A\t\t\tstart in Arabic mode" msgstr "-A\t\t\tӥ⡼ɤǵư" -#: ../main.c:2222 msgid "-H\t\t\tStart in Hebrew mode" msgstr "-H\t\t\tإ֥饤⡼ɤǵư" -#: ../main.c:2223 msgid "-F\t\t\tStart in Farsi mode" msgstr "-F\t\t\tڥ륷⡼ɤǵư" -#: ../main.c:2224 msgid "-T \tSet terminal type to " msgstr "-T \tü ꤹ" -#: ../main.c:2225 +msgid "--not-a-term\t\tSkip warning for input/output not being a terminal" +msgstr "--not-a-term\t\tϤüǤʤȤηٹ򥹥åפ" + msgid "-u \t\tUse instead of any .vimrc" msgstr "-u \t\t.vimrc Ȥ" -#: ../main.c:2226 +msgid "-U \t\tUse instead of any .gvimrc" +msgstr "-U \t\t.gvimrc Ȥ" + msgid "--noplugin\t\tDon't load plugin scripts" msgstr "--noplugin\t\tץ饰󥹥ץȤɤʤ" -#: ../main.c:2227 msgid "-p[N]\t\tOpen N tab pages (default: one for each file)" msgstr "-p[N]\t\tN ĥ֥ڡ򳫤(ά: եˤĤ1)" -#: ../main.c:2228 msgid "-o[N]\t\tOpen N windows (default: one for each file)" msgstr "-o[N]\t\tN ĥɥ򳫤(ά: եˤĤ1)" -#: ../main.c:2229 msgid "-O[N]\t\tLike -o but split vertically" msgstr "-O[N]\t\t-oƱľʬ" -#: ../main.c:2230 msgid "+\t\t\tStart at end of file" msgstr "+\t\t\tեκǸ夫Ϥ" -#: ../main.c:2231 msgid "+\t\tStart at line " msgstr "+\t\t ԤϤ" -#: ../main.c:2232 msgid "--cmd \tExecute before loading any vimrc file" msgstr "--cmd \tvimrcɤ ¹Ԥ" -#: ../main.c:2233 msgid "-c \t\tExecute after loading the first file" msgstr "-c \t\tǽΥեɸ ¹Ԥ" -#: ../main.c:2235 msgid "-S \t\tSource file after loading the first file" msgstr "-S \t\tǽΥեɸե " -#: ../main.c:2236 msgid "-s \tRead Normal mode commands from file " msgstr "-s \tե Ρޥ륳ޥɤɹ" -#: ../main.c:2237 msgid "-w \tAppend all typed commands to file " msgstr "-w \tϤޥɤե ɲä" -#: ../main.c:2238 msgid "-W \tWrite all typed commands to file " msgstr "-W \tϤޥɤե ¸" -#: ../main.c:2240 +msgid "-x\t\t\tEdit encrypted files" +msgstr "-x\t\t\tŹ沽줿եԽ" + +msgid "-display \tConnect vim to this particular X-server" +msgstr "-display \tvimꤷ X С³" + +msgid "-X\t\t\tDo not connect to X server" +msgstr "-X\t\t\tXС³ʤ" + +msgid "--remote \tEdit in a Vim server if possible" +msgstr "--remote \tǽʤVimС Խ" + +msgid "--remote-silent Same, don't complain if there is no server" +msgstr "--remote-silent Ʊ, С̵ƤٹʸϤʤ" + +msgid "" +"--remote-wait As --remote but wait for files to have been edited" +msgstr "--remote-wait \t--remote եԽΤԤ" + +msgid "" +"--remote-wait-silent Same, don't complain if there is no server" +msgstr "" +"--remote-wait-silent Ʊ, С̵ƤٹʸϤʤ" + +msgid "" +"--remote-tab[-wait][-silent] As --remote but use tab page per file" +msgstr "" +"--remote-tab[-wait][-silent] --remoteǥե1ĤˤĤ1ĤΥ" +"ڡ򳫤" + +msgid "--remote-send \tSend to a Vim server and exit" +msgstr "--remote-send \tVimС ƽλ" + +msgid "--remote-expr \tEvaluate in a Vim server and print result" +msgstr "--remote-expr \tС ¹ԤƷ̤ɽ" + +msgid "--serverlist\t\tList available Vim server names and exit" +msgstr "--serverlist\t\tVimС̾ΰɽƽλ" + +msgid "--servername \tSend to/become the Vim server " +msgstr "--servername \tVimС /̾ꤹ" + msgid "--startuptime \tWrite startup timing messages to " msgstr "--startuptime \tưˤä֤ξܺ٤ ؽϤ" -#: ../main.c:2242 msgid "-i \t\tUse instead of .viminfo" msgstr "-i \t\t.viminfo Ȥ" -#: ../main.c:2243 msgid "-h or --help\tPrint Help (this message) and exit" msgstr "-h or --help\tإ(Υå)ɽλ" -#: ../main.c:2244 msgid "--version\t\tPrint version information and exit" msgstr "--version\t\tСɽλ" -#: ../mark.c:676 +msgid "" +"\n" +"Arguments recognised by gvim (Motif version):\n" +msgstr "" +"\n" +"gvimˤäƲᤵ(MotifС):\n" + +msgid "" +"\n" +"Arguments recognised by gvim (neXtaw version):\n" +msgstr "" +"\n" +"gvimˤäƲᤵ(neXtawС):\n" + +msgid "" +"\n" +"Arguments recognised by gvim (Athena version):\n" +msgstr "" +"\n" +"gvimˤäƲᤵ(AthenaС):\n" + +msgid "-display \tRun vim on " +msgstr "-display \t vim¹Ԥ" + +msgid "-iconic\t\tStart vim iconified" +msgstr "-iconic\t\tǾ֤vimư" + +msgid "-background \tUse for the background (also: -bg)" +msgstr "-background \tطʿ Ȥ(Ʊ: -bg)" + +msgid "-foreground \tUse for normal text (also: -fg)" +msgstr "-foreground \tʿ Ȥ(Ʊ: -fg)" + +msgid "-font \t\tUse for normal text (also: -fn)" +msgstr "-font \t\tƥɽ Ȥ(Ʊ: -fn)" + +msgid "-boldfont \tUse for bold text" +msgstr "-boldfont \t Ȥ" + +msgid "-italicfont \tUse for italic text" +msgstr "-italicfont \tλ Ȥ" + +msgid "-geometry \tUse for initial geometry (also: -geom)" +msgstr "-geometry \t֤ Ȥ(Ʊ: -geom)" + +msgid "-borderwidth \tUse a border width of (also: -bw)" +msgstr "-borderwidth \t ˤ(Ʊ: -bw)" + +msgid "-scrollbarwidth Use a scrollbar width of (also: -sw)" +msgstr "" +"-scrollbarwidth С ˤ(Ʊ: -sw)" + +msgid "-menuheight \tUse a menu bar height of (also: -mh)" +msgstr "-menuheight \t˥塼Сι⤵ ˤ(Ʊ: -mh)" + +msgid "-reverse\t\tUse reverse video (also: -rv)" +msgstr "-reverse\t\tȿžѤ(Ʊ: -rv)" + +msgid "+reverse\t\tDon't use reverse video (also: +rv)" +msgstr "+reverse\t\tȿžѤʤ(Ʊ: +rv)" + +msgid "-xrm \tSet the specified resource" +msgstr "-xrm \tΥ꥽Ѥ" + +msgid "" +"\n" +"Arguments recognised by gvim (GTK+ version):\n" +msgstr "" +"\n" +"gvimˤäƲᤵ(GTK+С):\n" + +msgid "-display \tRun vim on (also: --display)" +msgstr "-display \t vim¹Ԥ(Ʊ: --display)" + +msgid "--role \tSet a unique role to identify the main window" +msgstr "--role \tᥤ󥦥ɥ̤դ(role)ꤹ" + +msgid "--socketid \tOpen Vim inside another GTK widget" +msgstr "--socketid \tۤʤGTK widgetVim򳫤" + +msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout" +msgstr "--echo-wid\t\tɥIDɸϤ˽Ϥ" + +msgid "-P \tOpen Vim inside parent application" +msgstr "-P <ƤΥȥ>\tVimƥץꥱǵư" + +msgid "--windowid \tOpen Vim inside another win32 widget" +msgstr "--windowid \tۤʤWin32 widgetVim򳫤" + +msgid "No display" +msgstr "ǥץ쥤Ĥޤ" + +#. Failed to send, abort. +msgid ": Send failed.\n" +msgstr ": ˼Ԥޤ.\n" + +#. Let vim start normally. +msgid ": Send failed. Trying to execute locally\n" +msgstr ": ˼Ԥޤ. Ǥμ¹ԤߤƤޤ\n" + +#, c-format +msgid "%d of %d edited" +msgstr "%d (%d ) ΥեԽޤ" + +msgid "No display: Send expression failed.\n" +msgstr "ǥץ쥤ޤ: ˼Ԥޤ.\n" + +msgid ": Send expression failed.\n" +msgstr ": ˼Ԥޤ.\n" + msgid "No marks set" msgstr "ޡꤵƤޤ" -#: ../mark.c:678 #, c-format msgid "E283: No marks matching \"%s\"" msgstr "E283: \"%s\" ˳ޡޤ" #. Highlight title -#: ../mark.c:687 msgid "" "\n" "mark line col file/text" @@ -3602,7 +3261,6 @@ msgstr "" "mark ե/ƥ" #. Highlight title -#: ../mark.c:789 msgid "" "\n" " jump line col file/text" @@ -3611,7 +3269,6 @@ msgstr "" " jump ե/ƥ" #. Highlight title -#: ../mark.c:831 msgid "" "\n" "change line col text" @@ -3619,7 +3276,6 @@ msgstr "" "\n" "ѹ ƥ" -#: ../mark.c:1238 msgid "" "\n" "# File marks:\n" @@ -3628,7 +3284,6 @@ msgstr "" "# եޡ:\n" #. Write the jumplist with -' -#: ../mark.c:1271 msgid "" "\n" "# Jumplist (newest first):\n" @@ -3636,7 +3291,6 @@ msgstr "" "\n" "# ץꥹ (Τ):\n" -#: ../mark.c:1352 msgid "" "\n" "# History of marks within files (newest to oldest):\n" @@ -3644,84 +3298,88 @@ msgstr "" "\n" "# եޡ (ΤŤ):\n" -#: ../mark.c:1431 msgid "Missing '>'" msgstr "'>' Ĥޤ" -#: ../memfile.c:426 +msgid "E543: Not a valid codepage" +msgstr "E543: ̵ʥɥڡǤ" + +msgid "E284: Cannot set IC values" +msgstr "E284: ICͤǤޤ" + +msgid "E285: Failed to create input context" +msgstr "E285: ץåȥƥȤκ˼Ԥޤ" + +msgid "E286: Failed to open input method" +msgstr "E286: ץåȥ᥽åɤΥץ˼Ԥޤ" + +msgid "E287: Warning: Could not set destroy callback to IM" +msgstr "E287: ٹ: IM˲ХåǤޤǤ" + +msgid "E288: input method doesn't support any style" +msgstr "E288: ץåȥ᥽åɤϤɤʥ⥵ݡȤޤ" + +msgid "E289: input method doesn't support my preedit type" +msgstr "E289: ץåȥ᥽åɤ my preedit type 򥵥ݡȤޤ" + msgid "E293: block was not locked" msgstr "E293: ֥ååƤޤ" -#: ../memfile.c:799 msgid "E294: Seek error in swap file read" msgstr "E294: åץեɹ˥顼Ǥ" -#: ../memfile.c:803 msgid "E295: Read error in swap file" msgstr "E295: åץեɹߥ顼Ǥ" -#: ../memfile.c:849 msgid "E296: Seek error in swap file write" msgstr "E296: åץե߻˥顼Ǥ" -#: ../memfile.c:865 msgid "E297: Write error in swap file" msgstr "E297: åץեνߥ顼Ǥ" -#: ../memfile.c:1036 msgid "E300: Swap file already exists (symlink attack?)" msgstr "E300: åץե뤬¸ߤޤ (symlinkˤ빶?)" -#: ../memline.c:318 msgid "E298: Didn't get block nr 0?" msgstr "E298: ֥å 0 Ǥޤ?" -#: ../memline.c:361 msgid "E298: Didn't get block nr 1?" msgstr "E298: ֥å 1 Ǥޤ?" -#: ../memline.c:377 msgid "E298: Didn't get block nr 2?" msgstr "E298: ֥å 2 Ǥޤ?" +msgid "E843: Error while updating swap file crypt" +msgstr "E843: åץեΰŹ򹹿˥顼ȯޤ" + #. could not (re)open the swap file, what can we do???? -#: ../memline.c:465 msgid "E301: Oops, lost the swap file!!!" msgstr "E301: ä, åץե뤬ޤ!!!" -#: ../memline.c:477 msgid "E302: Could not rename swap file" msgstr "E302: åץե̾Ѥޤ" -#: ../memline.c:554 #, c-format msgid "E303: Unable to open swap file for \"%s\", recovery impossible" msgstr "E303: \"%s\" Υåץե򳫤ʤΤǥꥫХԲǽǤ" -#: ../memline.c:666 msgid "E304: ml_upd_block0(): Didn't get block 0??" msgstr "E304: ml_upd_block0(): ֥å 0 ǤޤǤ??" -#. no swap files found -#: ../memline.c:830 #, c-format msgid "E305: No swap file found for %s" msgstr "E305: %s ˤϥåץե뤬Ĥޤ" -#: ../memline.c:839 msgid "Enter number of swap file to use (0 to quit): " msgstr "Ѥ륹åץեֹϤƤ(0 ǽλ): " -#: ../memline.c:879 #, c-format msgid "E306: Cannot open %s" msgstr "E306: %s 򳫤ޤ" -#: ../memline.c:897 msgid "Unable to read block 0 from " msgstr "֥å 0 ɹޤ " -#: ../memline.c:900 msgid "" "\n" "Maybe no changes were made or Vim did not update the swap file." @@ -3729,28 +3387,22 @@ msgstr "" "\n" "餯ѹƤʤVimåץե򹹿Ƥޤ." -#: ../memline.c:909 msgid " cannot be used with this version of Vim.\n" msgstr " VimΤΥСǤϻѤǤޤ.\n" -#: ../memline.c:911 msgid "Use Vim version 3.0.\n" msgstr "VimΥС3.0ѤƤ.\n" -#: ../memline.c:916 #, c-format msgid "E307: %s does not look like a Vim swap file" msgstr "E307: %s VimΥåץեǤϤʤ褦Ǥ" -#: ../memline.c:922 msgid " cannot be used on this computer.\n" msgstr " Υԥ塼ǤϻѤǤޤ.\n" -#: ../memline.c:924 msgid "The file was created on " msgstr "ΥեϼξǺޤ " -#: ../memline.c:928 msgid "" ",\n" "or the file has been damaged." @@ -3758,85 +3410,104 @@ msgstr "" ",\n" "⤷ϥե뤬»Ƥޤ." -#: ../memline.c:945 +#, c-format +msgid "" +"E833: %s is encrypted and this version of Vim does not support encryption" +msgstr "" +"E833: %s ϤΥСVimǥݡȤƤʤǰŹ沽Ƥޤ" + msgid " has been damaged (page size is smaller than minimum value).\n" msgstr " »Ƥޤ (ڡǾͤ򲼲äƤޤ).\n" -#: ../memline.c:974 #, c-format msgid "Using swap file \"%s\"" msgstr "åץե \"%s\" " -#: ../memline.c:980 #, c-format msgid "Original file \"%s\"" msgstr "ܥե \"%s\"" -#: ../memline.c:995 msgid "E308: Warning: Original file may have been changed" msgstr "E308: ٹ: ܥե뤬ѹƤޤ" -#: ../memline.c:1061 +#, c-format +msgid "Swap file is encrypted: \"%s\"" +msgstr "åץեϰŹ沽Ƥޤ: \"%s\"" + +msgid "" +"\n" +"If you entered a new crypt key but did not write the text file," +msgstr "" +"\n" +"Ź業ϤȤ˥ƥȥե¸Ƥʤ," + +msgid "" +"\n" +"enter the new crypt key." +msgstr "" +"\n" +"Ź業ϤƤ." + +msgid "" +"\n" +"If you wrote the text file after changing the crypt key press enter" +msgstr "" +"\n" +"Ź業ѤȤ˥ƥȥե¸, ƥȥե" + +msgid "" +"\n" +"to use the same key for text file and swap file" +msgstr "" +"\n" +"åץեƱŹ業Ȥenter򲡤Ƥ." + #, c-format msgid "E309: Unable to read block 1 from %s" msgstr "E309: %s ֥å 1 ɹޤ" -#: ../memline.c:1065 msgid "???MANY LINES MISSING" msgstr "???¿ιԤƤޤ" -#: ../memline.c:1076 msgid "???LINE COUNT WRONG" msgstr "???ԿְäƤޤ" -#: ../memline.c:1082 msgid "???EMPTY BLOCK" msgstr "???֥åǤ" -#: ../memline.c:1103 msgid "???LINES MISSING" msgstr "???ԤƤޤ" -#: ../memline.c:1128 #, c-format msgid "E310: Block 1 ID wrong (%s not a .swp file?)" msgstr "E310: ֥å 1 IDְäƤޤ(%s .swpեǤʤ?)" -#: ../memline.c:1133 msgid "???BLOCK MISSING" msgstr "???֥åޤ" -#: ../memline.c:1147 msgid "??? from here until ???END lines may be messed up" msgstr "??? ???END ޤǤιԤ˲Ƥ褦Ǥ" -#: ../memline.c:1164 msgid "??? from here until ???END lines may have been inserted/deleted" msgstr "??? ???END ޤǤιԤ줿褦Ǥ" -#: ../memline.c:1181 msgid "???END" msgstr "???END" -#: ../memline.c:1238 msgid "E311: Recovery Interrupted" msgstr "E311: ꥫХ꤬ޤޤ" -#: ../memline.c:1243 msgid "" "E312: Errors detected while recovering; look for lines starting with ???" msgstr "" "E312: ꥫХκ˥顼Фޤ; ???ǻϤޤԤ򻲾ȤƤ" -#: ../memline.c:1245 msgid "See \":help E312\" for more information." msgstr "ܺ٤ \":help E312\" 򻲾ȤƤ" -#: ../memline.c:1249 msgid "Recovery completed. You should check if everything is OK." msgstr "ꥫХ꤬λޤ. ƤåƤ." -#: ../memline.c:1251 msgid "" "\n" "(You might want to write out this file under another name\n" @@ -3844,15 +3515,12 @@ msgstr "" "\n" "(ѹå뤿, Υե̤̾¸\n" -#: ../memline.c:1252 msgid "and run diff with the original file to check for changes)" msgstr "ܥեȤ diff ¹ԤɤǤ礦)" -#: ../memline.c:1254 msgid "Recovery completed. Buffer contents equals file contents." msgstr "λ. ХåեƤϥեƱˤʤޤ." -#: ../memline.c:1255 msgid "" "\n" "You may want to delete the .swp file now.\n" @@ -3862,52 +3530,43 @@ msgstr "" ".swpեϺƤ⹽ޤ\n" "\n" +msgid "Using crypt key from swap file for the text file.\n" +msgstr "åץե뤫Ź業ƥȥե˻Ȥޤ.\n" + #. use msg() to start the scrolling properly -#: ../memline.c:1327 msgid "Swap files found:" msgstr "åץե뤬ʣĤޤ:" -#: ../memline.c:1446 msgid " In current directory:\n" msgstr " ߤΥǥ쥯ȥ:\n" -#: ../memline.c:1448 msgid " Using specified name:\n" msgstr " ʲ̾:\n" -#: ../memline.c:1450 msgid " In directory " msgstr " ǥ쥯ȥ " -#: ../memline.c:1465 msgid " -- none --\n" msgstr " -- ʤ --\n" -#: ../memline.c:1527 msgid " owned by: " msgstr " ͭ: " -#: ../memline.c:1529 msgid " dated: " msgstr " : " -#: ../memline.c:1532 ../memline.c:3231 msgid " dated: " msgstr " : " -#: ../memline.c:1548 msgid " [from Vim version 3.0]" msgstr " [from Vim version 3.0]" -#: ../memline.c:1550 msgid " [does not look like a Vim swap file]" msgstr " [VimΥåץեǤϤʤ褦Ǥ]" -#: ../memline.c:1552 msgid " file name: " msgstr " ե̾: " -#: ../memline.c:1558 msgid "" "\n" " modified: " @@ -3915,15 +3574,12 @@ msgstr "" "\n" " ѹ: " -#: ../memline.c:1559 msgid "YES" msgstr "" -#: ../memline.c:1559 msgid "no" msgstr "ʤ" -#: ../memline.c:1562 msgid "" "\n" " user name: " @@ -3931,11 +3587,9 @@ msgstr "" "\n" " 桼̾: " -#: ../memline.c:1568 msgid " host name: " msgstr " ۥ̾: " -#: ../memline.c:1570 msgid "" "\n" " host name: " @@ -3943,7 +3597,6 @@ msgstr "" "\n" " ۥ̾: " -#: ../memline.c:1575 msgid "" "\n" " process ID: " @@ -3951,11 +3604,16 @@ msgstr "" "\n" " ץID: " -#: ../memline.c:1579 msgid " (still running)" msgstr " (ޤ¹)" -#: ../memline.c:1586 +msgid "" +"\n" +" [not usable with this version of Vim]" +msgstr "" +"\n" +" [VimСǤϻѤǤޤ]" + msgid "" "\n" " [not usable on this computer]" @@ -3963,97 +3621,75 @@ msgstr "" "\n" " [Υԥ塼ǤϻѤǤޤ]" -#: ../memline.c:1590 msgid " [cannot be read]" msgstr " [ɹޤ]" -#: ../memline.c:1593 msgid " [cannot be opened]" msgstr " [ޤ]" -#: ../memline.c:1698 msgid "E313: Cannot preserve, there is no swap file" msgstr "E313: åץե뤬̵ΤǰݻǤޤ" -#: ../memline.c:1747 msgid "File preserved" msgstr "ե뤬ݻޤ" -#: ../memline.c:1749 msgid "E314: Preserve failed" msgstr "E314: ݻ˼Ԥޤ" -#: ../memline.c:1819 #, c-format -msgid "E315: ml_get: invalid lnum: %" -msgstr "E315: ml_get: ̵lnumǤ: %" +msgid "E315: ml_get: invalid lnum: %ld" +msgstr "E315: ml_get: ̵lnumǤ: %ld" -#: ../memline.c:1851 #, c-format -msgid "E316: ml_get: cannot find line %" -msgstr "E316: ml_get: % 򸫤Ĥޤ" +msgid "E316: ml_get: cannot find line %ld" +msgstr "E316: ml_get: %ld 򸫤Ĥޤ" -#: ../memline.c:2236 msgid "E317: pointer block id wrong 3" msgstr "E317: ݥ󥿥֥åIDְäƤޤ 3" -#: ../memline.c:2311 msgid "stack_idx should be 0" msgstr "stack_idx 0 Ǥ٤Ǥ" -#: ../memline.c:2369 msgid "E318: Updated too many blocks?" msgstr "E318: 줿֥å¿᤮뤫?" -#: ../memline.c:2511 msgid "E317: pointer block id wrong 4" msgstr "E317: ݥ󥿥֥åIDְäƤޤ 4" -#: ../memline.c:2536 msgid "deleted block 1?" msgstr "֥å 1 Ͼä줿?" -#: ../memline.c:2707 #, c-format -msgid "E320: Cannot find line %" -msgstr "E320: % Ĥޤ" +msgid "E320: Cannot find line %ld" +msgstr "E320: %ld Ĥޤ" -#: ../memline.c:2916 msgid "E317: pointer block id wrong" msgstr "E317: ݥ󥿥֥åIDְäƤޤ" -#: ../memline.c:2930 msgid "pe_line_count is zero" msgstr "pe_line_count Ǥ" -#: ../memline.c:2955 #, c-format -msgid "E322: line number out of range: % past the end" -msgstr "E322: ֹ椬ϰϳǤ: % ĶƤޤ" +msgid "E322: line number out of range: %ld past the end" +msgstr "E322: ֹ椬ϰϳǤ: %ld ĶƤޤ" -#: ../memline.c:2959 #, c-format -msgid "E323: line count wrong in block %" -msgstr "E323: ֥å % ιԥȤְäƤޤ" +msgid "E323: line count wrong in block %ld" +msgstr "E323: ֥å %ld ιԥȤְäƤޤ" -#: ../memline.c:2999 msgid "Stack size increases" msgstr "åޤ" -#: ../memline.c:3038 msgid "E317: pointer block id wrong 2" msgstr "E317: ݥ󥿥֥åIDְäƤޤ 2" -#: ../memline.c:3070 #, c-format msgid "E773: Symlink loop for \"%s\"" msgstr "E773: \"%s\" Υܥå󥯤롼פˤʤäƤޤ" -#: ../memline.c:3221 msgid "E325: ATTENTION" msgstr "E325: " -#: ../memline.c:3222 msgid "" "\n" "Found a swap file by the name \"" @@ -4061,39 +3697,32 @@ msgstr "" "\n" "̾ǥåץե򸫤Ĥޤ \"" -#: ../memline.c:3226 msgid "While opening file \"" msgstr "Υե򳫤Ƥ \"" -#: ../memline.c:3239 msgid " NEWER than swap file!\n" msgstr " åץե⿷Ǥ!\n" -#: ../memline.c:3244 +#. Some of these messages are long to allow translation to +#. * other languages. msgid "" "\n" "(1) Another program may be editing the same file. If this is the case,\n" " be careful not to end up with two different instances of the same\n" -" file when making changes." +" file when making changes. Quit, or continue with caution.\n" msgstr "" "\n" "(1) ̤ΥץबƱեԽƤ뤫⤷ޤ.\n" " ξˤ, ѹ򤷤Ƥޤ1ĤΥեФưۤʤ2Ĥ\n" -" 󥹥󥹤ǤƤޤΤ, ʤ褦˵ĤƤ." - -#: ../memline.c:3245 -msgid " Quit, or continue with caution.\n" -msgstr " λ뤫, դʤ³Ƥ.\n" +" 󥹥󥹤ǤƤޤΤ, ʤ褦˵ĤƤ.\n" +" λ뤫, դʤ³Ƥ.\n" -#: ../memline.c:3246 msgid "(2) An edit session for this file crashed.\n" msgstr "(2) ΥեԽå󤬥å夷.\n" -#: ../memline.c:3247 msgid " If this is the case, use \":recover\" or \"vim -r " msgstr " ξˤ \":recover\" \"vim -r " -#: ../memline.c:3249 msgid "" "\"\n" " to recover the changes (see \":help recovery\").\n" @@ -4101,11 +3730,9 @@ msgstr "" "\"\n" " ѤѹꥫСޤ(\":help recovery\" 򻲾).\n" -#: ../memline.c:3250 msgid " If you did this already, delete the swap file \"" msgstr " ˤԤʤäΤʤ, åץե \"" -#: ../memline.c:3252 msgid "" "\"\n" " to avoid this message.\n" @@ -4113,23 +3740,18 @@ msgstr "" "\"\n" " äФΥåǤޤ.\n" -#: ../memline.c:3450 ../memline.c:3452 msgid "Swap file \"" msgstr "åץե \"" -#: ../memline.c:3451 ../memline.c:3455 msgid "\" already exists!" msgstr "\" ˤޤ!" -#: ../memline.c:3457 msgid "VIM - ATTENTION" msgstr "VIM - " -#: ../memline.c:3459 msgid "Swap file already exists!" msgstr "åץե뤬¸ߤޤ!" -#: ../memline.c:3464 msgid "" "&Open Read-Only\n" "&Edit anyway\n" @@ -4143,7 +3765,6 @@ msgstr "" "λ(&Q)\n" "ߤ(&A)" -#: ../memline.c:3467 msgid "" "&Open Read-Only\n" "&Edit anyway\n" @@ -4159,56 +3780,34 @@ msgstr "" "λ(&Q)\n" "ߤ(&A)" -#. -#. * Change the ".swp" extension to find another file that can be used. -#. * First decrement the last char: ".swo", ".swn", etc. -#. * If that still isn't enough decrement the last but one char: ".svz" -#. * Can happen when editing many "No Name" buffers. -#. -#. ".s?a" -#. ".saa": tried enough, give up -#: ../memline.c:3528 msgid "E326: Too many swap files found" msgstr "E326: åץե뤬¿Ĥޤ" -#: ../memory.c:227 -#, c-format -msgid "E342: Out of memory! (allocating % bytes)" -msgstr "E342: ꤬­ޤ! (% ХȤ׵)" - -#: ../menu.c:62 msgid "E327: Part of menu-item path is not sub-menu" msgstr "E327: ˥塼ƥΥѥʬ֥˥塼ǤϤޤ" -#: ../menu.c:63 msgid "E328: Menu only exists in another mode" msgstr "E328: ˥塼¾Υ⡼ɤˤޤ" -#: ../menu.c:64 #, c-format msgid "E329: No menu \"%s\"" msgstr "E329: \"%s\" Ȥ˥塼Ϥޤ" #. Only a mnemonic or accelerator is not valid. -#: ../menu.c:329 msgid "E792: Empty menu name" msgstr "E792: ˥塼̾Ǥ" -#: ../menu.c:340 msgid "E330: Menu path must not lead to a sub-menu" msgstr "E330: ˥塼ѥϥ֥˥塼٤ǤϤޤ" -#: ../menu.c:365 msgid "E331: Must not add menu items directly to menu bar" msgstr "E331: ˥塼Сˤľܥ˥塼ƥɲäǤޤ" -#: ../menu.c:370 msgid "E332: Separator cannot be part of a menu path" msgstr "E332: ڤϥ˥塼ѥΰǤϤޤ" #. Now we have found the matching menu, and we list the mappings #. Highlight title -#: ../menu.c:762 msgid "" "\n" "--- Menus ---" @@ -4216,69 +3815,60 @@ msgstr "" "\n" "--- ˥塼 ---" -#: ../menu.c:1313 +msgid "Tear off this menu" +msgstr "Υ˥塼ڤ" + msgid "E333: Menu path must lead to a menu item" msgstr "E333: ˥塼ѥϥ˥塼ƥʤФޤ" -#: ../menu.c:1330 #, c-format msgid "E334: Menu not found: %s" msgstr "E334: ˥塼Ĥޤ: %s" -#: ../menu.c:1396 #, c-format msgid "E335: Menu not defined for %s mode" msgstr "E335: %s ˤϥ˥塼Ƥޤ" -#: ../menu.c:1426 msgid "E336: Menu path must lead to a sub-menu" msgstr "E336: ˥塼ѥϥ֥˥塼ʤФޤ" -#: ../menu.c:1447 msgid "E337: Menu not found - check menu names" msgstr "E337: ˥塼Ĥޤ - ˥塼̾ǧƤ" -#: ../message.c:423 #, c-format msgid "Error detected while processing %s:" msgstr "%s ν˥顼Фޤ:" -#: ../message.c:445 #, c-format msgid "line %4ld:" msgstr " %4ld:" -#: ../message.c:617 #, c-format msgid "E354: Invalid register name: '%s'" msgstr "E354: ̵ʥ쥸̾: '%s'" -#: ../message.c:986 +msgid "Messages maintainer: Bram Moolenaar " +msgstr "ܸå/ƽ: ¼ Ϻ " + msgid "Interrupt: " msgstr ": " -#: ../message.c:988 msgid "Press ENTER or type command to continue" msgstr "³ˤENTER򲡤ޥɤϤƤ" -#: ../message.c:1843 #, c-format -msgid "%s line %" -msgstr "%s %" +msgid "%s line %ld" +msgstr "%s %ld" -#: ../message.c:2392 msgid "-- More --" msgstr "-- ³ --" -#: ../message.c:2398 msgid " SPACE/d/j: screen/page/line down, b/u/k: up, q: quit " msgstr " SPACE/d/j: /ڡ/ , b/u/k: , q: λ " -#: ../message.c:3021 ../message.c:3031 msgid "Question" msgstr "" -#: ../message.c:3023 msgid "" "&Yes\n" "&No" @@ -4286,199 +3876,260 @@ msgstr "" "Ϥ(&Y)\n" "(&N)" -#: ../message.c:3033 msgid "" "&Yes\n" "&No\n" +"Save &All\n" +"&Discard All\n" "&Cancel" msgstr "" "Ϥ(&Y)\n" "(&N)\n" +"¸(&A)\n" +"(&D)\n" "󥻥(&C)" -#: ../message.c:3045 -msgid "" -"&Yes\n" -"&No\n" -"Save &All\n" -"&Discard All\n" -"&Cancel" -msgstr "" -"Ϥ(&Y)\n" -"(&N)\n" -"¸(&A)\n" -"(&D)\n" -"󥻥(&C)" +msgid "Select Directory dialog" +msgstr "ǥ쥯ȥ" + +msgid "Save File dialog" +msgstr "ե¸" + +msgid "Open File dialog" +msgstr "եɹ" + +#. TODO: non-GUI file selector here +msgid "E338: Sorry, no file browser in console mode" +msgstr "E338: 󥽡⡼ɤǤϥե֥饦Ȥޤ, ʤ" -#: ../message.c:3058 msgid "E766: Insufficient arguments for printf()" msgstr "E766: printf() ΰԽʬǤ" -#: ../message.c:3119 msgid "E807: Expected Float argument for printf()" msgstr "E807: printf() ΰˤưԤƤޤ" -#: ../message.c:3873 msgid "E767: Too many arguments to printf()" msgstr "E767: printf() ΰ¿᤮ޤ" -#: ../misc1.c:2256 msgid "W10: Warning: Changing a readonly file" msgstr "W10: ٹ: ɹѥեѹޤ" -#: ../misc1.c:2537 msgid "Type number and or click with mouse (empty cancels): " msgstr "" "ֹϤ뤫ޥǥåƤ (ǥ󥻥): " -#: ../misc1.c:2539 msgid "Type number and (empty cancels): " msgstr "ֹϤƤ (ǥ󥻥): " -#: ../misc1.c:2585 msgid "1 more line" msgstr "1 ɲäޤ" -#: ../misc1.c:2588 msgid "1 line less" msgstr "1 ޤ" -#: ../misc1.c:2593 #, c-format -msgid "% more lines" -msgstr "% ɲäޤ" +msgid "%ld more lines" +msgstr "%ld ɲäޤ" -#: ../misc1.c:2596 #, c-format -msgid "% fewer lines" -msgstr "% ޤ" +msgid "%ld fewer lines" +msgstr "%ld ޤ" -#: ../misc1.c:2599 msgid " (Interrupted)" msgstr " (ޤޤ)" -#: ../misc1.c:2635 msgid "Beep!" msgstr "ӡ!" -#: ../misc2.c:738 +msgid "ERROR: " +msgstr "顼: " + +#, c-format +msgid "" +"\n" +"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n" +msgstr "" +"\n" +"[(Х)] - %lu-%lu, %lu, ԡ %lu\n" + +#, c-format +msgid "" +"[calls] total re/malloc()'s %lu, total free()'s %lu\n" +"\n" +msgstr "" +"[ƽ] re/malloc() %lu, free() %lu\n" +"\n" + +msgid "E340: Line is becoming too long" +msgstr "E340: ԤĹʤ᤮ޤ" + +#, c-format +msgid "E341: Internal error: lalloc(%ld, )" +msgstr "E341: 顼: lalloc(%ld,)" + +#, c-format +msgid "E342: Out of memory! (allocating %lu bytes)" +msgstr "E342: ꤬­ޤ! (%lu ХȤ׵)" + #, c-format msgid "Calling shell to execute: \"%s\"" msgstr "¹ԤΤ˥ƽФ: \"%s\"" -#: ../normal.c:183 +msgid "E545: Missing colon" +msgstr "E545: 󤬤ޤ" + +msgid "E546: Illegal mode" +msgstr "E546: ʥ⡼ɤǤ" + +msgid "E547: Illegal mouseshape" +msgstr "E547: 'mouseshape' Ǥ" + +msgid "E548: digit expected" +msgstr "E548: ͤɬפǤ" + +msgid "E549: Illegal percentage" +msgstr "E549: ʥѡơǤ" + +msgid "E854: path too long for completion" +msgstr "E854: ѥĹ᤮䴰Ǥޤ" + +#, c-format +msgid "" +"E343: Invalid path: '**[number]' must be at the end of the path or be " +"followed by '%s'." +msgstr "" +"E343: ̵ʥѥǤ: '**[]' pathκǸ夫 '%s' ³ƤʤȤޤ" +"." + +#, c-format +msgid "E344: Can't find directory \"%s\" in cdpath" +msgstr "E344: cdpathˤ \"%s\" Ȥե뤬ޤ" + +#, c-format +msgid "E345: Can't find file \"%s\" in path" +msgstr "E345: pathˤ \"%s\" Ȥե뤬ޤ" + +#, c-format +msgid "E346: No more directory \"%s\" found in cdpath" +msgstr "E346: cdpathˤϤʾ \"%s\" Ȥե뤬ޤ" + +#, c-format +msgid "E347: No more file \"%s\" found in path" +msgstr "E347: ѥˤϤʾ \"%s\" Ȥե뤬ޤ" + +#, c-format +msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" +msgstr "" +"E668: NetBeans³եΥ⡼ɤ꤬ޤ: \"%s\"" + +#, c-format +msgid "E658: NetBeans connection lost for buffer %ld" +msgstr "E658: Хåե %ld NetBeans ³ޤ" + +msgid "E838: netbeans is not supported with this GUI" +msgstr "E838: NetBeansϤGUIˤбƤޤ" + +msgid "E511: netbeans already connected" +msgstr "E511: NetBeansϴ³Ƥޤ" + +#, c-format +msgid "E505: %s is read-only (add ! to override)" +msgstr "E505: %s ɹѤǤ (ˤ ! ɲ)" + msgid "E349: No identifier under cursor" msgstr "E349: ΰ֤ˤϼ̻Ҥޤ" -#: ../normal.c:1866 msgid "E774: 'operatorfunc' is empty" msgstr "E774: 'operatorfunc' ץ󤬶Ǥ" -#: ../normal.c:2637 +msgid "E775: Eval feature not available" +msgstr "E775: ɾǽ̵ˤʤäƤޤ" + msgid "Warning: terminal cannot highlight" msgstr "ٹ: ѤƤüϥϥ饤ȤǤޤ" -#: ../normal.c:2807 msgid "E348: No string under cursor" msgstr "E348: ΰ֤ˤʸ󤬤ޤ" -#: ../normal.c:3937 msgid "E352: Cannot erase folds with current 'foldmethod'" msgstr "E352: ߤ 'foldmethod' Ǥ޾ߤõǤޤ" -#: ../normal.c:5897 msgid "E664: changelist is empty" msgstr "E664: ѹꥹȤǤ" -#: ../normal.c:5899 msgid "E662: At start of changelist" msgstr "E662: ѹꥹȤƬ" -#: ../normal.c:5901 msgid "E663: At end of changelist" msgstr "E663: ѹꥹȤ" -#: ../normal.c:7053 -msgid "Type :quit to exit Nvim" +msgid "Type :quit to exit Vim" msgstr "Vimλˤ :quit ϤƤ" -#: ../ops.c:248 #, c-format msgid "1 line %sed 1 time" msgstr "1 Ԥ %s 1 ޤ" -#: ../ops.c:250 #, c-format msgid "1 line %sed %d times" msgstr "1 Ԥ %s %d ޤ" -#: ../ops.c:253 #, c-format -msgid "% lines %sed 1 time" -msgstr "% Ԥ %s 1 ޤ" +msgid "%ld lines %sed 1 time" +msgstr "%ld Ԥ %s 1 ޤ" -#: ../ops.c:256 #, c-format -msgid "% lines %sed %d times" -msgstr "% Ԥ %s %d ޤ" +msgid "%ld lines %sed %d times" +msgstr "%ld Ԥ %s %d ޤ" -#: ../ops.c:592 #, c-format -msgid "% lines to indent... " -msgstr "% ԤǥȤޤ... " +msgid "%ld lines to indent... " +msgstr "%ld ԤǥȤޤ... " -#: ../ops.c:634 msgid "1 line indented " msgstr "1 Ԥ򥤥ǥȤޤ " -#: ../ops.c:636 #, c-format -msgid "% lines indented " -msgstr "% Ԥ򥤥ǥȤޤ " +msgid "%ld lines indented " +msgstr "%ld Ԥ򥤥ǥȤޤ " -#: ../ops.c:938 msgid "E748: No previously used register" msgstr "E748: ޤ쥸ѤƤޤ" #. must display the prompt -#: ../ops.c:1433 msgid "cannot yank; delete anyway" msgstr "󥯤Ǥޤ; Ȥˤõ" -#: ../ops.c:1929 msgid "1 line changed" msgstr "1 Ԥѹޤ" -#: ../ops.c:1931 #, c-format -msgid "% lines changed" -msgstr "% Ԥѹޤ" +msgid "%ld lines changed" +msgstr "%ld Ԥѹޤ" + +#, c-format +msgid "freeing %ld lines" +msgstr "%ld Ԥ" -#: ../ops.c:2521 msgid "block of 1 line yanked" msgstr "1 ԤΥ֥å󥯤ޤ" -#: ../ops.c:2523 msgid "1 line yanked" msgstr "1 Ԥ󥯤ޤ" -#: ../ops.c:2525 #, c-format -msgid "block of % lines yanked" -msgstr "% ԤΥ֥å󥯤ޤ" +msgid "block of %ld lines yanked" +msgstr "%ld ԤΥ֥å󥯤ޤ" -#: ../ops.c:2528 #, c-format -msgid "% lines yanked" -msgstr "% Ԥ󥯤ޤ" +msgid "%ld lines yanked" +msgstr "%ld Ԥ󥯤ޤ" -#: ../ops.c:2710 #, c-format msgid "E353: Nothing in register %s" msgstr "E353: 쥸 %s ˤϲ⤢ޤ" #. Highlight title -#: ../ops.c:3185 msgid "" "\n" "--- Registers ---" @@ -4486,11 +4137,9 @@ msgstr "" "\n" "--- 쥸 ---" -#: ../ops.c:4455 msgid "Illegal register name" msgstr "ʥ쥸̾" -#: ../ops.c:4533 msgid "" "\n" "# Registers:\n" @@ -4498,7 +4147,6 @@ msgstr "" "\n" "# 쥸:\n" -#: ../ops.c:4575 #, c-format msgid "E574: Unknown register type %d" msgstr "E574: ̤ΤΥ쥸 %d Ǥ" @@ -4508,86 +4156,61 @@ msgid "" "lines" msgstr "E883: ѥȼ쥸ˤ2԰ʾޤޤ" -#: ../ops.c:5089 #, c-format -msgid "% Cols; " -msgstr "% ; " +msgid "%ld Cols; " +msgstr "%ld ; " -#: ../ops.c:5097 #, c-format -msgid "" -"Selected %s% of % Lines; % of % Words; " -"% of % Bytes" -msgstr "" -" %s% / % ; % / % ñ; % / " -"% Х" +msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes" +msgstr " %s%ld / %ld ; %lld / %lld ñ; %lld / %lld Х" -#: ../ops.c:5105 #, c-format msgid "" -"Selected %s% of % Lines; % of % Words; " -"% of % Chars; % of % Bytes" +"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of " +"%lld Bytes" msgstr "" -" %s% / % ; % / % ñ; % / " -"% ʸ; % / % Х" +" %s%ld / %ld ; %lld / %lld ñ; %lld / %lld ʸ; %lld / %lld Х" -#: ../ops.c:5123 #, c-format -msgid "" -"Col %s of %s; Line % of %; Word % of %; Byte " -"% of %" -msgstr "" -" %s / %s; % of %; ñ % / %; Х " -"% / %" +msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld" +msgstr " %s / %s; %ld of %ld; ñ %lld / %lld; Х %lld / %lld" -#: ../ops.c:5133 #, c-format msgid "" -"Col %s of %s; Line % of %; Word % of %; Char " -"% of %; Byte % of %" +"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte " +"%lld of %lld" msgstr "" -" %s / %s; % / %; ñ % / %; ʸ " -"% / %; Х % of %" +" %s / %s; %ld / %ld; ñ %lld / %lld; ʸ %lld / %lld; Х %lld of " +"%lld" -#: ../ops.c:5146 #, c-format -msgid "(+% for BOM)" -msgstr "(+% for BOM)" +msgid "(+%ld for BOM)" +msgstr "(+%ld for BOM)" -#: ../option.c:1238 msgid "%<%f%h%m%=Page %N" msgstr "%<%f%h%m%=%N ڡ" -#: ../option.c:1574 msgid "Thanks for flying Vim" msgstr "Vim ȤäƤƤ꤬Ȥ" -#. found a mismatch: skip -#: ../option.c:2698 msgid "E518: Unknown option" msgstr "E518: ̤ΤΥץǤ" -#: ../option.c:2709 msgid "E519: Option not supported" msgstr "E519: ץϥݡȤƤޤ" -#: ../option.c:2740 msgid "E520: Not allowed in a modeline" msgstr "E520: modeline ǤϵĤޤ" -#: ../option.c:2815 msgid "E846: Key code not set" msgstr "E846: ɤꤵƤޤ" -#: ../option.c:2924 msgid "E521: Number required after =" msgstr "E521: = θˤϿɬפǤ" -#: ../option.c:3226 ../option.c:3864 msgid "E522: Not found in termcap" msgstr "E522: termcap ˸Ĥޤ" -#: ../option.c:3335 #, c-format msgid "E539: Illegal character <%s>" msgstr "E539: ʸǤ <%s>" @@ -4596,93 +4219,99 @@ msgstr "E539: msgid "For option %s" msgstr "ץ: %s" -#: ../option.c:3862 msgid "E529: Cannot set 'term' to empty string" msgstr "E529: 'term' ˤ϶ʸǤޤ" -#: ../option.c:3885 +msgid "E530: Cannot change term in GUI" +msgstr "E530: GUIǤ 'term' ѹǤޤ" + +msgid "E531: Use \":gui\" to start the GUI" +msgstr "E531: GUI򥹥Ȥˤ \":gui\" ѤƤ" + msgid "E589: 'backupext' and 'patchmode' are equal" msgstr "E589: 'backupext' 'patchmode' ƱǤ" -#: ../option.c:3964 msgid "E834: Conflicts with value of 'listchars'" msgstr "E834: 'listchars'̷ͤ⤬ޤ" -#: ../option.c:3966 msgid "E835: Conflicts with value of 'fillchars'" msgstr "E835: 'fillchars'̷ͤ⤬ޤ" -#: ../option.c:4163 +msgid "E617: Cannot be changed in the GTK+ 2 GUI" +msgstr "E617: GTK+2 GUIǤѹǤޤ" + msgid "E524: Missing colon" msgstr "E524: 󤬤ޤ" -#: ../option.c:4165 msgid "E525: Zero length string" msgstr "E525: ʸĹǤ" -#: ../option.c:4220 #, c-format msgid "E526: Missing number after <%s>" msgstr "E526: <%s> θ˿ޤ" -#: ../option.c:4232 msgid "E527: Missing comma" msgstr "E527: ޤޤ" -#: ../option.c:4239 msgid "E528: Must specify a ' value" msgstr "E528: ' ͤꤷʤФʤޤ" -#: ../option.c:4271 msgid "E595: contains unprintable or wide character" msgstr "E595: ɽǤʤʸ磻ʸޤǤޤ" -#: ../option.c:4469 +msgid "E596: Invalid font(s)" +msgstr "E596: ̵ʥեȤǤ" + +msgid "E597: can't select fontset" +msgstr "E597: եȥåȤǤޤ" + +msgid "E598: Invalid fontset" +msgstr "E598: ̵ʥեȥåȤǤ" + +msgid "E533: can't select wide font" +msgstr "E533: 磻ɥեȤǤޤ" + +msgid "E534: Invalid wide font" +msgstr "E534: ̵ʥ磻ɥեȤǤ" + #, c-format msgid "E535: Illegal character after <%c>" msgstr "E535: <%c> θʸޤ" -#: ../option.c:4534 msgid "E536: comma required" msgstr "E536: ޤɬפǤ" -#: ../option.c:4543 #, c-format msgid "E537: 'commentstring' must be empty or contain %s" msgstr "E537: 'commentstring' ϶Ǥ뤫 %s ޤɬפޤ" -#: ../option.c:4928 +msgid "E538: No mouse support" +msgstr "E538: ޥϥݡȤޤ" + msgid "E540: Unclosed expression sequence" msgstr "E540: λƤޤ" -#: ../option.c:4932 msgid "E541: too many items" msgstr "E541: Ǥ¿᤮ޤ" -#: ../option.c:4934 msgid "E542: unbalanced groups" msgstr "E542: 롼פ礤ޤ" -#: ../option.c:5148 msgid "E590: A preview window already exists" msgstr "E590: ץӥ塼ɥ¸ߤޤ" -#: ../option.c:5311 msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'" msgstr "" "W17: ӥʸˤUTF-8ɬפʤΤ, ':set encoding=utf-8' Ƥ" -#: ../option.c:5623 #, c-format msgid "E593: Need at least %d lines" msgstr "E593: %d ιԿɬפǤ" -#: ../option.c:5631 #, c-format msgid "E594: Need at least %d columns" msgstr "E594: %d ΥɬפǤ" -#: ../option.c:6011 #, c-format msgid "E355: Unknown option: %s" msgstr "E355: ̤ΤΥץǤ: %s" @@ -4690,12 +4319,10 @@ msgstr "E355: ̤ #. There's another character after zeros or the string #. * is empty. In both cases, we are trying to set a #. * num option using a string. -#: ../option.c:6037 #, c-format msgid "E521: Number required: &%s = '%s'" msgstr "E521: ɬפǤ: &%s = '%s'" -#: ../option.c:6149 msgid "" "\n" "--- Terminal codes ---" @@ -4703,7 +4330,6 @@ msgstr "" "\n" "--- ü ---" -#: ../option.c:6151 msgid "" "\n" "--- Global option values ---" @@ -4711,7 +4337,6 @@ msgstr "" "\n" "--- Х륪ץ ---" -#: ../option.c:6153 msgid "" "\n" "--- Local option values ---" @@ -4719,7 +4344,6 @@ msgstr "" "\n" "--- 륪ץ ---" -#: ../option.c:6155 msgid "" "\n" "--- Options ---" @@ -4727,37 +4351,119 @@ msgstr "" "\n" "--- ץ ---" -#: ../option.c:6816 msgid "E356: get_varp ERROR" msgstr "E356: get_varp 顼" -#: ../option.c:7696 #, c-format msgid "E357: 'langmap': Matching character missing for %s" msgstr "E357: 'langmap': %s бʸޤ" -#: ../option.c:7715 #, c-format msgid "E358: 'langmap': Extra characters after semicolon: %s" msgstr "E358: 'langmap': ߥθ;ʬʸޤ: %s" -#: ../os/shell.c:194 -msgid "" -"\n" -"Cannot execute shell " -msgstr "" -"\n" -"¹ԤǤޤ " +msgid "cannot open " +msgstr "ޤ " + +msgid "VIM: Can't open window!\n" +msgstr "VIM: ɥ򳫤ޤ!\n" + +msgid "Need Amigados version 2.04 or later\n" +msgstr "AmigadosΥС 2.04ʹߤɬפǤ\n" + +#, c-format +msgid "Need %s version %ld\n" +msgstr "%s ΥС %ld ɬפǤ\n" + +msgid "Cannot open NIL:\n" +msgstr "NIL򳫤ޤ:\n" + +msgid "Cannot create " +msgstr "Ǥޤ " + +#, c-format +msgid "Vim exiting with %d\n" +msgstr "Vim %d ǽλޤ\n" + +msgid "cannot change console mode ?!\n" +msgstr "󥽡⡼ɤѹǤޤ?!\n" + +msgid "mch_get_shellsize: not a console??\n" +msgstr "mch_get_shellsize: 󥽡ǤϤʤ??\n" + +#. if Vim opened a window: Executing a shell may cause crashes +msgid "E360: Cannot execute shell with -f option" +msgstr "E360: -f ץǥ¹ԤǤޤ" + +msgid "Cannot execute " +msgstr "¹ԤǤޤ " + +msgid "shell " +msgstr " " + +msgid " returned\n" +msgstr " ޤ\n" + +msgid "ANCHOR_BUF_SIZE too small." +msgstr "ANCHOR_BUF_SIZE ᤮ޤ." + +msgid "I/O ERROR" +msgstr "ϥ顼" + +msgid "Message" +msgstr "å" + +msgid "'columns' is not 80, cannot execute external commands" +msgstr "'columns' 80 ǤϤʤᡢޥɤ¹ԤǤޤ" + +msgid "E237: Printer selection failed" +msgstr "E237: ץ󥿤˼Ԥޤ" + +#, c-format +msgid "to %s on %s" +msgstr "%s (%s )" + +#, c-format +msgid "E613: Unknown printer font: %s" +msgstr "E613: ̤ΤΥץ󥿥ץǤ: %s" + +#, c-format +msgid "E238: Print error: %s" +msgstr "E238: 顼: %s" + +#, c-format +msgid "Printing '%s'" +msgstr "Ƥޤ: '%s'" + +#, c-format +msgid "E244: Illegal charset name \"%s\" in font name \"%s\"" +msgstr "E244: ʸå̾ \"%s\" Ǥ (ե̾ \"%s\")" + +#, c-format +msgid "E244: Illegal quality name \"%s\" in font name \"%s\"" +msgstr "E244: ʼ̾ \"%s\" Ǥ (ե̾ \"%s\")" + +#, c-format +msgid "E245: Illegal char '%c' in font name \"%s\"" +msgstr "E245: '%c' ʸǤ (ե̾ \"%s\")" + +#, c-format +msgid "Opening the X display took %ld msec" +msgstr "XСؤ³ %ld ߥäޤ" -#: ../os/shell.c:439 msgid "" "\n" -"shell returned " +"Vim: Got X error\n" msgstr "" "\n" -"뤬֤ͤޤ " +"Vim: X Υ顼򸡽Фޤr\n" + +msgid "Testing the X display failed" +msgstr "X display Υå˼Ԥޤ" + +msgid "Opening the X display timed out" +msgstr "X display open ॢȤޤ" -#: ../os_unix.c:465 ../os_unix.c:471 msgid "" "\n" "Could not get security context for " @@ -4765,7 +4471,6 @@ msgstr "" "\n" "ƥƥȤǤޤ " -#: ../os_unix.c:479 msgid "" "\n" "Could not set security context for " @@ -4781,223 +4486,293 @@ msgstr " msgid "Could not get security context %s for %s. Removing it!" msgstr "ƥƥ %s %s Ǥޤ. ޤ!" -#: ../os_unix.c:1558 ../os_unix.c:1647 +msgid "" +"\n" +"Cannot execute shell sh\n" +msgstr "" +"\n" +"sh ¹ԤǤޤ\n" + +msgid "" +"\n" +"shell returned " +msgstr "" +"\n" +"뤬֤ͤޤ " + +msgid "" +"\n" +"Cannot create pipes\n" +msgstr "" +"\n" +"ѥפǤޤ\n" + +msgid "" +"\n" +"Cannot fork\n" +msgstr "" +"\n" +"fork Ǥޤ\n" + +msgid "" +"\n" +"Cannot execute shell " +msgstr "" +"\n" +"¹ԤǤޤ " + +msgid "" +"\n" +"Command terminated\n" +msgstr "" +"\n" +"ޥɤǤޤ\n" + +msgid "XSMP lost ICE connection" +msgstr "XSMP ICE³򼺤ޤ" + #, c-format msgid "dlerror = \"%s\"" msgstr "dlerror = \"%s\"" -#: ../path.c:1449 +msgid "Opening the X display failed" +msgstr "X display open ˼Ԥޤ" + +msgid "XSMP handling save-yourself request" +msgstr "XSMP save-yourself׵Ƥޤ" + +msgid "XSMP opening connection" +msgstr "XSMP ³򳫻ϤƤޤ" + +msgid "XSMP ICE connection watch failed" +msgstr "XSMP ICE³Ԥ褦Ǥ" + #, c-format -msgid "E447: Can't find file \"%s\" in path" -msgstr "E447: pathˤ \"%s\" Ȥե뤬ޤ" +msgid "XSMP SmcOpenConnection failed: %s" +msgstr "XSMP SmcOpenConnectionԤޤ: %s" + +msgid "At line" +msgstr "" + +msgid "Could not load vim32.dll!" +msgstr "vim32.dll ɤǤޤǤ" + +msgid "VIM Error" +msgstr "VIM顼" + +msgid "Could not fix up function pointers to the DLL!" +msgstr "DLLؿݥ󥿤ǤޤǤ" + +#, c-format +msgid "Vim: Caught %s event\n" +msgstr "Vim: ٥ %s \n" + +msgid "close" +msgstr "Ĥ" + +msgid "logoff" +msgstr "" + +msgid "shutdown" +msgstr "åȥ" + +msgid "E371: Command not found" +msgstr "E371: ޥɤޤ" + +msgid "" +"VIMRUN.EXE not found in your $PATH.\n" +"External commands will not pause after completion.\n" +"See :help win32-vimrun for more information." +msgstr "" +"VIMRUN.EXE $PATH ˸Ĥޤ.\n" +"ޥɤνλ˰ߤ򤷤ޤ.\n" +"ܺ٤ :help win32-vimrun 򻲾ȤƤ." + +msgid "Vim Warning" +msgstr "Vimηٹ" + +#, c-format +msgid "shell returned %d" +msgstr "뤬 %d ǽλޤ" -#: ../quickfix.c:359 #, c-format msgid "E372: Too many %%%c in format string" msgstr "E372: եޥåʸ %%%c ¿᤮ޤ" -#: ../quickfix.c:371 #, c-format msgid "E373: Unexpected %%%c in format string" msgstr "E373: եޥåʸͽ %%%c ޤ" -#: ../quickfix.c:420 msgid "E374: Missing ] in format string" msgstr "E374: եޥåʸ ] ޤ" -#: ../quickfix.c:431 #, c-format msgid "E375: Unsupported %%%c in format string" msgstr "E375: եޥåʸǤ %%%c ϥݡȤޤ" -#: ../quickfix.c:448 #, c-format msgid "E376: Invalid %%%c in format string prefix" msgstr "E376: եޥåʸ̵֤ %%%c ޤ" -#: ../quickfix.c:454 #, c-format msgid "E377: Invalid %%%c in format string" msgstr "E377: եޥåʸ̵ %%%c ޤ" #. nothing found -#: ../quickfix.c:477 msgid "E378: 'errorformat' contains no pattern" msgstr "E378: 'errorformat' ˥ѥ󤬻ꤵƤޤ" -#: ../quickfix.c:695 msgid "E379: Missing or empty directory name" msgstr "E379: ǥ쥯ȥ̵̾Ǥ" -#: ../quickfix.c:1305 msgid "E553: No more items" msgstr "E553: Ǥ⤦ޤ" -#: ../quickfix.c:1674 +msgid "E924: Current window was closed" +msgstr "E924: ߤΥɥĤޤ" + +msgid "E925: Current quickfix was changed" +msgstr "E925: ߤ quickfix ѹޤ" + +msgid "E926: Current location list was changed" +msgstr "E926: ߤΥꥹȤѹޤ" + #, c-format msgid "(%d of %d)%s%s: " msgstr "(%d of %d)%s%s: " -#: ../quickfix.c:1676 msgid " (line deleted)" msgstr " (Ԥޤ)" -#: ../quickfix.c:1863 +#, c-format +msgid "%serror list %d of %d; %d errors " +msgstr "%s 顼 %d of %d; %d ĥ顼" + msgid "E380: At bottom of quickfix stack" msgstr "E380: quickfix åǤ" -#: ../quickfix.c:1869 msgid "E381: At top of quickfix stack" msgstr "E381: quickfix åƬǤ" -#: ../quickfix.c:1880 -#, c-format -msgid "error list %d of %d; %d errors" -msgstr "顼 %d of %d; %d ĥ顼" +msgid "No entries" +msgstr "ȥ꤬ޤ" -#: ../quickfix.c:2427 msgid "E382: Cannot write, 'buftype' option is set" msgstr "E382: 'buftype' ץꤵƤΤǽߤޤ" -#: ../quickfix.c:2812 +msgid "Error file" +msgstr "顼ե" + msgid "E683: File name missing or invalid pattern" msgstr "E683: ե̵̵̾ʥѥǤ" -#: ../quickfix.c:2911 #, c-format msgid "Cannot open file \"%s\"" msgstr "ե \"%s\" 򳫤ޤ" -#: ../quickfix.c:3429 msgid "E681: Buffer is not loaded" msgstr "E681: Хåեɤ߹ޤޤǤ" -#: ../quickfix.c:3487 msgid "E777: String or List expected" msgstr "E777: ʸ󤫥ꥹȤɬפǤ" -#: ../regexp.c:359 #, c-format msgid "E369: invalid item in %s%%[]" msgstr "E369: ̵ʹܤǤ: %s%%[]" # -#: ../regexp.c:374 #, c-format msgid "E769: Missing ] after %s[" msgstr "E769: %s[ θ ] ޤ" -#: ../regexp.c:375 #, c-format msgid "E53: Unmatched %s%%(" msgstr "E53: %s%%( äƤޤ" -#: ../regexp.c:376 #, c-format msgid "E54: Unmatched %s(" msgstr "E54: %s( äƤޤ" -#: ../regexp.c:377 #, c-format msgid "E55: Unmatched %s)" msgstr "E55: %s) äƤޤ" # -#: ../regexp.c:378 msgid "E66: \\z( not allowed here" msgstr "E66: \\z( ϥǤϵĤƤޤ" # -#: ../regexp.c:379 msgid "E67: \\z1 et al. not allowed here" msgstr "E67: \\z1 ¾ϥǤϵĤƤޤ" # -#: ../regexp.c:380 #, c-format msgid "E69: Missing ] after %s%%[" msgstr "E69: %s%%[ θ ] ޤ" -#: ../regexp.c:381 #, c-format msgid "E70: Empty %s%%[]" msgstr "E70: %s%%[] Ǥ" -#: ../regexp.c:1209 ../regexp.c:1224 msgid "E339: Pattern too long" msgstr "E339: ѥĹ᤮ޤ" -#: ../regexp.c:1371 msgid "E50: Too many \\z(" msgstr "E50: \\z( ¿᤮ޤ" -#: ../regexp.c:1378 #, c-format msgid "E51: Too many %s(" msgstr "E51: %s( ¿᤮ޤ" -#: ../regexp.c:1427 msgid "E52: Unmatched \\z(" msgstr "E52: \\z( äƤޤ" -#: ../regexp.c:1637 #, c-format msgid "E59: invalid character after %s@" msgstr "E59: %s@ θʸޤ" -#: ../regexp.c:1672 #, c-format msgid "E60: Too many complex %s{...}s" msgstr "E60: ʣ %s{...} ¿᤮ޤ" -#: ../regexp.c:1687 #, c-format msgid "E61: Nested %s*" msgstr "E61:%s* ҤˤʤäƤޤ" -#: ../regexp.c:1690 #, c-format msgid "E62: Nested %s%c" msgstr "E62:%s%c ҤˤʤäƤޤ" # -#: ../regexp.c:1800 msgid "E63: invalid use of \\_" msgstr "E63: \\_ ̵ʻˡǤ" -#: ../regexp.c:1850 #, c-format msgid "E64: %s%c follows nothing" msgstr "E64:%s%c θˤʤˤ⤢ޤ" # -#: ../regexp.c:1902 msgid "E65: Illegal back reference" msgstr "E65: ʸȤǤ" # -#: ../regexp.c:1943 msgid "E68: Invalid character after \\z" msgstr "E68: \\z θʸޤ" # -#: ../regexp.c:2049 ../regexp_nfa.c:1296 #, c-format msgid "E678: Invalid character after %s%%[dxouU]" msgstr "E678: %s%%[dxouU] θʸޤ" # -#: ../regexp.c:2107 #, c-format msgid "E71: Invalid character after %s%%" msgstr "E71: %s%% θʸޤ" -#: ../regexp.c:3017 #, c-format msgid "E554: Syntax error in %s{...}" msgstr "E554: %s{...} ʸˡ顼ޤ" -#: ../regexp.c:3805 msgid "External submatches:\n" msgstr "ʬ:\n" @@ -5005,7 +4780,6 @@ msgstr " msgid "E888: (NFA regexp) cannot repeat %s" msgstr "E888: (NFA ɽ) ֤ޤ %s" -#: ../regexp.c:7022 msgid "" "E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be " "used " @@ -5016,62 +4790,54 @@ msgstr "" msgid "Switching to backtracking RE engine for pattern: " msgstr "Υѥ˥Хåȥå RE 󥸥ŬѤޤ: " -#: ../regexp_nfa.c:239 msgid "E865: (NFA) Regexp end encountered prematurely" msgstr "E865: (NFA) Ԥ᤯ɽνüãޤ" -#: ../regexp_nfa.c:240 #, c-format msgid "E866: (NFA regexp) Misplaced %c" msgstr "E866: (NFA ɽ) ֤äƤޤ: %c" -#: ../regexp_nfa.c:242 +# #, c-format -msgid "E877: (NFA regexp) Invalid character class: %" -msgstr "E877: (NFA ɽ) ̵ʸ饹: %" +msgid "E877: (NFA regexp) Invalid character class: %ld" +msgstr "E877: (NFA ɽ) ̵ʸ饹: %ld" -#: ../regexp_nfa.c:1261 #, c-format msgid "E867: (NFA) Unknown operator '\\z%c'" msgstr "E867: (NFA) ̤ΤΥڥ졼Ǥ: '\\z%c'" -#: ../regexp_nfa.c:1387 #, c-format msgid "E867: (NFA) Unknown operator '\\%%%c'" msgstr "E867: (NFA) ̤ΤΥڥ졼Ǥ: '\\%%%c'" -#: ../regexp_nfa.c:1802 +#. should never happen +msgid "E868: Error building NFA with equivalence class!" +msgstr "E868: 饹ޤNFAۤ˼Ԥޤ!" + #, c-format msgid "E869: (NFA) Unknown operator '\\@%c'" msgstr "E869: (NFA) ̤ΤΥڥ졼Ǥ: '\\@%c'" -#: ../regexp_nfa.c:1831 msgid "E870: (NFA regexp) Error reading repetition limits" msgstr "E870: (NFA ɽ) ֤²ɹ˥顼" #. Can't have a multi follow a multi. -#: ../regexp_nfa.c:1895 msgid "E871: (NFA regexp) Can't have a multi follow a multi !" msgstr "E871: (NFA ɽ) ֤ θ ֤ ϤǤޤ!" #. Too many `(' -#: ../regexp_nfa.c:2037 msgid "E872: (NFA regexp) Too many '('" msgstr "E872: (NFA ɽ) '(' ¿᤮ޤ" -#: ../regexp_nfa.c:2042 msgid "E879: (NFA regexp) Too many \\z(" msgstr "E879: (NFA ɽ) \\z( ¿᤮ޤ" -#: ../regexp_nfa.c:2066 msgid "E873: (NFA regexp) proper termination error" msgstr "E873: (NFA ɽ) ü椬ޤ" -#: ../regexp_nfa.c:2599 msgid "E874: (NFA) Could not pop the stack !" msgstr "E874: (NFA) åݥåפǤޤ!" -#: ../regexp_nfa.c:3298 msgid "" "E875: (NFA regexp) (While converting from postfix to NFA), too many states " "left on stack" @@ -5079,177 +4845,136 @@ msgstr "" "E875: (NFA ɽ) (ʸNFAѴ) å˻Ĥ줿ơȤ" "¿᤮ޤ" -#: ../regexp_nfa.c:3302 msgid "E876: (NFA regexp) Not enough space to store the whole NFA " msgstr "E876: (NFA ɽ) NFAΤ¸ˤ϶ڡ­ޤ" -#: ../regexp_nfa.c:4571 ../regexp_nfa.c:4869 +msgid "E878: (NFA) Could not allocate memory for branch traversal!" +msgstr "E878: (NFA) ߲Υ֥˽ʬʥƤޤ!" + msgid "" "Could not open temporary log file for writing, displaying on stderr ... " msgstr "" "NFAɽ󥸥ѤΥեѤȤƳޤ󡣥ɸϤ" "Ϥޤ" -#: ../regexp_nfa.c:4840 #, c-format msgid "(NFA) COULD NOT OPEN %s !" msgstr "(NFA) ե %s 򳫤ޤ!" -#: ../regexp_nfa.c:6049 msgid "Could not open temporary log file for writing " msgstr "NFAɽ󥸥ѤΥեѤȤƳޤ" -#: ../screen.c:7435 msgid " VREPLACE" msgstr " ִ" -#: ../screen.c:7437 msgid " REPLACE" msgstr " ִ" -#: ../screen.c:7440 msgid " REVERSE" msgstr " ȿž" -#: ../screen.c:7441 msgid " INSERT" msgstr " " -#: ../screen.c:7443 msgid " (insert)" msgstr " ()" -#: ../screen.c:7445 msgid " (replace)" msgstr " (ִ)" -#: ../screen.c:7447 msgid " (vreplace)" msgstr " (ִ)" -#: ../screen.c:7449 msgid " Hebrew" msgstr " إ֥饤" -#: ../screen.c:7454 msgid " Arabic" msgstr " ӥ" -#: ../screen.c:7456 -msgid " (lang)" -msgstr " ()" - -#: ../screen.c:7459 msgid " (paste)" msgstr " (Žդ)" -#: ../screen.c:7469 msgid " VISUAL" msgstr " ӥ奢" -#: ../screen.c:7470 msgid " VISUAL LINE" msgstr " ӥ奢 " -#: ../screen.c:7471 msgid " VISUAL BLOCK" msgstr " ӥ奢 " -#: ../screen.c:7472 msgid " SELECT" msgstr " 쥯" -#: ../screen.c:7473 msgid " SELECT LINE" msgstr " Իظ" -#: ../screen.c:7474 msgid " SELECT BLOCK" msgstr " " -#: ../screen.c:7486 ../screen.c:7541 msgid "recording" msgstr "Ͽ" -#: ../search.c:487 #, c-format msgid "E383: Invalid search string: %s" msgstr "E383: ̵ʸʸǤ: %s" -#: ../search.c:832 #, c-format msgid "E384: search hit TOP without match for: %s" msgstr "E384: ޤǸޤսϤޤ: %s" -#: ../search.c:835 #, c-format msgid "E385: search hit BOTTOM without match for: %s" msgstr "E385: ޤǸޤսϤޤ: %s" -#: ../search.c:1200 msgid "E386: Expected '?' or '/' after ';'" msgstr "E386: ';' ΤȤˤ '?' '/' ԤƤ" -#: ../search.c:4085 msgid " (includes previously listed match)" msgstr " (󤷤սޤ)" #. cursor at status line -#: ../search.c:4104 msgid "--- Included files " msgstr "--- 󥯥롼ɤ줿ե " -#: ../search.c:4106 msgid "not found " msgstr "Ĥޤ " -#: ../search.c:4107 msgid "in path ---\n" msgstr "ѥ ----\n" -#: ../search.c:4168 msgid " (Already listed)" msgstr " ()" -#: ../search.c:4170 msgid " NOT FOUND" msgstr " Ĥޤ" -#: ../search.c:4211 #, c-format msgid "Scanning included file: %s" msgstr "󥯥롼ɤ줿ե򥹥: %s" -#: ../search.c:4216 #, c-format msgid "Searching included file %s" msgstr "󥯥롼ɤ줿ե򥹥 %s" -#: ../search.c:4405 msgid "E387: Match is on current line" msgstr "E387: ߹Ԥ˳ޤ" -#: ../search.c:4517 msgid "All included files were found" msgstr "ƤΥ󥯥롼ɤ줿ե뤬Ĥޤ" -#: ../search.c:4519 msgid "No included files" msgstr "󥯥롼ɥեϤޤ" -#: ../search.c:4527 msgid "E388: Couldn't find definition" msgstr "E388: 򸫤Ĥޤ" -#: ../search.c:4529 msgid "E389: Couldn't find pattern" msgstr "E389: ѥ򸫤Ĥޤ" -#: ../search.c:4668 msgid "Substitute " msgstr "Substitute " -#: ../search.c:4681 #, c-format msgid "" "\n" @@ -5260,99 +4985,131 @@ msgstr "" "# Ǹ %sѥ:\n" "~" -#: ../spell.c:951 -msgid "E759: Format error in spell file" -msgstr "E759: ڥեν񼰥顼Ǥ" +msgid "E756: Spell checking is not enabled" +msgstr "E756: ڥå̵Ƥޤ" + +#, c-format +msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\"" +msgstr "" +"ٹ: ñꥹ \"%s_%s.spl\" \"%s_ascii.spl\" ϸĤޤ" + +#, c-format +msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\"" +msgstr "" +"ٹ: ñꥹ \"%s.%s.spl\" \"%s.ascii.spl\" ϸĤޤ" + +msgid "E797: SpellFileMissing autocommand deleted buffer" +msgstr "E797: autocommand SpellFileMissing Хåեޤ" + +#, c-format +msgid "Warning: region %s not supported" +msgstr "ٹ9: %s ȤϰϤϥݡȤƤޤ" + +msgid "Sorry, no suggestions" +msgstr "ǰǤ, Ϥޤ" + +#, c-format +msgid "Sorry, only %ld suggestions" +msgstr "ǰǤ, %ld Ĥޤ" + +#. for when 'cmdheight' > 1 +#. avoid more prompt +#, c-format +msgid "Change \"%.*s\" to:" +msgstr "\"%.*s\" 򼡤Ѵ:" + +#, c-format +msgid " < \"%.*s\"" +msgstr " < \"%.*s\"" + +msgid "E752: No previous spell replacement" +msgstr "E752: ڥִޤ¹ԤƤޤ" + +#, c-format +msgid "E753: Not found: %s" +msgstr "E753: Ĥޤ: %s" -#: ../spell.c:952 msgid "E758: Truncated spell file" msgstr "E758: ڥե뤬ڼƤ褦Ǥ" -#: ../spell.c:953 #, c-format msgid "Trailing text in %s line %d: %s" msgstr "%s (%d ) ³ƥ: %s" -#: ../spell.c:954 #, c-format msgid "Affix name too long in %s line %d: %s" msgstr "%s (%d ) affix ̾Ĺ᤮ޤ: %s" -#: ../spell.c:955 msgid "E761: Format error in affix file FOL, LOW or UPP" msgstr "" "E761: affixե FOL, LOW ⤷ UPP ΥեޥåȤ˥顼ޤ" -#: ../spell.c:957 msgid "E762: Character in FOL, LOW or UPP is out of range" msgstr "E762: FOL, LOW ⤷ UPP ʸϰϳǤ" -#: ../spell.c:958 msgid "Compressing word tree..." msgstr "ñĥ꡼򰵽̤Ƥޤ..." -#: ../spell.c:1951 -msgid "E756: Spell checking is not enabled" -msgstr "E756: ڥå̵Ƥޤ" - -#: ../spell.c:2249 -#, c-format -msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\"" -msgstr "" -"ٹ: ñꥹ \"%s.%s.spl\" \"%s.ascii.spl\" ϸĤޤ" - -#: ../spell.c:2473 #, c-format msgid "Reading spell file \"%s\"" msgstr "ڥե \"%s\" ɹ" -#: ../spell.c:2496 msgid "E757: This does not look like a spell file" msgstr "E757: ڥեǤϤʤ褦Ǥ" -#: ../spell.c:2501 msgid "E771: Old spell file, needs to be updated" msgstr "E771: ŤڥեʤΤ, åץǡȤƤ" -#: ../spell.c:2504 msgid "E772: Spell file is for newer version of Vim" msgstr "E772: 꿷С Vim ѤΥڥեǤ" -#: ../spell.c:2602 msgid "E770: Unsupported section in spell file" msgstr "E770: ڥե˥ݡȤƤʤ󤬤ޤ" -#: ../spell.c:3762 #, c-format -msgid "Warning: region %s not supported" -msgstr "ٹ9: %s ȤϰϤϥݡȤƤޤ" +msgid "E778: This does not look like a .sug file: %s" +msgstr "E778: .sug եǤϤʤ褦Ǥ: %s" + +#, c-format +msgid "E779: Old .sug file, needs to be updated: %s" +msgstr "E779: Ť .sug եʤΤ, åץǡȤƤ: %s" + +#, c-format +msgid "E780: .sug file is for newer version of Vim: %s" +msgstr "E780: 꿷С Vim Ѥ .sug եǤ: %s" + +#, c-format +msgid "E781: .sug file doesn't match .spl file: %s" +msgstr "E781: .sug ե뤬 .spl եȰפޤ: %s" + +#, c-format +msgid "E782: error while reading .sug file: %s" +msgstr "E782: .sug եɹ˥顼ȯޤ: %s" -#: ../spell.c:4550 #, c-format msgid "Reading affix file %s ..." msgstr "affix ե %s ɹ..." -#: ../spell.c:4589 ../spell.c:5635 ../spell.c:6140 #, c-format msgid "Conversion failure for word in %s line %d: %s" msgstr "%s (%d ) ñѴǤޤǤ: %s" -#: ../spell.c:4630 ../spell.c:6170 #, c-format msgid "Conversion in %s not supported: from %s to %s" msgstr "%s μѴϥݡȤƤޤ: %s %s " -#: ../spell.c:4642 +#, c-format +msgid "Conversion in %s not supported" +msgstr "%s ѴϥݡȤƤޤ" + #, c-format msgid "Invalid value for FLAG in %s line %d: %s" msgstr "%s %d ܤ FLAG ̵ͤޤ: %s" -#: ../spell.c:4655 #, c-format msgid "FLAG after using flags in %s line %d: %s" msgstr "%s %d ܤ˥ե饰ŻѤޤ: %s" -#: ../spell.c:4723 #, c-format msgid "" "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line " @@ -5361,7 +5118,6 @@ msgstr "" "%s %d ܤ PFX ܤθ COMPOUNDFORBIDFLAG ϸä̤" "Ȥޤ" -#: ../spell.c:4731 #, c-format msgid "" "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line " @@ -5370,43 +5126,35 @@ msgstr "" "%s %d ܤ PFX ܤθ COMPOUNDPERMITFLAG ϸä̤" "Ȥޤ" -#: ../spell.c:4747 #, c-format msgid "Wrong COMPOUNDRULES value in %s line %d: %s" msgstr "COMPOUNDRULES ͤ˸꤬ޤ. ե %s %d : %s" -#: ../spell.c:4771 #, c-format msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s" msgstr "%s %d ܤ COMPOUNDWORDMAX ͤ˸꤬ޤ: %s" -#: ../spell.c:4777 #, c-format msgid "Wrong COMPOUNDMIN value in %s line %d: %s" msgstr "%s %d ܤ COMPOUNDMIN ͤ˸꤬ޤ: %s" -#: ../spell.c:4783 #, c-format msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s" msgstr "%s %d ܤ COMPOUNDSYLMAX ͤ˸꤬ޤ: %s" -#: ../spell.c:4795 #, c-format msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s" msgstr "%s %d ܤ CHECKCOMPOUNDPATTERN ͤ˸꤬ޤ: %s" -#: ../spell.c:4847 #, c-format msgid "Different combining flag in continued affix block in %s line %d: %s" msgstr "" "%s %d ܤ Ϣ³ affix ֥åΥե饰ȹ礻˰㤤ޤ: %s" -#: ../spell.c:4850 #, c-format msgid "Duplicate affix in %s line %d: %s" msgstr "%s %d ܤ ʣ affix 򸡽Фޤ: %s" -#: ../spell.c:4871 #, c-format msgid "" "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s " @@ -5415,308 +5163,206 @@ msgstr "" "%s %d ܤ affix BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST " "˻ѤƤ: %s" -#: ../spell.c:4893 #, c-format msgid "Expected Y or N in %s line %d: %s" msgstr "%s %d ܤǤ Y N ɬפǤ: %s" -#: ../spell.c:4968 #, c-format msgid "Broken condition in %s line %d: %s" msgstr "%s %d ܤ ϲƤޤ: %s" -#: ../spell.c:5091 #, c-format msgid "Expected REP(SAL) count in %s line %d" msgstr "%s %d ܤˤ REP(SAL) βɬפǤ" -#: ../spell.c:5120 #, c-format msgid "Expected MAP count in %s line %d" msgstr "%s %d ܤˤ MAP βɬפǤ" -#: ../spell.c:5132 #, c-format msgid "Duplicate character in MAP in %s line %d" msgstr "%s %d ܤ MAP ˽ʣʸޤ" -#: ../spell.c:5176 #, c-format msgid "Unrecognized or duplicate item in %s line %d: %s" msgstr "%s %d ܤ ǧǤʤʣܤޤ: %s" -#: ../spell.c:5197 #, c-format msgid "Missing FOL/LOW/UPP line in %s" msgstr "%s ܤ FOL/LOW/UPP ޤ" -#: ../spell.c:5220 msgid "COMPOUNDSYLMAX used without SYLLABLE" msgstr "SYLLABLE ꤵʤ COMPOUNDSYLMAX" -#: ../spell.c:5236 msgid "Too many postponed prefixes" msgstr "ٱֻҤ¿᤮ޤ" -#: ../spell.c:5238 msgid "Too many compound flags" msgstr "ʣե饰¿᤮ޤ" -#: ../spell.c:5240 msgid "Too many postponed prefixes and/or compound flags" msgstr "ٱֻ /⤷ ʣե饰¿᤮ޤ" -#: ../spell.c:5250 #, c-format msgid "Missing SOFO%s line in %s" msgstr "SOFO%s Ԥ %s ˤޤ" -#: ../spell.c:5253 #, c-format msgid "Both SAL and SOFO lines in %s" msgstr "SAL SOFO %s ξꤵƤޤ" -#: ../spell.c:5331 #, c-format msgid "Flag is not a number in %s line %d: %s" msgstr "%s %d Ԥ ե饰ͤǤϤޤ: %s" -#: ../spell.c:5334 #, c-format msgid "Illegal flag in %s line %d: %s" msgstr "%s %d ܤ ե饰Ǥ: %s" -#: ../spell.c:5493 ../spell.c:5501 #, c-format msgid "%s value differs from what is used in another .aff file" msgstr " %s ¾ .aff եǻѤ줿ΤȰۤʤޤ" -#: ../spell.c:5602 #, c-format msgid "Reading dictionary file %s ..." msgstr "ե %s 򥹥..." -#: ../spell.c:5611 #, c-format msgid "E760: No word count in %s" msgstr "E760: %s ˤñޤ" -#: ../spell.c:5669 #, c-format msgid "line %6d, word %6d - %s" msgstr " %6d, ñ %6d - %s" -#: ../spell.c:5691 #, c-format msgid "Duplicate word in %s line %d: %s" msgstr "%s %d ܤ ʣñ줬Ĥޤ: %s" -#: ../spell.c:5694 #, c-format msgid "First duplicate word in %s line %d: %s" msgstr "ʣΤǽñ %s %d ܤǤ: %s" -#: ../spell.c:5746 #, c-format msgid "%d duplicate word(s) in %s" msgstr "%d Ĥñ줬Ĥޤ (%s )" -#: ../spell.c:5748 #, c-format msgid "Ignored %d word(s) with non-ASCII characters in %s" msgstr "ASCIIʸޤ %d Ĥñ̵뤷ޤ (%s )" -#: ../spell.c:6115 #, c-format msgid "Reading word file %s ..." msgstr "ɸϤɹ %s ..." -#: ../spell.c:6155 #, c-format msgid "Duplicate /encoding= line ignored in %s line %d: %s" msgstr "%s %d ܤ ʣ /encoding= Ԥ̵뤷ޤ: %s" -#: ../spell.c:6159 #, c-format msgid "/encoding= line after word ignored in %s line %d: %s" msgstr "%s %d ܤ ñθ /encoding= Ԥ̵뤷ޤ: %s" -#: ../spell.c:6180 #, c-format msgid "Duplicate /regions= line ignored in %s line %d: %s" msgstr "%s %d ܤ ʣ /regions= Ԥ̵뤷ޤ: %s" -#: ../spell.c:6185 #, c-format msgid "Too many regions in %s line %d: %s" msgstr "%s %d , ϰϻ꤬¿᤮ޤ: %s" -#: ../spell.c:6198 #, c-format msgid "/ line ignored in %s line %d: %s" msgstr "%s %d ܤ ʣ / Ԥ̵뤷ޤ: %s" -#: ../spell.c:6224 #, c-format msgid "Invalid region nr in %s line %d: %s" msgstr "%s %d ̵ nr ΰǤ: %s" -#: ../spell.c:6230 #, c-format msgid "Unrecognized flags in %s line %d: %s" msgstr "%s %d ǧǽʥե饰Ǥ: %s" -#: ../spell.c:6257 #, c-format msgid "Ignored %d words with non-ASCII characters" msgstr "ASCIIʸޤ %d Ĥñ̵뤷ޤ" -#: ../spell.c:6656 +msgid "E845: Insufficient memory, word list will be incomplete" +msgstr "E845: ꤬­ʤΤǡñꥹȤԴǤ" + #, c-format msgid "Compressed %d of %d nodes; %d (%d%%) remaining" msgstr "Ρ %d ( %d ) 򰵽̤ޤ; Ĥ %d (%d%%)" -#: ../spell.c:7340 msgid "Reading back spell file..." msgstr "ڥեɹ" -#. Go through the trie of good words, soundfold each word and add it to -#. the soundfold trie. -#: ../spell.c:7357 +#. +#. * Go through the trie of good words, soundfold each word and add it to +#. * the soundfold trie. +#. msgid "Performing soundfolding..." msgstr "ߤ¹..." -#: ../spell.c:7368 #, c-format -msgid "Number of words after soundfolding: %" -msgstr "߸ñ: %" +msgid "Number of words after soundfolding: %ld" +msgstr "߸ñ: %ld" -#: ../spell.c:7476 #, c-format msgid "Total number of words: %d" msgstr "ñ: %d" -#: ../spell.c:7655 #, c-format msgid "Writing suggestion file %s ..." msgstr "ե \"%s\" ..." -#: ../spell.c:7707 ../spell.c:7927 #, c-format msgid "Estimated runtime memory use: %d bytes" msgstr ": %d Х" -#: ../spell.c:7820 msgid "E751: Output file name must not have region name" msgstr "E751: ϥե̾ˤϰ̾ޤޤ" -#: ../spell.c:7822 msgid "E754: Only up to 8 regions supported" msgstr "E754: ϰϤ 8 ĤޤǤݡȤƤޤ" -#: ../spell.c:7846 #, c-format msgid "E755: Invalid region in %s" msgstr "E755: ̵ϰϤǤ: %s" -#: ../spell.c:7907 msgid "Warning: both compounding and NOBREAK specified" msgstr "ٹ: ʣե饰 NOBREAK ξȤꤵޤ" -#: ../spell.c:7920 #, c-format msgid "Writing spell file %s ..." msgstr "ڥե %s ..." -#: ../spell.c:7925 msgid "Done!" msgstr "¹Ԥޤ!" -#: ../spell.c:8034 #, c-format -msgid "E765: 'spellfile' does not have % entries" -msgstr "E765: 'spellfile' ˤ % ĤΥȥϤޤ" +msgid "E765: 'spellfile' does not have %ld entries" +msgstr "E765: 'spellfile' ˤ %ld ĤΥȥϤޤ" -#: ../spell.c:8074 #, c-format msgid "Word '%.*s' removed from %s" msgstr "ñ '%.*s' %s ޤ" -#: ../spell.c:8117 #, c-format msgid "Word '%.*s' added to %s" msgstr "ñ '%.*s' %s ɲäޤ" -#: ../spell.c:8381 msgid "E763: Word characters differ between spell files" msgstr "E763: ñʸڥեȰۤʤޤ" -#: ../spell.c:8684 -msgid "Sorry, no suggestions" -msgstr "ǰǤ, Ϥޤ" - -#: ../spell.c:8687 -#, c-format -msgid "Sorry, only % suggestions" -msgstr "ǰǤ, % Ĥޤ" - -#. for when 'cmdheight' > 1 -#. avoid more prompt -#: ../spell.c:8704 -#, c-format -msgid "Change \"%.*s\" to:" -msgstr "\"%.*s\" 򼡤Ѵ:" - -#: ../spell.c:8737 -#, c-format -msgid " < \"%.*s\"" -msgstr " < \"%.*s\"" - -#: ../spell.c:8882 -msgid "E752: No previous spell replacement" -msgstr "E752: ڥִޤ¹ԤƤޤ" - -#: ../spell.c:8925 -#, c-format -msgid "E753: Not found: %s" -msgstr "E753: Ĥޤ: %s" - -#: ../spell.c:9276 -#, c-format -msgid "E778: This does not look like a .sug file: %s" -msgstr "E778: .sug եǤϤʤ褦Ǥ: %s" - -#: ../spell.c:9282 -#, c-format -msgid "E779: Old .sug file, needs to be updated: %s" -msgstr "E779: Ť .sug եʤΤ, åץǡȤƤ: %s" - -#: ../spell.c:9286 -#, c-format -msgid "E780: .sug file is for newer version of Vim: %s" -msgstr "E780: 꿷С Vim Ѥ .sug եǤ: %s" - -#: ../spell.c:9295 -#, c-format -msgid "E781: .sug file doesn't match .spl file: %s" -msgstr "E781: .sug ե뤬 .spl եȰפޤ: %s" - -#: ../spell.c:9305 -#, c-format -msgid "E782: error while reading .sug file: %s" -msgstr "E782: .sug եɹ˥顼ȯޤ: %s" - #. This should have been checked when generating the .spl -#. file. -#: ../spell.c:11575 +#. * file. msgid "E783: duplicate char in MAP entry" msgstr "E783: MAP ȥ˽ʣʸ¸ߤޤ" -#: ../syntax.c:266 msgid "No Syntax items defined for this buffer" msgstr "ΥХåե줿ʸǤϤޤ" -#: ../syntax.c:3083 ../syntax.c:3104 ../syntax.c:3127 #, c-format msgid "E390: Illegal argument: %s" msgstr "E390: ʰǤ: %s" @@ -5724,28 +5370,22 @@ msgstr "E390: msgid "syntax iskeyword " msgstr "󥿥å iskeyword " -#: ../syntax.c:3299 #, c-format msgid "E391: No such syntax cluster: %s" msgstr "E391: Τ褦ʹʸ饹Ϥޤ: %s" -#: ../syntax.c:3433 msgid "syncing on C-style comments" msgstr "CȤƱ" -#: ../syntax.c:3439 msgid "no syncing" msgstr "Ʊ" -#: ../syntax.c:3441 msgid "syncing starts " msgstr "Ʊ " -#: ../syntax.c:3443 ../syntax.c:3506 msgid " lines before top line" msgstr " (ȥå׹Ԥ)" -#: ../syntax.c:3448 msgid "" "\n" "--- Syntax sync items ---" @@ -5753,7 +5393,6 @@ msgstr "" "\n" "--- ʸƱ ---" -#: ../syntax.c:3452 msgid "" "\n" "syncing on items" @@ -5761,7 +5400,6 @@ msgstr "" "\n" "ǾƱ" -#: ../syntax.c:3457 msgid "" "\n" "--- Syntax items ---" @@ -5769,53 +5407,41 @@ msgstr "" "\n" "--- ʸ ---" -#: ../syntax.c:3475 #, c-format msgid "E392: No such syntax cluster: %s" msgstr "E392: Τ褦ʹʸ饹Ϥޤ: %s" -#: ../syntax.c:3497 msgid "minimal " msgstr "minimal " -#: ../syntax.c:3503 msgid "maximal " msgstr "maximal " -#: ../syntax.c:3513 msgid "; match " msgstr "; " -#: ../syntax.c:3515 msgid " line breaks" msgstr " Ĥβ" -#: ../syntax.c:4076 msgid "E395: contains argument not accepted here" msgstr "E395: ξǤϰcontainsϵĤƤޤ" -#: ../syntax.c:4096 msgid "E844: invalid cchar value" msgstr "E844: ̵ccharͤǤ" -#: ../syntax.c:4107 msgid "E393: group[t]here not accepted here" msgstr "E393: Ǥϥ롼פϵĤޤ" -#: ../syntax.c:4126 #, c-format msgid "E394: Didn't find region item for %s" msgstr "E394: %s ϰǤĤޤ" -#: ../syntax.c:4188 msgid "E397: Filename required" msgstr "E397: ե̾ɬפǤ" -#: ../syntax.c:4221 msgid "E847: Too many syntax includes" msgstr "E847: ʸμ(include)¿᤮ޤ" -#: ../syntax.c:4303 #, c-format msgid "E789: Missing ']': %s" msgstr "E789: ']' ޤ: %s" @@ -5824,221 +5450,173 @@ msgstr "E789: ']' msgid "E890: trailing char after ']': %s]%s" msgstr "E890: ']' θ;ʬʸޤ: %s]%s" -#: ../syntax.c:4531 #, c-format msgid "E398: Missing '=': %s" msgstr "E398: '=' ޤ: %s" -#: ../syntax.c:4666 #, c-format msgid "E399: Not enough arguments: syntax region %s" msgstr "E399: ­ޤ: ʸϰ %s" -#: ../syntax.c:4870 msgid "E848: Too many syntax clusters" msgstr "E848: ʸ饹¿᤮ޤ" -#: ../syntax.c:4954 msgid "E400: No cluster specified" msgstr "E400: 饹ꤵƤޤ" -#. end delimiter not found -#: ../syntax.c:4986 #, c-format msgid "E401: Pattern delimiter not found: %s" msgstr "E401: ѥڤ꤬Ĥޤ: %s" -#: ../syntax.c:5049 #, c-format msgid "E402: Garbage after pattern: %s" msgstr "E402: ѥΤȤ˥ߤޤ: %s" -#: ../syntax.c:5120 msgid "E403: syntax sync: line continuations pattern specified twice" msgstr "E403: ʸƱ: Ϣ³ԥѥ2ٻꤵޤ" -#: ../syntax.c:5169 #, c-format msgid "E404: Illegal arguments: %s" msgstr "E404: ʰǤ: %s" -#: ../syntax.c:5217 #, c-format msgid "E405: Missing equal sign: %s" msgstr "E405: 椬ޤ: %s" -#: ../syntax.c:5222 #, c-format msgid "E406: Empty argument: %s" msgstr "E406: ΰ: %s" -#: ../syntax.c:5240 #, c-format msgid "E407: %s not allowed here" msgstr "E407: %s ϥǤϵĤƤޤ" -#: ../syntax.c:5246 #, c-format msgid "E408: %s must be first in contains list" msgstr "E408: %s ƥꥹȤƬǤʤФʤʤ" -#: ../syntax.c:5304 #, c-format msgid "E409: Unknown group name: %s" msgstr "E409: ̤ΤΥ롼̾: %s" -#: ../syntax.c:5512 #, c-format msgid "E410: Invalid :syntax subcommand: %s" msgstr "E410: ̵ :syntax Υ֥ޥ: %s" -#: ../syntax.c:5854 msgid "" " TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN" msgstr "" " TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN" -#: ../syntax.c:6146 msgid "E679: recursive loop loading syncolor.vim" msgstr "E679: syncolor.vim κƵƤӽФ򸡽Фޤ" -#: ../syntax.c:6256 #, c-format msgid "E411: highlight group not found: %s" msgstr "E411: ϥ饤ȥ롼פĤޤ: %s" -#: ../syntax.c:6278 #, c-format msgid "E412: Not enough arguments: \":highlight link %s\"" msgstr "E412: ʬǤϤʤ: \":highlight link %s\"" -#: ../syntax.c:6284 #, c-format msgid "E413: Too many arguments: \":highlight link %s\"" msgstr "E413: ¿᤮ޤ: \":highlight link %s\"" -#: ../syntax.c:6302 msgid "E414: group has settings, highlight link ignored" msgstr "E414: 롼פꤵƤΤǥϥ饤ȥ󥯤̵뤵ޤ" -#: ../syntax.c:6367 #, c-format msgid "E415: unexpected equal sign: %s" msgstr "E415: ͽǤ: %s" -#: ../syntax.c:6395 #, c-format msgid "E416: missing equal sign: %s" msgstr "E416: 椬ޤ: %s" -#: ../syntax.c:6418 #, c-format msgid "E417: missing argument: %s" msgstr "E417: ޤ: %s" -#: ../syntax.c:6446 #, c-format msgid "E418: Illegal value: %s" msgstr "E418: ͤǤ: %s" -#: ../syntax.c:6496 msgid "E419: FG color unknown" msgstr "E419: ̤ΤʿǤ" -#: ../syntax.c:6504 msgid "E420: BG color unknown" msgstr "E420: ̤ΤطʿǤ" -#: ../syntax.c:6564 #, c-format msgid "E421: Color name or number not recognized: %s" msgstr "E421: 顼ֹ̾ǧǤޤ: %s" -#: ../syntax.c:6714 #, c-format msgid "E422: terminal code too long: %s" msgstr "E422: üɤĹ᤮ޤ: %s" -#: ../syntax.c:6753 #, c-format msgid "E423: Illegal argument: %s" msgstr "E423: ʰǤ: %s" -#: ../syntax.c:6925 msgid "E424: Too many different highlighting attributes in use" msgstr "E424: ¿ΰۤʤϥ饤°Ȥ᤮Ƥޤ" -#: ../syntax.c:7427 msgid "E669: Unprintable character in group name" msgstr "E669: 롼̾˰Բǽʸޤ" -#: ../syntax.c:7434 msgid "W18: Invalid character in group name" msgstr "W18: 롼̾ʸޤ" -#: ../syntax.c:7448 msgid "E849: Too many highlight and syntax groups" msgstr "E849: ϥ饤Ȥȹʸ롼פ¿᤮ޤ" -#: ../tag.c:104 msgid "E555: at bottom of tag stack" msgstr "E555: åǤ" -#: ../tag.c:105 msgid "E556: at top of tag stack" msgstr "E556: åƬǤ" -#: ../tag.c:380 msgid "E425: Cannot go before first matching tag" msgstr "E425: ǽγĶ뤳ȤϤǤޤ" -#: ../tag.c:504 #, c-format msgid "E426: tag not found: %s" msgstr "E426: Ĥޤ: %s" -#: ../tag.c:528 msgid " # pri kind tag" msgstr " # pri kind tag" -#: ../tag.c:531 msgid "file\n" msgstr "ե\n" -#: ../tag.c:829 msgid "E427: There is only one matching tag" msgstr "E427: 1Ĥޤ" -#: ../tag.c:831 msgid "E428: Cannot go beyond last matching tag" msgstr "E428: Ǹ˳륿ĶƿʤळȤϤǤޤ" -#: ../tag.c:850 #, c-format msgid "File \"%s\" does not exist" msgstr "ե \"%s\" ޤ" #. Give an indication of the number of matching tags -#: ../tag.c:859 #, c-format msgid "tag %d of %d%s" msgstr " %d (%d%s)" -#: ../tag.c:862 msgid " or more" msgstr " ʾ" -#: ../tag.c:864 msgid " Using tag with different case!" msgstr " ۤʤcaseǻѤޤ!" -#: ../tag.c:909 #, c-format msgid "E429: File \"%s\" does not exist" msgstr "E429: ե \"%s\" ޤ" #. Highlight title -#: ../tag.c:960 msgid "" "\n" " # TO tag FROM line in file/text" @@ -6046,79 +5624,66 @@ msgstr "" "\n" " # TO FROM in file/text" -#: ../tag.c:1303 #, c-format msgid "Searching tags file %s" msgstr "ե %s 򸡺" -#: ../tag.c:1545 +#, c-format +msgid "E430: Tag file path truncated for %s\n" +msgstr "E430: եΥѥ %s ڤΤƤޤ\n" + msgid "Ignoring long line in tags file" msgstr "եĹԤ̵뤷ޤ" -#: ../tag.c:1915 #, c-format msgid "E431: Format error in tags file \"%s\"" msgstr "E431: ե \"%s\" ΥեޥåȤ˥顼ޤ" -#: ../tag.c:1917 #, c-format -msgid "Before byte %" -msgstr "ľ % Х" +msgid "Before byte %ld" +msgstr "ľ %ld Х" -#: ../tag.c:1929 #, c-format msgid "E432: Tags file not sorted: %s" msgstr "E432: ե뤬ȤƤޤ: %s" #. never opened any tags file -#: ../tag.c:1960 msgid "E433: No tags file" msgstr "E433: ե뤬ޤ" -#: ../tag.c:2536 msgid "E434: Can't find tag pattern" msgstr "E434: ѥ򸫤Ĥޤ" -#: ../tag.c:2544 msgid "E435: Couldn't find tag, just guessing!" msgstr "E435: 򸫤ĤʤΤñ˿¬ޤ!" -#: ../tag.c:2797 #, c-format msgid "Duplicate field name: %s" msgstr "ʣե̾: %s" -#: ../term.c:1442 msgid "' not known. Available builtin terminals are:" msgstr "' ̤ΤǤ. ԤȤ߹üϼΤȤǤ:" -#: ../term.c:1463 msgid "defaulting to '" msgstr "άͤ򼡤Τ褦ꤷޤ '" -#: ../term.c:1731 msgid "E557: Cannot open termcap file" msgstr "E557: termcapե򳫤ޤ" -#: ../term.c:1735 msgid "E558: Terminal entry not found in terminfo" msgstr "E558: terminfoüȥ򸫤Ĥޤ" -#: ../term.c:1737 msgid "E559: Terminal entry not found in termcap" msgstr "E559: termcapüȥ򸫤Ĥޤ" -#: ../term.c:1878 #, c-format msgid "E436: No \"%s\" entry in termcap" msgstr "E436: termcap \"%s\" Υȥ꤬ޤ" -#: ../term.c:2249 msgid "E437: terminal capability \"cm\" required" msgstr "E437: ü \"cm\" ǽɬפǤ" #. Highlight title -#: ../term.c:4376 msgid "" "\n" "--- Terminal keys ---" @@ -6126,168 +5691,347 @@ msgstr "" "\n" "--- ü ---" -#: ../ui.c:481 +msgid "Cannot open $VIMRUNTIME/rgb.txt" +msgstr "$VIMRUNTIME/rgb.txt򳫤ޤ" + +msgid "new shell started\n" +msgstr "ưޤ\n" + msgid "Vim: Error reading input, exiting...\n" msgstr "Vim: ϤɹΥ顼ˤ꽪λޤ...\n" +msgid "Used CUT_BUFFER0 instead of empty selection" +msgstr "ΰΤCUT_BUFFER0Ѥޤ" + #. This happens when the FileChangedRO autocommand changes the #. * file in a way it becomes shorter. -#: ../undo.c:379 msgid "E881: Line count changed unexpectedly" msgstr "E881: ͽԥȤѤޤ" -#: ../undo.c:627 +#. must display the prompt +msgid "No undo possible; continue anyway" +msgstr "ǽʥɥϤޤ: Ȥꤢ³ޤ" + #, c-format msgid "E828: Cannot open undo file for writing: %s" msgstr "E828: Ѥ˥ɥե򳫤ޤ: %s" -#: ../undo.c:717 #, c-format msgid "E825: Corrupted undo file (%s): %s" msgstr "E825: ɥե뤬Ƥޤ (%s): %s" -#: ../undo.c:1039 msgid "Cannot write undo file in any directory in 'undodir'" msgstr "'undodir'Υǥ쥯ȥ˥ɥե񤭹ޤ" -#: ../undo.c:1074 #, c-format msgid "Will not overwrite with undo file, cannot read: %s" msgstr "ɥեȤɤ߹ʤΤǾ񤭤ޤ: %s" -#: ../undo.c:1092 #, c-format msgid "Will not overwrite, this is not an undo file: %s" msgstr "ɥեǤϤʤΤǾ񤭤ޤ: %s" -#: ../undo.c:1108 msgid "Skipping undo file write, nothing to undo" msgstr "оݤʤΤǥɥեν񤭹ߤ򥹥åפޤ" -#: ../undo.c:1121 #, c-format msgid "Writing undo file: %s" msgstr "ɥե񤭹: %s" -#: ../undo.c:1213 #, c-format msgid "E829: write error in undo file: %s" msgstr "E829: ɥեν񤭹ߥ顼Ǥ: %s" -#: ../undo.c:1280 #, c-format msgid "Not reading undo file, owner differs: %s" msgstr "ʡۤʤΤǥɥեɤ߹ߤޤ: %s" -#: ../undo.c:1292 #, c-format msgid "Reading undo file: %s" msgstr "ɥեɹ: %s" -#: ../undo.c:1299 #, c-format msgid "E822: Cannot open undo file for reading: %s" msgstr "E822: ɥեɹѤȤƳޤ: %s" -#: ../undo.c:1308 #, c-format msgid "E823: Not an undo file: %s" msgstr "E823: ɥեǤϤޤ: %s" -#: ../undo.c:1313 +#, c-format +msgid "E832: Non-encrypted file has encrypted undo file: %s" +msgstr "E832: Ź沽ե뤬Ź沽줿ɥեȤäƤޤ: %s" + +#, c-format +msgid "E826: Undo file decryption failed: %s" +msgstr "E826: Ź沽줿ɥեβɤ˼Ԥޤ: %s" + +#, c-format +msgid "E827: Undo file is encrypted: %s" +msgstr "E827: ɥե뤬Ź沽Ƥޤ: %s" + #, c-format msgid "E824: Incompatible undo file: %s" msgstr "E824: ߴ̵ɥեǤ: %s" -#: ../undo.c:1328 msgid "File contents changed, cannot use undo info" msgstr "եƤѤäƤ뤿ᡢɥѤǤޤ" -#: ../undo.c:1497 #, c-format msgid "Finished reading undo file %s" msgstr "ɥե %s μλ" -#: ../undo.c:1586 ../undo.c:1812 msgid "Already at oldest change" msgstr "˰ָŤѹǤ" -#: ../undo.c:1597 ../undo.c:1814 msgid "Already at newest change" msgstr "˰ֿѹǤ" -#: ../undo.c:1806 #, c-format -msgid "E830: Undo number % not found" -msgstr "E830: ɥֹ % ϸĤޤ" +msgid "E830: Undo number %ld not found" +msgstr "E830: ɥֹ %ld ϸĤޤ" -#: ../undo.c:1979 msgid "E438: u_undo: line numbers wrong" msgstr "E438: u_undo: ֹ椬ְäƤޤ" -#: ../undo.c:2183 msgid "more line" msgstr " ɲäޤ" -#: ../undo.c:2185 msgid "more lines" msgstr " ɲäޤ" -#: ../undo.c:2187 msgid "line less" msgstr " ޤ" -#: ../undo.c:2189 msgid "fewer lines" msgstr " ޤ" -#: ../undo.c:2193 msgid "change" msgstr "սѹޤ" -#: ../undo.c:2195 msgid "changes" msgstr "սѹޤ" -#: ../undo.c:2225 #, c-format -msgid "% %s; %s #% %s" -msgstr "% %s; %s #% %s" +msgid "%ld %s; %s #%ld %s" +msgstr "%ld %s; %s #%ld %s" -#: ../undo.c:2228 msgid "before" msgstr "" -#: ../undo.c:2228 msgid "after" msgstr "" -#: ../undo.c:2325 msgid "Nothing to undo" msgstr "ɥоݤޤ" -#: ../undo.c:2330 msgid "number changes when saved" msgstr " ѹ ѹ ¸" -#: ../undo.c:2360 #, c-format -msgid "% seconds ago" -msgstr "% ÷вᤷƤޤ" +msgid "%ld seconds ago" +msgstr "%ld ÷вᤷƤޤ" -#: ../undo.c:2372 msgid "E790: undojoin is not allowed after undo" msgstr "E790: undo ľ undojoin ϤǤޤ" -#: ../undo.c:2466 msgid "E439: undo list corrupt" msgstr "E439: ɥꥹȤƤޤ" -#: ../undo.c:2495 msgid "E440: undo line missing" msgstr "E440: ɥԤޤ" -#: ../version.c:600 +#, c-format +msgid "E122: Function %s already exists, add ! to replace it" +msgstr "E122: ؿ %s ѤǤ, ˤ ! ɲäƤ" + +msgid "E717: Dictionary entry already exists" +msgstr "E717: ˥ȥ꤬¸ߤޤ" + +msgid "E718: Funcref required" +msgstr "E718: ؿȷ׵ᤵޤ" + +#, c-format +msgid "E130: Unknown function: %s" +msgstr "E130: ̤ΤδؿǤ: %s" + +#, c-format +msgid "E125: Illegal argument: %s" +msgstr "E125: ʰǤ: %s" + +#, c-format +msgid "E853: Duplicate argument name: %s" +msgstr "E853: ̾ʣƤޤ: %s" + +#, c-format +msgid "E740: Too many arguments for function %s" +msgstr "E740: ؿΰ¿᤮ޤ: %s" + +#, c-format +msgid "E116: Invalid arguments for function %s" +msgstr "E116: ؿ̵ʰǤ: %s" + +msgid "E132: Function call depth is higher than 'maxfuncdepth'" +msgstr "E132: ؿƽФҿ 'maxfuncdepth' Ķޤ" + +#, c-format +msgid "calling %s" +msgstr "%s ¹Ǥ" + +#, c-format +msgid "%s aborted" +msgstr "%s Ǥޤ" + +#, c-format +msgid "%s returning #%ld" +msgstr "%s #%ld ֤ޤ" + +#, c-format +msgid "%s returning %s" +msgstr "%s %s ֤ޤ" + +msgid "E699: Too many arguments" +msgstr "E699: ¿᤮ޤ" + +#, c-format +msgid "E117: Unknown function: %s" +msgstr "E117: ̤ΤδؿǤ: %s" + +#, c-format +msgid "E933: Function was deleted: %s" +msgstr "E933: ؿϺޤ: %s" + +#, c-format +msgid "E119: Not enough arguments for function: %s" +msgstr "E119: ؿΰ­ޤ: %s" + +#, c-format +msgid "E120: Using not in a script context: %s" +msgstr "E120: ץȰʳȤޤ: %s" + +#, c-format +msgid "E725: Calling dict function without Dictionary: %s" +msgstr "E725: ѴؿƤФޤ񤬤ޤ: %s" + +msgid "E129: Function name required" +msgstr "E129: ؿ̾׵ᤵޤ" + +#, c-format +msgid "E128: Function name must start with a capital or \"s:\": %s" +msgstr "E128: ؿ̾ʸ \"s:\" ǻϤޤʤФʤޤ: %s" + +#, c-format +msgid "E884: Function name cannot contain a colon: %s" +msgstr "E884: ؿ̾ˤϥϴޤޤ: %s" + +#, c-format +msgid "E123: Undefined function: %s" +msgstr "E123: ̤δؿǤ: %s" + +#, c-format +msgid "E124: Missing '(': %s" +msgstr "E124: '(' ޤ: %s" + +msgid "E862: Cannot use g: here" +msgstr "E862: Ǥ g: ϻȤޤ" + +#, c-format +msgid "E932: Closure function should not be at top level: %s" +msgstr "E932: 㡼ؿϥȥåץ٥˵ҤǤޤ: %s" + +msgid "E126: Missing :endfunction" +msgstr "E126: :endfunction ޤ" + +#, c-format +msgid "E707: Function name conflicts with variable: %s" +msgstr "E707: ؿ̾ѿ̾Ⱦͤޤ: %s" + +#, c-format +msgid "E127: Cannot redefine function %s: It is in use" +msgstr "E127: ؿ %s Ǥޤ: Ǥ" + +#, c-format +msgid "E746: Function name does not match script file name: %s" +msgstr "E746: ؿ̾ץȤΥե̾Ȱפޤ: %s" + +#, c-format +msgid "E131: Cannot delete function %s: It is in use" +msgstr "E131: ؿ %s Ǥޤ: Ǥ" + +msgid "E133: :return not inside a function" +msgstr "E133: ؿ :return ޤ" + +#, c-format +msgid "E107: Missing parentheses: %s" +msgstr "E107: å '(' ޤ: %s" + +#. Only MS VC 4.1 and earlier can do Win32s +msgid "" +"\n" +"MS-Windows 16/32-bit GUI version" +msgstr "" +"\n" +"MS-Windows 16/32 ӥå GUI " + +msgid "" +"\n" +"MS-Windows 64-bit GUI version" +msgstr "" +"\n" +"MS-Windows 64 ӥå GUI " + +msgid "" +"\n" +"MS-Windows 32-bit GUI version" +msgstr "" +"\n" +"MS-Windows 32 ӥå GUI " + +msgid " with OLE support" +msgstr " with OLE ݡ" + +msgid "" +"\n" +"MS-Windows 64-bit console version" +msgstr "" +"\n" +"MS-Windows 64 ӥå 󥽡 " + +msgid "" +"\n" +"MS-Windows 32-bit console version" +msgstr "" +"\n" +"MS-Windows 32 ӥå 󥽡 " + +msgid "" +"\n" +"MacOS X (unix) version" +msgstr "" +"\n" +"MacOS X (unix) " + +msgid "" +"\n" +"MacOS X version" +msgstr "" +"\n" +"MacOS X " + +msgid "" +"\n" +"MacOS version" +msgstr "" +"\n" +"MacOS " + +msgid "" +"\n" +"OpenVMS version" +msgstr "" +"\n" +"OpenVMS " + msgid "" "\n" "Included patches: " @@ -6295,7 +6039,6 @@ msgstr "" "\n" "ŬѺѥѥå: " -#: ../version.c:627 msgid "" "\n" "Extra patches: " @@ -6303,11 +6046,9 @@ msgstr "" "\n" "ɲóĥѥå: " -#: ../version.c:639 ../version.c:864 msgid "Modified by " msgstr "Modified by " -#: ../version.c:646 msgid "" "\n" "Compiled " @@ -6315,11 +6056,9 @@ msgstr "" "\n" "Compiled " -#: ../version.c:649 msgid "by " msgstr "by " -#: ../version.c:660 msgid "" "\n" "Huge version " @@ -6327,1886 +6066,926 @@ msgstr "" "\n" "Huge " -#: ../version.c:661 -msgid "without GUI." -msgstr "without GUI." - -#: ../version.c:662 -msgid " Features included (+) or not (-):\n" -msgstr " ǽΰ ͭ(+)/̵(-)\n" +msgid "" +"\n" +"Big version " +msgstr "" +"\n" +"Big " -#: ../version.c:667 -msgid " system vimrc file: \"" -msgstr " ƥ vimrc: \"" +msgid "" +"\n" +"Normal version " +msgstr "" +"\n" +"̾ " -#: ../version.c:672 -msgid " user vimrc file: \"" +msgid "" +"\n" +"Small version " +msgstr "" +"\n" +"Small " + +msgid "" +"\n" +"Tiny version " +msgstr "" +"\n" +"Tiny " + +msgid "without GUI." +msgstr "without GUI." + +msgid "with GTK3 GUI." +msgstr "with GTK3 GUI." + +msgid "with GTK2-GNOME GUI." +msgstr "with GTK2-GNOME GUI." + +msgid "with GTK2 GUI." +msgstr "with GTK2 GUI." + +msgid "with X11-Motif GUI." +msgstr "with X11-Motif GUI." + +msgid "with X11-neXtaw GUI." +msgstr "with X11-neXtaw GUI." + +msgid "with X11-Athena GUI." +msgstr "with X11-Athena GUI." + +msgid "with Photon GUI." +msgstr "with Photon GUI." + +msgid "with GUI." +msgstr "with GUI." + +msgid "with Carbon GUI." +msgstr "with Carbon GUI." + +msgid "with Cocoa GUI." +msgstr "with Cocoa GUI." + +msgid "with (classic) GUI." +msgstr "with (饷å) GUI." + +msgid " Features included (+) or not (-):\n" +msgstr " ǽΰ ͭ(+)/̵(-)\n" + +msgid " system vimrc file: \"" +msgstr " ƥ vimrc: \"" + +msgid " user vimrc file: \"" msgstr " 桼 vimrc: \"" -#: ../version.c:677 msgid " 2nd user vimrc file: \"" msgstr " 2桼 vimrc: \"" -#: ../version.c:682 msgid " 3rd user vimrc file: \"" msgstr " 3桼 vimrc: \"" -#: ../version.c:687 msgid " user exrc file: \"" msgstr " 桼 exrc: \"" -#: ../version.c:692 msgid " 2nd user exrc file: \"" msgstr " 2桼 exrc: \"" -#: ../version.c:699 +msgid " system gvimrc file: \"" +msgstr " ƥ gvimrc: \"" + +msgid " user gvimrc file: \"" +msgstr " 桼 gvimrc: \"" + +msgid "2nd user gvimrc file: \"" +msgstr " 2桼 gvimrc: \"" + +msgid "3rd user gvimrc file: \"" +msgstr " 3桼 gvimrc: \"" + +msgid " defaults file: \"" +msgstr " ǥեȥե: \"" + +msgid " system menu file: \"" +msgstr " ƥ˥塼: \"" + msgid " fall-back for $VIM: \"" msgstr " ά $VIM: \"" -#: ../version.c:705 msgid " f-b for $VIMRUNTIME: \"" msgstr "ά $VIMRUNTIME: \"" -#: ../version.c:709 msgid "Compilation: " msgstr "ѥ: " -#: ../version.c:712 +msgid "Compiler: " +msgstr "ѥ: " + msgid "Linking: " msgstr ": " -#: ../version.c:717 msgid " DEBUG BUILD" msgstr "ǥХåӥ" -#: ../version.c:767 msgid "VIM - Vi IMproved" msgstr "VIM - Vi IMproved" -#: ../version.c:769 msgid "version " msgstr "version " -#: ../version.c:770 msgid "by Bram Moolenaar et al." msgstr "by Bram Moolenaar ¾." -#: ../version.c:774 msgid "Vim is open source and freely distributable" msgstr "Vim ϥץ󥽡Ǥ꼫ͳ۲ǽǤ" -#: ../version.c:776 msgid "Help poor children in Uganda!" msgstr "ηäޤʤҶ˱!" -#: ../version.c:777 msgid "type :help iccf for information " msgstr "ܺ٤ʾ :help iccf " -#: ../version.c:779 msgid "type :q to exit " msgstr "λˤ :q " -#: ../version.c:780 msgid "type :help or for on-line help" msgstr "饤إפ :help " -#: ../version.c:781 -msgid "type :help version7 for version info" -msgstr "С :help version7 " +msgid "type :help version8 for version info" +msgstr "С :help version8 " -#: ../version.c:784 msgid "Running in Vi compatible mode" msgstr "Viߴ⡼ɤư" -#: ../version.c:785 msgid "type :set nocp for Vim defaults" msgstr "Vim侩ͤˤˤ :set nocp " -#: ../version.c:786 msgid "type :help cp-default for info on this" msgstr "ܺ٤ʾ :help cp-default" -#: ../version.c:827 +msgid "menu Help->Orphans for information " +msgstr "ܺ٤ϥ˥塼 إ->ɻ 򻲾ȤƲ " + +msgid "Running modeless, typed text is inserted" +msgstr "⡼̵Ǽ¹, פʸޤ" + +msgid "menu Edit->Global Settings->Toggle Insert Mode " +msgstr "˥塼 Խ->->(鿴)⡼ " + +msgid " for two modes " +msgstr " ǥ⡼ͭ " + +msgid "menu Edit->Global Settings->Toggle Vi Compatible" +msgstr "˥塼 Խ->->Viߴ⡼ " + +msgid " for Vim defaults " +msgstr " VimȤư " + msgid "Sponsor Vim development!" msgstr "Vimγȯ礷Ƥ!" -#: ../version.c:828 msgid "Become a registered Vim user!" msgstr "VimϿ桼ˤʤäƤ!" -#: ../version.c:831 msgid "type :help sponsor for information " msgstr "ܺ٤ʾ :help sponsor " -#: ../version.c:832 msgid "type :help register for information " msgstr "ܺ٤ʾ :help register " -#: ../version.c:834 msgid "menu Help->Sponsor/Register for information " msgstr "ܺ٤ϥ˥塼 إ->ݥ󥵡/Ͽ 򻲾ȤƲ" -#: ../window.c:119 +msgid "WARNING: Windows 95/98/ME detected" +msgstr "ٹ: Windows 95/98/ME 򸡽Фޤ" + +msgid "type :help windows95 for info on this" +msgstr "ܺ٤ʾ :help windows95" + msgid "Already only one window" msgstr "˥ɥ1Ĥޤ" -#: ../window.c:224 msgid "E441: There is no preview window" msgstr "E441: ץӥ塼ɥޤ" -#: ../window.c:559 msgid "E442: Can't split topleft and botright at the same time" msgstr "E442: ȱƱʬ䤹뤳ȤϤǤޤ" -#: ../window.c:1228 msgid "E443: Cannot rotate when another window is split" msgstr "E443: ¾Υɥʬ䤵ƤˤϽǤޤ" -#: ../window.c:1803 msgid "E444: Cannot close last window" msgstr "E444: ǸΥɥĤ뤳ȤϤǤޤ" -#: ../window.c:1810 msgid "E813: Cannot close autocmd window" msgstr "E813: autocmdɥĤޤ" -#: ../window.c:1814 msgid "E814: Cannot close window, only autocmd window would remain" msgstr "E814: autocmdɥĤʤᡢɥĤޤ" -#: ../window.c:2717 msgid "E445: Other window contains changes" msgstr "E445: ¾Υɥˤѹޤ" -#: ../window.c:4805 msgid "E446: No file name under cursor" msgstr "E446: β˥ե̾ޤ" -msgid "List or number required" -msgstr "ꥹȤͤɬפǤ" +#, c-format +msgid "E447: Can't find file \"%s\" in path" +msgstr "E447: pathˤ \"%s\" Ȥե뤬ޤ" -#~ msgid "E831: bf_key_init() called with empty password" -#~ msgstr "E831: bf_key_init() ѥɤǸƤӽФޤ" +#, c-format +msgid "E799: Invalid ID: %ld (must be greater than or equal to 1)" +msgstr "E799: ̵ ID: %ld (1 ʾǤʤФʤޤ)" -#~ msgid "E820: sizeof(uint32_t) != 4" -#~ msgstr "E820: sizeof(uint32_t) != 4" +#, c-format +msgid "E801: ID already taken: %ld" +msgstr "E801: ID ϤǤǤ: %ld" -#~ msgid "E817: Blowfish big/little endian use wrong" -#~ msgstr "E817: BlowfishŹΥӥå/ȥ륨ǥ󤬴ְäƤޤ" +msgid "List or number required" +msgstr "ꥹȤͤɬפǤ" -#~ msgid "E818: sha256 test failed" -#~ msgstr "E818: sha256ΥƥȤ˼Ԥޤ" +#, c-format +msgid "E802: Invalid ID: %ld (must be greater than or equal to 1)" +msgstr "E802: ̵ ID: %ld (1 ʾǤʤФʤޤ)" -#~ msgid "E819: Blowfish test failed" -#~ msgstr "E819: BlowfishŹΥƥȤ˼Ԥޤ" +#, c-format +msgid "E803: ID not found: %ld" +msgstr "E803: ID Ϥޤ: %ld" -#~ msgid "Patch file" -#~ msgstr "ѥåե" +#, c-format +msgid "E370: Could not load library %s" +msgstr "E370: 饤֥ %s ɤǤޤǤ" -#~ msgid "" -#~ "&OK\n" -#~ "&Cancel" -#~ msgstr "" -#~ "(&O)\n" -#~ "󥻥(&C)" +msgid "Sorry, this command is disabled: the Perl library could not be loaded." +msgstr "" +"Υޥɤ̵Ǥ, ʤ: Perl饤֥ɤǤޤǤ." -#~ msgid "E240: No connection to Vim server" -#~ msgstr "E240: Vim Фؤ³ޤ" +msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" +msgstr "" +"E299: ɥܥåǤ Safe ⥸塼ѤʤPerlץȤ϶ؤ" +"Ƥޤ" -#~ msgid "E241: Unable to send to %s" -#~ msgstr "E241: %s 뤳ȤǤޤ" +msgid "Edit with &multiple Vims" +msgstr "ʣVimԽ (&M)" -#~ msgid "E277: Unable to read a server reply" -#~ msgstr "E277: Фαޤ" +msgid "Edit with single &Vim" +msgstr "1ĤVimԽ (&V)" -#~ msgid "E258: Unable to send to client" -#~ msgstr "E258: 饤Ȥ뤳ȤǤޤ" +msgid "Diff with Vim" +msgstr "VimǺʬɽ" -#~ msgid "Save As" -#~ msgstr "̾¸" +msgid "Edit with &Vim" +msgstr "VimԽ (&V)" -#~ msgid "Edit File" -#~ msgstr "եԽ" +#. Now concatenate +msgid "Edit with existing Vim - " +msgstr "ưѤVimԽ - " -# Added at 27-Jan-2004. -#~ msgid " (NOT FOUND)" -#~ msgstr " (Ĥޤ)" +msgid "Edits the selected file(s) with Vim" +msgstr "򤷤եVimԽ" -#~ msgid "Source Vim script" -#~ msgstr "VimץȤμ" +msgid "Error creating process: Check if gvim is in your path!" +msgstr "ץκ˼: gvimĶѿPATHˤ뤫ǧƤ!" -#~ msgid "unknown" -#~ msgstr "" +msgid "gvimext.dll error" +msgstr "gvimext.dll 顼" -#~ msgid "Edit File in new window" -#~ msgstr "ɥǥեԽޤ" +msgid "Path length too long!" +msgstr "ѥĹ᤮ޤ!" -#~ msgid "Append File" -#~ msgstr "ɲåե" +msgid "--No lines in buffer--" +msgstr "--Хåե˹Ԥޤ--" -#~ msgid "Window position: X %d, Y %d" -#~ msgstr "ɥ: X %d, Y %d" +#. +#. * The error messages that can be shared are included here. +#. * Excluded are errors that are only used once and debugging messages. +#. +msgid "E470: Command aborted" +msgstr "E470: ޥɤǤޤ" -#~ msgid "Save Redirection" -#~ msgstr "쥯Ȥ¸ޤ" +msgid "E471: Argument required" +msgstr "E471: ɬפǤ" -#~ msgid "Save View" -#~ msgstr "ӥ塼¸ޤ" +msgid "E10: \\ should be followed by /, ? or &" +msgstr "E10: \\ θ / ? & ǤʤФʤޤ" -#~ msgid "Save Session" -#~ msgstr "å¸ޤ" +msgid "E11: Invalid in command-line window; executes, CTRL-C quits" +msgstr "E11: ޥɥ饤Ǥ̵Ǥ; Ǽ¹, CTRL-CǤ" -#~ msgid "Save Setup" -#~ msgstr "¸ޤ" +msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" +msgstr "" +"E12: ߤΥǥ쥯ȥ䥿Ǥexrc/vimrcΥޥɤϵĤޤ" -#~ msgid "E809: #< is not available without the +eval feature" -#~ msgstr "E809: #< +eval ǽ̵ѤǤޤ" +msgid "E171: Missing :endif" +msgstr "E171: :endif ޤ" -#~ msgid "E196: No digraphs in this version" -#~ msgstr "E196: ΥС˹Ϥޤ" +msgid "E600: Missing :endtry" +msgstr "E600: :endtry ޤ" -#~ msgid "is a device (disabled with 'opendevice' option)" -#~ msgstr " ϥǥХǤ ('opendevice' ץDzǤޤ)" +msgid "E170: Missing :endwhile" +msgstr "E170: :endwhile ޤ" -#~ msgid "Reading from stdin..." -#~ msgstr "ɸϤɹ..." +msgid "E170: Missing :endfor" +msgstr "E170: :endfor ޤ" -#~ msgid "[blowfish]" -#~ msgstr "[blowfishŹ沽]" +msgid "E588: :endwhile without :while" +msgstr "E588: :while Τʤ :endwhile ޤ" -#~ msgid "[crypted]" -#~ msgstr "[Ź沽]" +msgid "E588: :endfor without :for" +msgstr "E588: :endfor Τʤ :for ޤ" -#~ msgid "E821: File is encrypted with unknown method" -#~ msgstr "E821: ե뤬̤ΤˡǰŹ沽Ƥޤ" +msgid "E13: File exists (add ! to override)" +msgstr "E13: ե뤬¸ߤޤ (! ɲäǾ)" -# Added at 19-Jan-2004. -#~ msgid "NetBeans disallows writes of unmodified buffers" -#~ msgstr "NetBeans̤ѹΥХåե񤹤뤳ȤϵĤƤޤ" +msgid "E472: Command failed" +msgstr "E472: ޥɤԤޤ" -#~ msgid "Partial writes disallowed for NetBeans buffers" -#~ msgstr "NetBeansХåեΰ񤭽ФȤϤǤޤ" +#, c-format +msgid "E234: Unknown fontset: %s" +msgstr "E234: ̤ΤΥեȥå: %s" -#~ msgid "writing to device disabled with 'opendevice' option" -#~ msgstr "'opendevice' ץˤǥХؤν񤭹ߤϤǤޤ" +#, c-format +msgid "E235: Unknown font: %s" +msgstr "E235: ̤ΤΥե: %s" -#~ msgid "E460: The resource fork would be lost (add ! to override)" -#~ msgstr "E460: ꥽ե뤫⤷ޤ (! ɲäǶ)" +#, c-format +msgid "E236: Font \"%s\" is not fixed-width" +msgstr "E236: ե \"%s\" ϸǤϤޤ" -#~ msgid "E851: Failed to create a new process for the GUI" -#~ msgstr "E851: GUIѤΥץεư˼Ԥޤ" +msgid "E473: Internal error" +msgstr "E473: 顼Ǥ" -#~ msgid "E852: The child process failed to start the GUI" -#~ msgstr "E852: ҥץGUIεư˼Ԥޤ" +msgid "Interrupted" +msgstr "ޤޤ" -#~ msgid "E229: Cannot start the GUI" -#~ msgstr "E229: GUI򳫻ϤǤޤ" +msgid "E14: Invalid address" +msgstr "E14: ̵ʥɥ쥹Ǥ" -#~ msgid "E230: Cannot read from \"%s\"" -#~ msgstr "E230: \"%s\"ɹळȤǤޤ" +msgid "E474: Invalid argument" +msgstr "E474: ̵ʰǤ" -#~ msgid "E665: Cannot start GUI, no valid font found" -#~ msgstr "E665: ͭʥեȤĤʤΤ, GUI򳫻ϤǤޤ" +#, c-format +msgid "E475: Invalid argument: %s" +msgstr "E475: ̵ʰǤ: %s" -#~ msgid "E231: 'guifontwide' invalid" -#~ msgstr "E231: 'guifontwide' ̵Ǥ" +#, c-format +msgid "E15: Invalid expression: %s" +msgstr "E15: ̵ʼǤ: %s" -#~ msgid "E599: Value of 'imactivatekey' is invalid" -#~ msgstr "E599: 'imactivatekey' ꤵ줿̵ͤǤ" +msgid "E16: Invalid range" +msgstr "E16: ̵ϰϤǤ" -#~ msgid "E254: Cannot allocate color %s" -#~ msgstr "E254: %s οƤޤ" +msgid "E476: Invalid command" +msgstr "E476: ̵ʥޥɤǤ" -#~ msgid "No match at cursor, finding next" -#~ msgstr "ΰ֤˥ޥåϤޤ, 򸡺Ƥޤ" +#, c-format +msgid "E17: \"%s\" is a directory" +msgstr "E17: \"%s\" ϥǥ쥯ȥǤ" -#~ msgid " " -#~ msgstr "<ޤ> " +#, c-format +msgid "E364: Library call failed for \"%s()\"" +msgstr "E364: \"%s\"() Υ饤֥ƽФ˼Ԥޤ" -#~ msgid "E616: vim_SelFile: can't get font %s" -#~ msgstr "E616: vim_SelFile: ե %s Ǥޤ" +#, c-format +msgid "E448: Could not load library function %s" +msgstr "E448: 饤֥δؿ %s ɤǤޤǤ" -#~ msgid "E614: vim_SelFile: can't return to current directory" -#~ msgstr "E614: vim_SelFile: ߤΥǥ쥯ȥޤ" +msgid "E19: Mark has invalid line number" +msgstr "E19: ޡ̵ʹֹ椬ꤵƤޤ" -#~ msgid "Pathname:" -#~ msgstr "ѥ̾:" +msgid "E20: Mark not set" +msgstr "E20: ޡꤵƤޤ" -#~ msgid "E615: vim_SelFile: can't get current directory" -#~ msgstr "E615: vim_SelFile: ߤΥǥ쥯ȥǤޤ" +msgid "E21: Cannot make changes, 'modifiable' is off" +msgstr "E21: 'modifiable' դʤΤ, ѹǤޤ" -#~ msgid "OK" -#~ msgstr "OK" +msgid "E22: Scripts nested too deep" +msgstr "E22: ץȤҤ᤮ޤ" -#~ msgid "Cancel" -#~ msgstr "󥻥" +msgid "E23: No alternate file" +msgstr "E23: եϤޤ" -#~ msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." -#~ msgstr "С: ǤޤǤ." +msgid "E24: No such abbreviation" +msgstr "E24: Τ褦ûϤϤޤ" -#~ msgid "Vim dialog" -#~ msgstr "Vim " +msgid "E477: No ! allowed" +msgstr "E477: ! ϵĤƤޤ" -#~ msgid "E232: Cannot create BalloonEval with both message and callback" -#~ msgstr "E232: åȥХåΤ BalloonEval Ǥޤ" +msgid "E25: GUI cannot be used: Not enabled at compile time" +msgstr "E25: GUIϻԲǽǤ: ѥ̵ˤƤޤ" -#~ msgid "Input _Methods" -#~ msgstr "ץåȥ᥽å" +msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" +msgstr "E26: إ֥饤ϻԲǽǤ: ѥ̵ˤƤޤ\n" -#~ msgid "VIM - Search and Replace..." -#~ msgstr "VIM - ִ..." +msgid "E27: Farsi cannot be used: Not enabled at compile time\n" +msgstr "E27: ڥ륷ϻԲǽǤ: ѥ̵ˤƤޤ\n" -#~ msgid "VIM - Search..." -#~ msgstr "VIM - ..." +msgid "E800: Arabic cannot be used: Not enabled at compile time\n" +msgstr "E800: ӥϻԲǽǤ: ѥ̵ˤƤޤ\n" -#~ msgid "Find what:" -#~ msgstr "ʸ:" +#, c-format +msgid "E28: No such highlight group name: %s" +msgstr "E28: Τ褦̾Υϥ饤ȥ롼פϤޤ: %s" -#~ msgid "Replace with:" -#~ msgstr "ִʸ:" +msgid "E29: No inserted text yet" +msgstr "E29: ޤƥȤƤޤ" -#~ msgid "Match whole word only" -#~ msgstr "Τ˳Τ" +msgid "E30: No previous command line" +msgstr "E30: ˥ޥɹԤޤ" -#~ msgid "Match case" -#~ msgstr "ʸ/ʸ̤" +msgid "E31: No such mapping" +msgstr "E31: Τ褦ʥޥåԥ󥰤Ϥޤ" -#~ msgid "Direction" -#~ msgstr "" +msgid "E479: No match" +msgstr "E479: Ϥޤ" -#~ msgid "Up" -#~ msgstr "" +#, c-format +msgid "E480: No match: %s" +msgstr "E480: Ϥޤ: %s" -#~ msgid "Down" -#~ msgstr "" +msgid "E32: No file name" +msgstr "E32: ե̾ޤ" -#~ msgid "Find Next" -#~ msgstr "򸡺" +msgid "E33: No previous substitute regular expression" +msgstr "E33: ɽִޤ¹ԤƤޤ" -#~ msgid "Replace" -#~ msgstr "ִ" +msgid "E34: No previous command" +msgstr "E34: ޥɤޤ¹ԤƤޤ" -#~ msgid "Replace All" -#~ msgstr "ִ" +msgid "E35: No previous regular expression" +msgstr "E35: ɽޤ¹ԤƤޤ" -#~ msgid "Vim: Received \"die\" request from session manager\n" -#~ msgstr "Vim: åޥ͡㤫 \"die\" ׵ޤ\n" +msgid "E481: No range allowed" +msgstr "E481: ϰϻϵĤƤޤ" -#~ msgid "Close" -#~ msgstr "Ĥ" +msgid "E36: Not enough room" +msgstr "E36: ɥ˽ʬʹ⤵⤷ޤ" -#~ msgid "New tab" -#~ msgstr "֥ڡ" +#, c-format +msgid "E247: no registered server named \"%s\"" +msgstr "E247: %s Ȥ̾Ͽ줿СϤޤ" -#~ msgid "Open Tab..." -#~ msgstr "֥ڡ򳫤..." +#, c-format +msgid "E482: Can't create file %s" +msgstr "E482: ե %s Ǥޤ" -#~ msgid "Vim: Main window unexpectedly destroyed\n" -#~ msgstr "Vim: ᥤ󥦥ɥ԰դ˲ޤ\n" +msgid "E483: Can't get temp file name" +msgstr "E483: ե̾Ǥޤ" -#~ msgid "&Filter" -#~ msgstr "ե륿(&F)" +#, c-format +msgid "E484: Can't open file %s" +msgstr "E484: ե \"%s\" 򳫤ޤ" -#~ msgid "&Cancel" -#~ msgstr "󥻥(&C)" +#, c-format +msgid "E485: Can't read file %s" +msgstr "E485: ե %s ɹޤ" -#~ msgid "Directories" -#~ msgstr "ǥ쥯ȥ" +msgid "E37: No write since last change (add ! to override)" +msgstr "E37: Ǹѹ¸Ƥޤ (! ɲäѹ˴)" -#~ msgid "Filter" -#~ msgstr "ե륿" +msgid "E37: No write since last change" +msgstr "E37: Ǹѹ¸Ƥޤ" -#~ msgid "&Help" -#~ msgstr "إ(&H)" +msgid "E38: Null argument" +msgstr "E38: Ǥ" -#~ msgid "Files" -#~ msgstr "ե" +msgid "E39: Number expected" +msgstr "E39: ͤ׵ᤵƤޤ" -#~ msgid "&OK" -#~ msgstr "&OK" +#, c-format +msgid "E40: Can't open errorfile %s" +msgstr "E40: 顼ե %s 򳫤ޤ" -#~ msgid "Selection" -#~ msgstr "" +msgid "E233: cannot open display" +msgstr "E233: ǥץ쥤򳫤ޤ" -#~ msgid "Find &Next" -#~ msgstr "򸡺(&N)" +msgid "E41: Out of memory!" +msgstr "E41: ꤬Ԥ̤Ƥޤ!" -#~ msgid "&Replace" -#~ msgstr "ִ(&R)" +msgid "Pattern not found" +msgstr "ѥϸĤޤǤ" -#~ msgid "Replace &All" -#~ msgstr "ִ(&A)" +#, c-format +msgid "E486: Pattern not found: %s" +msgstr "E486: ѥϸĤޤǤ: %s" -#~ msgid "&Undo" -#~ msgstr "ɥ(&U)" +msgid "E487: Argument must be positive" +msgstr "E487: ͤǤʤФʤޤ" -#~ msgid "E671: Cannot find window title \"%s\"" -#~ msgstr "E671: ȥ뤬 \"%s\" ΥɥϸĤޤ" +msgid "E459: Cannot go back to previous directory" +msgstr "E459: Υǥ쥯ȥޤ" -#~ msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." -#~ msgstr "E243: ϥݡȤޤ: \"-%s\"; OLEǤѤƤ." +msgid "E42: No Errors" +msgstr "E42: 顼Ϥޤ" -#~ msgid "E672: Unable to open window inside MDI application" -#~ msgstr "E672: MDIץǤϥɥ򳫤ޤ" +msgid "E776: No location list" +msgstr "E776: ꥹȤϤޤ" -#~ msgid "Close tab" -#~ msgstr "֥ڡĤ" +msgid "E43: Damaged match string" +msgstr "E43: ʸ»Ƥޤ" -#~ msgid "Open tab..." -#~ msgstr "֥ڡ򳫤" +msgid "E44: Corrupted regexp program" +msgstr "E44: ɽץǤ" -#~ msgid "Find string (use '\\\\' to find a '\\')" -#~ msgstr "ʸ ('\\' 򸡺ˤ '\\\\')" +msgid "E45: 'readonly' option is set (add ! to override)" +msgstr "E45: 'readonly' ץꤵƤޤ (! ɲäǾ)" -#~ msgid "Find & Replace (use '\\\\' to find a '\\')" -#~ msgstr "ִ ('\\' 򸡺ˤ '\\\\')" +#, c-format +msgid "E46: Cannot change read-only variable \"%s\"" +msgstr "E46: ɼѿ \"%s\" ˤͤǤޤ" -#~ msgid "Not Used" -#~ msgstr "Ȥޤ" +#, c-format +msgid "E794: Cannot set variable in the sandbox: \"%s\"" +msgstr "E794: ɥܥåǤѿ \"%s\" ͤǤޤ" -#~ msgid "Directory\t*.nothing\n" -#~ msgstr "ǥ쥯ȥ\t*.nothing\n" +msgid "E713: Cannot use empty key for Dictionary" +msgstr "E713: 񷿤˶ΥȤȤϤǤޤ" -#~ msgid "" -#~ "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" -#~ msgstr "Vim E458: ꤬ʤΤǥȥƤޤ" +msgid "E715: Dictionary required" +msgstr "E715: 񷿤ɬפǤ" -#~ msgid "E250: Fonts for the following charsets are missing in fontset %s:" -#~ msgstr "E250: ʲʸåȤΥեȤޤ %s:" +#, c-format +msgid "E684: list index out of range: %ld" +msgstr "E684: ꥹȤΥǥåϰϳǤ: %ld" -#~ msgid "E252: Fontset name: %s" -#~ msgstr "E252: եȥå̾: %s" +#, c-format +msgid "E118: Too many arguments for function: %s" +msgstr "E118: ؿΰ¿᤮ޤ: %s" -#~ msgid "Font '%s' is not fixed-width" -#~ msgstr "ե '%s' ϸǤϤޤ" +#, c-format +msgid "E716: Key not present in Dictionary: %s" +msgstr "E716: 񷿤˥¸ߤޤ: %s" -#~ msgid "E253: Fontset name: %s" -#~ msgstr "E253: եȥå̾: %s" +msgid "E714: List required" +msgstr "E714: ꥹȷɬפǤ" -#~ msgid "Font0: %s" -#~ msgstr "ե0: %s" +#, c-format +msgid "E712: Argument of %s must be a List or Dictionary" +msgstr "E712: %s ΰϥꥹȷޤϼ񷿤ǤʤФʤޤ" -#~ msgid "Font1: %s" -#~ msgstr "ե1: %s" +msgid "E47: Error while reading errorfile" +msgstr "E47: 顼եɹ˥顼ȯޤ" -#~ msgid "Font% width is not twice that of font0" -#~ msgstr "ե% ե02ܤǤϤޤ" +msgid "E48: Not allowed in sandbox" +msgstr "E48: ɥܥåǤϵޤ" -#~ msgid "Font0 width: %" -#~ msgstr "ե0: %" +msgid "E523: Not allowed here" +msgstr "E523: ǤϵĤޤ" -#~ msgid "Font1 width: %" -#~ msgstr "ե1: %" +msgid "E359: Screen mode setting not supported" +msgstr "E359: ꡼⡼ɤˤбƤޤ" -#~ msgid "Invalid font specification" -#~ msgstr "̵ʥեȻǤ" +msgid "E49: Invalid scroll size" +msgstr "E49: ̵ʥ̤Ǥ" -#~ msgid "&Dismiss" -#~ msgstr "Ѳ(&D)" +msgid "E91: 'shell' option is empty" +msgstr "E91: 'shell' ץ󤬶Ǥ" -#~ msgid "no specific match" -#~ msgstr "ޥåΤޤ" +msgid "E255: Couldn't read in sign data!" +msgstr "E255: sign ΥǡɹޤǤ" -#~ msgid "Vim - Font Selector" -#~ msgstr "Vim - ե" +msgid "E72: Close error on swap file" +msgstr "E72: åץեΥ顼Ǥ" -#~ msgid "Name:" -#~ msgstr "̾:" +msgid "E73: tag stack empty" +msgstr "E73: åǤ" -#~ msgid "Show size in Points" -#~ msgstr "ݥȤɽ" +msgid "E74: Command too complex" +msgstr "E74: ޥɤʣ᤮ޤ" -#~ msgid "Encoding:" -#~ msgstr "󥳡:" +msgid "E75: Name too long" +msgstr "E75: ̾Ĺ᤮ޤ" -#~ msgid "Font:" -#~ msgstr "ե:" +msgid "E76: Too many [" +msgstr "E76: [ ¿᤮ޤ" -#~ msgid "Style:" -#~ msgstr ":" +msgid "E77: Too many file names" +msgstr "E77: ե̾¿᤮ޤ" -#~ msgid "Size:" -#~ msgstr ":" - -#~ msgid "E256: Hangul automata ERROR" -#~ msgstr "E256: ϥ󥰥륪ȥޥȥ󥨥顼" - -#~ msgid "E563: stat error" -#~ msgstr "E563: stat 顼" - -#~ msgid "E625: cannot open cscope database: %s" -#~ msgstr "E625: cscopeǡ١: %s 򳫤ȤǤޤ" - -#~ msgid "E626: cannot get cscope database information" -#~ msgstr "E626: cscopeǡ١ξǤޤ" - -#~ msgid "Lua library cannot be loaded." -#~ msgstr "Lua饤֥ɤǤޤ." - -#~ msgid "cannot save undo information" -#~ msgstr "ɥ¸Ǥޤ" - -#~ msgid "" -#~ "E815: Sorry, this command is disabled, the MzScheme libraries could not " -#~ "be loaded." -#~ msgstr "" -#~ "E815: Υޥɤ̵Ǥ. MzScheme 饤֥ɤǤޤ." - -#~ msgid "invalid expression" -#~ msgstr "̵ʼǤ" - -#~ msgid "expressions disabled at compile time" -#~ msgstr "ϥѥ̵ˤƤޤ" - -#~ msgid "hidden option" -#~ msgstr "ץ" - -#~ msgid "unknown option" -#~ msgstr "̤ΤΥץǤ" - -#~ msgid "window index is out of range" -#~ msgstr "ϰϳΥɥֹǤ" - -#~ msgid "couldn't open buffer" -#~ msgstr "Хåե򳫤ޤ" - -#~ msgid "cannot delete line" -#~ msgstr "Ԥäޤ" - -#~ msgid "cannot replace line" -#~ msgstr "ԤִǤޤ" - -#~ msgid "cannot insert line" -#~ msgstr "ԤǤޤ" - -#~ msgid "string cannot contain newlines" -#~ msgstr "ʸˤϲʸޤޤ" - -#~ msgid "error converting Scheme values to Vim" -#~ msgstr "SchemeͤVimؤѴ顼" - -#~ msgid "Vim error: ~a" -#~ msgstr "Vim 顼: ~a" - -#~ msgid "Vim error" -#~ msgstr "Vim 顼" - -#~ msgid "buffer is invalid" -#~ msgstr "Хåե̵Ǥ" - -#~ msgid "window is invalid" -#~ msgstr "ɥ̵Ǥ" - -#~ msgid "linenr out of range" -#~ msgstr "ϰϳιֹǤ" - -#~ msgid "not allowed in the Vim sandbox" -#~ msgstr "ɥܥåǤϵޤ" - -#~ msgid "E370: Could not load library %s" -#~ msgstr "E370: 饤֥ %s ɤǤޤǤ" - -#~ msgid "" -#~ "Sorry, this command is disabled: the Perl library could not be loaded." -#~ msgstr "" -#~ "Υޥɤ̵Ǥ, ʤ: Perl饤֥ɤǤޤǤ" -#~ "." - -#~ msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" -#~ msgstr "" -#~ "E299: ɥܥåǤ Safe ⥸塼ѤʤPerlץȤ϶ؤ" -#~ "Ƥޤ" - -#~ msgid "E836: This Vim cannot execute :python after using :py3" -#~ msgstr "E836: VimǤ :py3 Ȥä :python Ȥޤ" - -#~ msgid "" -#~ "E263: Sorry, this command is disabled, the Python library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E263: Υޥɤ̵Ǥ,ʤ: Python饤֥ɤǤ" -#~ "Ǥ." - -# Added at 07-Feb-2004. -#~ msgid "E659: Cannot invoke Python recursively" -#~ msgstr "E659: Python ƵŪ˼¹Ԥ뤳ȤϤǤޤ" - -#~ msgid "E837: This Vim cannot execute :py3 after using :python" -#~ msgstr "E837: VimǤ :python Ȥä :py3 Ȥޤ" - -#~ msgid "E265: $_ must be an instance of String" -#~ msgstr "E265: $_ ʸΥ󥹥󥹤ǤʤФʤޤ" - -#~ msgid "" -#~ "E266: Sorry, this command is disabled, the Ruby library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E266: Υޥɤ̵Ǥ,ʤ: Ruby饤֥ɤǤޤ" -#~ "Ǥ." - -#~ msgid "E267: unexpected return" -#~ msgstr "E267: ͽ return Ǥ" - -#~ msgid "E268: unexpected next" -#~ msgstr "E268: ͽ next Ǥ" - -#~ msgid "E269: unexpected break" -#~ msgstr "E269: ͽ break Ǥ" - -#~ msgid "E270: unexpected redo" -#~ msgstr "E270: ͽ redo Ǥ" - -#~ msgid "E271: retry outside of rescue clause" -#~ msgstr "E271: rescue γ retry Ǥ" - -#~ msgid "E272: unhandled exception" -#~ msgstr "E272: 갷ʤä㳰ޤ" - -#~ msgid "E273: unknown longjmp status %d" -#~ msgstr "E273: ̤Τlongjmp: %d" - -#~ msgid "Toggle implementation/definition" -#~ msgstr "ڤؤ" - -#~ msgid "Show base class of" -#~ msgstr "Υ饹δɽ" - -#~ msgid "Show overridden member function" -#~ msgstr "С饤ɤ줿дؿɽ" - -#~ msgid "Retrieve from file" -#~ msgstr "ե뤫" - -#~ msgid "Retrieve from project" -#~ msgstr "ץȤ" - -#~ msgid "Retrieve from all projects" -#~ msgstr "ƤΥץȤ" - -#~ msgid "Retrieve" -#~ msgstr "" - -#~ msgid "Show source of" -#~ msgstr "Υɽ" - -#~ msgid "Find symbol" -#~ msgstr "Ĥܥ" - -#~ msgid "Browse class" -#~ msgstr "饹򻲾" - -#~ msgid "Show class in hierarchy" -#~ msgstr "ؤǥ饹ɽ" - -#~ msgid "Show class in restricted hierarchy" -#~ msgstr "ꤵ줿ؤǥ饹ɽ" - -#~ msgid "Xref refers to" -#~ msgstr "Xref λ" - -#~ msgid "Xref referred by" -#~ msgstr "Xref Ȥ" - -#~ msgid "Xref has a" -#~ msgstr "Xref ΤΤäƤޤ" - -#~ msgid "Xref used by" -#~ msgstr "Xref Ѥ" - -#~ msgid "Show docu of" -#~ msgstr "ʸϤɽ" - -#~ msgid "Generate docu for" -#~ msgstr "ʸϤ" - -#~ msgid "" -#~ "Cannot connect to SNiFF+. Check environment (sniffemacs must be found in " -#~ "$PATH).\n" -#~ msgstr "" -#~ "SNiFF+³Ǥޤ. ĶåƤ(sniffemacs $PATH " -#~ "ʤФʤޤ).\n" - -#~ msgid "E274: Sniff: Error during read. Disconnected" -#~ msgstr "E274: Sniff: ɹ˥顼ȯޤ. Ǥޤ" - -#~ msgid "SNiFF+ is currently " -#~ msgstr "SNiFF+ ξ֤ϡ" - -#~ msgid "not " -#~ msgstr "̤" - -#~ msgid "connected" -#~ msgstr "³פǤ" - -#~ msgid "E275: Unknown SNiFF+ request: %s" -#~ msgstr "E275: ̤Τ SNiFF+ ꥯȤǤ: %s" - -#~ msgid "E276: Error connecting to SNiFF+" -#~ msgstr "E276: SNiFF+ ؤ³Υ顼Ǥ" - -#~ msgid "E278: SNiFF+ not connected" -#~ msgstr "E278: SNiFF+ ³Ƥޤ" - -#~ msgid "E279: Not a SNiFF+ buffer" -#~ msgstr "E279: SNiFF+ Хåեޤ" - -#~ msgid "Sniff: Error during write. Disconnected" -#~ msgstr "Sniff: ˥顼ȯΤǤޤ" - -#~ msgid "invalid buffer number" -#~ msgstr "̵ʥХåեֹǤ" - -#~ msgid "not implemented yet" -#~ msgstr "ޤƤޤ" - -#~ msgid "cannot set line(s)" -#~ msgstr "ԤǤޤ" - -#~ msgid "invalid mark name" -#~ msgstr "̵ʥޡ̾Ǥ" - -#~ msgid "mark not set" -#~ msgstr "ޡꤵƤޤ" - -#~ msgid "row %d column %d" -#~ msgstr " %d %d" - -#~ msgid "cannot insert/append line" -#~ msgstr "Ԥ/ɲäǤޤ" - -#~ msgid "line number out of range" -#~ msgstr "ϰϳιֹǤ" - -#~ msgid "unknown flag: " -#~ msgstr "̤ΤΥե饰: " - -#~ msgid "unknown vimOption" -#~ msgstr "̤Τ vimOption Ǥ" - -#~ msgid "keyboard interrupt" -#~ msgstr "ܡɳ" - -#~ msgid "vim error" -#~ msgstr "vim 顼" - -#~ msgid "cannot create buffer/window command: object is being deleted" -#~ msgstr "" -#~ "Хåե/ɥޥɤǤޤ: ֥Ȥõ" -#~ "ޤ" - -#~ msgid "" -#~ "cannot register callback command: buffer/window is already being deleted" -#~ msgstr "" -#~ "ХåޥɤϿǤޤ: Хåե/ɥ˾õ" -#~ "" - -#~ msgid "" -#~ "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-" -#~ "dev@vim.org" -#~ msgstr "" -#~ "E280: TCL ̿Ū顼: reflist !? vim-dev@vim.org 𤷤Ƥ" - -#~ msgid "cannot register callback command: buffer/window reference not found" -#~ msgstr "" -#~ "ХåޥɤϿǤޤ: Хåե/ɥλȤĤ" -#~ "ޤ" - -#~ msgid "" -#~ "E571: Sorry, this command is disabled: the Tcl library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E571: Υޥɤ̵Ǥ,ʤ: Tcl饤֥ɤǤޤ" -#~ "Ǥ." - -#~ msgid "E572: exit code %d" -#~ msgstr "E572: λ %d" - -#~ msgid "cannot get line" -#~ msgstr "ԤǤޤ" - -#~ msgid "Unable to register a command server name" -#~ msgstr "̿᥵Ф̾ϿǤޤ" - -#~ msgid "E248: Failed to send command to the destination program" -#~ msgstr "E248: ŪΥץؤΥޥ˼Ԥޤ" - -#~ msgid "E573: Invalid server id used: %s" -#~ msgstr "E573: ̵ʥIDȤޤ: %s" - -#~ msgid "E251: VIM instance registry property is badly formed. Deleted!" -#~ msgstr "E251: VIM ΤϿץѥƥǤ. õޤ!" - -#~ msgid "netbeans is not supported with this GUI\n" -#~ msgstr "netbeans ϤGUIǤѤǤޤ\n" - -#~ msgid "This Vim was not compiled with the diff feature." -#~ msgstr "Vimˤdiffǽޤ(ѥ)." - -#~ msgid "'-nb' cannot be used: not enabled at compile time\n" -#~ msgstr "'-nb' ԲǽǤ: ѥ̵ˤƤޤ\n" - -#~ msgid "Vim: Error: Failure to start gvim from NetBeans\n" -#~ msgstr "Vim: 顼: NetBeansgvim򥹥ȤǤޤ\n" - -#~ msgid "" -#~ "\n" -#~ "Where case is ignored prepend / to make flag upper case" -#~ msgstr "" -#~ "\n" -#~ "羮ʸ̵뤵ʸˤ뤿 / ֤Ƥ" - -#~ msgid "-register\t\tRegister this gvim for OLE" -#~ msgstr "-register\t\tgvimOLEȤϿ" - -#~ msgid "-unregister\t\tUnregister gvim for OLE" -#~ msgstr "-unregister\t\tgvimOLEϿ" - -#~ msgid "-g\t\t\tRun using GUI (like \"gvim\")" -#~ msgstr "-g\t\t\tGUIǵư (\"gvim\" Ʊ)" - -#~ msgid "-f or --nofork\tForeground: Don't fork when starting GUI" -#~ msgstr "-f or --nofork\tե饦: GUIϤȤforkʤ" - -#~ msgid "-f\t\t\tDon't use newcli to open window" -#~ msgstr "-f\t\t\tɥ򳫤Τ newcli Ѥʤ" - -#~ msgid "-dev \t\tUse for I/O" -#~ msgstr "-dev \t\tI/O Ѥ" - -#~ msgid "-U \t\tUse instead of any .gvimrc" -#~ msgstr "-U \t\t.gvimrc Ȥ" - -#~ msgid "-x\t\t\tEdit encrypted files" -#~ msgstr "-x\t\t\tŹ沽줿եԽ" - -#~ msgid "-display \tConnect vim to this particular X-server" -#~ msgstr "-display \tvimꤷ X Ф³" - -#~ msgid "-X\t\t\tDo not connect to X server" -#~ msgstr "-X\t\t\tXФ³ʤ" - -#~ msgid "--remote \tEdit in a Vim server if possible" -#~ msgstr "--remote \tǽʤVimФ Խ" - -#~ msgid "--remote-silent Same, don't complain if there is no server" -#~ msgstr "--remote-silent Ʊ, Ф̵ƤٹʸϤʤ" - -#~ msgid "" -#~ "--remote-wait As --remote but wait for files to have been edited" -#~ msgstr "--remote-wait \t--remote եԽΤԤ" - -#~ msgid "" -#~ "--remote-wait-silent Same, don't complain if there is no server" -#~ msgstr "" -#~ "--remote-wait-silent Ʊ, Ф̵ƤٹʸϤʤ" - -#~ msgid "" -#~ "--remote-tab[-wait][-silent] As --remote but use tab page per " -#~ "file" -#~ msgstr "" -#~ "--remote-tab[-wait][-silent] --remoteǥե1ĤˤĤ1ĤΥ" -#~ "ڡ򳫤" - -#~ msgid "--remote-send \tSend to a Vim server and exit" -#~ msgstr "--remote-send \tVimФ ƽλ" - -#~ msgid "" -#~ "--remote-expr \tEvaluate in a Vim server and print result" -#~ msgstr "--remote-expr \tФ ¹ԤƷ̤ɽ" - -#~ msgid "--serverlist\t\tList available Vim server names and exit" -#~ msgstr "--serverlist\t\tVim̾ΰɽƽλ" - -#~ msgid "--servername \tSend to/become the Vim server " -#~ msgstr "--servername \tVim /̾ꤹ" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (Motif version):\n" -#~ msgstr "" -#~ "\n" -#~ "gvimˤäƲᤵ(MotifС):\n" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (neXtaw version):\n" -#~ msgstr "" -#~ "\n" -#~ "gvimˤäƲᤵ(neXtawС):\n" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (Athena version):\n" -#~ msgstr "" -#~ "\n" -#~ "gvimˤäƲᤵ(AthenaС):\n" - -#~ msgid "-display \tRun vim on " -#~ msgstr "-display \t vim¹Ԥ" - -#~ msgid "-iconic\t\tStart vim iconified" -#~ msgstr "-iconic\t\tǾ֤vimư" - -#~ msgid "-background \tUse for the background (also: -bg)" -#~ msgstr "-background \tطʿ Ȥ(Ʊ: -bg)" - -#~ msgid "-foreground \tUse for normal text (also: -fg)" -#~ msgstr "-foreground \tʿ Ȥ(Ʊ: -fg)" - -#~ msgid "-font \t\tUse for normal text (also: -fn)" -#~ msgstr "-font \t\tƥɽ Ȥ(Ʊ: -fn)" - -#~ msgid "-boldfont \tUse for bold text" -#~ msgstr "-boldfont \t Ȥ" - -#~ msgid "-italicfont \tUse for italic text" -#~ msgstr "-italicfont \tλ Ȥ" - -#~ msgid "-geometry \tUse for initial geometry (also: -geom)" -#~ msgstr "-geometry \t֤ Ȥ(Ʊ: -geom)" - -#~ msgid "-borderwidth \tUse a border width of (also: -bw)" -#~ msgstr "-borderwidth \t ˤ(Ʊ: -bw)" - -#~ msgid "" -#~ "-scrollbarwidth Use a scrollbar width of (also: -sw)" -#~ msgstr "" -#~ "-scrollbarwidth С ˤ(Ʊ: -sw)" - -#~ msgid "-menuheight \tUse a menu bar height of (also: -mh)" -#~ msgstr "" -#~ "-menuheight \t˥塼Сι⤵ ˤ(Ʊ: -mh)" - -#~ msgid "-reverse\t\tUse reverse video (also: -rv)" -#~ msgstr "-reverse\t\tȿžѤ(Ʊ: -rv)" - -#~ msgid "+reverse\t\tDon't use reverse video (also: +rv)" -#~ msgstr "+reverse\t\tȿžѤʤ(Ʊ: +rv)" - -#~ msgid "-xrm \tSet the specified resource" -#~ msgstr "-xrm \tΥ꥽Ѥ" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (GTK+ version):\n" -#~ msgstr "" -#~ "\n" -#~ "gvimˤäƲᤵ(GTK+С):\n" - -#~ msgid "-display \tRun vim on (also: --display)" -#~ msgstr "-display \t vim¹Ԥ(Ʊ: --display)" - -#~ msgid "--role \tSet a unique role to identify the main window" -#~ msgstr "--role \tᥤ󥦥ɥ̤դ(role)ꤹ" - -#~ msgid "--socketid \tOpen Vim inside another GTK widget" -#~ msgstr "--socketid \tۤʤGTK widgetVim򳫤" - -#~ msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout" -#~ msgstr "--echo-wid\t\tɥIDɸϤ˽Ϥ" - -#~ msgid "-P \tOpen Vim inside parent application" -#~ msgstr "-P <ƤΥȥ>\tVimƥץꥱǵư" - -#~ msgid "--windowid \tOpen Vim inside another win32 widget" -#~ msgstr "--windowid \tۤʤWin32 widgetVim򳫤" - -#~ msgid "No display" -#~ msgstr "ǥץ쥤Ĥޤ" - -#~ msgid ": Send failed.\n" -#~ msgstr ": ˼Ԥޤ.\n" - -#~ msgid ": Send failed. Trying to execute locally\n" -#~ msgstr ": ˼Ԥޤ. Ǥμ¹ԤߤƤޤ\n" - -#~ msgid "%d of %d edited" -#~ msgstr "%d (%d ) ΥեԽޤ" - -#~ msgid "No display: Send expression failed.\n" -#~ msgstr "ǥץ쥤ޤ: ˼Ԥޤ.\n" - -#~ msgid ": Send expression failed.\n" -#~ msgstr ": ˼Ԥޤ.\n" - -#~ msgid "E543: Not a valid codepage" -#~ msgstr "E543: ̵ʥɥڡǤ" - -#~ msgid "E284: Cannot set IC values" -#~ msgstr "E284: ICͤǤޤ" - -#~ msgid "E285: Failed to create input context" -#~ msgstr "E285: ץåȥƥȤκ˼Ԥޤ" - -#~ msgid "E286: Failed to open input method" -#~ msgstr "E286: ץåȥ᥽åɤΥץ˼Ԥޤ" - -#~ msgid "E287: Warning: Could not set destroy callback to IM" -#~ msgstr "E287: ٹ: IM˲ХåǤޤǤ" - -#~ msgid "E288: input method doesn't support any style" -#~ msgstr "E288: ץåȥ᥽åɤϤɤʥ⥵ݡȤޤ" - -#~ msgid "E289: input method doesn't support my preedit type" -#~ msgstr "E289: ץåȥ᥽åɤ my preedit type 򥵥ݡȤޤ" - -#~ msgid "E843: Error while updating swap file crypt" -#~ msgstr "E843: åץեΰŹ򹹿˥顼ȯޤ" - -#~ msgid "" -#~ "E833: %s is encrypted and this version of Vim does not support encryption" -#~ msgstr "" -#~ "E833: %s ϤΥСVimǥݡȤƤʤǰŹ沽Ƥޤ" - -#~ msgid "Swap file is encrypted: \"%s\"" -#~ msgstr "åץեϰŹ沽Ƥޤ: \"%s\"" - -#~ msgid "" -#~ "\n" -#~ "If you entered a new crypt key but did not write the text file," -#~ msgstr "" -#~ "\n" -#~ "Ź業ϤȤ˥ƥȥե¸Ƥʤ," - -#~ msgid "" -#~ "\n" -#~ "enter the new crypt key." -#~ msgstr "" -#~ "\n" -#~ "Ź業ϤƤ." - -#~ msgid "" -#~ "\n" -#~ "If you wrote the text file after changing the crypt key press enter" -#~ msgstr "" -#~ "\n" -#~ "Ź業ѤȤ˥ƥȥե¸, ƥȥե" - -#~ msgid "" -#~ "\n" -#~ "to use the same key for text file and swap file" -#~ msgstr "" -#~ "\n" -#~ "åץեƱŹ業Ȥenter򲡤Ƥ." - -#~ msgid "Using crypt key from swap file for the text file.\n" -#~ msgstr "åץե뤫Ź業ƥȥե˻Ȥޤ.\n" - -#~ msgid "" -#~ "\n" -#~ " [not usable with this version of Vim]" -#~ msgstr "" -#~ "\n" -#~ " [VimСǤϻѤǤޤ]" - -#~ msgid "Tear off this menu" -#~ msgstr "Υ˥塼ڤ" - -#~ msgid "Select Directory dialog" -#~ msgstr "ǥ쥯ȥ" - -#~ msgid "Save File dialog" -#~ msgstr "ե¸" - -#~ msgid "Open File dialog" -#~ msgstr "եɹ" - -#~ msgid "E338: Sorry, no file browser in console mode" -#~ msgstr "" -#~ "E338: 󥽡⡼ɤǤϥե֥饦Ȥޤ, ʤ" - -#~ msgid "Vim: preserving files...\n" -#~ msgstr "Vim: ե¸...\n" - -#~ msgid "Vim: Finished.\n" -#~ msgstr "Vim: λޤ.\n" - -#~ msgid "ERROR: " -#~ msgstr "顼: " - -#~ msgid "" -#~ "\n" -#~ "[bytes] total alloc-freed %-%, in use %, peak use " -#~ "%\n" -#~ msgstr "" -#~ "\n" -#~ "[(Х)] - %-%, %, ԡ" -#~ " %\n" - -#~ msgid "" -#~ "[calls] total re/malloc()'s %, total free()'s %\n" -#~ "\n" -#~ msgstr "" -#~ "[ƽ] re/malloc() %, free() %\n" -#~ "\n" - -#~ msgid "E340: Line is becoming too long" -#~ msgstr "E340: ԤĹʤ᤮ޤ" - -#~ msgid "E341: Internal error: lalloc(%, )" -#~ msgstr "E341: 顼: lalloc(%,)" - -#~ msgid "E547: Illegal mouseshape" -#~ msgstr "E547: 'mouseshape' Ǥ" - -#~ msgid "Enter encryption key: " -#~ msgstr "Ź沽ѤΥϤƤ: " - -#~ msgid "Enter same key again: " -#~ msgstr "⤦ƱϤƤ: " - -#~ msgid "Keys don't match!" -#~ msgstr "פޤ" - -#~ msgid "Cannot connect to Netbeans #2" -#~ msgstr "Netbeans #2 ³Ǥޤ" - -#~ msgid "Cannot connect to Netbeans" -#~ msgstr "Netbeans ³Ǥޤ" - -#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" -#~ msgstr "" -#~ "E668: NetBeans³եΥ⡼ɤ꤬ޤ: \"%s\"" - -#~ msgid "read from Netbeans socket" -#~ msgstr "Netbeans ΥåȤɹ" - -#~ msgid "E658: NetBeans connection lost for buffer %" -#~ msgstr "E658: Хåե % NetBeans ³ޤ" - -#~ msgid "E838: netbeans is not supported with this GUI" -#~ msgstr "E838: NetBeansϤGUIˤбƤޤ" - -#~ msgid "E511: netbeans already connected" -#~ msgstr "E511: NetBeansϴ³Ƥޤ" - -#~ msgid "E505: %s is read-only (add ! to override)" -#~ msgstr "E505: %s ɹѤǤ (ˤ ! ɲ)" - -#~ msgid "E775: Eval feature not available" -#~ msgstr "E775: ɾǽ̵ˤʤäƤޤ" - -#~ msgid "freeing % lines" -#~ msgstr "% Ԥ" - -#~ msgid "E530: Cannot change term in GUI" -#~ msgstr "E530: GUIǤ 'term' ѹǤޤ" - -#~ msgid "E531: Use \":gui\" to start the GUI" -#~ msgstr "E531: GUI򥹥Ȥˤ \":gui\" ѤƤ" - -#~ msgid "E617: Cannot be changed in the GTK+ 2 GUI" -#~ msgstr "E617: GTK+2 GUIǤѹǤޤ" - -#~ msgid "E596: Invalid font(s)" -#~ msgstr "E596: ̵ʥեȤǤ" - -#~ msgid "E597: can't select fontset" -#~ msgstr "E597: եȥåȤǤޤ" - -#~ msgid "E598: Invalid fontset" -#~ msgstr "E598: ̵ʥեȥåȤǤ" - -#~ msgid "E533: can't select wide font" -#~ msgstr "E533: 磻ɥեȤǤޤ" - -#~ msgid "E534: Invalid wide font" -#~ msgstr "E534: ̵ʥ磻ɥեȤǤ" - -#~ msgid "E538: No mouse support" -#~ msgstr "E538: ޥϥݡȤޤ" - -#~ msgid "cannot open " -#~ msgstr "ޤ " - -#~ msgid "VIM: Can't open window!\n" -#~ msgstr "VIM: ɥ򳫤ޤ!\n" - -#~ msgid "Need Amigados version 2.04 or later\n" -#~ msgstr "AmigadosΥС 2.04ʹߤɬפǤ\n" - -#~ msgid "Need %s version %\n" -#~ msgstr "%s ΥС % ɬפǤ\n" - -#~ msgid "Cannot open NIL:\n" -#~ msgstr "NIL򳫤ޤ:\n" - -#~ msgid "Cannot create " -#~ msgstr "Ǥޤ " - -#~ msgid "Vim exiting with %d\n" -#~ msgstr "Vim %d ǽλޤ\n" - -#~ msgid "cannot change console mode ?!\n" -#~ msgstr "󥽡⡼ɤѹǤޤ?!\n" - -#~ msgid "mch_get_shellsize: not a console??\n" -#~ msgstr "mch_get_shellsize: 󥽡ǤϤʤ??\n" - -#~ msgid "E360: Cannot execute shell with -f option" -#~ msgstr "E360: -f ץǥ¹ԤǤޤ" - -#~ msgid "Cannot execute " -#~ msgstr "¹ԤǤޤ " - -#~ msgid "shell " -#~ msgstr " " - -#~ msgid " returned\n" -#~ msgstr " ޤ\n" - -#~ msgid "ANCHOR_BUF_SIZE too small." -#~ msgstr "ANCHOR_BUF_SIZE ᤮ޤ." - -#~ msgid "I/O ERROR" -#~ msgstr "ϥ顼" - -#~ msgid "Message" -#~ msgstr "å" - -#~ msgid "'columns' is not 80, cannot execute external commands" -#~ msgstr "'columns' 80ǤϤʤ, ޥɤ¹ԤǤޤ" - -#~ msgid "E237: Printer selection failed" -#~ msgstr "E237: ץ󥿤˼Ԥޤ" - -#~ msgid "to %s on %s" -#~ msgstr "%s (%s )" - -#~ msgid "E613: Unknown printer font: %s" -#~ msgstr "E613: ̤ΤΥץ󥿥ץǤ: %s" - -#~ msgid "E238: Print error: %s" -#~ msgstr "E238: 顼: %s" - -#~ msgid "Printing '%s'" -#~ msgstr "Ƥޤ: '%s'" - -#~ msgid "E244: Illegal charset name \"%s\" in font name \"%s\"" -#~ msgstr "E244: ʸå̾ \"%s\" Ǥ (ե̾ \"%s\")" - -#~ msgid "E245: Illegal char '%c' in font name \"%s\"" -#~ msgstr "E245: '%c' ʸǤ (ե̾ \"%s\")" - -#~ msgid "Vim: Double signal, exiting\n" -#~ msgstr "Vim: 2ŤΥʥΤ, λޤ\n" - -#~ msgid "Vim: Caught deadly signal %s\n" -#~ msgstr "Vim: ̿Ūʥ %s Τޤ\n" - -#~ msgid "Vim: Caught deadly signal\n" -#~ msgstr "Vim: ̿ŪʥΤޤ\n" - -#~ msgid "Opening the X display took % msec" -#~ msgstr "XФؤ³ % ߥäޤ" - -#~ msgid "" -#~ "\n" -#~ "Vim: Got X error\n" -#~ msgstr "" -#~ "\n" -#~ "Vim: X Υ顼򸡽Фޤr\n" - -#~ msgid "Testing the X display failed" -#~ msgstr "X display Υå˼Ԥޤ" - -#~ msgid "Opening the X display timed out" -#~ msgstr "X display open ॢȤޤ" - -#~ msgid "" -#~ "\n" -#~ "Cannot execute shell sh\n" -#~ msgstr "" -#~ "\n" -#~ "sh ¹ԤǤޤ\n" - -#~ msgid "" -#~ "\n" -#~ "Cannot create pipes\n" -#~ msgstr "" -#~ "\n" -#~ "ѥפǤޤ\n" - -#~ msgid "" -#~ "\n" -#~ "Cannot fork\n" -#~ msgstr "" -#~ "\n" -#~ "fork Ǥޤ\n" - -#~ msgid "" -#~ "\n" -#~ "Command terminated\n" -#~ msgstr "" -#~ "\n" -#~ "ޥɤǤޤ\n" - -#~ msgid "XSMP lost ICE connection" -#~ msgstr "XSMP ICE³򼺤ޤ" - -#~ msgid "Opening the X display failed" -#~ msgstr "X display open ˼Ԥޤ" - -#~ msgid "XSMP handling save-yourself request" -#~ msgstr "XSMP save-yourself׵Ƥޤ" - -#~ msgid "XSMP opening connection" -#~ msgstr "XSMP ³򳫻ϤƤޤ" - -#~ msgid "XSMP ICE connection watch failed" -#~ msgstr "XSMP ICE³Ԥ褦Ǥ" - -#~ msgid "XSMP SmcOpenConnection failed: %s" -#~ msgstr "XSMP SmcOpenConnectionԤޤ: %s" - -#~ msgid "At line" -#~ msgstr "" - -#~ msgid "Could not load vim32.dll!" -#~ msgstr "vim32.dll ɤǤޤǤ" - -#~ msgid "VIM Error" -#~ msgstr "VIM顼" - -#~ msgid "Could not fix up function pointers to the DLL!" -#~ msgstr "DLLؿݥ󥿤ǤޤǤ" - -#~ msgid "shell returned %d" -#~ msgstr "뤬 %d ǽλޤ" - -#~ msgid "Vim: Caught %s event\n" -#~ msgstr "Vim: ٥ %s \n" - -#~ msgid "close" -#~ msgstr "Ĥ" - -#~ msgid "logoff" -#~ msgstr "" - -#~ msgid "shutdown" -#~ msgstr "åȥ" - -#~ msgid "E371: Command not found" -#~ msgstr "E371: ޥɤޤ" - -#~ msgid "" -#~ "VIMRUN.EXE not found in your $PATH.\n" -#~ "External commands will not pause after completion.\n" -#~ "See :help win32-vimrun for more information." -#~ msgstr "" -#~ "VIMRUN.EXE $PATH ˸Ĥޤ.\n" -#~ "ޥɤνλ˰ߤ򤷤ޤ.\n" -#~ "ܺ٤ :help win32-vimrun 򻲾ȤƤ." - -#~ msgid "Vim Warning" -#~ msgstr "Vimηٹ" - -#~ msgid "Error file" -#~ msgstr "顼ե" - -#~ msgid "E868: Error building NFA with equivalence class!" -#~ msgstr "E868: 饹ޤNFAۤ˼Ԥޤ!" - -#~ msgid "E878: (NFA) Could not allocate memory for branch traversal!" -#~ msgstr "E878: (NFA) ߲Υ֥˽ʬʥƤޤ!" - -#~ msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\"" -#~ msgstr "" -#~ "ٹ: ñꥹ \"%s_%s.spl\" \"%s_ascii.spl\" ϸĤޤ" - -#~ msgid "Conversion in %s not supported" -#~ msgstr "%s ѴϥݡȤƤޤ" - -#~ msgid "E845: Insufficient memory, word list will be incomplete" -#~ msgstr "E845: ꤬­ʤΤǡñꥹȤԴǤ" - -#~ msgid "E430: Tag file path truncated for %s\n" -#~ msgstr "E430: եΥѥ %s ڤΤƤޤ\n" - -#~ msgid "new shell started\n" -#~ msgstr "ưޤ\n" - -#~ msgid "Used CUT_BUFFER0 instead of empty selection" -#~ msgstr "ΰΤCUT_BUFFER0Ѥޤ" - -#~ msgid "No undo possible; continue anyway" -#~ msgstr "ǽʥɥϤޤ: Ȥꤢ³ޤ" - -#~ msgid "E832: Non-encrypted file has encrypted undo file: %s" -#~ msgstr "" -#~ "E832: Ź沽ե뤬Ź沽줿ɥեȤäƤޤ: %s" - -#~ msgid "E826: Undo file decryption failed: %s" -#~ msgstr "E826: Ź沽줿ɥեβɤ˼Ԥޤ: %s" - -#~ msgid "E827: Undo file is encrypted: %s" -#~ msgstr "E827: ɥե뤬Ź沽Ƥޤ: %s" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 16/32-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 16/32 ӥå GUI " - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 64-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 64 ӥå GUI " - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 32-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 32 ӥå GUI " - -#~ msgid " in Win32s mode" -#~ msgstr " in Win32s ⡼" - -#~ msgid " with OLE support" -#~ msgstr " with OLE ݡ" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 64-bit console version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 64 ӥå 󥽡 " - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 32-bit console version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 32 ӥå 󥽡 " - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 16-bit version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 16 ӥå " - -#~ msgid "" -#~ "\n" -#~ "32-bit MS-DOS version" -#~ msgstr "" -#~ "\n" -#~ "32 ӥå MS-DOS " - -#~ msgid "" -#~ "\n" -#~ "16-bit MS-DOS version" -#~ msgstr "" -#~ "\n" -#~ "16 ӥå MS-DOS " - -#~ msgid "" -#~ "\n" -#~ "MacOS X (unix) version" -#~ msgstr "" -#~ "\n" -#~ "MacOS X (unix) " - -#~ msgid "" -#~ "\n" -#~ "MacOS X version" -#~ msgstr "" -#~ "\n" -#~ "MacOS X " - -#~ msgid "" -#~ "\n" -#~ "MacOS version" -#~ msgstr "" -#~ "\n" -#~ "MacOS " - -#~ msgid "" -#~ "\n" -#~ "OpenVMS version" -#~ msgstr "" -#~ "\n" -#~ "OpenVMS " - -#~ msgid "" -#~ "\n" -#~ "Big version " -#~ msgstr "" -#~ "\n" -#~ "Big " - -#~ msgid "" -#~ "\n" -#~ "Normal version " -#~ msgstr "" -#~ "\n" -#~ "̾ " - -#~ msgid "" -#~ "\n" -#~ "Small version " -#~ msgstr "" -#~ "\n" -#~ "Small " - -#~ msgid "" -#~ "\n" -#~ "Tiny version " -#~ msgstr "" -#~ "\n" -#~ "Tiny " - -#~ msgid "with GTK2-GNOME GUI." -#~ msgstr "with GTK2-GNOME GUI." - -#~ msgid "with GTK2 GUI." -#~ msgstr "with GTK2 GUI." - -#~ msgid "with X11-Motif GUI." -#~ msgstr "with X11-Motif GUI." - -#~ msgid "with X11-neXtaw GUI." -#~ msgstr "with X11-neXtaw GUI." - -#~ msgid "with X11-Athena GUI." -#~ msgstr "with X11-Athena GUI." - -#~ msgid "with Photon GUI." -#~ msgstr "with Photon GUI." - -#~ msgid "with GUI." -#~ msgstr "with GUI." - -#~ msgid "with Carbon GUI." -#~ msgstr "with Carbon GUI." - -#~ msgid "with Cocoa GUI." -#~ msgstr "with Cocoa GUI." - -#~ msgid "with (classic) GUI." -#~ msgstr "with (饷å) GUI." - -#~ msgid " system gvimrc file: \"" -#~ msgstr " ƥ gvimrc: \"" - -#~ msgid " user gvimrc file: \"" -#~ msgstr " 桼 gvimrc: \"" - -#~ msgid "2nd user gvimrc file: \"" -#~ msgstr " 2桼 gvimrc: \"" - -#~ msgid "3rd user gvimrc file: \"" -#~ msgstr " 3桼 gvimrc: \"" - -#~ msgid " system menu file: \"" -#~ msgstr " ƥ˥塼: \"" - -#~ msgid "Compiler: " -#~ msgstr "ѥ: " - -#~ msgid "menu Help->Orphans for information " -#~ msgstr "ܺ٤ϥ˥塼 إעɻ 򻲾ȤƲ " - -#~ msgid "Running modeless, typed text is inserted" -#~ msgstr "⡼̵Ǽ¹, פʸޤ" +msgid "E488: Trailing characters" +msgstr "E488: ;ʬʸˤޤ" -#~ msgid "menu Edit->Global Settings->Toggle Insert Mode " -#~ msgstr "˥塼 Խꢪ(鿴)⡼ " +msgid "E78: Unknown mark" +msgstr "E78: ̤ΤΥޡ" -#~ msgid " for two modes " -#~ msgstr " ǥ⡼ͭ " +msgid "E79: Cannot expand wildcards" +msgstr "E79: 磻ɥɤŸǤޤ" -#~ msgid "menu Edit->Global Settings->Toggle Vi Compatible" -#~ msgstr "˥塼 ԽꢪViߴ⡼ " +msgid "E591: 'winheight' cannot be smaller than 'winminheight'" +msgstr "E591: 'winheight' 'winminheight' 꾮Ǥޤ" -#~ msgid " for Vim defaults " -#~ msgstr " VimȤư " +msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" +msgstr "E592: 'winwidth' 'winminwidth' 꾮Ǥޤ" -#~ msgid "WARNING: Windows 95/98/ME detected" -#~ msgstr " ٹ: Windows 95/98/Me 򸡽 " +msgid "E80: Error while writing" +msgstr "E80: Υ顼" -#~ msgid "type :help windows95 for info on this" -#~ msgstr " ܺ٤ʾ :help windows95 " +msgid "Zero count" +msgstr "" -#~ msgid "Edit with &multiple Vims" -#~ msgstr "ʣVimԽ (&M)" +msgid "E81: Using not in a script context" +msgstr "E81: ץȰʳȤޤ" -#~ msgid "Edit with single &Vim" -#~ msgstr "1ĤVimԽ (&V)" +msgid "E449: Invalid expression received" +msgstr "E449: ̵ʼޤ" -#~ msgid "Diff with Vim" -#~ msgstr "VimǺʬɽ" +msgid "E463: Region is guarded, cannot modify" +msgstr "E463: ΰ褬ݸƤΤ, ѹǤޤ" -#~ msgid "Edit with &Vim" -#~ msgstr "VimԽ (&V)" +msgid "E744: NetBeans does not allow changes in read-only files" +msgstr "E744: NetBeans ɹѥեѹ뤳Ȥޤ" -#~ msgid "Edit with existing Vim - " -#~ msgstr "ưѤVimԽ - " +#, c-format +msgid "E685: Internal error: %s" +msgstr "E685: 顼Ǥ: %s" -#~ msgid "Edits the selected file(s) with Vim" -#~ msgstr "򤷤եVimԽ" +msgid "E363: pattern uses more memory than 'maxmempattern'" +msgstr "E363: ѥ 'maxmempattern' ʾΥѤޤ" -#~ msgid "Error creating process: Check if gvim is in your path!" -#~ msgstr "ץκ˼: gvimĶѿPATHˤ뤫ǧƤ!" +msgid "E749: empty buffer" +msgstr "E749: ХåեǤ" -#~ msgid "gvimext.dll error" -#~ msgstr "gvimext.dll 顼" +#, c-format +msgid "E86: Buffer %ld does not exist" +msgstr "E86: Хåե %ld Ϥޤ" -#~ msgid "Path length too long!" -#~ msgstr "ѥĹޤ!" +msgid "E682: Invalid search pattern or delimiter" +msgstr "E682: ѥ󤫶ڤ국椬Ǥ" -#~ msgid "E234: Unknown fontset: %s" -#~ msgstr "E234: ̤ΤΥեȥå: %s" +msgid "E139: File is loaded in another buffer" +msgstr "E139: Ʊ̾Υե뤬¾ΥХåեɹޤƤޤ" -#~ msgid "E235: Unknown font: %s" -#~ msgstr "E235: ̤ΤΥե: %s" +#, c-format +msgid "E764: Option '%s' is not set" +msgstr "E764: ץ '%s' ꤵƤޤ" -#~ msgid "E236: Font \"%s\" is not fixed-width" -#~ msgstr "E236: ե \"%s\" ϸǤϤޤ" +msgid "E850: Invalid register name" +msgstr "E850: ̵ʥ쥸̾Ǥ" -#~ msgid "E448: Could not load library function %s" -#~ msgstr "E448: 饤֥δؿ %s ɤǤޤǤ" +#, c-format +msgid "E919: Directory not found in '%s': \"%s\"" +msgstr "E919: ǥ쥯ȥ꤬ '%s' ˤޤ: \"%s\"" -#~ msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" -#~ msgstr "E26: إ֥饤ϻԲǽǤ: ѥ̵ˤƤޤ\n" +msgid "search hit TOP, continuing at BOTTOM" +msgstr "ޤǸΤDzޤ" -#~ msgid "E27: Farsi cannot be used: Not enabled at compile time\n" -#~ msgstr "E27: ڥ륷ϻԲǽǤ: ѥ̵ˤƤޤ\n" +msgid "search hit BOTTOM, continuing at TOP" +msgstr "ޤǸΤǾޤ" -#~ msgid "E800: Arabic cannot be used: Not enabled at compile time\n" -#~ msgstr "" -#~ "E800: ӥϻԲǽǤ: ѥ̵ˤƤޤ\n" +#, c-format +msgid "Need encryption key for \"%s\"" +msgstr "Ź業ɬפǤ: \"%s\"" -#~ msgid "E247: no registered server named \"%s\"" -#~ msgstr "E247: %s Ȥ̾Ͽ줿ФϤޤ" +msgid "empty keys are not allowed" +msgstr "ΥϵĤƤޤ" -#~ msgid "E233: cannot open display" -#~ msgstr "E233: ǥץ쥤򳫤ޤ" +msgid "dictionary is locked" +msgstr "ϥåƤޤ" -#~ msgid "E449: Invalid expression received" -#~ msgstr "E449: ̵ʼޤ" +msgid "list is locked" +msgstr "ꥹȤϥåƤޤ" -#~ msgid "E463: Region is guarded, cannot modify" -#~ msgstr "E463: ΰ褬ݸƤΤ, ѹǤޤ" +#, c-format +msgid "failed to add key '%s' to dictionary" +msgstr "˥ '%s' ɲäΤ˼Ԥޤ" -#~ msgid "E744: NetBeans does not allow changes in read-only files" -#~ msgstr "E744: NetBeans ɹѥեѹ뤳Ȥޤ" +#, c-format +msgid "index must be int or slice, not %s" +msgstr "ǥå %s ǤϤʤ饤ˤƤ" -#~ msgid "Need encryption key for \"%s\"" -#~ msgstr "Ź業ɬפǤ: \"%s\"" +#, c-format +msgid "expected str() or unicode() instance, but got %s" +msgstr "str() ⤷ unicode() Υ󥹥󥹤ԤƤΤ %s Ǥ" -#~ msgid "empty keys are not allowed" -#~ msgstr "ΥϵĤƤޤ" +#, c-format +msgid "expected bytes() or str() instance, but got %s" +msgstr "bytes() ⤷ str() Υ󥹥󥹤ԤƤΤ %s Ǥ" -#~ msgid "dictionary is locked" -#~ msgstr "ϥåƤޤ" +#, c-format +msgid "" +"expected int(), long() or something supporting coercing to long(), but got %s" +msgstr "long() ѴǽʤΤԤƤΤ %s Ǥ" -#~ msgid "list is locked" -#~ msgstr "ꥹȤϥåƤޤ" +#, c-format +msgid "expected int() or something supporting coercing to int(), but got %s" +msgstr "int() ѴǽʤΤԤƤΤ %s Ǥ" -#~ msgid "failed to add key '%s' to dictionary" -#~ msgstr "˥ '%s' ɲäΤ˼Ԥޤ" +msgid "value is too large to fit into C int type" +msgstr "C int ȤƤͤ礭᤮ޤ" -#~ msgid "index must be int or slice, not %s" -#~ msgstr "ǥå %s ǤϤʤ饤ˤƤ" +msgid "value is too small to fit into C int type" +msgstr "C int ȤƤͤ᤮ޤ" -#~ msgid "expected str() or unicode() instance, but got %s" -#~ msgstr "" -#~ "str() ⤷ unicode() Υ󥹥󥹤ԤƤΤ %s Ǥ" +msgid "number must be greater than zero" +msgstr "ͤ 0 礭ʤФʤޤ" -#~ msgid "expected bytes() or str() instance, but got %s" -#~ msgstr "bytes() ⤷ str() Υ󥹥󥹤ԤƤΤ %s Ǥ" +msgid "number must be greater or equal to zero" +msgstr "ͤ 0 ʾǤʤФʤޤ" -#~ msgid "" -#~ "expected int(), long() or something supporting coercing to long(), but " -#~ "got %s" -#~ msgstr "long() ѴǽʤΤԤƤΤ %s Ǥ" +msgid "can't delete OutputObject attributes" +msgstr "OutputObject°äޤ" -#~ msgid "expected int() or something supporting coercing to int(), but got %s" -#~ msgstr "int() ѴǽʤΤԤƤΤ %s Ǥ" +#, c-format +msgid "invalid attribute: %s" +msgstr "̵°Ǥ: %s" -#~ msgid "value is too large to fit into C int type" -#~ msgstr "C int ȤƤͤ礭᤮ޤ" +msgid "E264: Python: Error initialising I/O objects" +msgstr "E264: Python: I/O֥Ȥν顼" -#~ msgid "value is too small to fit into C int type" -#~ msgstr "C int ȤƤͤ᤮ޤ" +msgid "failed to change directory" +msgstr "ѹ˼Ԥޤ" -#~ msgid "number must be greater then zero" -#~ msgstr "ͤ 0 礭ʤФʤޤ" +#, c-format +msgid "expected 3-tuple as imp.find_module() result, but got %s" +msgstr "imp.find_module() %s ֤ޤ (: 3 ǤΥץ)" -#~ msgid "number must be greater or equal to zero" -#~ msgstr "ͤ 0 ʾǤʤФʤޤ" +#, c-format +msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d" +msgstr "imp.find_module() %d ǤΥץ֤ޤ (: 3)" -#~ msgid "can't delete OutputObject attributes" -#~ msgstr "OutputObject°äޤ" +msgid "internal error: imp.find_module returned tuple with NULL" +msgstr "顼: imp.find_module NULL ޤॿץ֤ޤ" -#~ msgid "invalid attribute: %s" -#~ msgstr "̵°Ǥ: %s" +msgid "cannot delete vim.Dictionary attributes" +msgstr "vim.Dictionary°Ͼäޤ" -#~ msgid "E264: Python: Error initialising I/O objects" -#~ msgstr "E264: Python: I/O֥Ȥν顼" +msgid "cannot modify fixed dictionary" +msgstr "ꤵ줿ѹǤޤ" -#~ msgid "failed to change directory" -#~ msgstr "ѹ˼Ԥޤ" +#, c-format +msgid "cannot set attribute %s" +msgstr "° %s Ǥޤ" -#~ msgid "expected 3-tuple as imp.find_module() result, but got %s" -#~ msgstr "imp.find_module() %s ֤ޤ (: 2 ǤΥץ)" +msgid "hashtab changed during iteration" +msgstr "ƥ졼 hashtab ѹޤ" -#~ msgid "" -#~ "expected 3-tuple as imp.find_module() result, but got tuple of size %d" -#~ msgstr "impl.find_module() %d ǤΥץ֤ޤ (: 2)" +#, c-format +msgid "expected sequence element of size 2, but got sequence of size %d" +msgstr "󥹤ǿˤ 2 ԤƤޤ %d Ǥ" -#~ msgid "internal error: imp.find_module returned tuple with NULL" -#~ msgstr "顼: imp.find_module NULL ޤॿץ֤ޤ" +msgid "list constructor does not accept keyword arguments" +msgstr "ꥹȤΥ󥹥ȥ饯ϥɰդޤ" -#~ msgid "cannot delete vim.Dictionary attributes" -#~ msgstr "vim.Dictionary°Ͼäޤ" +msgid "list index out of range" +msgstr "ꥹϰϳΥǥåǤ" -#~ msgid "cannot modify fixed dictionary" -#~ msgstr "ꤵ줿ѹǤޤ" +#. No more suitable format specifications in python-2.3 +#, c-format +msgid "internal error: failed to get vim list item %d" +msgstr "顼: vimΥꥹ %d μ˼Ԥޤ" -#~ msgid "cannot set attribute %s" -#~ msgstr "° %s Ǥޤ" +msgid "slice step cannot be zero" +msgstr "饤Υƥåפ 0 ϻǤޤ" -#~ msgid "hashtab changed during iteration" -#~ msgstr "ƥ졼 hashtab ѹޤ" +#, c-format +msgid "attempt to assign sequence of size greater than %d to extended slice" +msgstr "Ĺ %d γĥ饤ˡĹ饤Ƥ褦Ȥޤ" -#~ msgid "expected sequence element of size 2, but got sequence of size %d" -#~ msgstr "󥹤ǿˤ 2 ԤƤޤ %d Ǥ" +#, c-format +msgid "internal error: no vim list item %d" +msgstr "顼: vimΥꥹ %d Ϥޤ" -#~ msgid "list constructor does not accept keyword arguments" -#~ msgstr "ꥹȤΥ󥹥ȥ饯ϥɰդޤ" +msgid "internal error: not enough list items" +msgstr "顼: ꥹȤ˽ʬǤޤ" -#~ msgid "list index out of range" -#~ msgstr "ꥹϰϳΥǥåǤ" +msgid "internal error: failed to add item to list" +msgstr "顼: ꥹȤؤɲä˼Ԥޤ" -#~ msgid "internal error: failed to get vim list item %d" -#~ msgstr "顼: vimΥꥹ %d μ˼Ԥޤ" +#, c-format +msgid "attempt to assign sequence of size %d to extended slice of size %d" +msgstr "Ĺ %d Υ饤 %d γĥ饤˳Ƥ褦Ȥޤ" -#~ msgid "failed to add item to list" -#~ msgstr "ꥹȤؤɲä˼Ԥޤ" +msgid "failed to add item to list" +msgstr "ꥹȤؤɲä˼Ԥޤ" -#~ msgid "internal error: no vim list item %d" -#~ msgstr "顼: vimΥꥹ %d Ϥޤ" +msgid "cannot delete vim.List attributes" +msgstr "vim.List °Ͼäޤ" -#~ msgid "internal error: failed to add item to list" -#~ msgstr "顼: ꥹȤؤɲä˼Ԥޤ" +msgid "cannot modify fixed list" +msgstr "ꤵ줿ꥹȤѹǤޤ" -#~ msgid "cannot delete vim.List attributes" -#~ msgstr "vim.List °Ͼäޤ" +#, c-format +msgid "unnamed function %s does not exist" +msgstr "̵̾ؿ %s ¸ߤޤ" -#~ msgid "cannot modify fixed list" -#~ msgstr "ꤵ줿ꥹȤѹǤޤ" +#, c-format +msgid "function %s does not exist" +msgstr "ؿ %s ޤ" -#~ msgid "unnamed function %s does not exist" -#~ msgstr "̵̾ؿ %s ¸ߤޤ" +#, c-format +msgid "failed to run function %s" +msgstr "ؿ %s μ¹Ԥ˼Ԥޤ" -#~ msgid "function %s does not exist" -#~ msgstr "ؿ %s ޤ" +msgid "unable to get option value" +msgstr "ץͤϼǤޤ" -#~ msgid "function constructor does not accept keyword arguments" -#~ msgstr "ؿΥ󥹥ȥ饯ϥɰդޤ" +msgid "internal error: unknown option type" +msgstr "顼: ̤ΤΥץ󷿤Ǥ" -#~ msgid "failed to run function %s" -#~ msgstr "ؿ %s μ¹Ԥ˼Ԥޤ" +msgid "problem while switching windows" +msgstr "ɥڴ꤬ȯޤ" -#~ msgid "problem while switching windows" -#~ msgstr "ɥڴ꤬ȯޤ" +#, c-format +msgid "unable to unset global option %s" +msgstr "Х륪ץ %s ϤǤޤ" -#~ msgid "unable to unset global option %s" -#~ msgstr "Х륪ץ %s ϤǤޤ" +#, c-format +msgid "unable to unset option %s which does not have global value" +msgstr "Х̵ͤץ %s ϤǤޤ" -#~ msgid "unable to unset option %s which does not have global value" -#~ msgstr "Х̵ͤץ %s ϤǤޤ" +msgid "attempt to refer to deleted tab page" +msgstr "줿֤򻲾Ȥ褦Ȥޤ" -#~ msgid "attempt to refer to deleted tab page" -#~ msgstr "줿֤򻲾Ȥ褦Ȥޤ" +msgid "no such tab page" +msgstr "Τ褦ʥ֥ڡϤޤ" -#~ msgid "no such tab page" -#~ msgstr "Τ褦ʥ֥ڡϤޤ" +msgid "attempt to refer to deleted window" +msgstr "줿ɥ򻲾Ȥ褦Ȥޤ" -#~ msgid "attempt to refer to deleted window" -#~ msgstr "줿ɥ򻲾Ȥ褦Ȥޤ" +msgid "readonly attribute: buffer" +msgstr "ɹ°: Хåե" -#~ msgid "readonly attribute: buffer" -#~ msgstr "ɹ°: Хåե" +msgid "cursor position outside buffer" +msgstr "֤Хåեγ¦Ǥ" -#~ msgid "cursor position outside buffer" -#~ msgstr "֤Хåեγ¦Ǥ" +msgid "no such window" +msgstr "Τ褦ʥɥϤޤ" -#~ msgid "no such window" -#~ msgstr "Τ褦ʥɥϤޤ" +msgid "attempt to refer to deleted buffer" +msgstr "줿Хåե򻲾Ȥ褦Ȥޤ" -#~ msgid "attempt to refer to deleted buffer" -#~ msgstr "줿Хåե򻲾Ȥ褦Ȥޤ" +msgid "failed to rename buffer" +msgstr "Хåե̾ѹ˼Ԥޤ" -#~ msgid "failed to rename buffer" -#~ msgstr "Хåե̾ѹ˼Ԥޤ" +msgid "mark name must be a single character" +msgstr "ޡ̾1ʸΥե٥åȤǤʤФʤޤ" -#~ msgid "mark name must be a single character" -#~ msgstr "ޡ̾1ʸΥե٥åȤǤʤФʤޤ" +#, c-format +msgid "expected vim.Buffer object, but got %s" +msgstr "vim.Buffer֥ȤԤƤΤ %s Ǥ" -#~ msgid "expected vim.Buffer object, but got %s" -#~ msgstr "vim.Buffer֥ȤԤƤΤ %s Ǥ" +#, c-format +msgid "failed to switch to buffer %d" +msgstr "ꤵ줿Хåե %d ؤڤؤ˼Ԥޤ" -#~ msgid "failed to switch to buffer %d" -#~ msgstr "ꤵ줿Хåե %d ؤڤؤ˼Ԥޤ" +#, c-format +msgid "expected vim.Window object, but got %s" +msgstr "vim.Window֥ȤԤƤΤ %s Ǥ" -#~ msgid "expected vim.Window object, but got %s" -#~ msgstr "vim.Window֥ȤԤƤΤ %s Ǥ" +msgid "failed to find window in the current tab page" +msgstr "ߤΥ֤ˤϻꤵ줿ɥޤǤ" -#~ msgid "failed to find window in the current tab page" -#~ msgstr "ߤΥ֤ˤϻꤵ줿ɥޤǤ" +msgid "did not switch to the specified window" +msgstr "ꤵ줿ɥڤؤޤǤ" -#~ msgid "did not switch to the specified window" -#~ msgstr "ꤵ줿ɥڤؤޤǤ" +#, c-format +msgid "expected vim.TabPage object, but got %s" +msgstr "vim.TabPage֥ȤԤƤΤ %s Ǥ" -#~ msgid "expected vim.TabPage object, but got %s" -#~ msgstr "vim.TabPage֥ȤԤƤΤ %s Ǥ" +msgid "did not switch to the specified tab page" +msgstr "ꤵ줿֥ڡڤؤޤǤ" -#~ msgid "did not switch to the specified tab page" -#~ msgstr "ꤵ줿֥ڡڤؤޤǤ" +msgid "failed to run the code" +msgstr "ɤμ¹Ԥ˼Ԥޤ" -#~ msgid "failed to run the code" -#~ msgstr "ɤμ¹Ԥ˼Ԥޤ" +msgid "E858: Eval did not return a valid python object" +msgstr "E858: ɾͭpython֥Ȥ֤ޤǤ" -#~ msgid "E858: Eval did not return a valid python object" -#~ msgstr "E858: ɾͭpython֥Ȥ֤ޤǤ" +msgid "E859: Failed to convert returned python object to vim value" +msgstr "E859: ֤줿python֥ȤvimͤѴǤޤǤ" -#~ msgid "E859: Failed to convert returned python object to vim value" -#~ msgstr "E859: ֤줿python֥ȤvimͤѴǤޤǤ" +#, c-format +msgid "unable to convert %s to vim dictionary" +msgstr "%s vimμ񷿤ѴǤޤ" -#~ msgid "unable to convert %s to vim dictionary" -#~ msgstr "%s vimμ񷿤ѴǤޤ" +#, c-format +msgid "unable to convert %s to vim list" +msgstr "%s vimΥꥹȤѴǤޤ" -#~ msgid "unable to convert %s to vim structure" -#~ msgstr "%s vimι¤ΤѴǤޤ" +#, c-format +msgid "unable to convert %s to vim structure" +msgstr "%s vimι¤ΤѴǤޤ" -#~ msgid "internal error: NULL reference passed" -#~ msgstr "顼: NULLȤϤޤ" +msgid "internal error: NULL reference passed" +msgstr "顼: NULLȤϤޤ" -#~ msgid "internal error: invalid value type" -#~ msgstr "顼: ̵ͷǤ" +msgid "internal error: invalid value type" +msgstr "顼: ̵ͷǤ" -#~ msgid "" -#~ "Failed to set path hook: sys.path_hooks is not a list\n" -#~ "You should now do the following:\n" -#~ "- append vim.path_hook to sys.path_hooks\n" -#~ "- append vim.VIM_SPECIAL_PATH to sys.path\n" -#~ msgstr "" -#~ "ѥեå˼Ԥޤ: sys.path_hooks ꥹȤǤϤޤ\n" -#~ "˲»ܤƤ:\n" -#~ "- vim.path_hooks sys.path_hooks ɲ\n" -#~ "- vim.VIM_SPECIAL_PATH sys.path ɲ\n" +msgid "" +"Failed to set path hook: sys.path_hooks is not a list\n" +"You should now do the following:\n" +"- append vim.path_hook to sys.path_hooks\n" +"- append vim.VIM_SPECIAL_PATH to sys.path\n" +msgstr "" +"ѥեå˼Ԥޤ: sys.path_hooks ꥹȤǤϤޤ\n" +"˲»ܤƤ:\n" +"- vim.path_hooks sys.path_hooks ɲ\n" +"- vim.VIM_SPECIAL_PATH sys.path ɲ\n" -#~ msgid "" -#~ "Failed to set path: sys.path is not a list\n" -#~ "You should now append vim.VIM_SPECIAL_PATH to sys.path" -#~ msgstr "" -#~ "ѥ˼Ԥޤ: sys.path ꥹȤǤϤޤ\n" -#~ " vim.VIM_SPECIAL_PATH sys.path ɲäƤ" +msgid "" +"Failed to set path: sys.path is not a list\n" +"You should now append vim.VIM_SPECIAL_PATH to sys.path" +msgstr "" +"ѥ˼Ԥޤ: sys.path ꥹȤǤϤޤ\n" +" vim.VIM_SPECIAL_PATH sys.path ɲäƤ" diff --git a/src/nvim/po/ja.po b/src/nvim/po/ja.po index e12cfb7e70..5cb789c93e 100644 --- a/src/nvim/po/ja.po +++ b/src/nvim/po/ja.po @@ -1,3 +1,4 @@ + # Japanese translation for Vim # # Do ":help uganda" in Vim to read copying and usage conditions. @@ -14,213 +15,176 @@ msgid "" msgstr "" "Project-Id-Version: Vim 7.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:02+0900\n" -"PO-Revision-Date: 2013-06-02-01 09:08+09n" +"POT-Creation-Date: 2016-09-10 21:10+0900\n" +"PO-Revision-Date: 2016-09-10 21:20+0900\n" "Last-Translator: MURAOKA Taro \n" "Language-Team: vim-jp (https://github.com/vim-jp/lang-ja)\n" "Language: Japanese\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" -#: ../api/private/helpers.c:201 -#, fuzzy -msgid "Unable to get option value" -msgstr "オプションの値は取得できません" +msgid "E831: bf_key_init() called with empty password" +msgstr "E831: bf_key_init() が空パスワードで呼び出されました" -#: ../api/private/helpers.c:204 -msgid "internal error: unknown option type" -msgstr "内部エラー: 未知のオプション型です" +msgid "E820: sizeof(uint32_t) != 4" +msgstr "E820: sizeof(uint32_t) != 4" + +msgid "E817: Blowfish big/little endian use wrong" +msgstr "E817: Blowfish暗号のビッグ/リトルエンディアンが間違っています" + +msgid "E818: sha256 test failed" +msgstr "E818: sha256のテストに失敗しました" + +msgid "E819: Blowfish test failed" +msgstr "E819: Blowfish暗号のテストに失敗しました" -#: ../buffer.c:92 msgid "[Location List]" msgstr "[ロケーションリスト]" -#: ../buffer.c:93 msgid "[Quickfix List]" msgstr "[Quickfixリスト]" -#: ../buffer.c:94 msgid "E855: Autocommands caused command to abort" msgstr "E855: autocommandがコマンドの停止を引き起こしました" -#: ../buffer.c:135 msgid "E82: Cannot allocate any buffer, exiting..." msgstr "E82: バッファを1つも作成できないので, 終了します..." -#: ../buffer.c:138 msgid "E83: Cannot allocate buffer, using other one..." msgstr "E83: バッファを作成できないので, 他のを使用します..." -#: ../buffer.c:763 +msgid "E931: Buffer cannot be registered" +msgstr "E931: バッファを登録できません" + +msgid "E937: Attempt to delete a buffer that is in use" +msgstr "E937: 使用中のバッファを削除しようと試みました" + msgid "E515: No buffers were unloaded" msgstr "E515: 解放されたバッファはありません" -#: ../buffer.c:765 msgid "E516: No buffers were deleted" msgstr "E516: 削除されたバッファはありません" -#: ../buffer.c:767 msgid "E517: No buffers were wiped out" msgstr "E517: 破棄されたバッファはありません" -#: ../buffer.c:772 msgid "1 buffer unloaded" msgstr "1 個のバッファが解放されました" -#: ../buffer.c:774 #, c-format msgid "%d buffers unloaded" msgstr "%d 個のバッファが解放されました" -#: ../buffer.c:777 msgid "1 buffer deleted" msgstr "1 個のバッファが削除されました" -#: ../buffer.c:779 #, c-format msgid "%d buffers deleted" msgstr "%d 個のバッファが削除されました" -#: ../buffer.c:782 msgid "1 buffer wiped out" msgstr "1 個のバッファが破棄されました" -#: ../buffer.c:784 #, c-format msgid "%d buffers wiped out" msgstr "%d 個のバッファが破棄されました" -#: ../buffer.c:806 msgid "E90: Cannot unload last buffer" msgstr "E90: 最後のバッファは解放できません" -#: ../buffer.c:874 msgid "E84: No modified buffer found" msgstr "E84: 変更されたバッファはありません" #. back where we started, didn't find anything. -#: ../buffer.c:903 msgid "E85: There is no listed buffer" msgstr "E85: リスト表示されるバッファはありません" -#: ../buffer.c:913 -#, c-format -msgid "E86: Buffer % does not exist" -msgstr "E86: バッファ % はありません" - -#: ../buffer.c:915 msgid "E87: Cannot go beyond last buffer" msgstr "E87: 最後のバッファを越えて移動はできません" -#: ../buffer.c:917 msgid "E88: Cannot go before first buffer" msgstr "E88: 最初のバッファより前へは移動できません" -#: ../buffer.c:945 #, c-format -msgid "" -"E89: No write since last change for buffer % (add ! to override)" -msgstr "E89: バッファ % の変更は保存されていません (! で変更を破棄)" +msgid "E89: No write since last change for buffer %ld (add ! to override)" +msgstr "E89: バッファ %ld の変更は保存されていません (! で変更を破棄)" -#. wrap around (may cause duplicates) -#: ../buffer.c:1423 msgid "W14: Warning: List of file names overflow" msgstr "W14: 警告: ファイル名のリストが長過ぎます" -#: ../buffer.c:1555 ../quickfix.c:3361 #, c-format -msgid "E92: Buffer % not found" -msgstr "E92: バッファ % が見つかりません" +msgid "E92: Buffer %ld not found" +msgstr "E92: バッファ %ld が見つかりません" -#: ../buffer.c:1798 #, c-format msgid "E93: More than one match for %s" msgstr "E93: %s に複数の該当がありました" -#: ../buffer.c:1800 #, c-format msgid "E94: No matching buffer for %s" msgstr "E94: %s に該当するバッファはありませんでした" -#: ../buffer.c:2161 #, c-format -msgid "line %" -msgstr "行 %" +msgid "line %ld" +msgstr "行 %ld" -#: ../buffer.c:2233 msgid "E95: Buffer with this name already exists" msgstr "E95: この名前のバッファは既にあります" -#: ../buffer.c:2498 msgid " [Modified]" msgstr " [変更あり]" -#: ../buffer.c:2501 msgid "[Not edited]" msgstr "[未編集]" -#: ../buffer.c:2504 msgid "[New file]" msgstr "[新ファイル]" -#: ../buffer.c:2505 msgid "[Read errors]" msgstr "[読込エラー]" -#: ../buffer.c:2506 ../buffer.c:3217 ../fileio.c:1807 ../screen.c:4895 msgid "[RO]" msgstr "[読専]" -#: ../buffer.c:2507 ../fileio.c:1807 msgid "[readonly]" msgstr "[読込専用]" -#: ../buffer.c:2524 #, c-format msgid "1 line --%d%%--" msgstr "1 行 --%d%%--" -#: ../buffer.c:2526 #, c-format -msgid "% lines --%d%%--" -msgstr "% 行 --%d%%--" +msgid "%ld lines --%d%%--" +msgstr "%ld 行 --%d%%--" -#: ../buffer.c:2530 #, c-format -msgid "line % of % --%d%%-- col " -msgstr "行 % (全体 %) --%d%%-- col " +msgid "line %ld of %ld --%d%%-- col " +msgstr "行 %ld (全体 %ld) --%d%%-- col " -#: ../buffer.c:2632 ../buffer.c:4292 ../memline.c:1554 msgid "[No Name]" msgstr "[無名]" #. must be a help buffer -#: ../buffer.c:2667 msgid "help" msgstr "ヘルプ" -#: ../buffer.c:3225 ../screen.c:4883 msgid "[Help]" msgstr "[ヘルプ]" -#: ../buffer.c:3254 ../screen.c:4887 msgid "[Preview]" msgstr "[プレビュー]" -#: ../buffer.c:3528 msgid "All" msgstr "全て" -#: ../buffer.c:3528 msgid "Bot" msgstr "末尾" -#: ../buffer.c:3531 msgid "Top" msgstr "先頭" -#: ../buffer.c:4244 msgid "" "\n" "# Buffer list:\n" @@ -228,11 +192,9 @@ msgstr "" "\n" "# バッファリスト:\n" -#: ../buffer.c:4289 msgid "[Scratch]" msgstr "[下書き]" -#: ../buffer.c:4529 msgid "" "\n" "--- Signs ---" @@ -240,200 +202,235 @@ msgstr "" "\n" "--- サイン ---" -#: ../buffer.c:4538 #, c-format msgid "Signs for %s:" msgstr "%s のサイン:" -#: ../buffer.c:4543 #, c-format -msgid " line=% id=%d name=%s" -msgstr " 行=% 識別子=%d 名前=%s" +msgid " line=%ld id=%d name=%s" +msgstr " 行=%ld 識別子=%d 名前=%s" -#: ../cursor_shape.c:68 -msgid "E545: Missing colon" -msgstr "E545: コロンがありません" +msgid "E902: Cannot connect to port" +msgstr "E902: ポートに接続できません" -#: ../cursor_shape.c:70 ../cursor_shape.c:94 -msgid "E546: Illegal mode" -msgstr "E546: 不正なモードです" +msgid "E901: gethostbyname() in channel_open()" +msgstr "E901: channel_open() 内の gethostbyname() が失敗しました" -#: ../cursor_shape.c:134 -msgid "E548: digit expected" -msgstr "E548: 数値が必要です" +msgid "E898: socket() in channel_open()" +msgstr "E898: channel_open() 内の socket() が失敗しました" -#: ../cursor_shape.c:138 -msgid "E549: Illegal percentage" -msgstr "E549: 不正なパーセンテージです" +msgid "E903: received command with non-string argument" +msgstr "E903: 非文字列の引数のコマンドを受信しました" + +msgid "E904: last argument for expr/call must be a number" +msgstr "E904: expr/call の最後の引数は数字でなければなりません" + +msgid "E904: third argument for call must be a list" +msgstr "E904: call の3番目の引数はリスト型でなければなりません" + +#, c-format +msgid "E905: received unknown command: %s" +msgstr "E905: 未知のコマンドを受信しました: %s" + +#, c-format +msgid "E630: %s(): write while not connected" +msgstr "E630: %s(): 非接続状態で書き込みました" + +#, c-format +msgid "E631: %s(): write failed" +msgstr "E631: %s(): 書き込みに失敗しました" + +#, c-format +msgid "E917: Cannot use a callback with %s()" +msgstr "E917: %s() にコールバックは使えません" + +msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel" +msgstr "E912: 生や nl チャンネルに ch_evalexpr()/ch_sendexpr は使えません" + +msgid "E906: not an open channel" +msgstr "E906: 開いていないチャンネルです" + +msgid "E920: _io file requires _name to be set" +msgstr "E920: _io ファイルは _name の設定が必要です" + +msgid "E915: in_io buffer requires in_buf or in_name to be set" +msgstr "E915: in_io バッファは in_buf か in_name の設定が必要です" + +#, c-format +msgid "E918: buffer must be loaded: %s" +msgstr "E918: バッファがロードされてなければなりません: %s" + +msgid "E821: File is encrypted with unknown method" +msgstr "E821: ファイルが未知の方法で暗号化されています" + +msgid "Warning: Using a weak encryption method; see :help 'cm'" +msgstr "警告: 弱い暗号方法を使っています; :help 'cm' を参照してください" + +msgid "Enter encryption key: " +msgstr "暗号化用のキーを入力してください: " + +msgid "Enter same key again: " +msgstr "もう一度同じキーを入力してください: " + +msgid "Keys don't match!" +msgstr "キーが一致しません" + +msgid "[crypted]" +msgstr "[暗号化]" + +#, c-format +msgid "E720: Missing colon in Dictionary: %s" +msgstr "E720: 辞書型にコロンがありません: %s" + +#, c-format +msgid "E721: Duplicate key in Dictionary: \"%s\"" +msgstr "E721: 辞書型に重複キーがあります: \"%s\"" + +#, c-format +msgid "E722: Missing comma in Dictionary: %s" +msgstr "E722: 辞書型にカンマがありません: %s" + +#, c-format +msgid "E723: Missing end of Dictionary '}': %s" +msgstr "E723: 辞書型の最後に '}' がありません: %s" + +msgid "extend() argument" +msgstr "extend() の引数" + +#, c-format +msgid "E737: Key already exists: %s" +msgstr "E737: キーは既に存在します: %s" -#: ../diff.c:146 #, c-format -msgid "E96: Can not diff more than % buffers" -msgstr "E96: % 以上のバッファはdiffできません" +msgid "E96: Cannot diff more than %ld buffers" +msgstr "E96: %ld 以上のバッファはdiffできません" -#: ../diff.c:753 msgid "E810: Cannot read or write temp files" msgstr "E810: 一時ファイルの読込もしくは書込ができません" -#: ../diff.c:755 msgid "E97: Cannot create diffs" msgstr "E97: 差分を作成できません" -#: ../diff.c:966 +msgid "Patch file" +msgstr "パッチファイル" + msgid "E816: Cannot read patch output" msgstr "E816: patchの出力を読込めません" -#: ../diff.c:1220 msgid "E98: Cannot read diff output" msgstr "E98: diffの出力を読込めません" -#: ../diff.c:2081 msgid "E99: Current buffer is not in diff mode" msgstr "E99: 現在のバッファは差分モードではありません" -#: ../diff.c:2100 msgid "E793: No other buffer in diff mode is modifiable" msgstr "E793: 差分モードである他のバッファは変更できません" -#: ../diff.c:2102 msgid "E100: No other buffer in diff mode" msgstr "E100: 差分モードである他のバッファはありません" -#: ../diff.c:2112 msgid "E101: More than two buffers in diff mode, don't know which one to use" msgstr "" "E101: 差分モードのバッファが2個以上あるので、どれを使うか特定できません" -#: ../diff.c:2141 #, c-format msgid "E102: Can't find buffer \"%s\"" msgstr "E102: バッファ \"%s\" が見つかりません" -#: ../diff.c:2152 #, c-format msgid "E103: Buffer \"%s\" is not in diff mode" msgstr "E103: バッファ \"%s\" は差分モードではありません" -#: ../diff.c:2193 msgid "E787: Buffer changed unexpectedly" msgstr "E787: 予期せずバッファが変更変更されました" -#: ../digraph.c:1598 msgid "E104: Escape not allowed in digraph" msgstr "E104: 合字にEscapeは使用できません" -#: ../digraph.c:1760 msgid "E544: Keymap file not found" msgstr "E544: キーマップファイルが見つかりません" -#: ../digraph.c:1785 msgid "E105: Using :loadkeymap not in a sourced file" msgstr "E105: :source で取込むファイル以外では :loadkeymap を使えません" -#: ../digraph.c:1821 msgid "E791: Empty keymap entry" msgstr "E791: 空のキーマップエントリ" -#: ../edit.c:82 msgid " Keyword completion (^N^P)" msgstr " キーワード補完 (^N^P)" #. ctrl_x_mode == 0, ^P/^N compl. -#: ../edit.c:83 msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" msgstr " ^X モード (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" -#: ../edit.c:85 msgid " Whole line completion (^L^N^P)" msgstr " 行(全体)補完 (^L^N^P)" -#: ../edit.c:86 msgid " File name completion (^F^N^P)" msgstr " ファイル名補完 (^F^N^P)" -#: ../edit.c:87 msgid " Tag completion (^]^N^P)" msgstr " タグ補完 (^]^N^P)" -#: ../edit.c:88 msgid " Path pattern completion (^N^P)" msgstr " パスパターン補完 (^N^P)" -#: ../edit.c:89 msgid " Definition completion (^D^N^P)" msgstr " 定義補完 (^D^N^P)" -#: ../edit.c:91 msgid " Dictionary completion (^K^N^P)" msgstr " 辞書補完 (^K^N^P)" -#: ../edit.c:92 msgid " Thesaurus completion (^T^N^P)" msgstr " シソーラス補完 (^T^N^P)" -#: ../edit.c:93 msgid " Command-line completion (^V^N^P)" msgstr " コマンドライン補完 (^V^N^P)" -#: ../edit.c:94 msgid " User defined completion (^U^N^P)" msgstr " ユーザー定義補完 (^U^N^P)" -#: ../edit.c:95 msgid " Omni completion (^O^N^P)" msgstr " オムニ補完 (^O^N^P)" -#: ../edit.c:96 msgid " Spelling suggestion (s^N^P)" msgstr " 綴り修正候補 (s^N^P)" -#: ../edit.c:97 msgid " Keyword Local completion (^N^P)" msgstr " 局所キーワード補完 (^N^P)" -#: ../edit.c:100 msgid "Hit end of paragraph" msgstr "段落の最後にヒット" -#: ../edit.c:101 msgid "E839: Completion function changed window" msgstr "E839: 補間関数がウィンドウを変更しました" -#: ../edit.c:102 msgid "E840: Completion function deleted text" msgstr "E840: 補完関数がテキストを削除しました" -#: ../edit.c:1847 msgid "'dictionary' option is empty" msgstr "'dictionary' オプションが空です" -#: ../edit.c:1848 msgid "'thesaurus' option is empty" msgstr "'thesaurus' オプションが空です" -#: ../edit.c:2655 #, c-format msgid "Scanning dictionary: %s" msgstr "辞書をスキャン中: %s" -#: ../edit.c:3079 msgid " (insert) Scroll (^E/^Y)" msgstr " (挿入) スクロール(^E/^Y)" -#: ../edit.c:3081 msgid " (replace) Scroll (^E/^Y)" msgstr " (置換) スクロール (^E/^Y)" -#: ../edit.c:3587 #, c-format msgid "Scanning: %s" msgstr "スキャン中: %s" -#: ../edit.c:3614 msgid "Scanning tags." msgstr "タグをスキャン中." -#: ../edit.c:4519 msgid " Adding" msgstr " 追加中" @@ -441,701 +438,447 @@ msgstr " 追加中" #. * be called before line = ml_get(), or when this address is no #. * longer needed. -- Acevedo. #. -#: ../edit.c:4562 msgid "-- Searching..." msgstr "-- 検索中..." -#: ../edit.c:4618 msgid "Back at original" msgstr "始めに戻る" -#: ../edit.c:4621 msgid "Word from other line" msgstr "他の行の単語" -#: ../edit.c:4624 msgid "The only match" msgstr "唯一の該当" -#: ../edit.c:4680 #, c-format msgid "match %d of %d" msgstr "%d 番目の該当 (全該当 %d 個中)" -#: ../edit.c:4684 #, c-format msgid "match %d" msgstr "%d 番目の該当" -#: ../eval.c:137 +#. maximum nesting of lists and dicts msgid "E18: Unexpected characters in :let" msgstr "E18: 予期せぬ文字が :let にありました" -#: ../eval.c:138 -#, c-format -msgid "E684: list index out of range: %" -msgstr "E684: リストのインデックスが範囲外です: %" - -#: ../eval.c:139 #, c-format msgid "E121: Undefined variable: %s" msgstr "E121: 未定義の変数です: %s" -#: ../eval.c:140 msgid "E111: Missing ']'" msgstr "E111: ']' が見つかりません" -#: ../eval.c:141 -#, c-format -msgid "E686: Argument of %s must be a List" -msgstr "E686: %s の引数はリスト型でなければなりません" - -#: ../eval.c:143 -#, c-format -msgid "E712: Argument of %s must be a List or Dictionary" -msgstr "E712: %s の引数はリスト型または辞書型でなければなりません" - -#: ../eval.c:144 -msgid "E713: Cannot use empty key for Dictionary" -msgstr "E713: 辞書型に空のキーを使うことはできません" - -#: ../eval.c:145 -msgid "E714: List required" -msgstr "E714: リスト型が必要です" - -#: ../eval.c:146 -msgid "E715: Dictionary required" -msgstr "E715: 辞書型が必要です" - -#: ../eval.c:147 -#, c-format -msgid "E118: Too many arguments for function: %s" -msgstr "E118: 関数の引数が多過ぎます: %s" - -#: ../eval.c:148 -#, c-format -msgid "E716: Key not present in Dictionary: %s" -msgstr "E716: 辞書型にキーが存在しません: %s" - -#: ../eval.c:150 -#, c-format -msgid "E122: Function %s already exists, add ! to replace it" -msgstr "E122: 関数 %s は定義済です, 再定義するには ! を追加してください" - -#: ../eval.c:151 -msgid "E717: Dictionary entry already exists" -msgstr "E717: 辞書型内にエントリが既に存在します" - -#: ../eval.c:152 -msgid "E718: Funcref required" -msgstr "E718: 関数参照型が要求されます" - -#: ../eval.c:153 msgid "E719: Cannot use [:] with a Dictionary" msgstr "E719: [:] を辞書型と組み合わせては使えません" -#: ../eval.c:154 #, c-format msgid "E734: Wrong variable type for %s=" msgstr "E734: 異なった型の変数です %s=" -#: ../eval.c:155 -#, c-format -msgid "E130: Unknown function: %s" -msgstr "E130: 未知の関数です: %s" - -#: ../eval.c:156 #, c-format msgid "E461: Illegal variable name: %s" msgstr "E461: 不正な変数名です: %s" -#: ../eval.c:157 msgid "E806: using Float as a String" msgstr "E806: 浮動小数点数を文字列として扱っています" -#: ../eval.c:1830 msgid "E687: Less targets than List items" msgstr "E687: ターゲットがリスト型内の要素よりも少ないです" -#: ../eval.c:1834 msgid "E688: More targets than List items" msgstr "E688: ターゲットがリスト型内の要素よりも多いです" -#: ../eval.c:1906 msgid "Double ; in list of variables" msgstr "リスト型の値に2つ以上の ; が検出されました" -#: ../eval.c:2078 #, c-format msgid "E738: Can't list variables for %s" msgstr "E738: %s の値を一覧表示できません" -#: ../eval.c:2391 msgid "E689: Can only index a List or Dictionary" msgstr "E689: リスト型と辞書型以外はインデックス指定できません" -#: ../eval.c:2396 msgid "E708: [:] must come last" msgstr "E708: [:] は最後でなければいけません" -#: ../eval.c:2439 msgid "E709: [:] requires a List value" msgstr "E709: [:] にはリスト型の値が必要です" -#: ../eval.c:2674 msgid "E710: List value has more items than target" msgstr "E710: リスト型変数にターゲットよりも多い要素があります" -#: ../eval.c:2678 msgid "E711: List value has not enough items" msgstr "E711: リスト型変数に十分な数の要素がありません" # -#: ../eval.c:2867 msgid "E690: Missing \"in\" after :for" msgstr "E690: :for の後に \"in\" がありません" -#: ../eval.c:3063 -#, c-format -msgid "E107: Missing parentheses: %s" -msgstr "E107: カッコ '(' がありません: %s" - -#: ../eval.c:3263 #, c-format msgid "E108: No such variable: \"%s\"" msgstr "E108: その変数はありません: \"%s\"" -#: ../eval.c:3333 msgid "E743: variable nested too deep for (un)lock" msgstr "E743: (アン)ロックするには変数の入れ子が深過ぎます" -#: ../eval.c:3630 msgid "E109: Missing ':' after '?'" msgstr "E109: '?' の後に ':' がありません" -#: ../eval.c:3893 msgid "E691: Can only compare List with List" msgstr "E691: リスト型はリスト型としか比較できません" -#: ../eval.c:3895 -msgid "E692: Invalid operation for Lists" +msgid "E692: Invalid operation for List" msgstr "E692: リスト型には無効な操作です" -#: ../eval.c:3915 msgid "E735: Can only compare Dictionary with Dictionary" msgstr "E735: 辞書型は辞書型としか比較できません" -#: ../eval.c:3917 msgid "E736: Invalid operation for Dictionary" msgstr "E736: 辞書型には無効な操作です" -#: ../eval.c:3932 -msgid "E693: Can only compare Funcref with Funcref" -msgstr "E693: 関数参照型は関数参照型としか比較できません" - -#: ../eval.c:3934 msgid "E694: Invalid operation for Funcrefs" msgstr "E694: 関数参照型には無効な操作です" -#: ../eval.c:4277 msgid "E804: Cannot use '%' with Float" msgstr "E804: '%' を浮動小数点数と組み合わせては使えません" -#: ../eval.c:4478 msgid "E110: Missing ')'" msgstr "E110: ')' が見つかりません" -#: ../eval.c:4609 msgid "E695: Cannot index a Funcref" msgstr "E695: 関数参照型はインデックスできません" -#: ../eval.c:4839 +msgid "E909: Cannot index a special variable" +msgstr "E909: 特殊変数はインデックスできません" + #, c-format msgid "E112: Option name missing: %s" msgstr "E112: オプション名がありません: %s" -#: ../eval.c:4855 #, c-format msgid "E113: Unknown option: %s" msgstr "E113: 未知のオプションです: %s" -#: ../eval.c:4904 #, c-format msgid "E114: Missing quote: %s" msgstr "E114: 引用符 (\") がありません: %s" -#: ../eval.c:5020 #, c-format msgid "E115: Missing quote: %s" msgstr "E115: 引用符 (') がありません: %s" -#: ../eval.c:5084 -#, c-format -msgid "E696: Missing comma in List: %s" -msgstr "E696: リスト型にカンマがありません: %s" - -#: ../eval.c:5091 -#, c-format -msgid "E697: Missing end of List ']': %s" -msgstr "E697: リスト型の最後に ']' がありません: %s" - msgid "Not enough memory to set references, garbage collection aborted!" msgstr "" "ガーベッジコレクションを中止しました! 参照を作成するのにメモリが不足しました" -#: ../eval.c:6475 -#, c-format -msgid "E720: Missing colon in Dictionary: %s" -msgstr "E720: 辞書型にコロンがありません: %s" +msgid "E724: variable nested too deep for displaying" +msgstr "E724: 表示するには変数の入れ子が深過ぎます" -#: ../eval.c:6499 -#, c-format -msgid "E721: Duplicate key in Dictionary: \"%s\"" -msgstr "E721: 辞書型に重複キーがあります: \"%s\"" +msgid "E805: Using a Float as a Number" +msgstr "E805: 浮動小数点数を数値として扱っています" -#: ../eval.c:6517 -#, c-format -msgid "E722: Missing comma in Dictionary: %s" -msgstr "E722: 辞書型にカンマがありません: %s" +msgid "E703: Using a Funcref as a Number" +msgstr "E703: 関数参照型を数値として扱っています。" -#: ../eval.c:6524 -#, c-format -msgid "E723: Missing end of Dictionary '}': %s" -msgstr "E723: 辞書型の最後に '}' がありません: %s" +msgid "E745: Using a List as a Number" +msgstr "E745: リスト型を数値として扱っています" -#: ../eval.c:6555 -msgid "E724: variable nested too deep for displaying" -msgstr "E724: 表示するには変数の入れ子が深過ぎます" +msgid "E728: Using a Dictionary as a Number" +msgstr "E728: 辞書型を数値として扱っています" + +msgid "E910: Using a Job as a Number" +msgstr "E910: ジョブを数値として扱っています" + +msgid "E913: Using a Channel as a Number" +msgstr "E913: チャンネルを数値として扱っています。" + +msgid "E891: Using a Funcref as a Float" +msgstr "E891: 関数参照型を浮動小数点数として扱っています。" + +msgid "E892: Using a String as a Float" +msgstr "E892: 文字列を浮動小数点数として扱っています" + +msgid "E893: Using a List as a Float" +msgstr "E893: リスト型を浮動小数点数として扱っています" + +msgid "E894: Using a Dictionary as a Float" +msgstr "E894: 辞書型を浮動小数点数として扱っています" + +msgid "E907: Using a special value as a Float" +msgstr "E907: 特殊値を浮動小数点数として扱っています" + +msgid "E911: Using a Job as a Float" +msgstr "E911: ジョブを浮動小数点数として扱っています" + +msgid "E914: Using a Channel as a Float" +msgstr "E914: チャンネルを浮動小数点数として扱っています。" + +msgid "E729: using Funcref as a String" +msgstr "E729: 関数参照型を文字列として扱っています" + +msgid "E730: using List as a String" +msgstr "E730: リスト型を文字列として扱っています" + +msgid "E731: using Dictionary as a String" +msgstr "E731: 辞書型を文字列として扱っています" + +msgid "E908: using an invalid value as a String" +msgstr "E908: 無効な値を文字列として扱っています" -#: ../eval.c:7188 #, c-format -msgid "E740: Too many arguments for function %s" -msgstr "E740: 関数の引数が多過ぎます: %s" +msgid "E795: Cannot delete variable %s" +msgstr "E795: 変数 %s を削除できません" -#: ../eval.c:7190 #, c-format -msgid "E116: Invalid arguments for function %s" -msgstr "E116: 関数の無効な引数です: %s" +msgid "E704: Funcref variable name must start with a capital: %s" +msgstr "E704: 関数参照型変数名は大文字で始まらなければなりません: %s" -#: ../eval.c:7377 #, c-format -msgid "E117: Unknown function: %s" -msgstr "E117: 未知の関数です: %s" +msgid "E705: Variable name conflicts with existing function: %s" +msgstr "E705: 変数名が既存の関数名と衝突します: %s" -#: ../eval.c:7383 #, c-format -msgid "E119: Not enough arguments for function: %s" -msgstr "E119: 関数の引数が足りません: %s" +msgid "E741: Value is locked: %s" +msgstr "E741: 値がロックされています: %s" + +msgid "Unknown" +msgstr "不明" -#: ../eval.c:7387 #, c-format -msgid "E120: Using not in a script context: %s" -msgstr "E120: スクリプト以外でが使われました: %s" +msgid "E742: Cannot change value of %s" +msgstr "E742: %s の値を変更できません" + +msgid "E698: variable nested too deep for making a copy" +msgstr "E698: コピーを取るには変数の入れ子が深過ぎます" + +msgid "" +"\n" +"# global variables:\n" +msgstr "" +"\n" +"# グローバル変数:\n" + +msgid "" +"\n" +"\tLast set from " +msgstr "" +"\n" +"\t最後にセットしたスクリプト: " + +msgid "map() argument" +msgstr "map() の引数" + +msgid "filter() argument" +msgstr "filter() の引数" -#: ../eval.c:7391 #, c-format -msgid "E725: Calling dict function without Dictionary: %s" -msgstr "E725: 辞書用関数が呼ばれましたが辞書がありません: %s" +msgid "E686: Argument of %s must be a List" +msgstr "E686: %s の引数はリスト型でなければなりません" + +msgid "E928: String required" +msgstr "E928: 文字列が必要です" -#: ../eval.c:7453 msgid "E808: Number or Float required" msgstr "E808: 数値か浮動小数点数が必要です" -#: ../eval.c:7503 msgid "add() argument" msgstr "add() の引数" -#: ../eval.c:7907 -msgid "E699: Too many arguments" -msgstr "E699: 引数が多過ぎます" - -#: ../eval.c:8073 msgid "E785: complete() can only be used in Insert mode" msgstr "E785: complete() は挿入モードでしか利用できません" -#: ../eval.c:8156 +#. +#. * Yes this is ugly, I don't particularly like it either. But doing it +#. * this way has the compelling advantage that translations need not to +#. * be touched at all. See below what 'ok' and 'ync' are used for. +#. msgid "&Ok" msgstr "&Ok" -#: ../eval.c:8676 -#, c-format -msgid "E737: Key already exists: %s" -msgstr "E737: キーは既に存在します: %s" - -#: ../eval.c:8692 -msgid "extend() argument" -msgstr "extend() の引数" - -#: ../eval.c:8915 -msgid "map() argument" -msgstr "map() の引数" - -#: ../eval.c:8916 -msgid "filter() argument" -msgstr "filter() の引数" - -#: ../eval.c:9229 #, c-format -msgid "+-%s%3ld lines: " -msgstr "+-%s%3ld 行: " +msgid "+-%s%3ld line: " +msgid_plural "+-%s%3ld lines: " +msgstr[0] "+-%s%3ld 行: " -#: ../eval.c:9291 #, c-format msgid "E700: Unknown function: %s" msgstr "E700: 未知の関数です: %s" -#: ../eval.c:10729 +msgid "E922: expected a dict" +msgstr "E922: 辞書が期待されています" + +msgid "E923: Second argument of function() must be a list or a dict" +msgstr "E923: function() の第 2 引数はリスト型または辞書型でなければなりません" + +msgid "" +"&OK\n" +"&Cancel" +msgstr "" +"決定(&O)\n" +"キャンセル(&C)" + msgid "called inputrestore() more often than inputsave()" msgstr "inputrestore() が inputsave() よりも多く呼ばれました" -#: ../eval.c:10771 msgid "insert() argument" msgstr "insert() の引数" -#: ../eval.c:10841 msgid "E786: Range not allowed" msgstr "E786: 範囲指定は許可されていません" -#: ../eval.c:11140 +msgid "E916: not a valid job" +msgstr "E916: 有効なジョブではありません" + msgid "E701: Invalid type for len()" msgstr "E701: len() には無効な型です" -#: ../eval.c:11980 +#, c-format +msgid "E798: ID is reserved for \":match\": %ld" +msgstr "E798: ID は \":match\" のために予約されています: %ld" + msgid "E726: Stride is zero" msgstr "E726: ストライド(前進量)が 0 です" -#: ../eval.c:11982 msgid "E727: Start past end" msgstr "E727: 開始位置が終了位置を越えました" -#: ../eval.c:12024 ../eval.c:15297 msgid "" msgstr "<空>" -#: ../eval.c:12282 +msgid "E240: No connection to Vim server" +msgstr "E240: Vim サーバーへの接続がありません" + +#, c-format +msgid "E241: Unable to send to %s" +msgstr "E241: %s へ送ることができません" + +msgid "E277: Unable to read a server reply" +msgstr "E277: サーバーの応答がありません" + msgid "remove() argument" msgstr "remove() の引数" # Added at 10-Mar-2004. -#: ../eval.c:12466 msgid "E655: Too many symbolic links (cycle?)" msgstr "E655: シンボリックリンクが多過ぎます (循環している可能性があります)" -#: ../eval.c:12593 msgid "reverse() argument" msgstr "reverse() の引数" -#: ../eval.c:13721 -msgid "sort() argument" +msgid "E258: Unable to send to client" +msgstr "E258: クライアントへ送ることができません" + +#, c-format +msgid "E927: Invalid action: '%s'" +msgstr "E927: 無効な操作です: %s" + +msgid "sort() argument" msgstr "sort() の引数" -#: ../eval.c:13721 msgid "uniq() argument" msgstr "uniq() の引数" -#: ../eval.c:13776 msgid "E702: Sort compare function failed" msgstr "E702: ソートの比較関数が失敗しました" -#: ../eval.c:13806 msgid "E882: Uniq compare function failed" msgstr "E882: Uniq の比較関数が失敗しました" -#: ../eval.c:14085 msgid "(Invalid)" msgstr "(無効)" -#: ../eval.c:14590 -msgid "E677: Error writing temp file" -msgstr "E677: 一時ファイル書込中にエラーが発生しました" - -#: ../eval.c:16159 -msgid "E805: Using a Float as a Number" -msgstr "E805: 浮動小数点数を数値として扱っています" - -#: ../eval.c:16162 -msgid "E703: Using a Funcref as a Number" -msgstr "E703: 関数参照型を数値として扱っています。" - -#: ../eval.c:16170 -msgid "E745: Using a List as a Number" -msgstr "E745: リスト型を数値として扱っています" - -#: ../eval.c:16173 -msgid "E728: Using a Dictionary as a Number" -msgstr "E728: 辞書型を数値として扱っています" - -msgid "E891: Using a Funcref as a Float" -msgstr "E891: 関数参照型を浮動小数点数として扱っています。" - -msgid "E892: Using a String as a Float" -msgstr "E892: 文字列を浮動小数点数として扱っています" - -msgid "E893: Using a List as a Float" -msgstr "E893: リスト型を浮動小数点数として扱っています" - -msgid "E894: Using a Dictionary as a Float" -msgstr "E894: 辞書型を浮動小数点数として扱っています" - -#: ../eval.c:16259 -msgid "E729: using Funcref as a String" -msgstr "E729: 関数参照型を文字列として扱っています" - -#: ../eval.c:16262 -msgid "E730: using List as a String" -msgstr "E730: リスト型を文字列として扱っています" - -#: ../eval.c:16265 -msgid "E731: using Dictionary as a String" -msgstr "E731: 辞書型を文字列として扱っています" - -#: ../eval.c:16619 -#, c-format -msgid "E706: Variable type mismatch for: %s" -msgstr "E706: 変数の型が一致しません: %s" - -#: ../eval.c:16705 -#, c-format -msgid "E795: Cannot delete variable %s" -msgstr "E795: 変数 %s を削除できません" - -#: ../eval.c:16724 -#, c-format -msgid "E704: Funcref variable name must start with a capital: %s" -msgstr "E704: 関数参照型変数名は大文字で始まらなければなりません: %s" - -#: ../eval.c:16732 -#, c-format -msgid "E705: Variable name conflicts with existing function: %s" -msgstr "E705: 変数名が既存の関数名と衝突します: %s" - -#: ../eval.c:16763 -#, c-format -msgid "E741: Value is locked: %s" -msgstr "E741: 値がロックされています: %s" - -#: ../eval.c:16764 ../eval.c:16769 ../message.c:1839 -msgid "Unknown" -msgstr "不明" - -#: ../eval.c:16768 -#, c-format -msgid "E742: Cannot change value of %s" -msgstr "E742: %s の値を変更できません" - -#: ../eval.c:16838 -msgid "E698: variable nested too deep for making a copy" -msgstr "E698: コピーを取るには変数の入れ子が深過ぎます" - -#: ../eval.c:17249 -#, c-format -msgid "E123: Undefined function: %s" -msgstr "E123: 未定義の関数です: %s" - -#: ../eval.c:17260 -#, c-format -msgid "E124: Missing '(': %s" -msgstr "E124: '(' がありません: %s" - -#: ../eval.c:17293 -msgid "E862: Cannot use g: here" -msgstr "E862: ここでは g: は使えません" - -#: ../eval.c:17312 -#, c-format -msgid "E125: Illegal argument: %s" -msgstr "E125: 不正な引数です: %s" - -#: ../eval.c:17323 -#, c-format -msgid "E853: Duplicate argument name: %s" -msgstr "E853: 引数名が重複しています: %s" - -#: ../eval.c:17416 -msgid "E126: Missing :endfunction" -msgstr "E126: :endfunction がありません" - -#: ../eval.c:17537 -#, c-format -msgid "E707: Function name conflicts with variable: %s" -msgstr "E707: 関数名が変数名と衝突します: %s" - -#: ../eval.c:17549 -#, c-format -msgid "E127: Cannot redefine function %s: It is in use" -msgstr "E127: 関数 %s を再定義できません: 使用中です" - -#: ../eval.c:17604 -#, c-format -msgid "E746: Function name does not match script file name: %s" -msgstr "E746: 関数名がスクリプトのファイル名と一致しません: %s" - -#: ../eval.c:17716 -msgid "E129: Function name required" -msgstr "E129: 関数名が要求されます" - -#: ../eval.c:17824 -#, c-format -msgid "E128: Function name must start with a capital or \"s:\": %s" -msgstr "E128: 関数名は大文字か \"s:\" で始まらなければなりません: %s" - -#: ../eval.c:17833 -#, c-format -msgid "E884: Function name cannot contain a colon: %s" -msgstr "E884: 関数名にはコロンは含められません: %s" - -#: ../eval.c:18336 -#, c-format -msgid "E131: Cannot delete function %s: It is in use" -msgstr "E131: 関数 %s を削除できません: 使用中です" - -#: ../eval.c:18441 -msgid "E132: Function call depth is higher than 'maxfuncdepth'" -msgstr "E132: 関数呼出の入れ子数が 'maxfuncdepth' を超えました" - -#: ../eval.c:18568 -#, c-format -msgid "calling %s" -msgstr "%s を実行中です" - -#: ../eval.c:18651 -#, c-format -msgid "%s aborted" -msgstr "%s が中断されました" - -#: ../eval.c:18653 #, c-format -msgid "%s returning #%" -msgstr "%s が #% を返しました" +msgid "E935: invalid submatch number: %d" +msgstr "E935: 無効なサブマッチ番号: %d" -#: ../eval.c:18670 -#, c-format -msgid "%s returning %s" -msgstr "%s が %s を返しました" - -#: ../eval.c:18691 ../ex_cmds2.c:2695 -#, c-format -msgid "continuing in %s" -msgstr "%s の実行を継続中です" - -#: ../eval.c:18795 -msgid "E133: :return not inside a function" -msgstr "E133: 関数外に :return がありました" - -#: ../eval.c:19159 -msgid "" -"\n" -"# global variables:\n" -msgstr "" -"\n" -"# グローバル変数:\n" - -#: ../eval.c:19254 -msgid "" -"\n" -"\tLast set from " -msgstr "" -"\n" -"\tLast set from " +msgid "E677: Error writing temp file" +msgstr "E677: 一時ファイル書込中にエラーが発生しました" -#: ../eval.c:19272 -msgid "No old files" -msgstr "古いファイルはありません" +msgid "E921: Invalid callback argument" +msgstr "E921: 無効なコールバック引数です" -#: ../ex_cmds.c:122 #, c-format msgid "<%s>%s%s %d, Hex %02x, Octal %03o" msgstr "<%s>%s%s %d, 16進数 %02x, 8進数 %03o" -#: ../ex_cmds.c:145 #, c-format msgid "> %d, Hex %04x, Octal %o" msgstr "> %d, 16進数 %04x, 8進数 %o" -#: ../ex_cmds.c:146 #, c-format msgid "> %d, Hex %08x, Octal %o" msgstr "> %d, 16進数 %08x, 8進数 %o" -#: ../ex_cmds.c:684 msgid "E134: Move lines into themselves" msgstr "E134: 行をそれ自身には移動できません" -#: ../ex_cmds.c:747 msgid "1 line moved" msgstr "1 行が移動されました" -#: ../ex_cmds.c:749 #, c-format -msgid "% lines moved" -msgstr "% 行が移動されました" +msgid "%ld lines moved" +msgstr "%ld 行が移動されました" -#: ../ex_cmds.c:1175 #, c-format -msgid "% lines filtered" -msgstr "% 行がフィルタ処理されました" +msgid "%ld lines filtered" +msgstr "%ld 行がフィルタ処理されました" -#: ../ex_cmds.c:1194 msgid "E135: *Filter* Autocommands must not change current buffer" msgstr "E135: *フィルタ* autocommandは現在のバッファを変更してはいけません" -#: ../ex_cmds.c:1244 msgid "[No write since last change]\n" msgstr "[最後の変更が保存されていません]\n" -#: ../ex_cmds.c:1424 #, c-format msgid "%sviminfo: %s in line: " msgstr "%sviminfo: %s 行目: " -#: ../ex_cmds.c:1431 msgid "E136: viminfo: Too many errors, skipping rest of file" msgstr "E136: viminfo: エラーが多過ぎるので, 以降はスキップします" -#: ../ex_cmds.c:1458 #, c-format msgid "Reading viminfo file \"%s\"%s%s%s" msgstr "viminfoファイル \"%s\"%s%s%s を読込み中" -#: ../ex_cmds.c:1460 msgid " info" msgstr " 情報" -#: ../ex_cmds.c:1461 msgid " marks" msgstr " マーク" -#: ../ex_cmds.c:1462 msgid " oldfiles" msgstr " 旧ファイル群" -#: ../ex_cmds.c:1463 msgid " FAILED" msgstr " 失敗" #. avoid a wait_return for this message, it's annoying -#: ../ex_cmds.c:1541 #, c-format msgid "E137: Viminfo file is not writable: %s" msgstr "E137: viminfoファイルが書込みできません: %s" -#: ../ex_cmds.c:1626 +#, c-format +msgid "E929: Too many viminfo temp files, like %s!" +msgstr "E929: 一時viminfoファイルが多過ぎます! 例: %s" + #, c-format msgid "E138: Can't write viminfo file %s!" msgstr "E138: viminfoファイル %s を保存できません!" -#: ../ex_cmds.c:1635 #, c-format msgid "Writing viminfo file \"%s\"" msgstr "viminfoファイル \"%s\" を書込み中" +#, c-format +msgid "E886: Can't rename viminfo file to %s!" +msgstr "E886: viminfoファイルを %s へ名前変更できません!" + #. Write the info: -#: ../ex_cmds.c:1720 #, c-format msgid "# This viminfo file was generated by Vim %s.\n" msgstr "# この viminfo ファイルは Vim %s によって生成されました.\n" -#: ../ex_cmds.c:1722 msgid "" "# You may edit it if you're careful!\n" "\n" @@ -1143,47 +886,47 @@ msgstr "" "# 変更する際には十分注意してください!\n" "\n" -#: ../ex_cmds.c:1723 msgid "# Value of 'encoding' when this file was written\n" msgstr "# このファイルが書かれた時の 'encoding' の値\n" -#: ../ex_cmds.c:1800 msgid "Illegal starting char" msgstr "不正な先頭文字です" -#: ../ex_cmds.c:2162 +msgid "" +"\n" +"# Bar lines, copied verbatim:\n" +msgstr "" +"\n" +"# '|' で始まる行の、文字通りのコピー:\n" + +msgid "Save As" +msgstr "別名で保存" + msgid "Write partial file?" msgstr "ファイルを部分的に保存しますか?" -#: ../ex_cmds.c:2166 msgid "E140: Use ! to write partial buffer" msgstr "E140: バッファを部分的に保存するには ! を使ってください" -#: ../ex_cmds.c:2281 #, c-format msgid "Overwrite existing file \"%s\"?" msgstr "既存のファイル \"%s\" を上書きしますか?" -#: ../ex_cmds.c:2317 #, c-format msgid "Swap file \"%s\" exists, overwrite anyway?" msgstr "スワップファイル \"%s\" が存在します. 上書きを強制しますか?" -#: ../ex_cmds.c:2326 #, c-format msgid "E768: Swap file exists: %s (:silent! overrides)" msgstr "E768: スワップファイルが存在します: %s (:silent! を追加で上書)" -#: ../ex_cmds.c:2381 #, c-format -msgid "E141: No file name for buffer %" -msgstr "E141: バッファ % には名前がありません" +msgid "E141: No file name for buffer %ld" +msgstr "E141: バッファ %ld には名前がありません" -#: ../ex_cmds.c:2412 msgid "E142: File not written: Writing is disabled by 'write' option" msgstr "E142: ファイルは保存されませんでした: 'write' オプションにより無効です" -#: ../ex_cmds.c:2434 #, c-format msgid "" "'readonly' option is set for \"%s\".\n" @@ -1192,7 +935,6 @@ msgstr "" "\"%s\" には 'readonly' オプションが設定されています.\n" "上書き強制をしますか?" -#: ../ex_cmds.c:2439 #, c-format msgid "" "File permissions of \"%s\" are read-only.\n" @@ -1203,83 +945,68 @@ msgstr "" "それでも恐らく書き込むことは可能です.\n" "継続しますか?" -#: ../ex_cmds.c:2451 #, c-format msgid "E505: \"%s\" is read-only (add ! to override)" msgstr "E505: \"%s\" は読込専用です (強制書込には ! を追加)" -#: ../ex_cmds.c:3120 +msgid "Edit File" +msgstr "ファイルを編集" + #, c-format msgid "E143: Autocommands unexpectedly deleted new buffer %s" msgstr "E143: autocommandが予期せず新しいバッファ %s を削除しました" -#: ../ex_cmds.c:3313 msgid "E144: non-numeric argument to :z" msgstr "E144: 数ではない引数が :z に渡されました" -#: ../ex_cmds.c:3404 msgid "E145: Shell commands not allowed in rvim" msgstr "E145: rvimではシェルコマンドを使えません" -#: ../ex_cmds.c:3498 msgid "E146: Regular expressions can't be delimited by letters" msgstr "E146: 正規表現は文字で区切ることができません" -#: ../ex_cmds.c:3964 #, c-format msgid "replace with %s (y/n/a/q/l/^E/^Y)?" msgstr "%s に置換しますか? (y/n/a/q/l/^E/^Y)" -#: ../ex_cmds.c:4379 msgid "(Interrupted) " msgstr "(割込まれました) " -#: ../ex_cmds.c:4384 msgid "1 match" msgstr "1 箇所該当しました" -#: ../ex_cmds.c:4384 msgid "1 substitution" msgstr "1 箇所置換しました" -#: ../ex_cmds.c:4387 #, c-format -msgid "% matches" -msgstr "% 箇所該当しました" +msgid "%ld matches" +msgstr "%ld 箇所該当しました" -#: ../ex_cmds.c:4388 #, c-format -msgid "% substitutions" -msgstr "% 箇所置換しました" +msgid "%ld substitutions" +msgstr "%ld 箇所置換しました" -#: ../ex_cmds.c:4392 msgid " on 1 line" msgstr " (計 1 行内)" -#: ../ex_cmds.c:4395 #, c-format -msgid " on % lines" -msgstr " (計 % 行内)" +msgid " on %ld lines" +msgstr " (計 %ld 行内)" -#: ../ex_cmds.c:4438 msgid "E147: Cannot do :global recursive" msgstr "E147: :global を再帰的には使えません" -#: ../ex_cmds.c:4467 msgid "E148: Regular expression missing from global" msgstr "E148: globalコマンドに正規表現が指定されていません" -#: ../ex_cmds.c:4508 #, c-format msgid "Pattern found in every line: %s" msgstr "パターンが全ての行で見つかりました: %s" -#: ../ex_cmds.c:4510 #, c-format msgid "Pattern not found: %s" msgstr "パターンは見つかりませんでした: %s" -#: ../ex_cmds.c:4587 msgid "" "\n" "# Last Substitute String:\n" @@ -1289,110 +1016,102 @@ msgstr "" "# 最後に置換された文字列:\n" "$" -#: ../ex_cmds.c:4679 msgid "E478: Don't panic!" msgstr "E478: 慌てないでください" -#: ../ex_cmds.c:4717 #, c-format msgid "E661: Sorry, no '%s' help for %s" msgstr "E661: 残念ですが '%s' のヘルプが %s にはありません" -#: ../ex_cmds.c:4719 #, c-format msgid "E149: Sorry, no help for %s" msgstr "E149: 残念ですが %s にはヘルプがありません" -#: ../ex_cmds.c:4751 #, c-format msgid "Sorry, help file \"%s\" not found" msgstr "残念ですがヘルプファイル \"%s\" が見つかりません" -#: ../ex_cmds.c:5323 #, c-format -msgid "E150: Not a directory: %s" -msgstr "E150: ディレクトリではありません: %s" +msgid "E151: No match: %s" +msgstr "E151: マッチはありません: %s" -#: ../ex_cmds.c:5446 #, c-format msgid "E152: Cannot open %s for writing" msgstr "E152: 書込み用に %s を開けません" -#: ../ex_cmds.c:5471 #, c-format msgid "E153: Unable to open %s for reading" msgstr "E153: 読込用に %s を開けません" # Added at 29-Apr-2004. -#: ../ex_cmds.c:5500 #, c-format msgid "E670: Mix of help file encodings within a language: %s" msgstr "E670: 1つの言語のヘルプファイルに複数のエンコードが混在しています: %s" -#: ../ex_cmds.c:5565 #, c-format msgid "E154: Duplicate tag \"%s\" in file %s/%s" msgstr "E154: タグ \"%s\" がファイル %s/%s に重複しています" -#: ../ex_cmds.c:5687 +#, c-format +msgid "E150: Not a directory: %s" +msgstr "E150: ディレクトリではありません: %s" + #, c-format msgid "E160: Unknown sign command: %s" msgstr "E160: 未知のsignコマンドです: %s" -#: ../ex_cmds.c:5704 msgid "E156: Missing sign name" msgstr "E156: sign名がありません" -#: ../ex_cmds.c:5746 msgid "E612: Too many signs defined" msgstr "E612: signの定義が多数見つかりました" -#: ../ex_cmds.c:5813 #, c-format msgid "E239: Invalid sign text: %s" msgstr "E239: 無効なsignのテキストです: %s" -#: ../ex_cmds.c:5844 ../ex_cmds.c:6035 #, c-format msgid "E155: Unknown sign: %s" msgstr "E155: 未知のsignです: %s" -#: ../ex_cmds.c:5877 msgid "E159: Missing sign number" msgstr "E159: signの番号がありません" -#: ../ex_cmds.c:5971 #, c-format msgid "E158: Invalid buffer name: %s" msgstr "E158: 無効なバッファ名です: %s" -#: ../ex_cmds.c:6008 +msgid "E934: Cannot jump to a buffer that does not have a name" +msgstr "E934: 名前の無いバッファへはジャンプできません" + #, c-format -msgid "E157: Invalid sign ID: %" -msgstr "E157: 無効なsign識別子です: %" +msgid "E157: Invalid sign ID: %ld" +msgstr "E157: 無効なsign識別子です: %ld" #, c-format msgid "E885: Not possible to change sign %s" msgstr "E885: 変更できない sign です: %s" -#: ../ex_cmds.c:6066 +# Added at 27-Jan-2004. +msgid " (NOT FOUND)" +msgstr " (見つかりません)" + msgid " (not supported)" msgstr " (非サポート)" -#: ../ex_cmds.c:6169 msgid "[Deleted]" msgstr "[削除済]" -#: ../ex_cmds2.c:139 +msgid "No old files" +msgstr "古いファイルはありません" + msgid "Entering Debug mode. Type \"cont\" to continue." msgstr "デバッグモードに入ります. 続けるには \"cont\" と入力してください." -#: ../ex_cmds2.c:143 ../ex_docmd.c:759 #, c-format -msgid "line %: %s" -msgstr "行 %: %s" +msgid "line %ld: %s" +msgstr "行 %ld: %s" -#: ../ex_cmds2.c:145 #, c-format msgid "cmd: %s" msgstr "コマンド: %s" @@ -1404,232 +1123,184 @@ msgstr "フレームが 0 です" msgid "frame at highest level: %d" msgstr "最高レベルのフレーム: %d" -#: ../ex_cmds2.c:322 #, c-format -msgid "Breakpoint in \"%s%s\" line %" -msgstr "ブレークポイント \"%s%s\" 行 %" +msgid "Breakpoint in \"%s%s\" line %ld" +msgstr "ブレークポイント \"%s%s\" 行 %ld" -#: ../ex_cmds2.c:581 #, c-format msgid "E161: Breakpoint not found: %s" msgstr "E161: ブレークポイントが見つかりません: %s" -#: ../ex_cmds2.c:611 msgid "No breakpoints defined" msgstr "ブレークポイントが定義されていません" -#: ../ex_cmds2.c:617 #, c-format -msgid "%3d %s %s line %" -msgstr "%3d %s %s 行 %" +msgid "%3d %s %s line %ld" +msgstr "%3d %s %s 行 %ld" -#: ../ex_cmds2.c:942 msgid "E750: First use \":profile start {fname}\"" msgstr "E750: 初めに \":profile start {fname}\" を実行してください" -#: ../ex_cmds2.c:1269 #, c-format msgid "Save changes to \"%s\"?" msgstr "変更を \"%s\" に保存しますか?" -#: ../ex_cmds2.c:1271 ../ex_docmd.c:8851 msgid "Untitled" msgstr "無題" -#: ../ex_cmds2.c:1421 #, c-format msgid "E162: No write since last change for buffer \"%s\"" msgstr "E162: バッファ \"%s\" の変更は保存されていません" -#: ../ex_cmds2.c:1480 msgid "Warning: Entered other buffer unexpectedly (check autocommands)" msgstr "警告: 予期せず他バッファへ移動しました (autocommands を調べてください)" -#: ../ex_cmds2.c:1826 msgid "E163: There is only one file to edit" msgstr "E163: 編集するファイルは1つしかありません" -#: ../ex_cmds2.c:1828 msgid "E164: Cannot go before first file" msgstr "E164: 最初のファイルより前には行けません" -#: ../ex_cmds2.c:1830 msgid "E165: Cannot go beyond last file" msgstr "E165: 最後のファイルを越えて後には行けません" -#: ../ex_cmds2.c:2175 #, c-format msgid "E666: compiler not supported: %s" msgstr "E666: そのコンパイラには対応していません: %s" -#: ../ex_cmds2.c:2257 #, c-format msgid "Searching for \"%s\" in \"%s\"" msgstr "\"%s\" を \"%s\" から検索中" -#: ../ex_cmds2.c:2284 #, c-format msgid "Searching for \"%s\"" msgstr "\"%s\" を検索中" -#: ../ex_cmds2.c:2307 #, c-format -msgid "not found in 'runtimepath': \"%s\"" -msgstr "'runtimepath' の中には見つかりません: \"%s\"" +msgid "not found in '%s': \"%s\"" +msgstr "'%s' の中にはありません: \"%s\"" + +msgid "Source Vim script" +msgstr "Vimスクリプトの取込み" -#: ../ex_cmds2.c:2472 #, c-format msgid "Cannot source a directory: \"%s\"" msgstr "ディレクトリは取込めません: \"%s\"" -#: ../ex_cmds2.c:2518 #, c-format msgid "could not source \"%s\"" msgstr "\"%s\" を取込めません" -#: ../ex_cmds2.c:2520 #, c-format -msgid "line %: could not source \"%s\"" -msgstr "行 %: \"%s\" を取込めません" +msgid "line %ld: could not source \"%s\"" +msgstr "行 %ld: \"%s\" を取込めません" -#: ../ex_cmds2.c:2535 #, c-format msgid "sourcing \"%s\"" msgstr "\"%s\" を取込中" -#: ../ex_cmds2.c:2537 #, c-format -msgid "line %: sourcing \"%s\"" -msgstr "行 %: %s を取込中" +msgid "line %ld: sourcing \"%s\"" +msgstr "行 %ld: %s を取込中" -#: ../ex_cmds2.c:2693 #, c-format msgid "finished sourcing %s" msgstr "%s の取込を完了" -#: ../ex_cmds2.c:2765 +#, c-format +msgid "continuing in %s" +msgstr "%s の実行を継続中です" + msgid "modeline" msgstr "モード行" -#: ../ex_cmds2.c:2767 msgid "--cmd argument" msgstr "--cmd 引数" -#: ../ex_cmds2.c:2769 msgid "-c argument" msgstr "-c 引数" -#: ../ex_cmds2.c:2771 msgid "environment variable" msgstr "環境変数" -#: ../ex_cmds2.c:2773 msgid "error handler" msgstr "エラーハンドラ" -#: ../ex_cmds2.c:3020 msgid "W15: Warning: Wrong line separator, ^M may be missing" msgstr "W15: 警告: 行区切が不正です. ^M がないのでしょう" -#: ../ex_cmds2.c:3139 msgid "E167: :scriptencoding used outside of a sourced file" msgstr "E167: :scriptencoding が取込スクリプト以外で使用されました" -#: ../ex_cmds2.c:3166 msgid "E168: :finish used outside of a sourced file" msgstr "E168: :finish が取込スクリプト以外で使用されました" -#: ../ex_cmds2.c:3389 #, c-format msgid "Current %slanguage: \"%s\"" msgstr "現在の %s言語: \"%s\"" -#: ../ex_cmds2.c:3404 #, c-format msgid "E197: Cannot set language to \"%s\"" msgstr "E197: 言語を \"%s\" に設定できません" -#. don't redisplay the window -#. don't wait for return -#: ../ex_docmd.c:387 msgid "Entering Ex mode. Type \"visual\" to go to Normal mode." msgstr "" "Exモードに入ります. ノーマルモードに戻るには\"visual\"と入力してください." -#: ../ex_docmd.c:428 msgid "E501: At end-of-file" msgstr "E501: ファイルの終了位置" -#: ../ex_docmd.c:513 msgid "E169: Command too recursive" msgstr "E169: コマンドが再帰的過ぎます" -#: ../ex_docmd.c:1006 #, c-format msgid "E605: Exception not caught: %s" msgstr "E605: 例外が捕捉されませんでした: %s" -#: ../ex_docmd.c:1085 msgid "End of sourced file" msgstr "取込ファイルの最後です" -#: ../ex_docmd.c:1086 msgid "End of function" msgstr "関数の最後です" -#: ../ex_docmd.c:1628 msgid "E464: Ambiguous use of user-defined command" msgstr "E464: ユーザー定義コマンドのあいまいな使用です" -#: ../ex_docmd.c:1638 msgid "E492: Not an editor command" msgstr "E492: エディタのコマンドではありません" -#: ../ex_docmd.c:1729 msgid "E493: Backwards range given" msgstr "E493: 逆さまの範囲が指定されました" -#: ../ex_docmd.c:1733 msgid "Backwards range given, OK to swap" msgstr "逆さまの範囲が指定されました, 入替えますか?" -#. append -#. typed wrong -#: ../ex_docmd.c:1787 msgid "E494: Use w or w>>" msgstr "E494: w もしくは w>> を使用してください" -#: ../ex_docmd.c:3454 -msgid "E319: The command is not available in this version" +msgid "E319: Sorry, the command is not available in this version" msgstr "E319: このバージョンではこのコマンドは利用できません, ごめんなさい" -#: ../ex_docmd.c:3752 msgid "E172: Only one file name allowed" msgstr "E172: ファイル名は 1 つにしてください" -#: ../ex_docmd.c:4238 msgid "1 more file to edit. Quit anyway?" msgstr "編集すべきファイルが 1 個ありますが, 終了しますか?" -#: ../ex_docmd.c:4242 #, c-format msgid "%d more files to edit. Quit anyway?" msgstr "編集すべきファイルがあと %d 個ありますが, 終了しますか?" -#: ../ex_docmd.c:4248 msgid "E173: 1 more file to edit" msgstr "E173: 編集すべきファイルが 1 個あります" -#: ../ex_docmd.c:4250 #, c-format -msgid "E173: % more files to edit" -msgstr "E173: 編集すべきファイルがあと % 個あります" +msgid "E173: %ld more files to edit" +msgstr "E173: 編集すべきファイルがあと %ld 個あります" -#: ../ex_docmd.c:4320 msgid "E174: Command already exists: add ! to replace it" msgstr "E174: コマンドが既にあります: 再定義するには ! を追加してください" -#: ../ex_docmd.c:4432 msgid "" "\n" " Name Args Address Complete Definition" @@ -1637,51 +1308,40 @@ msgstr "" "\n" " 名前 引数 アドレス 補完 定義" -#: ../ex_docmd.c:4516 msgid "No user-defined commands found" msgstr "ユーザー定義コマンドが見つかりませんでした" -#: ../ex_docmd.c:4538 msgid "E175: No attribute specified" msgstr "E175: 属性は定義されていません" -#: ../ex_docmd.c:4583 msgid "E176: Invalid number of arguments" msgstr "E176: 引数の数が無効です" -#: ../ex_docmd.c:4594 msgid "E177: Count cannot be specified twice" msgstr "E177: カウントを2重指定することはできません" -#: ../ex_docmd.c:4603 msgid "E178: Invalid default value for count" msgstr "E178: カウントの省略値が無効です" -#: ../ex_docmd.c:4625 msgid "E179: argument required for -complete" msgstr "E179: -complete には引数が必要です" msgid "E179: argument required for -addr" msgstr "E179: -addr には引数が必要です" -#: ../ex_docmd.c:4635 #, c-format msgid "E181: Invalid attribute: %s" msgstr "E181: 無効な属性です: %s" -#: ../ex_docmd.c:4678 msgid "E182: Invalid command name" msgstr "E182: 無効なコマンド名です" -#: ../ex_docmd.c:4691 msgid "E183: User defined commands must start with an uppercase letter" msgstr "E183: ユーザー定義コマンドは英大文字で始まらなければなりません" -#: ../ex_docmd.c:4696 msgid "E841: Reserved name, cannot be used for user defined command" msgstr "E841: 予約名なので, ユーザー定義コマンドに利用できません" -#: ../ex_docmd.c:4751 #, c-format msgid "E184: No such user-defined command: %s" msgstr "E184: そのユーザー定義コマンドはありません: %s" @@ -1690,293 +1350,261 @@ msgstr "E184: そのユーザー定義コマンドはありません: %s" msgid "E180: Invalid address type value: %s" msgstr "E180: 無効なアドレスタイプ値です: %s" -#: ../ex_docmd.c:5219 #, c-format msgid "E180: Invalid complete value: %s" msgstr "E180: 無効な補完指定です: %s" -#: ../ex_docmd.c:5225 msgid "E468: Completion argument only allowed for custom completion" msgstr "E468: 補完引数はカスタム補完でしか使用できません" -#: ../ex_docmd.c:5231 msgid "E467: Custom completion requires a function argument" msgstr "E467: カスタム補完には引数として関数が必要です" -#: ../ex_docmd.c:5257 +msgid "unknown" +msgstr "不明" + #, c-format msgid "E185: Cannot find color scheme '%s'" msgstr "E185: カラースキーム '%s' が見つかりません" -#: ../ex_docmd.c:5263 msgid "Greetings, Vim user!" msgstr "Vim 使いさん、やあ!" -#: ../ex_docmd.c:5431 msgid "E784: Cannot close last tab page" msgstr "E784: 最後のタブページを閉じることはできません" -#: ../ex_docmd.c:5462 msgid "Already only one tab page" msgstr "既にタブページは1つしかありません" -#: ../ex_docmd.c:6004 +msgid "Edit File in new window" +msgstr "新しいウィンドウでファイルを編集します" + #, c-format msgid "Tab page %d" msgstr "タブページ %d" -#: ../ex_docmd.c:6295 msgid "No swap file" msgstr "スワップファイルがありません" -#: ../ex_docmd.c:6478 +msgid "Append File" +msgstr "追加ファイル" + msgid "E747: Cannot change directory, buffer is modified (add ! to override)" msgstr "" "E747: バッファが修正されているので, ディレクトリを変更できません (! を追加で" "上書)" -#: ../ex_docmd.c:6485 msgid "E186: No previous directory" msgstr "E186: 前のディレクトリはありません" -#: ../ex_docmd.c:6530 msgid "E187: Unknown" msgstr "E187: 未知" -#: ../ex_docmd.c:6610 msgid "E465: :winsize requires two number arguments" msgstr "E465: :winsize には2つの数値の引数が必要です" -#: ../ex_docmd.c:6655 +#, c-format +msgid "Window position: X %d, Y %d" +msgstr "ウィンドウ位置: X %d, Y %d" + msgid "E188: Obtaining window position not implemented for this platform" msgstr "" "E188: このプラットホームにはウィンドウ位置の取得機能は実装されていません" -#: ../ex_docmd.c:6662 msgid "E466: :winpos requires two number arguments" msgstr "E466: :winpos には2つの数値の引数が必要です" -#: ../ex_docmd.c:7241 +msgid "E930: Cannot use :redir inside execute()" +msgstr "E930: execute() の中では :redir は使えません" + +msgid "Save Redirection" +msgstr "リダイレクトを保存します" + +msgid "Save View" +msgstr "ビューを保存します" + +msgid "Save Session" +msgstr "セッション情報を保存します" + +msgid "Save Setup" +msgstr "設定を保存します" + #, c-format msgid "E739: Cannot create directory: %s" msgstr "E739: ディレクトリを作成できません: %s" -#: ../ex_docmd.c:7268 #, c-format msgid "E189: \"%s\" exists (add ! to override)" msgstr "E189: \"%s\" が存在します (上書するには ! を追加してください)" -#: ../ex_docmd.c:7273 #, c-format msgid "E190: Cannot open \"%s\" for writing" msgstr "E190: \"%s\" を書込み用として開けません" #. set mark -#: ../ex_docmd.c:7294 msgid "E191: Argument must be a letter or forward/backward quote" msgstr "E191: 引数は1文字の英字か引用符 (' か `) でなければいけません" -#: ../ex_docmd.c:7333 msgid "E192: Recursive use of :normal too deep" msgstr "E192: :normal の再帰利用が深くなり過ぎました" -#: ../ex_docmd.c:7807 +msgid "E809: #< is not available without the +eval feature" +msgstr "E809: #< は +eval 機能が無いと利用できません" + msgid "E194: No alternate file name to substitute for '#'" msgstr "E194: '#'を置き換える副ファイルの名前がありません" -#: ../ex_docmd.c:7841 msgid "E495: no autocommand file name to substitute for \"\"" msgstr "E495: \"\"を置き換えるautocommandのファイル名がありません" -#: ../ex_docmd.c:7850 msgid "E496: no autocommand buffer number to substitute for \"\"" msgstr "E496: \"\"を置き換えるautocommandバッファ番号がありません" -#: ../ex_docmd.c:7861 msgid "E497: no autocommand match name to substitute for \"\"" msgstr "E497: \"\"を置き換えるautocommandの該当名がありません" -#: ../ex_docmd.c:7870 msgid "E498: no :source file name to substitute for \"\"" msgstr "E498: \"\"を置き換える :source 対象ファイル名がありません" -#: ../ex_docmd.c:7876 msgid "E842: no line number to use for \"\"" msgstr "E842: \"\"を置き換える行番号がありません" -#: ../ex_docmd.c:7903 -#, fuzzy, c-format +#, no-c-format msgid "E499: Empty file name for '%' or '#', only works with \":p:h\"" msgstr "" "E499: '%' や '#' が無名ファイルなので \":p:h\" を伴わない使い方はできません" -#: ../ex_docmd.c:7905 msgid "E500: Evaluates to an empty string" msgstr "E500: 空文字列として評価されました" -#: ../ex_docmd.c:8838 msgid "E195: Cannot open viminfo file for reading" msgstr "E195: viminfoファイルを読込用として開けません" -#: ../ex_eval.c:464 +msgid "E196: No digraphs in this version" +msgstr "E196: このバージョンに合字はありません" + msgid "E608: Cannot :throw exceptions with 'Vim' prefix" msgstr "E608: 'Vim' で始まる例外は :throw できません" #. always scroll up, don't overwrite -#: ../ex_eval.c:496 #, c-format msgid "Exception thrown: %s" msgstr "例外が発生しました: %s" -#: ../ex_eval.c:545 #, c-format msgid "Exception finished: %s" msgstr "例外が収束しました: %s" -#: ../ex_eval.c:546 #, c-format msgid "Exception discarded: %s" msgstr "例外が破棄されました: %s" -#: ../ex_eval.c:588 ../ex_eval.c:634 #, c-format -msgid "%s, line %" -msgstr "%s, 行 %" +msgid "%s, line %ld" +msgstr "%s, 行 %ld" #. always scroll up, don't overwrite -#: ../ex_eval.c:608 #, c-format msgid "Exception caught: %s" msgstr "例外が捕捉されました: %s" -#: ../ex_eval.c:676 #, c-format msgid "%s made pending" msgstr "%s により未決定状態が生じました" -#: ../ex_eval.c:679 #, c-format msgid "%s resumed" msgstr "%s が再開しました" -#: ../ex_eval.c:683 #, c-format msgid "%s discarded" msgstr "%s が破棄されました" -#: ../ex_eval.c:708 msgid "Exception" msgstr "例外" -#: ../ex_eval.c:713 msgid "Error and interrupt" msgstr "エラーと割込み" -#: ../ex_eval.c:715 msgid "Error" msgstr "エラー" #. if (pending & CSTP_INTERRUPT) -#: ../ex_eval.c:717 msgid "Interrupt" msgstr "割込み" -#: ../ex_eval.c:795 msgid "E579: :if nesting too deep" msgstr "E579: :if の入れ子が深過ぎます" -#: ../ex_eval.c:830 msgid "E580: :endif without :if" msgstr "E580: :if のない :endif があります" -#: ../ex_eval.c:873 msgid "E581: :else without :if" msgstr "E581: :if のない :else があります" -#: ../ex_eval.c:876 msgid "E582: :elseif without :if" msgstr "E582: :if のない :elseif があります" -#: ../ex_eval.c:880 msgid "E583: multiple :else" msgstr "E583: 複数の :else があります" -#: ../ex_eval.c:883 msgid "E584: :elseif after :else" msgstr "E584: :else の後に :elseif があります" -#: ../ex_eval.c:941 msgid "E585: :while/:for nesting too deep" msgstr "E585: :while や :for の入れ子が深過ぎます" -#: ../ex_eval.c:1028 msgid "E586: :continue without :while or :for" msgstr "E586: :while や :for のない :continue があります" -#: ../ex_eval.c:1061 msgid "E587: :break without :while or :for" msgstr "E587: :while や :for のない :break があります" -#: ../ex_eval.c:1102 msgid "E732: Using :endfor with :while" msgstr "E732: :endfor を :while と組み合わせています" -#: ../ex_eval.c:1104 msgid "E733: Using :endwhile with :for" msgstr "E733: :endwhile を :for と組み合わせています" -#: ../ex_eval.c:1247 msgid "E601: :try nesting too deep" msgstr "E601: :try の入れ子が深過ぎます" -#: ../ex_eval.c:1317 msgid "E603: :catch without :try" msgstr "E603: :try のない :catch があります" #. Give up for a ":catch" after ":finally" and ignore it. #. * Just parse. -#: ../ex_eval.c:1332 msgid "E604: :catch after :finally" msgstr "E604: :finally の後に :catch があります" -#: ../ex_eval.c:1451 msgid "E606: :finally without :try" msgstr "E606: :try のない :finally があります" #. Give up for a multiple ":finally" and ignore it. -#: ../ex_eval.c:1467 msgid "E607: multiple :finally" msgstr "E607: 複数の :finally があります" -#: ../ex_eval.c:1571 msgid "E602: :endtry without :try" msgstr "E602: :try のない :endtry です" -#: ../ex_eval.c:2026 msgid "E193: :endfunction not inside a function" msgstr "E193: 関数の外に :endfunction がありました" -#: ../ex_getln.c:1643 msgid "E788: Not allowed to edit another buffer now" msgstr "E788: 現在は他のバッファを編集することは許されません" -#: ../ex_getln.c:1656 msgid "E811: Not allowed to change buffer information now" msgstr "E811: 現在はバッファ情報を変更することは許されません" -#: ../ex_getln.c:3178 msgid "tagname" msgstr "タグ名" -#: ../ex_getln.c:3181 msgid " kind file\n" msgstr " ファイル種類\n" -#: ../ex_getln.c:4799 msgid "'history' option is zero" msgstr "オプション 'history' がゼロです" -#: ../ex_getln.c:5046 #, c-format msgid "" "\n" @@ -1985,303 +1613,224 @@ msgstr "" "\n" "# %s 項目の履歴 (新しいものから古いものへ):\n" -#: ../ex_getln.c:5047 msgid "Command Line" msgstr "コマンドライン" -#: ../ex_getln.c:5048 msgid "Search String" msgstr "検索文字列" -#: ../ex_getln.c:5049 msgid "Expression" msgstr "式" -#: ../ex_getln.c:5050 msgid "Input Line" msgstr "入力行" -#: ../ex_getln.c:5117 +msgid "Debug Line" +msgstr "デバッグ行" + msgid "E198: cmd_pchar beyond the command length" msgstr "E198: cmd_pchar がコマンド長を超えました" -#: ../ex_getln.c:5279 msgid "E199: Active window or buffer deleted" msgstr "E199: アクティブなウィンドウかバッファが削除されました" -#: ../file_search.c:203 -msgid "E854: path too long for completion" -msgstr "E854: パスが長過ぎて補完できません" - -#: ../file_search.c:446 -#, c-format -msgid "" -"E343: Invalid path: '**[number]' must be at the end of the path or be " -"followed by '%s'." -msgstr "" -"E343: 無効なパスです: '**[数値]' はpathの最後か '%s' が続いてないといけませ" -"ん." - -#: ../file_search.c:1505 -#, c-format -msgid "E344: Can't find directory \"%s\" in cdpath" -msgstr "E344: cdpathには \"%s\" というファイルがありません" - -#: ../file_search.c:1508 -#, c-format -msgid "E345: Can't find file \"%s\" in path" -msgstr "E345: pathには \"%s\" というファイルがありません" - -#: ../file_search.c:1512 -#, c-format -msgid "E346: No more directory \"%s\" found in cdpath" -msgstr "E346: cdpathにはこれ以上 \"%s\" というファイルがありません" - -#: ../file_search.c:1515 -#, c-format -msgid "E347: No more file \"%s\" found in path" -msgstr "E347: パスにはこれ以上 \"%s\" というファイルがありません" - -#: ../fileio.c:137 msgid "E812: Autocommands changed buffer or buffer name" msgstr "E812: autocommandがバッファかバッファ名を変更しました" -#: ../fileio.c:368 msgid "Illegal file name" msgstr "不正なファイル名" -#: ../fileio.c:395 ../fileio.c:476 ../fileio.c:2543 ../fileio.c:2578 msgid "is a directory" msgstr "はディレクトリです" -#: ../fileio.c:397 msgid "is not a file" msgstr "はファイルではありません" -#: ../fileio.c:508 ../fileio.c:3522 +msgid "is a device (disabled with 'opendevice' option)" +msgstr "はデバイスです ('opendevice' オプションで回避できます)" + msgid "[New File]" msgstr "[新ファイル]" -#: ../fileio.c:511 msgid "[New DIRECTORY]" msgstr "[新規ディレクトリ]" -#: ../fileio.c:529 ../fileio.c:532 msgid "[File too big]" msgstr "[ファイル過大]" -#: ../fileio.c:534 msgid "[Permission Denied]" msgstr "[権限がありません]" -#: ../fileio.c:653 msgid "E200: *ReadPre autocommands made the file unreadable" msgstr "E200: *ReadPre autocommand がファイルを読込不可にしました" -#: ../fileio.c:655 msgid "E201: *ReadPre autocommands must not change current buffer" msgstr "E201: *ReadPre autocommand は現在のバッファを変えられません" -#: ../fileio.c:672 -msgid "Nvim: Reading from stdin...\n" +msgid "Vim: Reading from stdin...\n" msgstr "Vim: 標準入力から読込中...\n" +msgid "Reading from stdin..." +msgstr "標準入力から読込み中..." + #. Re-opening the original file failed! -#: ../fileio.c:909 msgid "E202: Conversion made file unreadable!" msgstr "E202: 変換がファイルを読込不可にしました" -#. fifo or socket -#: ../fileio.c:1782 msgid "[fifo/socket]" msgstr "[FIFO/ソケット]" -#. fifo -#: ../fileio.c:1788 msgid "[fifo]" msgstr "[FIFO]" -#. or socket -#: ../fileio.c:1794 msgid "[socket]" msgstr "[ソケット]" -#. or character special -#: ../fileio.c:1801 msgid "[character special]" msgstr "[キャラクタ・デバイス]" -#: ../fileio.c:1815 msgid "[CR missing]" msgstr "[CR無]" -#: ../fileio.c:1819 msgid "[long lines split]" msgstr "[長行分割]" -#: ../fileio.c:1823 ../fileio.c:3512 msgid "[NOT converted]" msgstr "[未変換]" -#: ../fileio.c:1826 ../fileio.c:3515 msgid "[converted]" msgstr "[変換済]" -#: ../fileio.c:1831 #, c-format -msgid "[CONVERSION ERROR in line %]" -msgstr "[% 行目で変換エラー]" +msgid "[CONVERSION ERROR in line %ld]" +msgstr "[%ld 行目で変換エラー]" -#: ../fileio.c:1835 #, c-format -msgid "[ILLEGAL BYTE in line %]" -msgstr "[% 行目の不正なバイト]" +msgid "[ILLEGAL BYTE in line %ld]" +msgstr "[%ld 行目の不正なバイト]" -#: ../fileio.c:1838 msgid "[READ ERRORS]" msgstr "[読込エラー]" -#: ../fileio.c:2104 msgid "Can't find temp file for conversion" msgstr "変換に必要な一時ファイルが見つかりません" -#: ../fileio.c:2110 msgid "Conversion with 'charconvert' failed" msgstr "'charconvert' による変換が失敗しました" -#: ../fileio.c:2113 msgid "can't read output of 'charconvert'" msgstr "'charconvert' の出力を読込めませんでした" -#: ../fileio.c:2437 msgid "E676: No matching autocommands for acwrite buffer" msgstr "E676: acwriteバッファの該当するautocommandは存在しません" -#: ../fileio.c:2466 msgid "E203: Autocommands deleted or unloaded buffer to be written" msgstr "E203: 保存するバッファをautocommandが削除か解放しました" -#: ../fileio.c:2486 msgid "E204: Autocommand changed number of lines in unexpected way" msgstr "E204: autocommandが予期せぬ方法で行数を変更しました" -#: ../fileio.c:2548 ../fileio.c:2565 +# Added at 19-Jan-2004. +msgid "NetBeans disallows writes of unmodified buffers" +msgstr "NetBeansは未変更のバッファを上書することは許可していません" + +msgid "Partial writes disallowed for NetBeans buffers" +msgstr "NetBeansバッファの一部を書き出すことはできません" + msgid "is not a file or writable device" msgstr "はファイルでも書込み可能デバイスでもありません" -#: ../fileio.c:2601 +msgid "writing to device disabled with 'opendevice' option" +msgstr "'opendevice' オプションによりデバイスへの書き込みはできません" + msgid "is read-only (add ! to override)" msgstr "は読込専用です (強制書込には ! を追加)" -#: ../fileio.c:2886 msgid "E506: Can't write to backup file (add ! to override)" msgstr "E506: バックアップファイルを保存できません (! を追加で強制保存)" -#: ../fileio.c:2898 msgid "E507: Close error for backup file (add ! to override)" msgstr "" "E507: バックアップファイルを閉じる際にエラーが発生しました (! を追加で強制)" -#: ../fileio.c:2901 msgid "E508: Can't read file for backup (add ! to override)" msgstr "E508: バックアップ用ファイルを読込めません (! を追加で強制読込)" -#: ../fileio.c:2923 msgid "E509: Cannot create backup file (add ! to override)" msgstr "E509: バックアップファイルを作れません (! を追加で強制作成)" -#: ../fileio.c:3008 msgid "E510: Can't make backup file (add ! to override)" msgstr "E510: バックアップファイルを作れません (! を追加で強制作成)" -#. Can't write without a tempfile! -#: ../fileio.c:3121 +msgid "E460: The resource fork would be lost (add ! to override)" +msgstr "E460: リソースフォークが失われるかもしれません (! を追加で強制)" + msgid "E214: Can't find temp file for writing" msgstr "E214: 保存用一時ファイルが見つかりません" -#: ../fileio.c:3134 msgid "E213: Cannot convert (add ! to write without conversion)" msgstr "E213: 変換できません (! を追加で変換せずに保存)" -#: ../fileio.c:3169 msgid "E166: Can't open linked file for writing" msgstr "E166: リンクされたファイルに書込めません" -#: ../fileio.c:3173 msgid "E212: Can't open file for writing" msgstr "E212: 書込み用にファイルを開けません" -#: ../fileio.c:3363 msgid "E667: Fsync failed" msgstr "E667: fsync に失敗しました" -#: ../fileio.c:3398 msgid "E512: Close failed" msgstr "E512: 閉じることに失敗" -#: ../fileio.c:3436 msgid "E513: write error, conversion failed (make 'fenc' empty to override)" msgstr "E513: 書込みエラー, 変換失敗 (上書するには 'fenc' を空にしてください)" -#: ../fileio.c:3441 #, c-format msgid "" -"E513: write error, conversion failed in line % (make 'fenc' empty to " +"E513: write error, conversion failed in line %ld (make 'fenc' empty to " "override)" msgstr "" -"E513: 書込みエラー, 変換失敗, 行数 % (上書するには 'fenc' を空にして" -"ください)" +"E513: 書込みエラー, 変換失敗, 行数 %ld (上書するには 'fenc' を空にしてくださ" +"い)" -#: ../fileio.c:3448 msgid "E514: write error (file system full?)" msgstr "E514: 書込みエラー, (ファイルシステムが満杯?)" -#: ../fileio.c:3506 msgid " CONVERSION ERROR" msgstr " 変換エラー" -#: ../fileio.c:3509 #, c-format -msgid " in line %;" -msgstr " 行 %;" +msgid " in line %ld;" +msgstr " 行 %ld;" -#: ../fileio.c:3519 msgid "[Device]" msgstr "[デバイス]" -#: ../fileio.c:3522 msgid "[New]" msgstr "[新]" -#: ../fileio.c:3535 msgid " [a]" msgstr " [a]" -#: ../fileio.c:3535 msgid " appended" msgstr " 追加" -#: ../fileio.c:3537 msgid " [w]" msgstr " [w]" -#: ../fileio.c:3537 msgid " written" msgstr " 書込み" -#: ../fileio.c:3579 msgid "E205: Patchmode: can't save original file" msgstr "E205: patchmode: 原本ファイルを保存できません" -#: ../fileio.c:3602 msgid "E206: patchmode: can't touch empty original file" msgstr "E206: patchmode: 空の原本ファイルをtouchできません" -#: ../fileio.c:3616 msgid "E207: Can't delete backup file" msgstr "E207: バックアップファイルを消せません" -#: ../fileio.c:3672 msgid "" "\n" "WARNING: Original file may be lost or damaged\n" @@ -2289,134 +1838,105 @@ msgstr "" "\n" "警告: 原本ファイルが失われたか変更されました\n" -#: ../fileio.c:3675 msgid "don't quit the editor until the file is successfully written!" msgstr "ファイルの保存に成功するまでエディタを終了しないでください!" -#: ../fileio.c:3795 msgid "[dos]" msgstr "[dos]" -#: ../fileio.c:3795 msgid "[dos format]" msgstr "[dosフォーマット]" -#: ../fileio.c:3801 msgid "[mac]" msgstr "[mac]" -#: ../fileio.c:3801 msgid "[mac format]" msgstr "[macフォーマット]" -#: ../fileio.c:3807 msgid "[unix]" msgstr "[unix]" -#: ../fileio.c:3807 msgid "[unix format]" msgstr "[unixフォーマット]" -#: ../fileio.c:3831 msgid "1 line, " msgstr "1 行, " -#: ../fileio.c:3833 #, c-format -msgid "% lines, " -msgstr "% 行, " +msgid "%ld lines, " +msgstr "%ld 行, " -#: ../fileio.c:3836 msgid "1 character" msgstr "1 文字" -#: ../fileio.c:3838 #, c-format -msgid "% characters" -msgstr "% 文字" +msgid "%lld characters" +msgstr "%lld 文字" -#: ../fileio.c:3849 msgid "[noeol]" msgstr "[noeol]" -#: ../fileio.c:3849 msgid "[Incomplete last line]" msgstr "[最終行が不完全]" #. don't overwrite messages here #. must give this prompt #. don't use emsg() here, don't want to flush the buffers -#: ../fileio.c:3865 msgid "WARNING: The file has been changed since reading it!!!" msgstr "警告: 読込んだ後にファイルに変更がありました!!!" -#: ../fileio.c:3867 msgid "Do you really want to write to it" msgstr "本当に上書きしますか" -#: ../fileio.c:4648 #, c-format msgid "E208: Error writing to \"%s\"" msgstr "E208: \"%s\" を書込み中のエラーです" -#: ../fileio.c:4655 #, c-format msgid "E209: Error closing \"%s\"" msgstr "E209: \"%s\" を閉じる時にエラーです" -#: ../fileio.c:4657 #, c-format msgid "E210: Error reading \"%s\"" msgstr "E210: \"%s\" を読込中のエラーです" -#: ../fileio.c:4883 msgid "E246: FileChangedShell autocommand deleted buffer" msgstr "E246: autocommand の FileChangedShell がバッファを削除しました" -#: ../fileio.c:4894 #, c-format msgid "E211: File \"%s\" no longer available" msgstr "E211: ファイル \"%s\" は既に存在しません" -#: ../fileio.c:4906 #, c-format msgid "" "W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as " "well" msgstr "W12: 警告: ファイル \"%s\" が変更されVimのバッファも変更されました" -#: ../fileio.c:4907 msgid "See \":help W12\" for more info." msgstr "詳細は \":help W12\" を参照してください" -#: ../fileio.c:4910 #, c-format msgid "W11: Warning: File \"%s\" has changed since editing started" msgstr "W11: 警告: ファイル \"%s\" は編集開始後に変更されました" -#: ../fileio.c:4911 msgid "See \":help W11\" for more info." msgstr "詳細は \":help W11\" を参照してください" -#: ../fileio.c:4914 #, c-format msgid "W16: Warning: Mode of file \"%s\" has changed since editing started" msgstr "W16: 警告: ファイル \"%s\" のモードが編集開始後に変更されました" -#: ../fileio.c:4915 msgid "See \":help W16\" for more info." msgstr "詳細は \":help W16\" を参照してください" -#: ../fileio.c:4927 #, c-format msgid "W13: Warning: File \"%s\" has been created after editing started" msgstr "W13: 警告: ファイル \"%s\" は編集開始後に作成されました" -#: ../fileio.c:4947 msgid "Warning" msgstr "警告" -#: ../fileio.c:4948 msgid "" "&OK\n" "&Load File" @@ -2424,48 +1944,45 @@ msgstr "" "&OK\n" "ファイル読込(&L)" -#: ../fileio.c:5065 #, c-format msgid "E462: Could not prepare for reloading \"%s\"" msgstr "E462: \"%s\" をリロードする準備ができませんでした" -#: ../fileio.c:5078 #, c-format msgid "E321: Could not reload \"%s\"" msgstr "E321: \"%s\" はリロードできませんでした" -#: ../fileio.c:5601 msgid "--Deleted--" msgstr "--削除済--" -#: ../fileio.c:5732 #, c-format msgid "auto-removing autocommand: %s " msgstr "autocommand: %s <バッファ=%d> が自動的に削除されます" #. the group doesn't exist -#: ../fileio.c:5772 #, c-format msgid "E367: No such group: \"%s\"" msgstr "E367: そのグループはありません: \"%s\"" -#: ../fileio.c:5897 +msgid "E936: Cannot delete the current group" +msgstr "E936: 現在のグループは削除できません" + +msgid "W19: Deleting augroup that is still in use" +msgstr "W19: 使用中の augroup を消そうとしています" + #, c-format msgid "E215: Illegal character after *: %s" msgstr "E215: * の後に不正な文字がありました: %s" -#: ../fileio.c:5905 #, c-format msgid "E216: No such event: %s" msgstr "E216: そのようなイベントはありません: %s" -#: ../fileio.c:5907 #, c-format msgid "E216: No such group or event: %s" msgstr "E216: そのようなグループもしくはイベントはありません: %s" #. Highlight title -#: ../fileio.c:6090 msgid "" "\n" "--- Auto-Commands ---" @@ -2473,756 +1990,555 @@ msgstr "" "\n" "--- Auto-Commands ---" -#: ../fileio.c:6293 #, c-format msgid "E680: : invalid buffer number " msgstr "E680: <バッファ=%d>: 無効なバッファ番号です " -#: ../fileio.c:6370 msgid "E217: Can't execute autocommands for ALL events" msgstr "E217: 全てのイベントに対してのautocommandは実行できません" -#: ../fileio.c:6393 msgid "No matching autocommands" msgstr "該当するautocommandは存在しません" -#: ../fileio.c:6831 msgid "E218: autocommand nesting too deep" msgstr "E218: autocommandの入れ子が深過ぎます" -#: ../fileio.c:7143 #, c-format msgid "%s Auto commands for \"%s\"" msgstr "%s Auto commands for \"%s\"" -#: ../fileio.c:7149 #, c-format msgid "Executing %s" msgstr "%s を実行しています" -#: ../fileio.c:7211 #, c-format msgid "autocommand %s" msgstr "autocommand %s" -#: ../fileio.c:7795 msgid "E219: Missing {." msgstr "E219: { がありません." -#: ../fileio.c:7797 msgid "E220: Missing }." msgstr "E220: } がありません." -#: ../fold.c:93 msgid "E490: No fold found" msgstr "E490: 折畳みがありません" -#: ../fold.c:544 msgid "E350: Cannot create fold with current 'foldmethod'" msgstr "E350: 現在の 'foldmethod' では折畳みを作成できません" -#: ../fold.c:546 msgid "E351: Cannot delete fold with current 'foldmethod'" msgstr "E351: 現在の 'foldmethod' では折畳みを削除できません" -#: ../fold.c:1784 #, c-format -msgid "+--%3ld lines folded " -msgstr "+--%3ld 行が折畳まれました " +msgid "+--%3ld line folded " +msgid_plural "+--%3ld lines folded " +msgstr[0] "+--%3ld 行が折畳まれました " -#. buffer has already been read -#: ../getchar.c:273 msgid "E222: Add to read buffer" msgstr "E222: 読込バッファへ追加" -#: ../getchar.c:2040 msgid "E223: recursive mapping" msgstr "E223: 再帰的マッピング" -#: ../getchar.c:2849 #, c-format msgid "E224: global abbreviation already exists for %s" msgstr "E224: %s というグローバル短縮入力は既に存在します" -#: ../getchar.c:2852 #, c-format msgid "E225: global mapping already exists for %s" msgstr "E225: %s というグローバルマッピングは既に存在します" -#: ../getchar.c:2952 #, c-format msgid "E226: abbreviation already exists for %s" msgstr "E226: %s という短縮入力は既に存在します" -#: ../getchar.c:2955 #, c-format msgid "E227: mapping already exists for %s" msgstr "E227: %s というマッピングは既に存在します" -#: ../getchar.c:3008 msgid "No abbreviation found" msgstr "短縮入力は見つかりませんでした" -#: ../getchar.c:3010 msgid "No mapping found" msgstr "マッピングは見つかりませんでした" -#: ../getchar.c:3974 msgid "E228: makemap: Illegal mode" msgstr "E228: makemap: 不正なモード" -#. key value of 'cedit' option -#. type of cmdline window or 0 -#. result of cmdline window or 0 -#: ../globals.h:924 -msgid "--No lines in buffer--" -msgstr "--バッファに行がありません--" +msgid "E851: Failed to create a new process for the GUI" +msgstr "E851: GUI用のプロセスの起動に失敗しました" -#. -#. * The error messages that can be shared are included here. -#. * Excluded are errors that are only used once and debugging messages. -#. -#: ../globals.h:996 -msgid "E470: Command aborted" -msgstr "E470: コマンドが中断されました" +msgid "E852: The child process failed to start the GUI" +msgstr "E852: 子プロセスがGUIの起動に失敗しました" -#: ../globals.h:997 -msgid "E471: Argument required" -msgstr "E471: 引数が必要です" +msgid "E229: Cannot start the GUI" +msgstr "E229: GUIを開始できません" -#: ../globals.h:998 -msgid "E10: \\ should be followed by /, ? or &" -msgstr "E10: \\ の後は / か ? か & でなければなりません" +#, c-format +msgid "E230: Cannot read from \"%s\"" +msgstr "E230: \"%s\"から読込むことができません" -#: ../globals.h:1000 -msgid "E11: Invalid in command-line window; executes, CTRL-C quits" -msgstr "E11: コマンドラインでは無効です; で実行, CTRL-Cでやめる" +msgid "E665: Cannot start GUI, no valid font found" +msgstr "E665: 有効なフォントが見つからないので, GUIを開始できません" -#: ../globals.h:1002 -msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" -msgstr "" -"E12: 現在のディレクトリやタグ検索ではexrc/vimrcのコマンドは許可されません" +msgid "E231: 'guifontwide' invalid" +msgstr "E231: 'guifontwide' が無効です" -#: ../globals.h:1003 -msgid "E171: Missing :endif" -msgstr "E171: :endif がありません" +msgid "E599: Value of 'imactivatekey' is invalid" +msgstr "E599: 'imactivatekey' に設定された値が無効です" -#: ../globals.h:1004 -msgid "E600: Missing :endtry" -msgstr "E600: :endtry がありません" - -#: ../globals.h:1005 -msgid "E170: Missing :endwhile" -msgstr "E170: :endwhile がありません" +#, c-format +msgid "E254: Cannot allocate color %s" +msgstr "E254: %s の色を割り当てられません" -#: ../globals.h:1006 -msgid "E170: Missing :endfor" -msgstr "E170: :endfor がありません" +msgid "No match at cursor, finding next" +msgstr "カーソルの位置にマッチはありません, 次を検索しています" -#: ../globals.h:1007 -msgid "E588: :endwhile without :while" -msgstr "E588: :while のない :endwhile があります" +msgid " " +msgstr "<開けません> " -#: ../globals.h:1008 -msgid "E588: :endfor without :for" -msgstr "E588: :endfor のない :for があります" +#, c-format +msgid "E616: vim_SelFile: can't get font %s" +msgstr "E616: vim_SelFile: フォント %s を取得できません" -#: ../globals.h:1009 -msgid "E13: File exists (add ! to override)" -msgstr "E13: ファイルが存在します (! を追加で上書)" +msgid "E614: vim_SelFile: can't return to current directory" +msgstr "E614: vim_SelFile: 現在のディレクトリに戻れません" -#: ../globals.h:1010 -msgid "E472: Command failed" -msgstr "E472: コマンドが失敗しました" +msgid "Pathname:" +msgstr "パス名:" -#: ../globals.h:1011 -msgid "E473: Internal error" -msgstr "E473: 内部エラーです" +msgid "E615: vim_SelFile: can't get current directory" +msgstr "E615: vim_SelFile: 現在のディレクトリを取得できません" -#: ../globals.h:1012 -msgid "Interrupted" -msgstr "割込まれました" +msgid "OK" +msgstr "OK" -#: ../globals.h:1013 -msgid "E14: Invalid address" -msgstr "E14: 無効なアドレスです" +msgid "Cancel" +msgstr "キャンセル" -#: ../globals.h:1014 -msgid "E474: Invalid argument" -msgstr "E474: 無効な引数です" +msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." +msgstr "スクロールバー: 画像を取得できませんでした." -#: ../globals.h:1015 -#, c-format -msgid "E475: Invalid argument: %s" -msgstr "E475: 無効な引数です: %s" +msgid "Vim dialog" +msgstr "Vim ダイアログ" -#: ../globals.h:1016 -#, c-format -msgid "E15: Invalid expression: %s" -msgstr "E15: 無効な式です: %s" +msgid "E232: Cannot create BalloonEval with both message and callback" +msgstr "E232: メッセージとコールバックのある BalloonEval を作成できません" -#: ../globals.h:1017 -msgid "E16: Invalid range" -msgstr "E16: 無効な範囲です" +msgid "_Cancel" +msgstr "キャンセル(_C)" -#: ../globals.h:1018 -msgid "E476: Invalid command" -msgstr "E476: 無効なコマンドです" +msgid "_Save" +msgstr "保存(_S)" -#: ../globals.h:1019 -#, c-format -msgid "E17: \"%s\" is a directory" -msgstr "E17: \"%s\" はディレクトリです" +msgid "_Open" +msgstr "開く(_O)" -#: ../globals.h:1020 -#, fuzzy -msgid "E900: Invalid job id" -msgstr "E49: 無効なスクロール量です" +msgid "_OK" +msgstr "_OK" -#: ../globals.h:1021 -msgid "E901: Job table is full" +msgid "" +"&Yes\n" +"&No\n" +"&Cancel" msgstr "" +"はい(&Y)\n" +"いいえ(&N)\n" +"キャンセル(&C)" -#: ../globals.h:1024 -#, c-format -msgid "E364: Library call failed for \"%s()\"" -msgstr "E364: \"%s\"() のライブラリ呼出に失敗しました" - -#: ../globals.h:1026 -msgid "E19: Mark has invalid line number" -msgstr "E19: マークに無効な行番号が指定されていました" - -#: ../globals.h:1027 -msgid "E20: Mark not set" -msgstr "E20: マークは設定されていません" +msgid "Yes" +msgstr "はい" -#: ../globals.h:1029 -msgid "E21: Cannot make changes, 'modifiable' is off" -msgstr "E21: 'modifiable' がオフなので, 変更できません" +msgid "No" +msgstr "いいえ" -#: ../globals.h:1030 -msgid "E22: Scripts nested too deep" -msgstr "E22: スクリプトの入れ子が深過ぎます" +msgid "Input _Methods" +msgstr "インプットメソッド" -#: ../globals.h:1031 -msgid "E23: No alternate file" -msgstr "E23: 副ファイルはありません" +msgid "VIM - Search and Replace..." +msgstr "VIM - 検索と置換..." -#: ../globals.h:1032 -msgid "E24: No such abbreviation" -msgstr "E24: そのような短縮入力はありません" +msgid "VIM - Search..." +msgstr "VIM - 検索..." -#: ../globals.h:1033 -msgid "E477: No ! allowed" -msgstr "E477: ! は許可されていません" +msgid "Find what:" +msgstr "検索文字列:" -#: ../globals.h:1035 -msgid "E25: Nvim does not have a built-in GUI" -msgstr "E25: GUIは使用不可能です: コンパイル時に無効にされています" +msgid "Replace with:" +msgstr "置換文字列:" -#: ../globals.h:1036 -#, c-format -msgid "E28: No such highlight group name: %s" -msgstr "E28: そのような名のハイライトグループはありません: %s" +#. whole word only button +msgid "Match whole word only" +msgstr "正確に該当するものだけ" -#: ../globals.h:1037 -msgid "E29: No inserted text yet" -msgstr "E29: まだテキストが挿入されていません" +#. match case button +msgid "Match case" +msgstr "大文字/小文字を区別する" -#: ../globals.h:1038 -msgid "E30: No previous command line" -msgstr "E30: 以前にコマンド行がありません" +msgid "Direction" +msgstr "方向" -#: ../globals.h:1039 -msgid "E31: No such mapping" -msgstr "E31: そのようなマッピングはありません" +#. 'Up' and 'Down' buttons +msgid "Up" +msgstr "上" -#: ../globals.h:1040 -msgid "E479: No match" -msgstr "E479: 該当はありません" +msgid "Down" +msgstr "下" -#: ../globals.h:1041 -#, c-format -msgid "E480: No match: %s" -msgstr "E480: 該当はありません: %s" +msgid "Find Next" +msgstr "次を検索" -#: ../globals.h:1042 -msgid "E32: No file name" -msgstr "E32: ファイル名がありません" +msgid "Replace" +msgstr "置換" -#: ../globals.h:1044 -msgid "E33: No previous substitute regular expression" -msgstr "E33: 正規表現置換がまだ実行されていません" +msgid "Replace All" +msgstr "全て置換" -#: ../globals.h:1045 -msgid "E34: No previous command" -msgstr "E34: コマンドがまだ実行されていません" +msgid "_Close" +msgstr "閉じる(_C)" -#: ../globals.h:1046 -msgid "E35: No previous regular expression" -msgstr "E35: 正規表現がまだ実行されていません" +msgid "Vim: Received \"die\" request from session manager\n" +msgstr "Vim: セッションマネージャから \"die\" 要求を受け取りました\n" -#: ../globals.h:1047 -msgid "E481: No range allowed" -msgstr "E481: 範囲指定は許可されていません" +msgid "Close tab" +msgstr "タブページを閉じる" -#: ../globals.h:1048 -msgid "E36: Not enough room" -msgstr "E36: ウィンドウに十分な高さもしくは幅がありません" +msgid "New tab" +msgstr "新規タブページ" -#: ../globals.h:1049 -#, c-format -msgid "E482: Can't create file %s" -msgstr "E482: ファイル %s を作成できません" +msgid "Open Tab..." +msgstr "タブページを開く..." -#: ../globals.h:1050 -msgid "E483: Can't get temp file name" -msgstr "E483: 一時ファイルの名前を取得できません" +msgid "Vim: Main window unexpectedly destroyed\n" +msgstr "Vim: メインウィンドウが不意に破壊されました\n" -#: ../globals.h:1051 -#, c-format -msgid "E484: Can't open file %s" -msgstr "E484: ファイル \"%s\" を開けません" +msgid "&Filter" +msgstr "フィルタ(&F)" -#: ../globals.h:1052 -#, c-format -msgid "E485: Can't read file %s" -msgstr "E485: ファイル %s を読込めません" +msgid "&Cancel" +msgstr "キャンセル(&C)" -#: ../globals.h:1054 -msgid "E37: No write since last change (add ! to override)" -msgstr "E37: 最後の変更が保存されていません (! を追加で変更を破棄)" +msgid "Directories" +msgstr "ディレクトリ" -#: ../globals.h:1055 -msgid "E37: No write since last change" -msgstr "E37: 最後の変更が保存されていません" +msgid "Filter" +msgstr "フィルタ" -#: ../globals.h:1056 -msgid "E38: Null argument" -msgstr "E38: 引数が空です" +msgid "&Help" +msgstr "ヘルプ(&H)" -#: ../globals.h:1057 -msgid "E39: Number expected" -msgstr "E39: 数値が要求されています" +msgid "Files" +msgstr "ファイル" -#: ../globals.h:1058 -#, c-format -msgid "E40: Can't open errorfile %s" -msgstr "E40: エラーファイル %s を開けません" +msgid "&OK" +msgstr "&OK" -#: ../globals.h:1059 -msgid "E41: Out of memory!" -msgstr "E41: メモリが尽き果てました!" +msgid "Selection" +msgstr "選択" -#: ../globals.h:1060 -msgid "Pattern not found" -msgstr "パターンは見つかりませんでした" +msgid "Find &Next" +msgstr "次を検索(&N)" -#: ../globals.h:1061 -#, c-format -msgid "E486: Pattern not found: %s" -msgstr "E486: パターンは見つかりませんでした: %s" +msgid "&Replace" +msgstr "置換(&R)" -#: ../globals.h:1062 -msgid "E487: Argument must be positive" -msgstr "E487: 引数は正の値でなければなりません" +msgid "Replace &All" +msgstr "全て置換(&A)" -#: ../globals.h:1064 -msgid "E459: Cannot go back to previous directory" -msgstr "E459: 前のディレクトリに戻れません" +msgid "&Undo" +msgstr "アンドゥ(&U)" -#: ../globals.h:1066 -msgid "E42: No Errors" -msgstr "E42: エラーはありません" +msgid "Open tab..." +msgstr "タブページを開く" -#: ../globals.h:1067 -msgid "E776: No location list" -msgstr "E776: ロケーションリストはありません" +msgid "Find string (use '\\\\' to find a '\\')" +msgstr "検索文字列 ('\\' を検索するには '\\\\')" -#: ../globals.h:1068 -msgid "E43: Damaged match string" -msgstr "E43: 該当文字列が破損しています" +msgid "Find & Replace (use '\\\\' to find a '\\')" +msgstr "検索・置換 ('\\' を検索するには '\\\\')" -#: ../globals.h:1069 -msgid "E44: Corrupted regexp program" -msgstr "E44: 不正な正規表現プログラムです" +#. We fake this: Use a filter that doesn't select anything and a default +#. * file name that won't be used. +msgid "Not Used" +msgstr "使われません" -#: ../globals.h:1071 -msgid "E45: 'readonly' option is set (add ! to override)" -msgstr "E45: 'readonly' オプションが設定されています (! を追加で上書き)" +msgid "Directory\t*.nothing\n" +msgstr "ディレクトリ\t*.nothing\n" -#: ../globals.h:1073 #, c-format -msgid "E46: Cannot change read-only variable \"%s\"" -msgstr "E46: 読取専用変数 \"%s\" には値を設定できません" +msgid "E671: Cannot find window title \"%s\"" +msgstr "E671: タイトルが \"%s\" のウィンドウは見つかりません" -#: ../globals.h:1075 #, c-format -msgid "E794: Cannot set variable in the sandbox: \"%s\"" -msgstr "E794: サンドボックスでは変数 \"%s\" に値を設定できません" - -#: ../globals.h:1076 -msgid "E47: Error while reading errorfile" -msgstr "E47: エラーファイルの読込中にエラーが発生しました" - -#: ../globals.h:1078 -msgid "E48: Not allowed in sandbox" -msgstr "E48: サンドボックスでは許されません" - -#: ../globals.h:1080 -msgid "E523: Not allowed here" -msgstr "E523: ここでは許可されません" - -#: ../globals.h:1082 -msgid "E359: Screen mode setting not supported" -msgstr "E359: スクリーンモードの設定には対応していません" - -#: ../globals.h:1083 -msgid "E49: Invalid scroll size" -msgstr "E49: 無効なスクロール量です" - -#: ../globals.h:1084 -msgid "E91: 'shell' option is empty" -msgstr "E91: 'shell' オプションが空です" - -#: ../globals.h:1085 -msgid "E255: Couldn't read in sign data!" -msgstr "E255: sign のデータを読込めませんでした" - -#: ../globals.h:1086 -msgid "E72: Close error on swap file" -msgstr "E72: スワップファイルのクローズ時エラーです" +msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." +msgstr "E243: 引数はサポートされません: \"-%s\"; OLE版を使用してください." -#: ../globals.h:1087 -msgid "E73: tag stack empty" -msgstr "E73: タグスタックが空です" +msgid "E672: Unable to open window inside MDI application" +msgstr "E672: MDIアプリの中ではウィンドウを開けません" -#: ../globals.h:1088 -msgid "E74: Command too complex" -msgstr "E74: コマンドが複雑過ぎます" +msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" +msgstr "Vim E458: 色指定が正しくないのでエントリを割り当てられません" -#: ../globals.h:1089 -msgid "E75: Name too long" -msgstr "E75: 名前が長過ぎます" +#, c-format +msgid "E250: Fonts for the following charsets are missing in fontset %s:" +msgstr "E250: 以下の文字セットのフォントがありません %s:" -#: ../globals.h:1090 -msgid "E76: Too many [" -msgstr "E76: [ が多過ぎます" +#, c-format +msgid "E252: Fontset name: %s" +msgstr "E252: フォントセット名: %s" -#: ../globals.h:1091 -msgid "E77: Too many file names" -msgstr "E77: ファイル名が多過ぎます" +#, c-format +msgid "Font '%s' is not fixed-width" +msgstr "フォント '%s' は固定幅ではありません" -#: ../globals.h:1092 -msgid "E488: Trailing characters" -msgstr "E488: 余分な文字が後ろにあります" +#, c-format +msgid "E253: Fontset name: %s" +msgstr "E253: フォントセット名: %s" -#: ../globals.h:1093 -msgid "E78: Unknown mark" -msgstr "E78: 未知のマーク" +#, c-format +msgid "Font0: %s" +msgstr "フォント0: %s" -#: ../globals.h:1094 -msgid "E79: Cannot expand wildcards" -msgstr "E79: ワイルドカードを展開できません" +#, c-format +msgid "Font1: %s" +msgstr "フォント1: %s" -#: ../globals.h:1096 -msgid "E591: 'winheight' cannot be smaller than 'winminheight'" -msgstr "E591: 'winheight' は 'winminheight' より小さくできません" +#, c-format +msgid "Font%ld width is not twice that of font0" +msgstr "フォント%ld の幅がフォント0の2倍ではありません" -#: ../globals.h:1098 -msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" -msgstr "E592: 'winwidth' は 'winminwidth' より小さくできません" +#, c-format +msgid "Font0 width: %ld" +msgstr "フォント0の幅: %ld" -#: ../globals.h:1099 -msgid "E80: Error while writing" -msgstr "E80: 書込み中のエラー" +#, c-format +msgid "Font1 width: %ld" +msgstr "フォント1の幅: %ld" -#: ../globals.h:1100 -msgid "Zero count" -msgstr "ゼロカウント" +msgid "Invalid font specification" +msgstr "無効なフォント指定です" -#: ../globals.h:1101 -msgid "E81: Using not in a script context" -msgstr "E81: スクリプト以外でが使われました" +msgid "&Dismiss" +msgstr "却下する(&D)" -#: ../globals.h:1102 -#, c-format -msgid "E685: Internal error: %s" -msgstr "E685: 内部エラーです: %s" +msgid "no specific match" +msgstr "マッチするものがありません" -#: ../globals.h:1104 -msgid "E363: pattern uses more memory than 'maxmempattern'" -msgstr "E363: パターンが 'maxmempattern' 以上のメモリを使用します" +msgid "Vim - Font Selector" +msgstr "Vim - フォント選択" -#: ../globals.h:1105 -msgid "E749: empty buffer" -msgstr "E749: バッファが空です" +msgid "Name:" +msgstr "名前:" -#: ../globals.h:1108 -msgid "E682: Invalid search pattern or delimiter" -msgstr "E682: 検索パターンか区切り記号が不正です" +#. create toggle button +msgid "Show size in Points" +msgstr "サイズをポイントで表示する" -#: ../globals.h:1109 -msgid "E139: File is loaded in another buffer" -msgstr "E139: 同じ名前のファイルが他のバッファで読込まれています" +msgid "Encoding:" +msgstr "エンコード:" -#: ../globals.h:1110 -#, c-format -msgid "E764: Option '%s' is not set" -msgstr "E764: オプション '%s' は設定されていません" +msgid "Font:" +msgstr "フォント:" -#: ../globals.h:1111 -msgid "E850: Invalid register name" -msgstr "E850: 無効なレジスタ名です" +msgid "Style:" +msgstr "スタイル:" -#: ../globals.h:1114 -msgid "search hit TOP, continuing at BOTTOM" -msgstr "上まで検索したので下に戻ります" +msgid "Size:" +msgstr "サイズ:" -#: ../globals.h:1115 -msgid "search hit BOTTOM, continuing at TOP" -msgstr "下まで検索したので上に戻ります" +msgid "E256: Hangul automata ERROR" +msgstr "E256: ハングルオートマトンエラー" -#: ../hardcopy.c:240 msgid "E550: Missing colon" msgstr "E550: コロンがありません" -#: ../hardcopy.c:252 msgid "E551: Illegal component" msgstr "E551: 不正な構文要素です" -#: ../hardcopy.c:259 msgid "E552: digit expected" msgstr "E552: 数値が必要です" -#: ../hardcopy.c:473 #, c-format msgid "Page %d" msgstr "%d ページ" -#: ../hardcopy.c:597 msgid "No text to be printed" msgstr "印刷するテキストがありません" -#: ../hardcopy.c:668 #, c-format msgid "Printing page %d (%d%%)" msgstr "印刷中: ページ %d (%d%%)" -#: ../hardcopy.c:680 #, c-format msgid " Copy %d of %d" msgstr " コピー %d (全 %d 中)" -#: ../hardcopy.c:733 #, c-format msgid "Printed: %s" msgstr "印刷しました: %s" -#: ../hardcopy.c:740 msgid "Printing aborted" msgstr "印刷が中止されました" -#: ../hardcopy.c:1365 msgid "E455: Error writing to PostScript output file" msgstr "E455: PostScript出力ファイルの書込みエラーです" -#: ../hardcopy.c:1747 #, c-format msgid "E624: Can't open file \"%s\"" msgstr "E624: ファイル \"%s\" を開けません" -#: ../hardcopy.c:1756 ../hardcopy.c:2470 #, c-format msgid "E457: Can't read PostScript resource file \"%s\"" msgstr "E457: PostScriptのリソースファイル \"%s\" を読込めません" -#: ../hardcopy.c:1772 #, c-format msgid "E618: file \"%s\" is not a PostScript resource file" msgstr "E618: ファイル \"%s\" は PostScript リソースファイルではありません" -#: ../hardcopy.c:1788 ../hardcopy.c:1805 ../hardcopy.c:1844 #, c-format msgid "E619: file \"%s\" is not a supported PostScript resource file" msgstr "E619: ファイル \"%s\" は対応していない PostScript リソースファイルです" -#: ../hardcopy.c:1856 #, c-format msgid "E621: \"%s\" resource file has wrong version" msgstr "E621: リソースファイル \"%s\" はバージョンが異なります" -#: ../hardcopy.c:2225 msgid "E673: Incompatible multi-byte encoding and character set." msgstr "E673: 互換性の無いマルチバイトエンコーディングと文字セットです" -#: ../hardcopy.c:2238 msgid "E674: printmbcharset cannot be empty with multi-byte encoding." msgstr "E674: マルチバイトエンコーディングでは printmbcharset を空にできません" -#: ../hardcopy.c:2254 msgid "E675: No default font specified for multi-byte printing." msgstr "" "E675: マルチバイト文字を印刷するためのデフォルトフォントが指定されていません" -#: ../hardcopy.c:2426 msgid "E324: Can't open PostScript output file" msgstr "E324: PostScript出力用のファイルを開けません" -#: ../hardcopy.c:2458 #, c-format msgid "E456: Can't open file \"%s\"" msgstr "E456: ファイル \"%s\" を開けません" -#: ../hardcopy.c:2583 msgid "E456: Can't find PostScript resource file \"prolog.ps\"" msgstr "E456: PostScriptのリソースファイル \"prolog.ps\" が見つかりません" -#: ../hardcopy.c:2593 msgid "E456: Can't find PostScript resource file \"cidfont.ps\"" msgstr "E456: PostScriptのリソースファイル \"cidfont.ps\" が見つかりません" -#: ../hardcopy.c:2622 ../hardcopy.c:2639 ../hardcopy.c:2665 #, c-format msgid "E456: Can't find PostScript resource file \"%s.ps\"" msgstr "E456: PostScriptのリソースファイル \"%s.ps\" が見つかりません" -#: ../hardcopy.c:2654 #, c-format msgid "E620: Unable to convert to print encoding \"%s\"" msgstr "E620: 印刷エンコード \"%s\" へ変換できません" -#: ../hardcopy.c:2877 msgid "Sending to printer..." msgstr "プリンタに送信中..." -#: ../hardcopy.c:2881 msgid "E365: Failed to print PostScript file" msgstr "E365: PostScriptファイルの印刷に失敗しました" -#: ../hardcopy.c:2883 msgid "Print job sent." msgstr "印刷ジョブを送信しました." -#: ../if_cscope.c:85 msgid "Add a new database" msgstr "新データベースを追加" -#: ../if_cscope.c:87 msgid "Query for a pattern" msgstr "パターンのクエリーを追加" -#: ../if_cscope.c:89 msgid "Show this message" msgstr "このメッセージを表示する" -#: ../if_cscope.c:91 msgid "Kill a connection" msgstr "接続を終了する" -#: ../if_cscope.c:93 msgid "Reinit all connections" msgstr "全ての接続を再初期化する" -#: ../if_cscope.c:95 msgid "Show connections" msgstr "接続を表示する" -#: ../if_cscope.c:101 #, c-format msgid "E560: Usage: cs[cope] %s" msgstr "E560: 使用方法: cs[cope] %s" -#: ../if_cscope.c:225 msgid "This cscope command does not support splitting the window.\n" msgstr "このcscopeコマンドは分割ウィンドウではサポートされません.\n" -#: ../if_cscope.c:266 msgid "E562: Usage: cstag " msgstr "E562: 使用法: cstag " -#: ../if_cscope.c:313 msgid "E257: cstag: tag not found" msgstr "E257: cstag: タグが見つかりません" -#: ../if_cscope.c:461 #, c-format msgid "E563: stat(%s) error: %d" msgstr "E563: stat(%s) エラー: %d" -#: ../if_cscope.c:551 +msgid "E563: stat error" +msgstr "E563: stat エラー" + #, c-format msgid "E564: %s is not a directory or a valid cscope database" msgstr "E564: %s はディレクトリ及び有効なcscopeのデータベースではありません" -#: ../if_cscope.c:566 #, c-format msgid "Added cscope database %s" msgstr "cscopeデータベース %s を追加" -#: ../if_cscope.c:616 #, c-format -msgid "E262: error reading cscope connection %" -msgstr "E262: cscopeの接続 % を読込み中のエラーです" +msgid "E262: error reading cscope connection %ld" +msgstr "E262: cscopeの接続 %ld を読込み中のエラーです" -#: ../if_cscope.c:711 msgid "E561: unknown cscope search type" msgstr "E561: 未知のcscope検索型です" -#: ../if_cscope.c:752 ../if_cscope.c:789 msgid "E566: Could not create cscope pipes" msgstr "E566: cscopeパイプを作成できませんでした" -#: ../if_cscope.c:767 msgid "E622: Could not fork for cscope" msgstr "E622: cscopeの起動準備(fork)に失敗しました" -#: ../if_cscope.c:849 msgid "cs_create_connection setpgid failed" msgstr "cs_create_connection への setpgid に失敗しました" -#: ../if_cscope.c:853 ../if_cscope.c:889 msgid "cs_create_connection exec failed" msgstr "cs_create_connection の実行に失敗しました" -#: ../if_cscope.c:863 ../if_cscope.c:902 msgid "cs_create_connection: fdopen for to_fp failed" msgstr "cs_create_connection: to_fp の fdopen に失敗しました" -#: ../if_cscope.c:865 ../if_cscope.c:906 msgid "cs_create_connection: fdopen for fr_fp failed" msgstr "cs_create_connection: fr_fp の fdopen に失敗しました" -#: ../if_cscope.c:890 msgid "E623: Could not spawn cscope process" msgstr "E623: cscopeプロセスを起動できませんでした" -#: ../if_cscope.c:932 msgid "E567: no cscope connections" msgstr "E567: cscope接続に失敗しました" -#: ../if_cscope.c:1009 #, c-format msgid "E469: invalid cscopequickfix flag %c for %c" msgstr "E469: 無効な cscopequickfix フラグ %c の %c です" -#: ../if_cscope.c:1058 #, c-format msgid "E259: no matches found for cscope query %s of %s" msgstr "E259: cscopeクエリー %s of %s に該当がありませんでした" -#: ../if_cscope.c:1142 msgid "cscope commands:\n" msgstr "cscopeコマンド:\n" -#: ../if_cscope.c:1150 #, c-format msgid "%-5s: %s%*s (Usage: %s)" msgstr "%-5s: %s%*s (使用法: %s)" -#: ../if_cscope.c:1155 msgid "" "\n" +" a: Find assignments to this symbol\n" " c: Find functions calling this function\n" " d: Find functions called by this function\n" " e: Find this egrep pattern\n" @@ -3233,6 +2549,7 @@ msgid "" " t: Find this text string\n" msgstr "" "\n" +" a: このシンボルに対する代入を探す\n" " c: この関数を呼んでいる関数を探す\n" " d: この関数から呼んでいる関数を探す\n" " e: このegrepパターンを探す\n" @@ -3242,31 +2559,32 @@ msgstr "" " s: このCシンボルを探す\n" " t: このテキスト文字列を探す\n" -#: ../if_cscope.c:1226 +#, c-format +msgid "E625: cannot open cscope database: %s" +msgstr "E625: cscopeデータベース: %s を開くことができません" + +msgid "E626: cannot get cscope database information" +msgstr "E626: cscopeデータベースの情報を取得できません" + msgid "E568: duplicate cscope database not added" msgstr "E568: 重複するcscopeデータベースは追加されませんでした" -#: ../if_cscope.c:1335 #, c-format msgid "E261: cscope connection %s not found" msgstr "E261: cscope接続 %s が見つかりませんでした" -#: ../if_cscope.c:1364 #, c-format msgid "cscope connection %s closed" msgstr "cscope接続 %s が閉じられました" #. should not reach here -#: ../if_cscope.c:1486 msgid "E570: fatal error in cs_manage_matches" msgstr "E570: cs_manage_matches で致命的なエラーです" -#: ../if_cscope.c:1693 #, c-format msgid "Cscope tag: %s" msgstr "Cscope タグ: %s" -#: ../if_cscope.c:1711 msgid "" "\n" " # line" @@ -3274,111 +2592,319 @@ msgstr "" "\n" " # 行番号" -#: ../if_cscope.c:1713 msgid "filename / context / line\n" msgstr "ファイル名 / 文脈 / 行\n" -#: ../if_cscope.c:1809 #, c-format msgid "E609: Cscope error: %s" msgstr "E609: cscopeエラー: %s" -#: ../if_cscope.c:2053 msgid "All cscope databases reset" msgstr "全てのcscopeデータベースをリセットします" -#: ../if_cscope.c:2123 msgid "no cscope connections\n" msgstr "cscope接続がありません\n" -#: ../if_cscope.c:2126 msgid " # pid database name prepend path\n" msgstr " # pid データベース名 prepend パス\n" -#: ../main.c:144 -msgid "Unknown option argument" -msgstr "未知のオプション引数です" +msgid "Lua library cannot be loaded." +msgstr "Luaライブラリをロードできません." -#: ../main.c:146 -msgid "Too many edit arguments" -msgstr "編集引数が多過ぎます" +msgid "cannot save undo information" +msgstr "アンドゥ情報が保存できません" -#: ../main.c:148 -msgid "Argument missing after" -msgstr "引数がありません" +msgid "" +"E815: Sorry, this command is disabled, the MzScheme libraries could not be " +"loaded." +msgstr "E815: このコマンドは無効です. MzScheme ライブラリをロードできません." -#: ../main.c:150 -msgid "Garbage after option argument" -msgstr "オプション引数の後にゴミがあります" +msgid "" +"E895: Sorry, this command is disabled, the MzScheme's racket/base module " +"could not be loaded." +msgstr "" +"E895: このコマンドは無効です,ごめんなさい. MzScheme の racket/base モジュール" +"がロードできませんでした." -#: ../main.c:152 -msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments" -msgstr "\"+command\", \"-c command\", \"--cmd command\" の引数が多過ぎます" +msgid "invalid expression" +msgstr "無効な式です" -#: ../main.c:154 -msgid "Invalid argument for" -msgstr "無効な引数です: " +msgid "expressions disabled at compile time" +msgstr "式はコンパイル時に無効にされています" -#: ../main.c:294 -#, c-format -msgid "%d files to edit\n" -msgstr "%d 個のファイルが編集を控えています\n" +msgid "hidden option" +msgstr "隠しオプション" -#: ../main.c:1342 -msgid "Attempt to open script file again: \"" -msgstr "スクリプトファイルを再び開いてみます: \"" +msgid "unknown option" +msgstr "未知のオプションです" -#: ../main.c:1350 -msgid "Cannot open for reading: \"" -msgstr "読込用として開けません" +msgid "window index is out of range" +msgstr "範囲外のウィンドウ番号です" -#: ../main.c:1393 -msgid "Cannot open for script output: \"" -msgstr "スクリプト出力用を開けません" +msgid "couldn't open buffer" +msgstr "バッファを開けません" -#: ../main.c:1622 -msgid "Vim: Warning: Output is not to a terminal\n" -msgstr "Vim: 警告: 端末への出力ではありません\n" +msgid "cannot delete line" +msgstr "行を消せません" -#: ../main.c:1624 -msgid "Vim: Warning: Input is not from a terminal\n" -msgstr "Vim: 警告: 端末からの入力ではありません\n" +msgid "cannot replace line" +msgstr "行を置換できません" -#. just in case.. -#: ../main.c:1891 -msgid "pre-vimrc command line" -msgstr "vimrc前のコマンドライン" +msgid "cannot insert line" +msgstr "行を挿入できません" -#: ../main.c:1964 -#, c-format -msgid "E282: Cannot read from \"%s\"" -msgstr "E282: \"%s\"から読込むことができません" +msgid "string cannot contain newlines" +msgstr "文字列には改行文字を含められません" -#: ../main.c:2149 -msgid "" -"\n" +msgid "error converting Scheme values to Vim" +msgstr "Scheme値のVimへの変換エラー" + +msgid "Vim error: ~a" +msgstr "Vim エラー: ~a" + +msgid "Vim error" +msgstr "Vim エラー" + +msgid "buffer is invalid" +msgstr "バッファは無効です" + +msgid "window is invalid" +msgstr "ウィンドウは無効です" + +msgid "linenr out of range" +msgstr "範囲外の行番号です" + +msgid "not allowed in the Vim sandbox" +msgstr "サンドボックスでは許されません" + +msgid "E836: This Vim cannot execute :python after using :py3" +msgstr "E836: このVimでは :py3 を使った後に :python を使えません" + +msgid "" +"E263: Sorry, this command is disabled, the Python library could not be " +"loaded." +msgstr "" +"E263: このコマンドは無効です,ごめんなさい: Pythonライブラリをロードできません" +"でした." + +msgid "" +"E887: Sorry, this command is disabled, the Python's site module could not be " +"loaded." +msgstr "" +"E887: このコマンドは無効です,ごめんなさい. Python の site モジュールをロード" +"できませんでした." + +# Added at 07-Feb-2004. +msgid "E659: Cannot invoke Python recursively" +msgstr "E659: Python を再帰的に実行することはできません" + +msgid "E837: This Vim cannot execute :py3 after using :python" +msgstr "E837: このVimでは :python を使った後に :py3 を使えません" + +msgid "E265: $_ must be an instance of String" +msgstr "E265: $_ は文字列のインスタンスでなければなりません" + +msgid "" +"E266: Sorry, this command is disabled, the Ruby library could not be loaded." +msgstr "" +"E266: このコマンドは無効です,ごめんなさい: Rubyライブラリをロードできませんで" +"した." + +msgid "E267: unexpected return" +msgstr "E267: 予期せぬ return です" + +msgid "E268: unexpected next" +msgstr "E268: 予期せぬ next です" + +msgid "E269: unexpected break" +msgstr "E269: 予期せぬ break です" + +msgid "E270: unexpected redo" +msgstr "E270: 予期せぬ redo です" + +msgid "E271: retry outside of rescue clause" +msgstr "E271: rescue の外の retry です" + +msgid "E272: unhandled exception" +msgstr "E272: 取り扱われなかった例外があります" + +#, c-format +msgid "E273: unknown longjmp status %d" +msgstr "E273: 未知のlongjmp状態: %d" + +msgid "invalid buffer number" +msgstr "無効なバッファ番号です" + +msgid "not implemented yet" +msgstr "まだ実装されていません" + +#. ??? +msgid "cannot set line(s)" +msgstr "行を設定できません" + +msgid "invalid mark name" +msgstr "無効なマーク名です" + +msgid "mark not set" +msgstr "マークは設定されていません" + +#, c-format +msgid "row %d column %d" +msgstr "行 %d 列 %d" + +msgid "cannot insert/append line" +msgstr "行の挿入/追加をできません" + +msgid "line number out of range" +msgstr "範囲外の行番号です" + +msgid "unknown flag: " +msgstr "未知のフラグ: " + +msgid "unknown vimOption" +msgstr "未知の vimOption です" + +msgid "keyboard interrupt" +msgstr "キーボード割込み" + +msgid "vim error" +msgstr "vim エラー" + +msgid "cannot create buffer/window command: object is being deleted" +msgstr "" +"バッファ/ウィンドウ作成コマンドを作成できません: オブジェクトが消去されていま" +"した" + +msgid "" +"cannot register callback command: buffer/window is already being deleted" +msgstr "" +"コールバックコマンドを登録できません: バッファ/ウィンドウが既に消去されました" + +#. This should never happen. Famous last word? +msgid "" +"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim." +"org" +msgstr "" +"E280: TCL 致命的エラー: reflist 汚染!? vim-dev@vim.org に報告してください" + +msgid "cannot register callback command: buffer/window reference not found" +msgstr "" +"コールバックコマンドを登録できません: バッファ/ウィンドウの参照が見つかりませ" +"ん" + +msgid "" +"E571: Sorry, this command is disabled: the Tcl library could not be loaded." +msgstr "" +"E571: このコマンドは無効です,ごめんなさい: Tclライブラリをロードできませんで" +"した." + +#, c-format +msgid "E572: exit code %d" +msgstr "E572: 終了コード %d" + +msgid "cannot get line" +msgstr "行を取得できません" + +msgid "Unable to register a command server name" +msgstr "命令サーバーの名前を登録できません" + +msgid "E248: Failed to send command to the destination program" +msgstr "E248: 目的のプログラムへのコマンド送信に失敗しました" + +#, c-format +msgid "E573: Invalid server id used: %s" +msgstr "E573: 無効なサーバーIDが使われました: %s" + +msgid "E251: VIM instance registry property is badly formed. Deleted!" +msgstr "E251: VIM 実体の登録プロパティが不正です. 消去しました!" + +#, c-format +msgid "E696: Missing comma in List: %s" +msgstr "E696: リスト型にカンマがありません: %s" + +#, c-format +msgid "E697: Missing end of List ']': %s" +msgstr "E697: リスト型の最後に ']' がありません: %s" + +msgid "Unknown option argument" +msgstr "未知のオプション引数です" + +msgid "Too many edit arguments" +msgstr "編集引数が多過ぎます" + +msgid "Argument missing after" +msgstr "引数がありません" + +msgid "Garbage after option argument" +msgstr "オプション引数の後にゴミがあります" + +msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments" +msgstr "\"+command\", \"-c command\", \"--cmd command\" の引数が多過ぎます" + +msgid "Invalid argument for" +msgstr "無効な引数です: " + +#, c-format +msgid "%d files to edit\n" +msgstr "%d 個のファイルが編集を控えています\n" + +msgid "netbeans is not supported with this GUI\n" +msgstr "netbeans はこのGUIでは利用できません\n" + +msgid "'-nb' cannot be used: not enabled at compile time\n" +msgstr "'-nb' 使用不可能です: コンパイル時に無効にされています\n" + +msgid "This Vim was not compiled with the diff feature." +msgstr "このVimにはdiff機能がありません(コンパイル時設定)." + +msgid "Attempt to open script file again: \"" +msgstr "スクリプトファイルを再び開いてみます: \"" + +msgid "Cannot open for reading: \"" +msgstr "読込用として開けません" + +msgid "Cannot open for script output: \"" +msgstr "スクリプト出力用を開けません" + +msgid "Vim: Error: Failure to start gvim from NetBeans\n" +msgstr "Vim: エラー: NetBeansからgvimをスタートできません\n" + +msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n" +msgstr "Vim: エラー: このバージョンのVimはCygwin端末では動作しません\n" + +msgid "Vim: Warning: Output is not to a terminal\n" +msgstr "Vim: 警告: 端末への出力ではありません\n" + +msgid "Vim: Warning: Input is not from a terminal\n" +msgstr "Vim: 警告: 端末からの入力ではありません\n" + +#. just in case.. +msgid "pre-vimrc command line" +msgstr "vimrc前のコマンドライン" + +#, c-format +msgid "E282: Cannot read from \"%s\"" +msgstr "E282: \"%s\"から読込むことができません" + +msgid "" +"\n" "More info with: \"vim -h\"\n" msgstr "" "\n" "より詳細な情報は: \"vim -h\"\n" -#: ../main.c:2178 msgid "[file ..] edit specified file(s)" msgstr "[ファイル..] あるファイルを編集する" -#: ../main.c:2179 msgid "- read text from stdin" msgstr "- 標準入力からテキストを読込む" -#: ../main.c:2180 msgid "-t tag edit file where tag is defined" msgstr "-t タグ タグが定義されたところから編集する" -#: ../main.c:2181 msgid "-q [errorfile] edit file with first error" msgstr "-q [errorfile] 最初のエラーで編集する" -#: ../main.c:2187 msgid "" "\n" "\n" @@ -3388,11 +2914,9 @@ msgstr "" "\n" "使用法:" -#: ../main.c:2189 msgid " vim [arguments] " msgstr " vim [引数] " -#: ../main.c:2193 msgid "" "\n" " or:" @@ -3400,7 +2924,13 @@ msgstr "" "\n" " もしくは:" -#: ../main.c:2196 +msgid "" +"\n" +"Where case is ignored prepend / to make flag upper case" +msgstr "" +"\n" +"大小文字が無視される場合は大文字にするために / を前置してください" + msgid "" "\n" "\n" @@ -3410,189 +2940,319 @@ msgstr "" "\n" "引数:\n" -#: ../main.c:2197 msgid "--\t\t\tOnly file names after this" msgstr "--\t\t\tこのあとにはファイル名だけ" -#: ../main.c:2199 msgid "--literal\t\tDon't expand wildcards" msgstr "--literal\t\tワイルドカードを展開しない" -#: ../main.c:2201 +msgid "-register\t\tRegister this gvim for OLE" +msgstr "-register\t\tこのgvimをOLEとして登録する" + +msgid "-unregister\t\tUnregister gvim for OLE" +msgstr "-unregister\t\tgvimのOLE登録を解除する" + +msgid "-g\t\t\tRun using GUI (like \"gvim\")" +msgstr "-g\t\t\tGUIで起動する (\"gvim\" と同じ)" + +msgid "-f or --nofork\tForeground: Don't fork when starting GUI" +msgstr "-f or --nofork\tフォアグラウンド: GUIを始めるときにforkしない" + msgid "-v\t\t\tVi mode (like \"vi\")" msgstr "-v\t\t\tViモード (\"vi\" と同じ)" -#: ../main.c:2202 msgid "-e\t\t\tEx mode (like \"ex\")" msgstr "-e\t\t\tExモード (\"ex\" と同じ)" -#: ../main.c:2203 msgid "-E\t\t\tImproved Ex mode" msgstr "-E\t\t\t改良Exモード" -#: ../main.c:2204 msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")" msgstr "-s\t\t\tサイレント(バッチ)モード (\"ex\" 専用)" -#: ../main.c:2205 msgid "-d\t\t\tDiff mode (like \"vimdiff\")" msgstr "-d\t\t\t差分モード (\"vidiff\" と同じ)" -#: ../main.c:2206 msgid "-y\t\t\tEasy mode (like \"evim\", modeless)" msgstr "-y\t\t\tイージーモード (\"evim\" と同じ, モード無)" -#: ../main.c:2207 msgid "-R\t\t\tReadonly mode (like \"view\")" msgstr "-R\t\t\t読込専用モード (\"view\" と同じ)" -#: ../main.c:2208 msgid "-Z\t\t\tRestricted mode (like \"rvim\")" msgstr "-Z\t\t\t制限モード (\"rvim\" と同じ)" -#: ../main.c:2209 msgid "-m\t\t\tModifications (writing files) not allowed" msgstr "-m\t\t\t変更 (ファイル保存時) をできないようにする" -#: ../main.c:2210 msgid "-M\t\t\tModifications in text not allowed" msgstr "-M\t\t\tテキストの編集を行なえないようにする" -#: ../main.c:2211 msgid "-b\t\t\tBinary mode" msgstr "-b\t\t\tバイナリモード" -#: ../main.c:2212 msgid "-l\t\t\tLisp mode" msgstr "-l\t\t\tLispモード" -#: ../main.c:2213 msgid "-C\t\t\tCompatible with Vi: 'compatible'" msgstr "-C\t\t\tVi互換モード: 'compatible'" -#: ../main.c:2214 msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'" msgstr "-N\t\t\tVi非互換モード: 'nocompatible" -#: ../main.c:2215 msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]" msgstr "-V[N][fname]\t\tログ出力設定 [レベル N] [ログファイル名 fname]" -#: ../main.c:2216 msgid "-D\t\t\tDebugging mode" msgstr "-D\t\t\tデバッグモード" -#: ../main.c:2217 msgid "-n\t\t\tNo swap file, use memory only" msgstr "-n\t\t\tスワップファイルを使用せずメモリだけ" -#: ../main.c:2218 msgid "-r\t\t\tList swap files and exit" msgstr "-r\t\t\tスワップファイルを列挙し終了" -#: ../main.c:2219 msgid "-r (with file name)\tRecover crashed session" msgstr "-r (ファイル名)\tクラッシュしたセッションを復帰" -#: ../main.c:2220 msgid "-L\t\t\tSame as -r" msgstr "-L\t\t\t-rと同じ" -#: ../main.c:2221 +msgid "-f\t\t\tDon't use newcli to open window" +msgstr "-f\t\t\tウィンドウを開くのに newcli を使用しない" + +msgid "-dev \t\tUse for I/O" +msgstr "-dev \t\tI/Oに を使用する" + msgid "-A\t\t\tstart in Arabic mode" msgstr "-A\t\t\tアラビア語モードで起動する" -#: ../main.c:2222 msgid "-H\t\t\tStart in Hebrew mode" msgstr "-H\t\t\tヘブライ語モードで起動する" -#: ../main.c:2223 msgid "-F\t\t\tStart in Farsi mode" msgstr "-F\t\t\tペルシア語モードで起動する" -#: ../main.c:2224 msgid "-T \tSet terminal type to " msgstr "-T \t端末を に設定する" -#: ../main.c:2225 +msgid "--not-a-term\t\tSkip warning for input/output not being a terminal" +msgstr "--not-a-term\t\t入出力が端末でないとの警告をスキップする" + msgid "-u \t\tUse instead of any .vimrc" msgstr "-u \t\t.vimrcの代わりに を使う" -#: ../main.c:2226 +msgid "-U \t\tUse instead of any .gvimrc" +msgstr "-U \t\t.gvimrcの代わりに を使う" + msgid "--noplugin\t\tDon't load plugin scripts" msgstr "--noplugin\t\tプラグインスクリプトをロードしない" -#: ../main.c:2227 msgid "-p[N]\t\tOpen N tab pages (default: one for each file)" msgstr "-p[N]\t\tN 個タブページを開く(省略値: ファイルにつき1個)" -#: ../main.c:2228 msgid "-o[N]\t\tOpen N windows (default: one for each file)" msgstr "-o[N]\t\tN 個ウィンドウを開く(省略値: ファイルにつき1個)" -#: ../main.c:2229 msgid "-O[N]\t\tLike -o but split vertically" msgstr "-O[N]\t\t-oと同じだが垂直分割" -#: ../main.c:2230 msgid "+\t\t\tStart at end of file" msgstr "+\t\t\tファイルの最後からはじめる" -#: ../main.c:2231 msgid "+\t\tStart at line " msgstr "+\t\t 行からはじめる" -#: ../main.c:2232 msgid "--cmd \tExecute before loading any vimrc file" msgstr "--cmd \tvimrcをロードする前に を実行する" -#: ../main.c:2233 msgid "-c \t\tExecute after loading the first file" msgstr "-c \t\t最初のファイルをロード後 を実行する" -#: ../main.c:2235 msgid "-S \t\tSource file after loading the first file" msgstr "-S \t\t最初のファイルをロード後ファイル を取込む" -#: ../main.c:2236 msgid "-s \tRead Normal mode commands from file " msgstr "-s \tファイル からノーマルコマンドを読込む" -#: ../main.c:2237 msgid "-w \tAppend all typed commands to file " msgstr "-w \t入力した全コマンドをファイル に追加する" -#: ../main.c:2238 msgid "-W \tWrite all typed commands to file " msgstr "-W \t入力した全コマンドをファイル に保存する" -#: ../main.c:2240 +msgid "-x\t\t\tEdit encrypted files" +msgstr "-x\t\t\t暗号化されたファイルを編集する" + +msgid "-display \tConnect vim to this particular X-server" +msgstr "-display \tvimを指定した X サーバーに接続する" + +msgid "-X\t\t\tDo not connect to X server" +msgstr "-X\t\t\tXサーバーに接続しない" + +msgid "--remote \tEdit in a Vim server if possible" +msgstr "--remote \t可能ならばVimサーバーで を編集する" + +msgid "--remote-silent Same, don't complain if there is no server" +msgstr "--remote-silent 同上, サーバーが無くても警告文を出力しない" + +msgid "" +"--remote-wait As --remote but wait for files to have been edited" +msgstr "--remote-wait \t--remote後 ファイルの編集が終わるのを待つ" + +msgid "" +"--remote-wait-silent Same, don't complain if there is no server" +msgstr "" +"--remote-wait-silent 同上, サーバーが無くても警告文を出力しない" + +msgid "" +"--remote-tab[-wait][-silent] As --remote but use tab page per file" +msgstr "" +"--remote-tab[-wait][-silent] --remoteでファイル1つにつき1つのタブ" +"ページを開く" + +msgid "--remote-send \tSend to a Vim server and exit" +msgstr "--remote-send \tVimサーバーに を送信して終了する" + +msgid "--remote-expr \tEvaluate in a Vim server and print result" +msgstr "--remote-expr \tサーバーで を実行して結果を表示する" + +msgid "--serverlist\t\tList available Vim server names and exit" +msgstr "--serverlist\t\tVimサーバー名の一覧を表示して終了する" + +msgid "--servername \tSend to/become the Vim server " +msgstr "--servername \tVimサーバー に送信/名前設定する" + msgid "--startuptime \tWrite startup timing messages to " msgstr "--startuptime \t起動にかかった時間の詳細を へ出力する" -#: ../main.c:2242 msgid "-i \t\tUse instead of .viminfo" msgstr "-i \t\t.viminfoの代わりに を使う" -#: ../main.c:2243 msgid "-h or --help\tPrint Help (this message) and exit" msgstr "-h or --help\tヘルプ(このメッセージ)を表示し終了する" -#: ../main.c:2244 msgid "--version\t\tPrint version information and exit" msgstr "--version\t\tバージョン情報を表示し終了する" -#: ../mark.c:676 +msgid "" +"\n" +"Arguments recognised by gvim (Motif version):\n" +msgstr "" +"\n" +"gvimによって解釈される引数(Motifバージョン):\n" + +msgid "" +"\n" +"Arguments recognised by gvim (neXtaw version):\n" +msgstr "" +"\n" +"gvimによって解釈される引数(neXtawバージョン):\n" + +msgid "" +"\n" +"Arguments recognised by gvim (Athena version):\n" +msgstr "" +"\n" +"gvimによって解釈される引数(Athenaバージョン):\n" + +msgid "-display \tRun vim on " +msgstr "-display \t でvimを実行する" + +msgid "-iconic\t\tStart vim iconified" +msgstr "-iconic\t\t最小化した状態でvimを起動する" + +msgid "-background \tUse for the background (also: -bg)" +msgstr "-background \t背景色に を使う(同義: -bg)" + +msgid "-foreground \tUse for normal text (also: -fg)" +msgstr "-foreground \t前景色に を使う(同義: -fg)" + +msgid "-font \t\tUse for normal text (also: -fn)" +msgstr "-font \t\tテキスト表示に を使う(同義: -fn)" + +msgid "-boldfont \tUse for bold text" +msgstr "-boldfont \t太字に を使う" + +msgid "-italicfont \tUse for italic text" +msgstr "-italicfont \t斜体字に を使う" + +msgid "-geometry \tUse for initial geometry (also: -geom)" +msgstr "-geometry \t初期配置に を使う(同義: -geom)" + +msgid "-borderwidth \tUse a border width of (also: -bw)" +msgstr "-borderwidth \t境界の幅を にする(同義: -bw)" + +msgid "-scrollbarwidth Use a scrollbar width of (also: -sw)" +msgstr "" +"-scrollbarwidth スクロールバーの幅を にする(同義: -sw)" + +msgid "-menuheight \tUse a menu bar height of (also: -mh)" +msgstr "-menuheight \tメニューバーの高さを にする(同義: -mh)" + +msgid "-reverse\t\tUse reverse video (also: -rv)" +msgstr "-reverse\t\t反転映像を使用する(同義: -rv)" + +msgid "+reverse\t\tDon't use reverse video (also: +rv)" +msgstr "+reverse\t\t反転映像を使用しない(同義: +rv)" + +msgid "-xrm \tSet the specified resource" +msgstr "-xrm \t特定のリソースを使用する" + +msgid "" +"\n" +"Arguments recognised by gvim (GTK+ version):\n" +msgstr "" +"\n" +"gvimによって解釈される引数(GTK+バージョン):\n" + +msgid "-display \tRun vim on (also: --display)" +msgstr "-display \t でvimを実行する(同義: --display)" + +msgid "--role \tSet a unique role to identify the main window" +msgstr "--role \tメインウィンドウを識別する一意な役割(role)を設定する" + +msgid "--socketid \tOpen Vim inside another GTK widget" +msgstr "--socketid \t異なるGTK widgetでVimを開く" + +msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout" +msgstr "--echo-wid\t\tウィンドウIDを標準出力に出力する" + +msgid "-P \tOpen Vim inside parent application" +msgstr "-P <親のタイトル>\tVimを親アプリケーションの中で起動する" + +msgid "--windowid \tOpen Vim inside another win32 widget" +msgstr "--windowid \t異なるWin32 widgetの内部にVimを開く" + +msgid "No display" +msgstr "ディスプレイが見つかりません" + +#. Failed to send, abort. +msgid ": Send failed.\n" +msgstr ": 送信に失敗しました.\n" + +#. Let vim start normally. +msgid ": Send failed. Trying to execute locally\n" +msgstr ": 送信に失敗しました. ローカルでの実行を試みています\n" + +#, c-format +msgid "%d of %d edited" +msgstr "%d 個 (%d 個中) のファイルを編集しました" + +msgid "No display: Send expression failed.\n" +msgstr "ディスプレイがありません: 式の送信に失敗しました.\n" + +msgid ": Send expression failed.\n" +msgstr ": 式の送信に失敗しました.\n" + msgid "No marks set" msgstr "マークが設定されていません" -#: ../mark.c:678 #, c-format msgid "E283: No marks matching \"%s\"" msgstr "E283: \"%s\" に該当するマークがありません" #. Highlight title -#: ../mark.c:687 msgid "" "\n" "mark line col file/text" @@ -3601,7 +3261,6 @@ msgstr "" "mark 行 列 ファイル/テキスト" #. Highlight title -#: ../mark.c:789 msgid "" "\n" " jump line col file/text" @@ -3610,7 +3269,6 @@ msgstr "" " jump 行 列 ファイル/テキスト" #. Highlight title -#: ../mark.c:831 msgid "" "\n" "change line col text" @@ -3618,7 +3276,6 @@ msgstr "" "\n" "変更 行 列 テキスト" -#: ../mark.c:1238 msgid "" "\n" "# File marks:\n" @@ -3627,7 +3284,6 @@ msgstr "" "# ファイルマーク:\n" #. Write the jumplist with -' -#: ../mark.c:1271 msgid "" "\n" "# Jumplist (newest first):\n" @@ -3635,7 +3291,6 @@ msgstr "" "\n" "# ジャンプリスト (新しいものが先):\n" -#: ../mark.c:1352 msgid "" "\n" "# History of marks within files (newest to oldest):\n" @@ -3643,84 +3298,88 @@ msgstr "" "\n" "# ファイル内マークの履歴 (新しいものから古いもの):\n" -#: ../mark.c:1431 msgid "Missing '>'" msgstr "'>' が見つかりません" -#: ../memfile.c:426 +msgid "E543: Not a valid codepage" +msgstr "E543: 無効なコードページです" + +msgid "E284: Cannot set IC values" +msgstr "E284: ICの値を設定できません" + +msgid "E285: Failed to create input context" +msgstr "E285: インプットコンテキストの作成に失敗しました" + +msgid "E286: Failed to open input method" +msgstr "E286: インプットメソッドのオープンに失敗しました" + +msgid "E287: Warning: Could not set destroy callback to IM" +msgstr "E287: 警告: IMの破壊コールバックを設定できませんでした" + +msgid "E288: input method doesn't support any style" +msgstr "E288: インプットメソッドはどんなスタイルもサポートしません" + +msgid "E289: input method doesn't support my preedit type" +msgstr "E289: インプットメソッドは my preedit type をサポートしません" + msgid "E293: block was not locked" msgstr "E293: ブロックがロックされていません" -#: ../memfile.c:799 msgid "E294: Seek error in swap file read" msgstr "E294: スワップファイル読込時にシークエラーです" -#: ../memfile.c:803 msgid "E295: Read error in swap file" msgstr "E295: スワップファイルの読込みエラーです" -#: ../memfile.c:849 msgid "E296: Seek error in swap file write" msgstr "E296: スワップファイル書込み時にシークエラーです" -#: ../memfile.c:865 msgid "E297: Write error in swap file" msgstr "E297: スワップファイルの書込みエラーです" -#: ../memfile.c:1036 msgid "E300: Swap file already exists (symlink attack?)" msgstr "E300: スワップファイルが既に存在します (symlinkによる攻撃?)" -#: ../memline.c:318 msgid "E298: Didn't get block nr 0?" msgstr "E298: ブロック 0 を取得できません?" -#: ../memline.c:361 msgid "E298: Didn't get block nr 1?" msgstr "E298: ブロック 1 を取得できません?" -#: ../memline.c:377 msgid "E298: Didn't get block nr 2?" msgstr "E298: ブロック 2 を取得できません?" +msgid "E843: Error while updating swap file crypt" +msgstr "E843: スワップファイルの暗号を更新中にエラーが発生しました" + #. could not (re)open the swap file, what can we do???? -#: ../memline.c:465 msgid "E301: Oops, lost the swap file!!!" msgstr "E301: おっと, スワップファイルが失われました!!!" -#: ../memline.c:477 msgid "E302: Could not rename swap file" msgstr "E302: スワップファイルの名前を変えられません" -#: ../memline.c:554 #, c-format msgid "E303: Unable to open swap file for \"%s\", recovery impossible" msgstr "E303: \"%s\" のスワップファイルを開けないのでリカバリは不可能です" -#: ../memline.c:666 msgid "E304: ml_upd_block0(): Didn't get block 0??" msgstr "E304: ml_upd_block0(): ブロック 0 を取得できませんでした??" -#. no swap files found -#: ../memline.c:830 #, c-format msgid "E305: No swap file found for %s" msgstr "E305: %s にはスワップファイルが見つかりません" -#: ../memline.c:839 msgid "Enter number of swap file to use (0 to quit): " msgstr "使用するスワップファイルの番号を入力してください(0 で終了): " -#: ../memline.c:879 #, c-format msgid "E306: Cannot open %s" msgstr "E306: %s を開けません" -#: ../memline.c:897 msgid "Unable to read block 0 from " msgstr "ブロック 0 を読込めません " -#: ../memline.c:900 msgid "" "\n" "Maybe no changes were made or Vim did not update the swap file." @@ -3728,28 +3387,22 @@ msgstr "" "\n" "恐らく変更がされていないかVimがスワップファイルを更新していません." -#: ../memline.c:909 msgid " cannot be used with this version of Vim.\n" msgstr " Vimのこのバージョンでは使用できません.\n" -#: ../memline.c:911 msgid "Use Vim version 3.0.\n" msgstr "Vimのバージョン3.0を使用してください.\n" -#: ../memline.c:916 #, c-format msgid "E307: %s does not look like a Vim swap file" msgstr "E307: %s はVimのスワップファイルではないようです" -#: ../memline.c:922 msgid " cannot be used on this computer.\n" msgstr " このコンピュータでは使用できません.\n" -#: ../memline.c:924 msgid "The file was created on " msgstr "このファイルは次の場所で作られました " -#: ../memline.c:928 msgid "" ",\n" "or the file has been damaged." @@ -3757,85 +3410,104 @@ msgstr "" ",\n" "もしくはファイルが損傷しています." -#: ../memline.c:945 +#, c-format +msgid "" +"E833: %s is encrypted and this version of Vim does not support encryption" +msgstr "" +"E833: %s はこのバージョンのVimでサポートしていない形式で暗号化されています" + msgid " has been damaged (page size is smaller than minimum value).\n" msgstr " は損傷しています (ページサイズが最小値を下回っています).\n" -#: ../memline.c:974 #, c-format msgid "Using swap file \"%s\"" msgstr "スワップファイル \"%s\" を使用中" -#: ../memline.c:980 #, c-format msgid "Original file \"%s\"" msgstr "原本ファイル \"%s\"" -#: ../memline.c:995 msgid "E308: Warning: Original file may have been changed" msgstr "E308: 警告: 原本ファイルが変更されています" -#: ../memline.c:1061 +#, c-format +msgid "Swap file is encrypted: \"%s\"" +msgstr "スワップファイルは暗号化されています: \"%s\"" + +msgid "" +"\n" +"If you entered a new crypt key but did not write the text file," +msgstr "" +"\n" +"新しい暗号キーを入力したあとにテキストファイルを保存していない場合は," + +msgid "" +"\n" +"enter the new crypt key." +msgstr "" +"\n" +"新しい暗号キーを入力してください." + +msgid "" +"\n" +"If you wrote the text file after changing the crypt key press enter" +msgstr "" +"\n" +"暗号キーを変えたあとにテキストファイルを保存した場合は, テキストファイルと" + +msgid "" +"\n" +"to use the same key for text file and swap file" +msgstr "" +"\n" +"スワップファイルに同じ暗号キーを使うためにenterだけを押してください." + #, c-format msgid "E309: Unable to read block 1 from %s" msgstr "E309: %s からブロック 1 を読込めません" -#: ../memline.c:1065 msgid "???MANY LINES MISSING" msgstr "???多くの行が失われています" -#: ../memline.c:1076 msgid "???LINE COUNT WRONG" msgstr "???行数が間違っています" -#: ../memline.c:1082 msgid "???EMPTY BLOCK" msgstr "???ブロックが空です" -#: ../memline.c:1103 msgid "???LINES MISSING" msgstr "???行が失われています" -#: ../memline.c:1128 #, c-format msgid "E310: Block 1 ID wrong (%s not a .swp file?)" msgstr "E310: ブロック 1 のIDが間違っています(%s が.swpファイルでない?)" -#: ../memline.c:1133 msgid "???BLOCK MISSING" msgstr "???ブロックがありません" -#: ../memline.c:1147 msgid "??? from here until ???END lines may be messed up" msgstr "??? ここから ???END までの行が破壊されているようです" -#: ../memline.c:1164 msgid "??? from here until ???END lines may have been inserted/deleted" msgstr "??? ここから ???END までの行が挿入か削除されたようです" -#: ../memline.c:1181 msgid "???END" msgstr "???END" -#: ../memline.c:1238 msgid "E311: Recovery Interrupted" msgstr "E311: リカバリが割込まれました" -#: ../memline.c:1243 msgid "" "E312: Errors detected while recovering; look for lines starting with ???" msgstr "" "E312: リカバリの最中にエラーが検出されました; ???で始まる行を参照してください" -#: ../memline.c:1245 msgid "See \":help E312\" for more information." msgstr "詳細は \":help E312\" を参照してください" -#: ../memline.c:1249 msgid "Recovery completed. You should check if everything is OK." msgstr "リカバリが終了しました. 全てが正しいかチェックしてください." -#: ../memline.c:1251 msgid "" "\n" "(You might want to write out this file under another name\n" @@ -3843,15 +3515,12 @@ msgstr "" "\n" "(変更をチェックするために, このファイルを別の名前で保存した上で\n" -#: ../memline.c:1252 msgid "and run diff with the original file to check for changes)" msgstr "原本ファイルとの diff を実行すると良いでしょう)" -#: ../memline.c:1254 msgid "Recovery completed. Buffer contents equals file contents." msgstr "復元完了. バッファの内容はファイルと同じになりました." -#: ../memline.c:1255 msgid "" "\n" "You may want to delete the .swp file now.\n" @@ -3861,52 +3530,43 @@ msgstr "" "元の.swpファイルは削除しても構いません\n" "\n" +msgid "Using crypt key from swap file for the text file.\n" +msgstr "スワップファイルから取得した暗号キーをテキストファイルに使います.\n" + #. use msg() to start the scrolling properly -#: ../memline.c:1327 msgid "Swap files found:" msgstr "スワップファイルが複数見つかりました:" -#: ../memline.c:1446 msgid " In current directory:\n" msgstr " 現在のディレクトリ:\n" -#: ../memline.c:1448 msgid " Using specified name:\n" msgstr " 以下の名前を使用中:\n" -#: ../memline.c:1450 msgid " In directory " msgstr " ディレクトリ " -#: ../memline.c:1465 msgid " -- none --\n" msgstr " -- なし --\n" -#: ../memline.c:1527 msgid " owned by: " msgstr " 所有者: " -#: ../memline.c:1529 msgid " dated: " msgstr " 日付: " -#: ../memline.c:1532 ../memline.c:3231 msgid " dated: " msgstr " 日付: " -#: ../memline.c:1548 msgid " [from Vim version 3.0]" msgstr " [from Vim version 3.0]" -#: ../memline.c:1550 msgid " [does not look like a Vim swap file]" msgstr " [Vimのスワップファイルではないようです]" -#: ../memline.c:1552 msgid " file name: " msgstr " ファイル名: " -#: ../memline.c:1558 msgid "" "\n" " modified: " @@ -3914,15 +3574,12 @@ msgstr "" "\n" " 変更状態: " -#: ../memline.c:1559 msgid "YES" msgstr "あり" -#: ../memline.c:1559 msgid "no" msgstr "なし" -#: ../memline.c:1562 msgid "" "\n" " user name: " @@ -3930,11 +3587,9 @@ msgstr "" "\n" " ユーザー名: " -#: ../memline.c:1568 msgid " host name: " msgstr " ホスト名: " -#: ../memline.c:1570 msgid "" "\n" " host name: " @@ -3942,7 +3597,6 @@ msgstr "" "\n" " ホスト名: " -#: ../memline.c:1575 msgid "" "\n" " process ID: " @@ -3950,11 +3604,16 @@ msgstr "" "\n" " プロセスID: " -#: ../memline.c:1579 msgid " (still running)" msgstr " (まだ実行中)" -#: ../memline.c:1586 +msgid "" +"\n" +" [not usable with this version of Vim]" +msgstr "" +"\n" +" [このVimバージョンでは使用できません]" + msgid "" "\n" " [not usable on this computer]" @@ -3962,97 +3621,75 @@ msgstr "" "\n" " [このコンピュータでは使用できません]" -#: ../memline.c:1590 msgid " [cannot be read]" msgstr " [読込めません]" -#: ../memline.c:1593 msgid " [cannot be opened]" msgstr " [開けません]" -#: ../memline.c:1698 msgid "E313: Cannot preserve, there is no swap file" msgstr "E313: スワップファイルが無いので維持できません" -#: ../memline.c:1747 msgid "File preserved" msgstr "ファイルが維持されます" -#: ../memline.c:1749 msgid "E314: Preserve failed" msgstr "E314: 維持に失敗しました" -#: ../memline.c:1819 #, c-format -msgid "E315: ml_get: invalid lnum: %" -msgstr "E315: ml_get: 無効なlnumです: %" +msgid "E315: ml_get: invalid lnum: %ld" +msgstr "E315: ml_get: 無効なlnumです: %ld" -#: ../memline.c:1851 #, c-format -msgid "E316: ml_get: cannot find line %" -msgstr "E316: ml_get: 行 % を見つけられません" +msgid "E316: ml_get: cannot find line %ld" +msgstr "E316: ml_get: 行 %ld を見つけられません" -#: ../memline.c:2236 msgid "E317: pointer block id wrong 3" msgstr "E317: ポインタブロックのIDが間違っています 3" -#: ../memline.c:2311 msgid "stack_idx should be 0" msgstr "stack_idx は 0 であるべきです" -#: ../memline.c:2369 msgid "E318: Updated too many blocks?" msgstr "E318: 更新されたブロックが多過ぎるかも?" -#: ../memline.c:2511 msgid "E317: pointer block id wrong 4" msgstr "E317: ポインタブロックのIDが間違っています 4" -#: ../memline.c:2536 msgid "deleted block 1?" msgstr "ブロック 1 は消された?" -#: ../memline.c:2707 #, c-format -msgid "E320: Cannot find line %" -msgstr "E320: 行 % が見つかりません" +msgid "E320: Cannot find line %ld" +msgstr "E320: 行 %ld が見つかりません" -#: ../memline.c:2916 msgid "E317: pointer block id wrong" msgstr "E317: ポインタブロックのIDが間違っています" -#: ../memline.c:2930 msgid "pe_line_count is zero" msgstr "pe_line_count がゼロです" -#: ../memline.c:2955 #, c-format -msgid "E322: line number out of range: % past the end" -msgstr "E322: 行番号が範囲外です: % 超えています" +msgid "E322: line number out of range: %ld past the end" +msgstr "E322: 行番号が範囲外です: %ld 超えています" -#: ../memline.c:2959 #, c-format -msgid "E323: line count wrong in block %" -msgstr "E323: ブロック % の行カウントが間違っています" +msgid "E323: line count wrong in block %ld" +msgstr "E323: ブロック %ld の行カウントが間違っています" -#: ../memline.c:2999 msgid "Stack size increases" msgstr "スタックサイズが増えます" -#: ../memline.c:3038 msgid "E317: pointer block id wrong 2" msgstr "E317: ポインタブロックのIDが間違っています 2" -#: ../memline.c:3070 #, c-format msgid "E773: Symlink loop for \"%s\"" msgstr "E773: \"%s\" のシンボリックリンクがループになっています" -#: ../memline.c:3221 msgid "E325: ATTENTION" msgstr "E325: 注意" -#: ../memline.c:3222 msgid "" "\n" "Found a swap file by the name \"" @@ -4060,39 +3697,32 @@ msgstr "" "\n" "次の名前でスワップファイルを見つけました \"" -#: ../memline.c:3226 msgid "While opening file \"" msgstr "次のファイルを開いている最中 \"" -#: ../memline.c:3239 msgid " NEWER than swap file!\n" msgstr " スワップファイルよりも新しいです!\n" -#: ../memline.c:3244 +#. Some of these messages are long to allow translation to +#. * other languages. msgid "" "\n" "(1) Another program may be editing the same file. If this is the case,\n" " be careful not to end up with two different instances of the same\n" -" file when making changes." +" file when making changes. Quit, or continue with caution.\n" msgstr "" "\n" "(1) 別のプログラムが同じファイルを編集しているかもしれません.\n" " この場合には, 変更をしてしまうと1つのファイルに対して異なる2つの\n" -" インスタンスができてしまうので, そうしないように気をつけてください." - -#: ../memline.c:3245 -msgid " Quit, or continue with caution.\n" -msgstr " 終了するか, 注意しながら続けてください.\n" +" インスタンスができてしまうので, そうしないように気をつけてください.\n" +" 終了するか, 注意しながら続けてください.\n" -#: ../memline.c:3246 msgid "(2) An edit session for this file crashed.\n" msgstr "(2) このファイルの編集セッションがクラッシュした.\n" -#: ../memline.c:3247 msgid " If this is the case, use \":recover\" or \"vim -r " msgstr " この場合には \":recover\" か \"vim -r " -#: ../memline.c:3249 msgid "" "\"\n" " to recover the changes (see \":help recovery\").\n" @@ -4100,11 +3730,9 @@ msgstr "" "\"\n" " を使用して変更をリカバーします(\":help recovery\" を参照).\n" -#: ../memline.c:3250 msgid " If you did this already, delete the swap file \"" msgstr " 既にこれを行なったのならば, スワップファイル \"" -#: ../memline.c:3252 msgid "" "\"\n" " to avoid this message.\n" @@ -4112,23 +3740,18 @@ msgstr "" "\"\n" " を消せばこのメッセージを回避できます.\n" -#: ../memline.c:3450 ../memline.c:3452 msgid "Swap file \"" msgstr "スワップファイル \"" -#: ../memline.c:3451 ../memline.c:3455 msgid "\" already exists!" msgstr "\" が既にあります!" -#: ../memline.c:3457 msgid "VIM - ATTENTION" msgstr "VIM - 注意" -#: ../memline.c:3459 msgid "Swap file already exists!" msgstr "スワップファイルが既に存在します!" -#: ../memline.c:3464 msgid "" "&Open Read-Only\n" "&Edit anyway\n" @@ -4142,7 +3765,6 @@ msgstr "" "終了する(&Q)\n" "中止する(&A)" -#: ../memline.c:3467 msgid "" "&Open Read-Only\n" "&Edit anyway\n" @@ -4158,56 +3780,34 @@ msgstr "" "終了する(&Q)\n" "中止する(&A)" -#. -#. * Change the ".swp" extension to find another file that can be used. -#. * First decrement the last char: ".swo", ".swn", etc. -#. * If that still isn't enough decrement the last but one char: ".svz" -#. * Can happen when editing many "No Name" buffers. -#. -#. ".s?a" -#. ".saa": tried enough, give up -#: ../memline.c:3528 msgid "E326: Too many swap files found" msgstr "E326: スワップファイルが多数見つかりました" -#: ../memory.c:227 -#, c-format -msgid "E342: Out of memory! (allocating % bytes)" -msgstr "E342: メモリが足りません! (% バイトを割当要求)" - -#: ../menu.c:62 msgid "E327: Part of menu-item path is not sub-menu" msgstr "E327: メニューアイテムのパスの部分がサブメニューではありません" -#: ../menu.c:63 msgid "E328: Menu only exists in another mode" msgstr "E328: メニューは他のモードにだけあります" -#: ../menu.c:64 #, c-format msgid "E329: No menu \"%s\"" msgstr "E329: \"%s\" というメニューはありません" #. Only a mnemonic or accelerator is not valid. -#: ../menu.c:329 msgid "E792: Empty menu name" msgstr "E792: メニュー名が空です" -#: ../menu.c:340 msgid "E330: Menu path must not lead to a sub-menu" msgstr "E330: メニューパスはサブメニューを生じるべきではありません" -#: ../menu.c:365 msgid "E331: Must not add menu items directly to menu bar" msgstr "E331: メニューバーには直接メニューアイテムを追加できません" -#: ../menu.c:370 msgid "E332: Separator cannot be part of a menu path" msgstr "E332: 区切りはメニューパスの一部ではありません" #. Now we have found the matching menu, and we list the mappings #. Highlight title -#: ../menu.c:762 msgid "" "\n" "--- Menus ---" @@ -4215,69 +3815,60 @@ msgstr "" "\n" "--- メニュー ---" -#: ../menu.c:1313 +msgid "Tear off this menu" +msgstr "このメニューを切り取る" + msgid "E333: Menu path must lead to a menu item" msgstr "E333: メニューパスはメニューアイテムを生じなければいけません" -#: ../menu.c:1330 #, c-format msgid "E334: Menu not found: %s" msgstr "E334: メニューが見つかりません: %s" -#: ../menu.c:1396 #, c-format msgid "E335: Menu not defined for %s mode" msgstr "E335: %s にはメニューが定義されていません" -#: ../menu.c:1426 msgid "E336: Menu path must lead to a sub-menu" msgstr "E336: メニューパスはサブメニューを生じなければいけません" -#: ../menu.c:1447 msgid "E337: Menu not found - check menu names" msgstr "E337: メニューが見つかりません - メニュー名を確認してください" -#: ../message.c:423 #, c-format msgid "Error detected while processing %s:" msgstr "%s の処理中にエラーが検出されました:" -#: ../message.c:445 #, c-format msgid "line %4ld:" msgstr "行 %4ld:" -#: ../message.c:617 #, c-format msgid "E354: Invalid register name: '%s'" msgstr "E354: 無効なレジスタ名: '%s'" -#: ../message.c:986 +msgid "Messages maintainer: Bram Moolenaar " +msgstr "日本語メッセージ翻訳/監修: 村岡 太郎 " + msgid "Interrupt: " msgstr "割込み: " -#: ../message.c:988 msgid "Press ENTER or type command to continue" msgstr "続けるにはENTERを押すかコマンドを入力してください" -#: ../message.c:1843 #, c-format -msgid "%s line %" -msgstr "%s 行 %" +msgid "%s line %ld" +msgstr "%s 行 %ld" -#: ../message.c:2392 msgid "-- More --" msgstr "-- 継続 --" -#: ../message.c:2398 msgid " SPACE/d/j: screen/page/line down, b/u/k: up, q: quit " msgstr " SPACE/d/j: 画面/ページ/行 下, b/u/k: 上, q: 終了 " -#: ../message.c:3021 ../message.c:3031 msgid "Question" msgstr "質問" -#: ../message.c:3023 msgid "" "&Yes\n" "&No" @@ -4285,199 +3876,260 @@ msgstr "" "はい(&Y)\n" "いいえ(&N)" -#: ../message.c:3033 msgid "" "&Yes\n" "&No\n" +"Save &All\n" +"&Discard All\n" "&Cancel" msgstr "" "はい(&Y)\n" "いいえ(&N)\n" +"全て保存(&A)\n" +"全て放棄(&D)\n" "キャンセル(&C)" -#: ../message.c:3045 -msgid "" -"&Yes\n" -"&No\n" -"Save &All\n" -"&Discard All\n" -"&Cancel" -msgstr "" -"はい(&Y)\n" -"いいえ(&N)\n" -"全て保存(&A)\n" -"全て放棄(&D)\n" -"キャンセル(&C)" +msgid "Select Directory dialog" +msgstr "ディレクトリ選択ダイアログ" + +msgid "Save File dialog" +msgstr "ファイル保存ダイアログ" + +msgid "Open File dialog" +msgstr "ファイル読込ダイアログ" + +#. TODO: non-GUI file selector here +msgid "E338: Sorry, no file browser in console mode" +msgstr "E338: コンソールモードではファイルブラウザを使えません, ごめんなさい" -#: ../message.c:3058 msgid "E766: Insufficient arguments for printf()" msgstr "E766: printf() の引数が不十分です" -#: ../message.c:3119 msgid "E807: Expected Float argument for printf()" msgstr "E807: printf() の引数には浮動少数点数が期待されています" -#: ../message.c:3873 msgid "E767: Too many arguments to printf()" msgstr "E767: printf() の引数が多過ぎます" -#: ../misc1.c:2256 msgid "W10: Warning: Changing a readonly file" msgstr "W10: 警告: 読込専用ファイルを変更します" -#: ../misc1.c:2537 msgid "Type number and or click with mouse (empty cancels): " msgstr "" "番号とを入力するかマウスでクリックしてください (空でキャンセル): " -#: ../misc1.c:2539 msgid "Type number and (empty cancels): " msgstr "番号とを入力してください (空でキャンセル): " -#: ../misc1.c:2585 msgid "1 more line" msgstr "1 行 追加しました" -#: ../misc1.c:2588 msgid "1 line less" msgstr "1 行 削除しました" -#: ../misc1.c:2593 #, c-format -msgid "% more lines" -msgstr "% 行 追加しました" +msgid "%ld more lines" +msgstr "%ld 行 追加しました" -#: ../misc1.c:2596 #, c-format -msgid "% fewer lines" -msgstr "% 行 削除しました" +msgid "%ld fewer lines" +msgstr "%ld 行 削除しました" -#: ../misc1.c:2599 msgid " (Interrupted)" msgstr " (割込まれました)" -#: ../misc1.c:2635 msgid "Beep!" msgstr "ビーッ!" -#: ../misc2.c:738 +msgid "ERROR: " +msgstr "エラー: " + +#, c-format +msgid "" +"\n" +"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n" +msgstr "" +"\n" +"[メモリ(バイト)] 総割当-解放量 %lu-%lu, 使用量 %lu, ピーク時 %lu\n" + +#, c-format +msgid "" +"[calls] total re/malloc()'s %lu, total free()'s %lu\n" +"\n" +msgstr "" +"[呼出] 総 re/malloc() 回数 %lu, 総 free() 回数 %lu\n" +"\n" + +msgid "E340: Line is becoming too long" +msgstr "E340: 行が長くなり過ぎました" + +#, c-format +msgid "E341: Internal error: lalloc(%ld, )" +msgstr "E341: 内部エラー: lalloc(%ld,)" + +#, c-format +msgid "E342: Out of memory! (allocating %lu bytes)" +msgstr "E342: メモリが足りません! (%lu バイトを割当要求)" + #, c-format msgid "Calling shell to execute: \"%s\"" msgstr "実行のためにシェルを呼出し中: \"%s\"" -#: ../normal.c:183 +msgid "E545: Missing colon" +msgstr "E545: コロンがありません" + +msgid "E546: Illegal mode" +msgstr "E546: 不正なモードです" + +msgid "E547: Illegal mouseshape" +msgstr "E547: 不正な 'mouseshape' です" + +msgid "E548: digit expected" +msgstr "E548: 数値が必要です" + +msgid "E549: Illegal percentage" +msgstr "E549: 不正なパーセンテージです" + +msgid "E854: path too long for completion" +msgstr "E854: パスが長過ぎて補完できません" + +#, c-format +msgid "" +"E343: Invalid path: '**[number]' must be at the end of the path or be " +"followed by '%s'." +msgstr "" +"E343: 無効なパスです: '**[数値]' はpathの最後か '%s' が続いてないといけませ" +"ん." + +#, c-format +msgid "E344: Can't find directory \"%s\" in cdpath" +msgstr "E344: cdpathには \"%s\" というファイルがありません" + +#, c-format +msgid "E345: Can't find file \"%s\" in path" +msgstr "E345: pathには \"%s\" というファイルがありません" + +#, c-format +msgid "E346: No more directory \"%s\" found in cdpath" +msgstr "E346: cdpathにはこれ以上 \"%s\" というファイルがありません" + +#, c-format +msgid "E347: No more file \"%s\" found in path" +msgstr "E347: パスにはこれ以上 \"%s\" というファイルがありません" + +#, c-format +msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" +msgstr "" +"E668: NetBeansの接続情報ファイルのアクセスモードに問題があります: \"%s\"" + +#, c-format +msgid "E658: NetBeans connection lost for buffer %ld" +msgstr "E658: バッファ %ld の NetBeans 接続が失われました" + +msgid "E838: netbeans is not supported with this GUI" +msgstr "E838: NetBeansはこのGUIには対応していません" + +msgid "E511: netbeans already connected" +msgstr "E511: NetBeansは既に接続しています" + +#, c-format +msgid "E505: %s is read-only (add ! to override)" +msgstr "E505: %s は読込専用です (強制書込には ! を追加)" + msgid "E349: No identifier under cursor" msgstr "E349: カーソルの位置には識別子がありません" -#: ../normal.c:1866 msgid "E774: 'operatorfunc' is empty" msgstr "E774: 'operatorfunc' オプションが空です" -#: ../normal.c:2637 +msgid "E775: Eval feature not available" +msgstr "E775: 式評価機能が無効になっています" + msgid "Warning: terminal cannot highlight" msgstr "警告: 使用している端末はハイライトできません" -#: ../normal.c:2807 msgid "E348: No string under cursor" msgstr "E348: カーソルの位置には文字列がありません" -#: ../normal.c:3937 msgid "E352: Cannot erase folds with current 'foldmethod'" msgstr "E352: 現在の 'foldmethod' では折畳みを消去できません" -#: ../normal.c:5897 msgid "E664: changelist is empty" msgstr "E664: 変更リストが空です" -#: ../normal.c:5899 msgid "E662: At start of changelist" msgstr "E662: 変更リストの先頭" -#: ../normal.c:5901 msgid "E663: At end of changelist" msgstr "E663: 変更リストの末尾" -#: ../normal.c:7053 -msgid "Type :quit to exit Nvim" +msgid "Type :quit to exit Vim" msgstr "Vimを終了するには :quit と入力してください" -#: ../ops.c:248 #, c-format msgid "1 line %sed 1 time" msgstr "1 行が %s で 1 回処理されました" -#: ../ops.c:250 #, c-format msgid "1 line %sed %d times" msgstr "1 行が %s で %d 回処理されました" -#: ../ops.c:253 #, c-format -msgid "% lines %sed 1 time" -msgstr "% 行が %s で 1 回処理されました" +msgid "%ld lines %sed 1 time" +msgstr "%ld 行が %s で 1 回処理されました" -#: ../ops.c:256 #, c-format -msgid "% lines %sed %d times" -msgstr "% 行が %s で %d 回処理されました" +msgid "%ld lines %sed %d times" +msgstr "%ld 行が %s で %d 回処理されました" -#: ../ops.c:592 #, c-format -msgid "% lines to indent... " -msgstr "% 行がインデントされます... " +msgid "%ld lines to indent... " +msgstr "%ld 行がインデントされます... " -#: ../ops.c:634 msgid "1 line indented " msgstr "1 行をインデントしました " -#: ../ops.c:636 #, c-format -msgid "% lines indented " -msgstr "% 行をインデントしました " +msgid "%ld lines indented " +msgstr "%ld 行をインデントしました " -#: ../ops.c:938 msgid "E748: No previously used register" msgstr "E748: まだレジスタを使用していません" #. must display the prompt -#: ../ops.c:1433 msgid "cannot yank; delete anyway" msgstr "ヤンクできません; とにかく消去" -#: ../ops.c:1929 msgid "1 line changed" msgstr "1 行が変更されました" -#: ../ops.c:1931 #, c-format -msgid "% lines changed" -msgstr "% 行が変更されました" +msgid "%ld lines changed" +msgstr "%ld 行が変更されました" + +#, c-format +msgid "freeing %ld lines" +msgstr "%ld 行を解放中" -#: ../ops.c:2521 msgid "block of 1 line yanked" msgstr "1 行のブロックがヤンクされました" -#: ../ops.c:2523 msgid "1 line yanked" msgstr "1 行がヤンクされました" -#: ../ops.c:2525 #, c-format -msgid "block of % lines yanked" -msgstr "% 行のブロックがヤンクされました" +msgid "block of %ld lines yanked" +msgstr "%ld 行のブロックがヤンクされました" -#: ../ops.c:2528 #, c-format -msgid "% lines yanked" -msgstr "% 行がヤンクされました" +msgid "%ld lines yanked" +msgstr "%ld 行がヤンクされました" -#: ../ops.c:2710 #, c-format msgid "E353: Nothing in register %s" msgstr "E353: レジスタ %s には何もありません" #. Highlight title -#: ../ops.c:3185 msgid "" "\n" "--- Registers ---" @@ -4485,11 +4137,9 @@ msgstr "" "\n" "--- レジスタ ---" -#: ../ops.c:4455 msgid "Illegal register name" msgstr "不正なレジスタ名" -#: ../ops.c:4533 msgid "" "\n" "# Registers:\n" @@ -4497,7 +4147,6 @@ msgstr "" "\n" "# レジスタ:\n" -#: ../ops.c:4575 #, c-format msgid "E574: Unknown register type %d" msgstr "E574: 未知のレジスタ型 %d です" @@ -4507,86 +4156,61 @@ msgid "" "lines" msgstr "E883: 検索パターンと式レジスタには2行以上を含められません" -#: ../ops.c:5089 #, c-format -msgid "% Cols; " -msgstr "% 列; " +msgid "%ld Cols; " +msgstr "%ld 列; " -#: ../ops.c:5097 #, c-format -msgid "" -"Selected %s% of % Lines; % of % Words; " -"% of % Bytes" -msgstr "" -"選択 %s% / % 行; % / % 単語; % / " -"% バイト" +msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes" +msgstr "選択 %s%ld / %ld 行; %lld / %lld 単語; %lld / %lld バイト" -#: ../ops.c:5105 #, c-format msgid "" -"Selected %s% of % Lines; % of % Words; " -"% of % Chars; % of % Bytes" +"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of " +"%lld Bytes" msgstr "" -"選択 %s% / % 行; % / % 単語; % / " -"% 文字; % / % バイト" +"選択 %s%ld / %ld 行; %lld / %lld 単語; %lld / %lld 文字; %lld / %lld バイト" -#: ../ops.c:5123 #, c-format -msgid "" -"Col %s of %s; Line % of %; Word % of %; Byte " -"% of %" -msgstr "" -"列 %s / %s; 行 % of %; 単語 % / %; バイト " -"% / %" +msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld" +msgstr "列 %s / %s; 行 %ld of %ld; 単語 %lld / %lld; バイト %lld / %lld" -#: ../ops.c:5133 #, c-format msgid "" -"Col %s of %s; Line % of %; Word % of %; Char " -"% of %; Byte % of %" +"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte " +"%lld of %lld" msgstr "" -"列 %s / %s; 行 % / %; 単語 % / %; 文字 " -"% / %; バイト % of %" +"列 %s / %s; 行 %ld / %ld; 単語 %lld / %lld; 文字 %lld / %lld; バイト %lld of " +"%lld" -#: ../ops.c:5146 #, c-format -msgid "(+% for BOM)" -msgstr "(+% for BOM)" +msgid "(+%ld for BOM)" +msgstr "(+%ld for BOM)" -#: ../option.c:1238 msgid "%<%f%h%m%=Page %N" msgstr "%<%f%h%m%=%N ページ" -#: ../option.c:1574 msgid "Thanks for flying Vim" msgstr "Vim を使ってくれてありがとう" -#. found a mismatch: skip -#: ../option.c:2698 msgid "E518: Unknown option" msgstr "E518: 未知のオプションです" -#: ../option.c:2709 msgid "E519: Option not supported" msgstr "E519: オプションはサポートされていません" -#: ../option.c:2740 msgid "E520: Not allowed in a modeline" msgstr "E520: modeline では許可されません" -#: ../option.c:2815 msgid "E846: Key code not set" msgstr "E846: キーコードが設定されていません" -#: ../option.c:2924 msgid "E521: Number required after =" msgstr "E521: = の後には数字が必要です" -#: ../option.c:3226 ../option.c:3864 msgid "E522: Not found in termcap" msgstr "E522: termcap 内に見つかりません" -#: ../option.c:3335 #, c-format msgid "E539: Illegal character <%s>" msgstr "E539: 不正な文字です <%s>" @@ -4595,93 +4219,99 @@ msgstr "E539: 不正な文字です <%s>" msgid "For option %s" msgstr "オプション: %s" -#: ../option.c:3862 msgid "E529: Cannot set 'term' to empty string" msgstr "E529: 'term' には空文字列を設定できません" -#: ../option.c:3885 +msgid "E530: Cannot change term in GUI" +msgstr "E530: GUIでは 'term' を変更できません" + +msgid "E531: Use \":gui\" to start the GUI" +msgstr "E531: GUIをスタートするには \":gui\" を使用してください" + msgid "E589: 'backupext' and 'patchmode' are equal" msgstr "E589: 'backupext' と 'patchmode' が同じです" -#: ../option.c:3964 msgid "E834: Conflicts with value of 'listchars'" msgstr "E834: 'listchars'の値に矛盾があります" -#: ../option.c:3966 msgid "E835: Conflicts with value of 'fillchars'" msgstr "E835: 'fillchars'の値に矛盾があります" -#: ../option.c:4163 +msgid "E617: Cannot be changed in the GTK+ 2 GUI" +msgstr "E617: GTK+2 GUIでは変更できません" + msgid "E524: Missing colon" msgstr "E524: コロンがありません" -#: ../option.c:4165 msgid "E525: Zero length string" msgstr "E525: 文字列の長さがゼロです" -#: ../option.c:4220 #, c-format msgid "E526: Missing number after <%s>" msgstr "E526: <%s> の後に数字がありません" -#: ../option.c:4232 msgid "E527: Missing comma" msgstr "E527: カンマがありません" -#: ../option.c:4239 msgid "E528: Must specify a ' value" msgstr "E528: ' の値を指定しなければなりません" -#: ../option.c:4271 msgid "E595: contains unprintable or wide character" msgstr "E595: 表示できない文字かワイド文字を含んでいます" -#: ../option.c:4469 +msgid "E596: Invalid font(s)" +msgstr "E596: 無効なフォントです" + +msgid "E597: can't select fontset" +msgstr "E597: フォントセットを選択できません" + +msgid "E598: Invalid fontset" +msgstr "E598: 無効なフォントセットです" + +msgid "E533: can't select wide font" +msgstr "E533: ワイドフォントを選択できません" + +msgid "E534: Invalid wide font" +msgstr "E534: 無効なワイドフォントです" + #, c-format msgid "E535: Illegal character after <%c>" msgstr "E535: <%c> の後に不正な文字があります" -#: ../option.c:4534 msgid "E536: comma required" msgstr "E536: カンマが必要です" -#: ../option.c:4543 #, c-format msgid "E537: 'commentstring' must be empty or contain %s" msgstr "E537: 'commentstring' は空であるか %s を含む必要があります" -#: ../option.c:4928 +msgid "E538: No mouse support" +msgstr "E538: マウスはサポートされません" + msgid "E540: Unclosed expression sequence" msgstr "E540: 式が終了していません" -#: ../option.c:4932 msgid "E541: too many items" msgstr "E541: 要素が多過ぎます" -#: ../option.c:4934 msgid "E542: unbalanced groups" msgstr "E542: グループが釣合いません" -#: ../option.c:5148 msgid "E590: A preview window already exists" msgstr "E590: プレビューウィンドウが既に存在します" -#: ../option.c:5311 msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'" msgstr "" "W17: アラビア文字にはUTF-8が必要なので, ':set encoding=utf-8' してください" -#: ../option.c:5623 #, c-format msgid "E593: Need at least %d lines" msgstr "E593: 最低 %d の行数が必要です" -#: ../option.c:5631 #, c-format msgid "E594: Need at least %d columns" msgstr "E594: 最低 %d のカラム幅が必要です" -#: ../option.c:6011 #, c-format msgid "E355: Unknown option: %s" msgstr "E355: 未知のオプションです: %s" @@ -4689,12 +4319,10 @@ msgstr "E355: 未知のオプションです: %s" #. There's another character after zeros or the string #. * is empty. In both cases, we are trying to set a #. * num option using a string. -#: ../option.c:6037 #, c-format msgid "E521: Number required: &%s = '%s'" msgstr "E521: 数字が必要です: &%s = '%s'" -#: ../option.c:6149 msgid "" "\n" "--- Terminal codes ---" @@ -4702,7 +4330,6 @@ msgstr "" "\n" "--- 端末コード ---" -#: ../option.c:6151 msgid "" "\n" "--- Global option values ---" @@ -4710,7 +4337,6 @@ msgstr "" "\n" "--- グローバルオプション値 ---" -#: ../option.c:6153 msgid "" "\n" "--- Local option values ---" @@ -4718,7 +4344,6 @@ msgstr "" "\n" "--- ローカルオプション値 ---" -#: ../option.c:6155 msgid "" "\n" "--- Options ---" @@ -4726,37 +4351,119 @@ msgstr "" "\n" "--- オプション ---" -#: ../option.c:6816 msgid "E356: get_varp ERROR" msgstr "E356: get_varp エラー" -#: ../option.c:7696 #, c-format msgid "E357: 'langmap': Matching character missing for %s" msgstr "E357: 'langmap': %s に対応する文字がありません" -#: ../option.c:7715 #, c-format msgid "E358: 'langmap': Extra characters after semicolon: %s" msgstr "E358: 'langmap': セミコロンの後に余分な文字があります: %s" -#: ../os/shell.c:194 -msgid "" -"\n" -"Cannot execute shell " -msgstr "" -"\n" -"シェルを実行できません " +msgid "cannot open " +msgstr "開けません " + +msgid "VIM: Can't open window!\n" +msgstr "VIM: ウィンドウを開けません!\n" + +msgid "Need Amigados version 2.04 or later\n" +msgstr "Amigadosのバージョン 2.04かそれ以降が必要です\n" + +#, c-format +msgid "Need %s version %ld\n" +msgstr "%s のバージョン %ld が必要です\n" + +msgid "Cannot open NIL:\n" +msgstr "NILを開けません:\n" + +msgid "Cannot create " +msgstr "作成できません " + +#, c-format +msgid "Vim exiting with %d\n" +msgstr "Vimは %d で終了します\n" + +msgid "cannot change console mode ?!\n" +msgstr "コンソールモードを変更できません?!\n" + +msgid "mch_get_shellsize: not a console??\n" +msgstr "mch_get_shellsize: コンソールではない??\n" + +#. if Vim opened a window: Executing a shell may cause crashes +msgid "E360: Cannot execute shell with -f option" +msgstr "E360: -f オプションでシェルを実行できません" + +msgid "Cannot execute " +msgstr "実行できません " + +msgid "shell " +msgstr "シェル " + +msgid " returned\n" +msgstr " 戻りました\n" + +msgid "ANCHOR_BUF_SIZE too small." +msgstr "ANCHOR_BUF_SIZE が小さ過ぎます." + +msgid "I/O ERROR" +msgstr "入出力エラー" + +msgid "Message" +msgstr "メッセージ" + +msgid "'columns' is not 80, cannot execute external commands" +msgstr "'columns' が 80 ではないため、外部コマンドを実行できません" + +msgid "E237: Printer selection failed" +msgstr "E237: プリンタの選択に失敗しました" + +#, c-format +msgid "to %s on %s" +msgstr "%s へ (%s 上の)" + +#, c-format +msgid "E613: Unknown printer font: %s" +msgstr "E613: 未知のプリンタオプションです: %s" + +#, c-format +msgid "E238: Print error: %s" +msgstr "E238: 印刷エラー: %s" + +#, c-format +msgid "Printing '%s'" +msgstr "印刷しています: '%s'" + +#, c-format +msgid "E244: Illegal charset name \"%s\" in font name \"%s\"" +msgstr "E244: 文字セット名 \"%s\" は不正です (フォント名 \"%s\")" + +#, c-format +msgid "E244: Illegal quality name \"%s\" in font name \"%s\"" +msgstr "E244: 品質名 \"%s\" は不正です (フォント名 \"%s\")" + +#, c-format +msgid "E245: Illegal char '%c' in font name \"%s\"" +msgstr "E245: '%c' は不正な文字です (フォント名 \"%s\")" + +#, c-format +msgid "Opening the X display took %ld msec" +msgstr "Xサーバーへの接続に %ld ミリ秒かかりました" -#: ../os/shell.c:439 msgid "" "\n" -"shell returned " +"Vim: Got X error\n" msgstr "" "\n" -"シェルが値を返しました " +"Vim: X のエラーを検出しましたr\n" + +msgid "Testing the X display failed" +msgstr "X display のチェックに失敗しました" + +msgid "Opening the X display timed out" +msgstr "X display の open がタイムアウトしました" -#: ../os_unix.c:465 ../os_unix.c:471 msgid "" "\n" "Could not get security context for " @@ -4764,7 +4471,6 @@ msgstr "" "\n" "セキュリティコンテキストを取得できません " -#: ../os_unix.c:479 msgid "" "\n" "Could not set security context for " @@ -4780,223 +4486,293 @@ msgstr "セキュリティコンテキスト %s を %s に設定できません" msgid "Could not get security context %s for %s. Removing it!" msgstr "セキュリティコンテキスト %s を %s から取得できません. 削除します!" -#: ../os_unix.c:1558 ../os_unix.c:1647 +msgid "" +"\n" +"Cannot execute shell sh\n" +msgstr "" +"\n" +"sh シェルを実行できません\n" + +msgid "" +"\n" +"shell returned " +msgstr "" +"\n" +"シェルが値を返しました " + +msgid "" +"\n" +"Cannot create pipes\n" +msgstr "" +"\n" +"パイプを作成できません\n" + +msgid "" +"\n" +"Cannot fork\n" +msgstr "" +"\n" +"fork できません\n" + +msgid "" +"\n" +"Cannot execute shell " +msgstr "" +"\n" +"シェルを実行できません " + +msgid "" +"\n" +"Command terminated\n" +msgstr "" +"\n" +"コマンドを中断しました\n" + +msgid "XSMP lost ICE connection" +msgstr "XSMP がICE接続を失いました" + #, c-format msgid "dlerror = \"%s\"" msgstr "dlerror = \"%s\"" -#: ../path.c:1449 +msgid "Opening the X display failed" +msgstr "X display の open に失敗しました" + +msgid "XSMP handling save-yourself request" +msgstr "XSMP がsave-yourself要求を処理しています" + +msgid "XSMP opening connection" +msgstr "XSMP が接続を開始しています" + +msgid "XSMP ICE connection watch failed" +msgstr "XSMP ICE接続が失敗したようです" + #, c-format -msgid "E447: Can't find file \"%s\" in path" -msgstr "E447: pathには \"%s\" というファイルがありません" +msgid "XSMP SmcOpenConnection failed: %s" +msgstr "XSMP SmcOpenConnectionが失敗しました: %s" + +msgid "At line" +msgstr "行" + +msgid "Could not load vim32.dll!" +msgstr "vim32.dll をロードできませんでした" + +msgid "VIM Error" +msgstr "VIMエラー" + +msgid "Could not fix up function pointers to the DLL!" +msgstr "DLLから関数ポインタを取得できませんでした" + +#, c-format +msgid "Vim: Caught %s event\n" +msgstr "Vim: イベント %s を検知\n" + +msgid "close" +msgstr "閉じる" + +msgid "logoff" +msgstr "ログオフ" + +msgid "shutdown" +msgstr "シャットダウン" + +msgid "E371: Command not found" +msgstr "E371: コマンドがありません" + +msgid "" +"VIMRUN.EXE not found in your $PATH.\n" +"External commands will not pause after completion.\n" +"See :help win32-vimrun for more information." +msgstr "" +"VIMRUN.EXEが $PATH の中に見つかりません.\n" +"外部コマンドの終了後に一時停止をしません.\n" +"詳細は :help win32-vimrun を参照してください." + +msgid "Vim Warning" +msgstr "Vimの警告" + +#, c-format +msgid "shell returned %d" +msgstr "シェルがコード %d で終了しました" -#: ../quickfix.c:359 #, c-format msgid "E372: Too many %%%c in format string" msgstr "E372: フォーマット文字列に %%%c が多過ぎます" -#: ../quickfix.c:371 #, c-format msgid "E373: Unexpected %%%c in format string" msgstr "E373: フォーマット文字列に予期せぬ %%%c がありました" -#: ../quickfix.c:420 msgid "E374: Missing ] in format string" msgstr "E374: フォーマット文字列に ] がありません" -#: ../quickfix.c:431 #, c-format msgid "E375: Unsupported %%%c in format string" msgstr "E375: フォーマット文字列では %%%c はサポートされません" -#: ../quickfix.c:448 #, c-format msgid "E376: Invalid %%%c in format string prefix" msgstr "E376: フォーマット文字列の前置に無効な %%%c があります" -#: ../quickfix.c:454 #, c-format msgid "E377: Invalid %%%c in format string" msgstr "E377: フォーマット文字列に無効な %%%c があります" #. nothing found -#: ../quickfix.c:477 msgid "E378: 'errorformat' contains no pattern" msgstr "E378: 'errorformat' にパターンが指定されていません" -#: ../quickfix.c:695 msgid "E379: Missing or empty directory name" msgstr "E379: ディレクトリ名が無いか空です" -#: ../quickfix.c:1305 msgid "E553: No more items" msgstr "E553: 要素がもうありません" -#: ../quickfix.c:1674 +msgid "E924: Current window was closed" +msgstr "E924: 現在のウィンドウが閉じられました" + +msgid "E925: Current quickfix was changed" +msgstr "E925: 現在の quickfix が変更されました" + +msgid "E926: Current location list was changed" +msgstr "E926: 現在のロケーションリストが変更されました" + #, c-format msgid "(%d of %d)%s%s: " msgstr "(%d of %d)%s%s: " -#: ../quickfix.c:1676 msgid " (line deleted)" msgstr " (行が削除されました)" -#: ../quickfix.c:1863 +#, c-format +msgid "%serror list %d of %d; %d errors " +msgstr "%s エラー一覧 %d of %d; %d 個エラー" + msgid "E380: At bottom of quickfix stack" msgstr "E380: quickfix スタックの末尾です" -#: ../quickfix.c:1869 msgid "E381: At top of quickfix stack" msgstr "E381: quickfix スタックの先頭です" -#: ../quickfix.c:1880 -#, c-format -msgid "error list %d of %d; %d errors" -msgstr "エラー一覧 %d of %d; %d 個エラー" +msgid "No entries" +msgstr "エントリがありません" -#: ../quickfix.c:2427 msgid "E382: Cannot write, 'buftype' option is set" msgstr "E382: 'buftype' オプションが設定されているので書込みません" -#: ../quickfix.c:2812 +msgid "Error file" +msgstr "エラーファイル" + msgid "E683: File name missing or invalid pattern" msgstr "E683: ファイル名が無いか無効なパターンです" -#: ../quickfix.c:2911 #, c-format msgid "Cannot open file \"%s\"" msgstr "ファイル \"%s\" を開けません" -#: ../quickfix.c:3429 msgid "E681: Buffer is not loaded" msgstr "E681: バッファは読み込まれませんでした" -#: ../quickfix.c:3487 msgid "E777: String or List expected" msgstr "E777: 文字列かリストが必要です" -#: ../regexp.c:359 #, c-format msgid "E369: invalid item in %s%%[]" msgstr "E369: 無効な項目です: %s%%[]" # -#: ../regexp.c:374 #, c-format msgid "E769: Missing ] after %s[" msgstr "E769: %s[ の後に ] がありません" -#: ../regexp.c:375 #, c-format msgid "E53: Unmatched %s%%(" msgstr "E53: %s%%( が釣り合っていません" -#: ../regexp.c:376 #, c-format msgid "E54: Unmatched %s(" msgstr "E54: %s( が釣り合っていません" -#: ../regexp.c:377 #, c-format msgid "E55: Unmatched %s)" msgstr "E55: %s) が釣り合っていません" # -#: ../regexp.c:378 msgid "E66: \\z( not allowed here" msgstr "E66: \\z( はココでは許可されていません" # -#: ../regexp.c:379 msgid "E67: \\z1 et al. not allowed here" msgstr "E67: \\z1 その他はココでは許可されていません" # -#: ../regexp.c:380 #, c-format msgid "E69: Missing ] after %s%%[" msgstr "E69: %s%%[ の後に ] がありません" -#: ../regexp.c:381 #, c-format msgid "E70: Empty %s%%[]" msgstr "E70: %s%%[] が空です" -#: ../regexp.c:1209 ../regexp.c:1224 msgid "E339: Pattern too long" msgstr "E339: パターンが長過ぎます" -#: ../regexp.c:1371 msgid "E50: Too many \\z(" msgstr "E50: \\z( が多過ぎます" -#: ../regexp.c:1378 #, c-format msgid "E51: Too many %s(" msgstr "E51: %s( が多過ぎます" -#: ../regexp.c:1427 msgid "E52: Unmatched \\z(" msgstr "E52: \\z( が釣り合っていません" -#: ../regexp.c:1637 #, c-format msgid "E59: invalid character after %s@" msgstr "E59: %s@ の後に不正な文字がありました" -#: ../regexp.c:1672 #, c-format msgid "E60: Too many complex %s{...}s" msgstr "E60: 複雑な %s{...} が多過ぎます" -#: ../regexp.c:1687 #, c-format msgid "E61: Nested %s*" msgstr "E61:%s* が入れ子になっています" -#: ../regexp.c:1690 #, c-format msgid "E62: Nested %s%c" msgstr "E62:%s%c が入れ子になっています" # -#: ../regexp.c:1800 msgid "E63: invalid use of \\_" msgstr "E63: \\_ の無効な使用方法です" -#: ../regexp.c:1850 #, c-format msgid "E64: %s%c follows nothing" msgstr "E64:%s%c の後になにもありません" # -#: ../regexp.c:1902 msgid "E65: Illegal back reference" msgstr "E65: 不正な後方参照です" # -#: ../regexp.c:1943 msgid "E68: Invalid character after \\z" msgstr "E68: \\z の後に不正な文字がありました" # -#: ../regexp.c:2049 ../regexp_nfa.c:1296 #, c-format msgid "E678: Invalid character after %s%%[dxouU]" msgstr "E678: %s%%[dxouU] の後に不正な文字がありました" # -#: ../regexp.c:2107 #, c-format msgid "E71: Invalid character after %s%%" msgstr "E71: %s%% の後に不正な文字がありました" -#: ../regexp.c:3017 #, c-format msgid "E554: Syntax error in %s{...}" msgstr "E554: %s{...} 内に文法エラーがあります" -#: ../regexp.c:3805 msgid "External submatches:\n" msgstr "外部の部分該当:\n" @@ -5004,7 +4780,6 @@ msgstr "外部の部分該当:\n" msgid "E888: (NFA regexp) cannot repeat %s" msgstr "E888: (NFA 正規表現) 繰り返せません %s" -#: ../regexp.c:7022 msgid "" "E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be " "used " @@ -5015,62 +4790,54 @@ msgstr "" msgid "Switching to backtracking RE engine for pattern: " msgstr "次のパターンにバックトラッキング RE エンジンを適用します: " -#: ../regexp_nfa.c:239 msgid "E865: (NFA) Regexp end encountered prematurely" msgstr "E865: (NFA) 期待より早く正規表現の終端に到達しました" -#: ../regexp_nfa.c:240 #, c-format msgid "E866: (NFA regexp) Misplaced %c" msgstr "E866: (NFA 正規表現) 位置が誤っています: %c" -#: ../regexp_nfa.c:242 +# #, c-format -msgid "E877: (NFA regexp) Invalid character class: %" -msgstr "E877: (NFA 正規表現) 無効な文字クラス: %" +msgid "E877: (NFA regexp) Invalid character class: %ld" +msgstr "E877: (NFA 正規表現) 無効な文字クラス: %ld" -#: ../regexp_nfa.c:1261 #, c-format msgid "E867: (NFA) Unknown operator '\\z%c'" msgstr "E867: (NFA) 未知のオペレータです: '\\z%c'" -#: ../regexp_nfa.c:1387 #, c-format msgid "E867: (NFA) Unknown operator '\\%%%c'" msgstr "E867: (NFA) 未知のオペレータです: '\\%%%c'" -#: ../regexp_nfa.c:1802 +#. should never happen +msgid "E868: Error building NFA with equivalence class!" +msgstr "E868: 等価クラスを含むNFA構築に失敗しました!" + #, c-format msgid "E869: (NFA) Unknown operator '\\@%c'" msgstr "E869: (NFA) 未知のオペレータです: '\\@%c'" -#: ../regexp_nfa.c:1831 msgid "E870: (NFA regexp) Error reading repetition limits" msgstr "E870: (NFA 正規表現) 繰り返しの制限回数を読込中にエラー" #. Can't have a multi follow a multi. -#: ../regexp_nfa.c:1895 msgid "E871: (NFA regexp) Can't have a multi follow a multi !" msgstr "E871: (NFA 正規表現) 繰り返し の後に 繰り返し はできません!" #. Too many `(' -#: ../regexp_nfa.c:2037 msgid "E872: (NFA regexp) Too many '('" msgstr "E872: (NFA 正規表現) '(' が多過ぎます" -#: ../regexp_nfa.c:2042 msgid "E879: (NFA regexp) Too many \\z(" msgstr "E879: (NFA 正規表現) \\z( が多過ぎます" -#: ../regexp_nfa.c:2066 msgid "E873: (NFA regexp) proper termination error" msgstr "E873: (NFA 正規表現) 終端記号がありません" -#: ../regexp_nfa.c:2599 msgid "E874: (NFA) Could not pop the stack !" msgstr "E874: (NFA) スタックをポップできません!" -#: ../regexp_nfa.c:3298 msgid "" "E875: (NFA regexp) (While converting from postfix to NFA), too many states " "left on stack" @@ -5078,177 +4845,136 @@ msgstr "" "E875: (NFA 正規表現) (後置文字列をNFAに変換中に) スタックに残されたステートが" "多過ぎます" -#: ../regexp_nfa.c:3302 msgid "E876: (NFA regexp) Not enough space to store the whole NFA " msgstr "E876: (NFA 正規表現) NFA全体を保存するには空きスペースが足りません" -#: ../regexp_nfa.c:4571 ../regexp_nfa.c:4869 +msgid "E878: (NFA) Could not allocate memory for branch traversal!" +msgstr "E878: (NFA) 現在横断中のブランチに十分なメモリを割り当てられません!" + msgid "" "Could not open temporary log file for writing, displaying on stderr ... " msgstr "" "NFA正規表現エンジン用のログファイルを書込用として開けません。ログは標準出力に" "出力します。" -#: ../regexp_nfa.c:4840 #, c-format msgid "(NFA) COULD NOT OPEN %s !" msgstr "(NFA) ログファイル %s を開けません!" -#: ../regexp_nfa.c:6049 msgid "Could not open temporary log file for writing " msgstr "NFA正規表現エンジン用のログファイルを書込用として開けません。" -#: ../screen.c:7435 msgid " VREPLACE" msgstr " 仮想置換" -#: ../screen.c:7437 msgid " REPLACE" msgstr " 置換" -#: ../screen.c:7440 msgid " REVERSE" msgstr " 反転" -#: ../screen.c:7441 msgid " INSERT" msgstr " 挿入" -#: ../screen.c:7443 msgid " (insert)" msgstr " (挿入)" -#: ../screen.c:7445 msgid " (replace)" msgstr " (置換)" -#: ../screen.c:7447 msgid " (vreplace)" msgstr " (仮想置換)" -#: ../screen.c:7449 msgid " Hebrew" msgstr " ヘブライ" -#: ../screen.c:7454 msgid " Arabic" msgstr " アラビア" -#: ../screen.c:7456 -msgid " (lang)" -msgstr " (言語)" - -#: ../screen.c:7459 msgid " (paste)" msgstr " (貼り付け)" -#: ../screen.c:7469 msgid " VISUAL" msgstr " ビジュアル" -#: ../screen.c:7470 msgid " VISUAL LINE" msgstr " ビジュアル 行" -#: ../screen.c:7471 msgid " VISUAL BLOCK" msgstr " ビジュアル 矩形" -#: ../screen.c:7472 msgid " SELECT" msgstr " セレクト" -#: ../screen.c:7473 msgid " SELECT LINE" msgstr " 行指向選択" -#: ../screen.c:7474 msgid " SELECT BLOCK" msgstr " 矩形選択" -#: ../screen.c:7486 ../screen.c:7541 msgid "recording" msgstr "記録中" -#: ../search.c:487 #, c-format msgid "E383: Invalid search string: %s" msgstr "E383: 無効な検索文字列です: %s" -#: ../search.c:832 #, c-format msgid "E384: search hit TOP without match for: %s" msgstr "E384: 上まで検索しましたが該当箇所はありません: %s" -#: ../search.c:835 #, c-format msgid "E385: search hit BOTTOM without match for: %s" msgstr "E385: 下まで検索しましたが該当箇所はありません: %s" -#: ../search.c:1200 msgid "E386: Expected '?' or '/' after ';'" msgstr "E386: ';' のあとには '?' か '/' が期待されている" -#: ../search.c:4085 msgid " (includes previously listed match)" msgstr " (前に列挙した該当箇所を含む)" #. cursor at status line -#: ../search.c:4104 msgid "--- Included files " msgstr "--- インクルードされたファイル " -#: ../search.c:4106 msgid "not found " msgstr "見つかりません " -#: ../search.c:4107 msgid "in path ---\n" msgstr "パスに ----\n" -#: ../search.c:4168 msgid " (Already listed)" msgstr " (既に列挙)" -#: ../search.c:4170 msgid " NOT FOUND" msgstr " 見つかりません" -#: ../search.c:4211 #, c-format msgid "Scanning included file: %s" msgstr "インクルードされたファイルをスキャン中: %s" -#: ../search.c:4216 #, c-format msgid "Searching included file %s" msgstr "インクルードされたファイルをスキャン中 %s" -#: ../search.c:4405 msgid "E387: Match is on current line" msgstr "E387: 現在行に該当があります" -#: ../search.c:4517 msgid "All included files were found" msgstr "全てのインクルードされたファイルが見つかりました" -#: ../search.c:4519 msgid "No included files" msgstr "インクルードファイルはありません" -#: ../search.c:4527 msgid "E388: Couldn't find definition" msgstr "E388: 定義を見つけられません" -#: ../search.c:4529 msgid "E389: Couldn't find pattern" msgstr "E389: パターンを見つけられません" -#: ../search.c:4668 msgid "Substitute " msgstr "Substitute " -#: ../search.c:4681 #, c-format msgid "" "\n" @@ -5259,99 +4985,131 @@ msgstr "" "# 最後の %s検索パターン:\n" "~" -#: ../spell.c:951 -msgid "E759: Format error in spell file" -msgstr "E759: スペルファイルの書式エラーです" +msgid "E756: Spell checking is not enabled" +msgstr "E756: スペルチェックは無効化されています" + +#, c-format +msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\"" +msgstr "" +"警告: 単語リスト \"%s_%s.spl\" および \"%s_ascii.spl\" は見つかりません" + +#, c-format +msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\"" +msgstr "" +"警告: 単語リスト \"%s.%s.spl\" および \"%s.ascii.spl\" は見つかりません" + +msgid "E797: SpellFileMissing autocommand deleted buffer" +msgstr "E797: autocommand の SpellFileMissing がバッファを削除しました" + +#, c-format +msgid "Warning: region %s not supported" +msgstr "警告9: %s という範囲はサポートされていません" + +msgid "Sorry, no suggestions" +msgstr "残念ですが, 修正候補はありません" + +#, c-format +msgid "Sorry, only %ld suggestions" +msgstr "残念ですが, 修正候補は %ld 個しかありません" + +#. for when 'cmdheight' > 1 +#. avoid more prompt +#, c-format +msgid "Change \"%.*s\" to:" +msgstr "\"%.*s\" を次へ変換:" + +#, c-format +msgid " < \"%.*s\"" +msgstr " < \"%.*s\"" + +msgid "E752: No previous spell replacement" +msgstr "E752: スペル置換がまだ実行されていません" + +#, c-format +msgid "E753: Not found: %s" +msgstr "E753: 見つかりません: %s" -#: ../spell.c:952 msgid "E758: Truncated spell file" msgstr "E758: スペルファイルが切取られているようです" -#: ../spell.c:953 #, c-format msgid "Trailing text in %s line %d: %s" msgstr "%s (%d 行目) に続くテキスト: %s" -#: ../spell.c:954 #, c-format msgid "Affix name too long in %s line %d: %s" msgstr "%s (%d 行目) の affix 名が長過ぎます: %s" -#: ../spell.c:955 msgid "E761: Format error in affix file FOL, LOW or UPP" msgstr "" "E761: affixファイルの FOL, LOW もしくは UPP のフォーマットにエラーがあります" -#: ../spell.c:957 msgid "E762: Character in FOL, LOW or UPP is out of range" msgstr "E762: FOL, LOW もしくは UPP の文字が範囲外です" -#: ../spell.c:958 msgid "Compressing word tree..." msgstr "単語ツリーを圧縮しています..." -#: ../spell.c:1951 -msgid "E756: Spell checking is not enabled" -msgstr "E756: スペルチェックは無効化されています" - -#: ../spell.c:2249 -#, c-format -msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\"" -msgstr "" -"警告: 単語リスト \"%s.%s.spl\" および \"%s.ascii.spl\" は見つかりません" - -#: ../spell.c:2473 #, c-format msgid "Reading spell file \"%s\"" msgstr "スペルファイル \"%s\" を読込中" -#: ../spell.c:2496 msgid "E757: This does not look like a spell file" msgstr "E757: スペルファイルではないようです" -#: ../spell.c:2501 msgid "E771: Old spell file, needs to be updated" msgstr "E771: 古いスペルファイルなので, アップデートしてください" -#: ../spell.c:2504 msgid "E772: Spell file is for newer version of Vim" msgstr "E772: より新しいバージョンの Vim 用のスペルファイルです" -#: ../spell.c:2602 msgid "E770: Unsupported section in spell file" msgstr "E770: スペルファイルにサポートしていないセクションがあります" -#: ../spell.c:3762 #, c-format -msgid "Warning: region %s not supported" -msgstr "警告9: %s という範囲はサポートされていません" +msgid "E778: This does not look like a .sug file: %s" +msgstr "E778: .sug ファイルではないようです: %s" + +#, c-format +msgid "E779: Old .sug file, needs to be updated: %s" +msgstr "E779: 古い .sug ファイルなので, アップデートしてください: %s" + +#, c-format +msgid "E780: .sug file is for newer version of Vim: %s" +msgstr "E780: より新しいバージョンの Vim 用の .sug ファイルです: %s" + +#, c-format +msgid "E781: .sug file doesn't match .spl file: %s" +msgstr "E781: .sug ファイルが .spl ファイルと一致しません: %s" + +#, c-format +msgid "E782: error while reading .sug file: %s" +msgstr "E782: .sug ファイルの読込中にエラーが発生しました: %s" -#: ../spell.c:4550 #, c-format msgid "Reading affix file %s ..." msgstr "affix ファイル %s を読込中..." -#: ../spell.c:4589 ../spell.c:5635 ../spell.c:6140 #, c-format msgid "Conversion failure for word in %s line %d: %s" msgstr "%s (%d 行目) の単語を変換できませんでした: %s" -#: ../spell.c:4630 ../spell.c:6170 #, c-format msgid "Conversion in %s not supported: from %s to %s" msgstr "%s 内の次の変換はサポートされていません: %s から %s へ" -#: ../spell.c:4642 +#, c-format +msgid "Conversion in %s not supported" +msgstr "%s 内の変換はサポートされていません" + #, c-format msgid "Invalid value for FLAG in %s line %d: %s" msgstr "%s 内の %d 行目の FLAG に無効な値があります: %s" -#: ../spell.c:4655 #, c-format msgid "FLAG after using flags in %s line %d: %s" msgstr "%s 内の %d 行目にフラグの二重使用があります: %s" -#: ../spell.c:4723 #, c-format msgid "" "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line " @@ -5360,7 +5118,6 @@ msgstr "" "%s の %d 行目の PFX 項目の後の COMPOUNDFORBIDFLAG の定義は誤った結果を生じる" "ことがあります" -#: ../spell.c:4731 #, c-format msgid "" "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line " @@ -5369,43 +5126,35 @@ msgstr "" "%s の %d 行目の PFX 項目の後の COMPOUNDPERMITFLAG の定義は誤った結果を生じる" "ことがあります" -#: ../spell.c:4747 #, c-format msgid "Wrong COMPOUNDRULES value in %s line %d: %s" msgstr "COMPOUNDRULES の値に誤りがあります. ファイル %s の %d 行目: %s" -#: ../spell.c:4771 #, c-format msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s" msgstr "%s の %d 行目の COMPOUNDWORDMAX の値に誤りがあります: %s" -#: ../spell.c:4777 #, c-format msgid "Wrong COMPOUNDMIN value in %s line %d: %s" msgstr "%s の %d 行目の COMPOUNDMIN の値に誤りがあります: %s" -#: ../spell.c:4783 #, c-format msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s" msgstr "%s の %d 行目の COMPOUNDSYLMAX の値に誤りがあります: %s" -#: ../spell.c:4795 #, c-format msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s" msgstr "%s の %d 行目の CHECKCOMPOUNDPATTERN の値に誤りがあります: %s" -#: ../spell.c:4847 #, c-format msgid "Different combining flag in continued affix block in %s line %d: %s" msgstr "" "%s の %d 行目の 連続 affix ブロックのフラグの組合せに違いがあります: %s" -#: ../spell.c:4850 #, c-format msgid "Duplicate affix in %s line %d: %s" msgstr "%s の %d 行目に 重複した affix を検出しました: %s" -#: ../spell.c:4871 #, c-format msgid "" "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s " @@ -5414,308 +5163,206 @@ msgstr "" "%s の %d 行目の affix は BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST " "に使用してください: %s" -#: ../spell.c:4893 #, c-format msgid "Expected Y or N in %s line %d: %s" msgstr "%s の %d 行目では Y か N が必要です: %s" -#: ../spell.c:4968 #, c-format msgid "Broken condition in %s line %d: %s" msgstr "%s の %d 行目の 条件は壊れています: %s" -#: ../spell.c:5091 #, c-format msgid "Expected REP(SAL) count in %s line %d" msgstr "%s の %d 行目には REP(SAL) の回数が必要です" -#: ../spell.c:5120 #, c-format msgid "Expected MAP count in %s line %d" msgstr "%s の %d 行目には MAP の回数が必要です" -#: ../spell.c:5132 #, c-format msgid "Duplicate character in MAP in %s line %d" msgstr "%s の %d 行目の MAP に重複した文字があります" -#: ../spell.c:5176 #, c-format msgid "Unrecognized or duplicate item in %s line %d: %s" msgstr "%s の %d 行目に 認識できないか重複した項目があります: %s" -#: ../spell.c:5197 #, c-format msgid "Missing FOL/LOW/UPP line in %s" msgstr "%s 行目に FOL/LOW/UPP がありません" -#: ../spell.c:5220 msgid "COMPOUNDSYLMAX used without SYLLABLE" msgstr "SYLLABLE が指定されない COMPOUNDSYLMAX" -#: ../spell.c:5236 msgid "Too many postponed prefixes" msgstr "遅延後置子が多過ぎます" -#: ../spell.c:5238 msgid "Too many compound flags" msgstr "複合フラグが多過ぎます" -#: ../spell.c:5240 msgid "Too many postponed prefixes and/or compound flags" msgstr "遅延後置子 と/もしくは 複合フラグが多過ぎます" -#: ../spell.c:5250 #, c-format msgid "Missing SOFO%s line in %s" msgstr "SOFO%s 行が %s にありません" -#: ../spell.c:5253 #, c-format msgid "Both SAL and SOFO lines in %s" msgstr "SAL行 と SOFO行 が %s で両方指定されています" -#: ../spell.c:5331 #, c-format msgid "Flag is not a number in %s line %d: %s" msgstr "%s の %d 行の フラグが数値ではありません: %s" -#: ../spell.c:5334 #, c-format msgid "Illegal flag in %s line %d: %s" msgstr "%s の %d 行目の フラグが不正です: %s" -#: ../spell.c:5493 ../spell.c:5501 #, c-format msgid "%s value differs from what is used in another .aff file" msgstr "値 %s は他の .aff ファイルで使用されたのと異なります" -#: ../spell.c:5602 #, c-format msgid "Reading dictionary file %s ..." msgstr "辞書ファイル %s をスキャン中..." -#: ../spell.c:5611 #, c-format msgid "E760: No word count in %s" msgstr "E760: %s には単語数がありません" -#: ../spell.c:5669 #, c-format msgid "line %6d, word %6d - %s" msgstr "行 %6d, 単語 %6d - %s" -#: ../spell.c:5691 #, c-format msgid "Duplicate word in %s line %d: %s" msgstr "%s の %d 行目で 重複単語が見つかりました: %s" -#: ../spell.c:5694 #, c-format msgid "First duplicate word in %s line %d: %s" msgstr "重複のうち最初の単語は %s の %d 行目です: %s" -#: ../spell.c:5746 #, c-format msgid "%d duplicate word(s) in %s" msgstr "%d 個の単語が見つかりました (%s 内)" -#: ../spell.c:5748 #, c-format msgid "Ignored %d word(s) with non-ASCII characters in %s" msgstr "非ASCII文字を含む %d 個の単語を無視しました (%s 内)" -#: ../spell.c:6115 #, c-format msgid "Reading word file %s ..." msgstr "標準入力から読込み中 %s ..." -#: ../spell.c:6155 #, c-format msgid "Duplicate /encoding= line ignored in %s line %d: %s" msgstr "%s の %d 行目の 重複した /encoding= 行を無視しました: %s" -#: ../spell.c:6159 #, c-format msgid "/encoding= line after word ignored in %s line %d: %s" msgstr "%s の %d 行目の 単語の後の /encoding= 行を無視しました: %s" -#: ../spell.c:6180 #, c-format msgid "Duplicate /regions= line ignored in %s line %d: %s" msgstr "%s の %d 行目の 重複した /regions= 行を無視しました: %s" -#: ../spell.c:6185 #, c-format msgid "Too many regions in %s line %d: %s" msgstr "%s の %d 行目, 範囲指定が多過ぎます: %s" -#: ../spell.c:6198 #, c-format msgid "/ line ignored in %s line %d: %s" msgstr "%s の %d 行目の 重複した / 行を無視しました: %s" -#: ../spell.c:6224 #, c-format msgid "Invalid region nr in %s line %d: %s" msgstr "%s の %d 行目 無効な nr 領域です: %s" -#: ../spell.c:6230 #, c-format msgid "Unrecognized flags in %s line %d: %s" msgstr "%s の %d 行目 認識不能なフラグです: %s" -#: ../spell.c:6257 #, c-format msgid "Ignored %d words with non-ASCII characters" msgstr "非ASCII文字を含む %d 個の単語を無視しました" -#: ../spell.c:6656 +msgid "E845: Insufficient memory, word list will be incomplete" +msgstr "E845: メモリが足りないので、単語リストは不完全です" + #, c-format msgid "Compressed %d of %d nodes; %d (%d%%) remaining" msgstr "ノード %d 個(全 %d 個中) を圧縮しました; 残り %d (%d%%)" -#: ../spell.c:7340 msgid "Reading back spell file..." msgstr "スペルファイルを逆読込中" -#. Go through the trie of good words, soundfold each word and add it to -#. the soundfold trie. -#: ../spell.c:7357 +#. +#. * Go through the trie of good words, soundfold each word and add it to +#. * the soundfold trie. +#. msgid "Performing soundfolding..." msgstr "音声畳込みを実行中..." -#: ../spell.c:7368 #, c-format -msgid "Number of words after soundfolding: %" -msgstr "音声畳込み後の総単語数: %" +msgid "Number of words after soundfolding: %ld" +msgstr "音声畳込み後の総単語数: %ld" -#: ../spell.c:7476 #, c-format msgid "Total number of words: %d" msgstr "総単語数: %d" -#: ../spell.c:7655 #, c-format msgid "Writing suggestion file %s ..." msgstr "修正候補ファイル \"%s\" を書込み中..." -#: ../spell.c:7707 ../spell.c:7927 #, c-format msgid "Estimated runtime memory use: %d bytes" msgstr "推定メモリ使用量: %d バイト" -#: ../spell.c:7820 msgid "E751: Output file name must not have region name" msgstr "E751: 出力ファイル名には範囲名を含められません" -#: ../spell.c:7822 msgid "E754: Only up to 8 regions supported" msgstr "E754: 範囲は 8 個までしかサポートされていません" -#: ../spell.c:7846 #, c-format msgid "E755: Invalid region in %s" msgstr "E755: 無効な範囲です: %s" -#: ../spell.c:7907 msgid "Warning: both compounding and NOBREAK specified" msgstr "警告: 複合フラグと NOBREAK が両方とも指定されました" -#: ../spell.c:7920 #, c-format msgid "Writing spell file %s ..." msgstr "スペルファイル %s を書込み中..." -#: ../spell.c:7925 msgid "Done!" msgstr "実行しました!" -#: ../spell.c:8034 #, c-format -msgid "E765: 'spellfile' does not have % entries" -msgstr "E765: 'spellfile' には % 個のエントリはありません" +msgid "E765: 'spellfile' does not have %ld entries" +msgstr "E765: 'spellfile' には %ld 個のエントリはありません" -#: ../spell.c:8074 #, c-format msgid "Word '%.*s' removed from %s" msgstr "単語 '%.*s' が %s から削除されました" -#: ../spell.c:8117 #, c-format msgid "Word '%.*s' added to %s" msgstr "単語 '%.*s' が %s へ追加されました" -#: ../spell.c:8381 msgid "E763: Word characters differ between spell files" msgstr "E763: 単語の文字がスペルファイルと異なります" -#: ../spell.c:8684 -msgid "Sorry, no suggestions" -msgstr "残念ですが, 修正候補はありません" - -#: ../spell.c:8687 -#, c-format -msgid "Sorry, only % suggestions" -msgstr "残念ですが, 修正候補は % 個しかありません" - -#. for when 'cmdheight' > 1 -#. avoid more prompt -#: ../spell.c:8704 -#, c-format -msgid "Change \"%.*s\" to:" -msgstr "\"%.*s\" を次へ変換:" - -#: ../spell.c:8737 -#, c-format -msgid " < \"%.*s\"" -msgstr " < \"%.*s\"" - -#: ../spell.c:8882 -msgid "E752: No previous spell replacement" -msgstr "E752: スペル置換がまだ実行されていません" - -#: ../spell.c:8925 -#, c-format -msgid "E753: Not found: %s" -msgstr "E753: 見つかりません: %s" - -#: ../spell.c:9276 -#, c-format -msgid "E778: This does not look like a .sug file: %s" -msgstr "E778: .sug ファイルではないようです: %s" - -#: ../spell.c:9282 -#, c-format -msgid "E779: Old .sug file, needs to be updated: %s" -msgstr "E779: 古い .sug ファイルなので, アップデートしてください: %s" - -#: ../spell.c:9286 -#, c-format -msgid "E780: .sug file is for newer version of Vim: %s" -msgstr "E780: より新しいバージョンの Vim 用の .sug ファイルです: %s" - -#: ../spell.c:9295 -#, c-format -msgid "E781: .sug file doesn't match .spl file: %s" -msgstr "E781: .sug ファイルが .spl ファイルと一致しません: %s" - -#: ../spell.c:9305 -#, c-format -msgid "E782: error while reading .sug file: %s" -msgstr "E782: .sug ファイルの読込中にエラーが発生しました: %s" - #. This should have been checked when generating the .spl -#. file. -#: ../spell.c:11575 +#. * file. msgid "E783: duplicate char in MAP entry" msgstr "E783: MAP エントリに重複文字が存在します" -#: ../syntax.c:266 msgid "No Syntax items defined for this buffer" msgstr "このバッファに定義された構文要素はありません" -#: ../syntax.c:3083 ../syntax.c:3104 ../syntax.c:3127 #, c-format msgid "E390: Illegal argument: %s" msgstr "E390: 不正な引数です: %s" @@ -5723,28 +5370,22 @@ msgstr "E390: 不正な引数です: %s" msgid "syntax iskeyword " msgstr "シンタックス用 iskeyword " -#: ../syntax.c:3299 #, c-format msgid "E391: No such syntax cluster: %s" msgstr "E391: そのような構文クラスタはありません: %s" -#: ../syntax.c:3433 msgid "syncing on C-style comments" msgstr "C言語風コメントから同期中" -#: ../syntax.c:3439 msgid "no syncing" msgstr "非同期" -#: ../syntax.c:3441 msgid "syncing starts " msgstr "同期開始 " -#: ../syntax.c:3443 ../syntax.c:3506 msgid " lines before top line" msgstr " 行前(トップ行よりも)" -#: ../syntax.c:3448 msgid "" "\n" "--- Syntax sync items ---" @@ -5752,7 +5393,6 @@ msgstr "" "\n" "--- 構文同期要素 ---" -#: ../syntax.c:3452 msgid "" "\n" "syncing on items" @@ -5760,7 +5400,6 @@ msgstr "" "\n" "要素上で同期中" -#: ../syntax.c:3457 msgid "" "\n" "--- Syntax items ---" @@ -5768,53 +5407,41 @@ msgstr "" "\n" "--- 構文要素 ---" -#: ../syntax.c:3475 #, c-format msgid "E392: No such syntax cluster: %s" msgstr "E392: そのような構文クラスタはありません: %s" -#: ../syntax.c:3497 msgid "minimal " msgstr "minimal " -#: ../syntax.c:3503 msgid "maximal " msgstr "maximal " -#: ../syntax.c:3513 msgid "; match " msgstr "; 該当 " -#: ../syntax.c:3515 msgid " line breaks" msgstr " 個の改行" -#: ../syntax.c:4076 msgid "E395: contains argument not accepted here" msgstr "E395: この場所では引数containsは許可されていません" -#: ../syntax.c:4096 msgid "E844: invalid cchar value" msgstr "E844: 無効なccharの値です" -#: ../syntax.c:4107 msgid "E393: group[t]here not accepted here" msgstr "E393: ここではグループは許可されません" -#: ../syntax.c:4126 #, c-format msgid "E394: Didn't find region item for %s" msgstr "E394: %s の範囲要素が見つかりません" -#: ../syntax.c:4188 msgid "E397: Filename required" msgstr "E397: ファイル名が必要です" -#: ../syntax.c:4221 msgid "E847: Too many syntax includes" msgstr "E847: 構文の取り込み(include)が多過ぎます" -#: ../syntax.c:4303 #, c-format msgid "E789: Missing ']': %s" msgstr "E789: ']' がありません: %s" @@ -5823,221 +5450,173 @@ msgstr "E789: ']' がありません: %s" msgid "E890: trailing char after ']': %s]%s" msgstr "E890: ']' の後ろに余分な文字があります: %s]%s" -#: ../syntax.c:4531 #, c-format msgid "E398: Missing '=': %s" msgstr "E398: '=' がありません: %s" -#: ../syntax.c:4666 #, c-format msgid "E399: Not enough arguments: syntax region %s" msgstr "E399: 引数が足りません: 構文範囲 %s" -#: ../syntax.c:4870 msgid "E848: Too many syntax clusters" msgstr "E848: 構文クラスタが多過ぎます" -#: ../syntax.c:4954 msgid "E400: No cluster specified" msgstr "E400: クラスタが指定されていません" -#. end delimiter not found -#: ../syntax.c:4986 #, c-format msgid "E401: Pattern delimiter not found: %s" msgstr "E401: パターン区切りが見つかりません: %s" -#: ../syntax.c:5049 #, c-format msgid "E402: Garbage after pattern: %s" msgstr "E402: パターンのあとにゴミがあります: %s" -#: ../syntax.c:5120 msgid "E403: syntax sync: line continuations pattern specified twice" msgstr "E403: 構文同期: 連続行パターンが2度指定されました" -#: ../syntax.c:5169 #, c-format msgid "E404: Illegal arguments: %s" msgstr "E404: 不正な引数です: %s" -#: ../syntax.c:5217 #, c-format msgid "E405: Missing equal sign: %s" msgstr "E405: 等号がありません: %s" -#: ../syntax.c:5222 #, c-format msgid "E406: Empty argument: %s" msgstr "E406: 空の引数: %s" -#: ../syntax.c:5240 #, c-format msgid "E407: %s not allowed here" msgstr "E407: %s はココでは許可されていません" -#: ../syntax.c:5246 #, c-format msgid "E408: %s must be first in contains list" msgstr "E408: %s は内容リストの先頭でなければならない" -#: ../syntax.c:5304 #, c-format msgid "E409: Unknown group name: %s" msgstr "E409: 未知のグループ名: %s" -#: ../syntax.c:5512 #, c-format msgid "E410: Invalid :syntax subcommand: %s" msgstr "E410: 無効な :syntax のサブコマンド: %s" -#: ../syntax.c:5854 msgid "" " TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN" msgstr "" " TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN" -#: ../syntax.c:6146 msgid "E679: recursive loop loading syncolor.vim" msgstr "E679: syncolor.vim の再帰呼び出しを検出しました" -#: ../syntax.c:6256 #, c-format msgid "E411: highlight group not found: %s" msgstr "E411: ハイライトグループが見つかりません: %s" -#: ../syntax.c:6278 #, c-format msgid "E412: Not enough arguments: \":highlight link %s\"" msgstr "E412: 引数が充分ではない: \":highlight link %s\"" -#: ../syntax.c:6284 #, c-format msgid "E413: Too many arguments: \":highlight link %s\"" msgstr "E413: 引数が多過ぎます: \":highlight link %s\"" -#: ../syntax.c:6302 msgid "E414: group has settings, highlight link ignored" msgstr "E414: グループが設定されているのでハイライトリンクは無視されます" -#: ../syntax.c:6367 #, c-format msgid "E415: unexpected equal sign: %s" msgstr "E415: 予期せぬ等号です: %s" -#: ../syntax.c:6395 #, c-format msgid "E416: missing equal sign: %s" msgstr "E416: 等号がありません: %s" -#: ../syntax.c:6418 #, c-format msgid "E417: missing argument: %s" msgstr "E417: 引数がありません: %s" -#: ../syntax.c:6446 #, c-format msgid "E418: Illegal value: %s" msgstr "E418: 不正な値です: %s" -#: ../syntax.c:6496 msgid "E419: FG color unknown" msgstr "E419: 未知の前景色です" -#: ../syntax.c:6504 msgid "E420: BG color unknown" msgstr "E420: 未知の背景色です" -#: ../syntax.c:6564 #, c-format msgid "E421: Color name or number not recognized: %s" msgstr "E421: カラー名や番号を認識できません: %s" -#: ../syntax.c:6714 #, c-format msgid "E422: terminal code too long: %s" msgstr "E422: 終端コードが長過ぎます: %s" -#: ../syntax.c:6753 #, c-format msgid "E423: Illegal argument: %s" msgstr "E423: 不正な引数です: %s" -#: ../syntax.c:6925 msgid "E424: Too many different highlighting attributes in use" msgstr "E424: 多くの異なるハイライト属性が使われ過ぎています" -#: ../syntax.c:7427 msgid "E669: Unprintable character in group name" msgstr "E669: グループ名に印刷不可能な文字があります" -#: ../syntax.c:7434 msgid "W18: Invalid character in group name" msgstr "W18: グループ名に不正な文字があります" -#: ../syntax.c:7448 msgid "E849: Too many highlight and syntax groups" msgstr "E849: ハイライトと構文グループが多過ぎます" -#: ../tag.c:104 msgid "E555: at bottom of tag stack" msgstr "E555: タグスタックの末尾です" -#: ../tag.c:105 msgid "E556: at top of tag stack" msgstr "E556: タグスタックの先頭です" -#: ../tag.c:380 msgid "E425: Cannot go before first matching tag" msgstr "E425: 最初の該当タグを超えて戻ることはできません" -#: ../tag.c:504 #, c-format msgid "E426: tag not found: %s" msgstr "E426: タグが見つかりません: %s" -#: ../tag.c:528 msgid " # pri kind tag" msgstr " # pri kind tag" -#: ../tag.c:531 msgid "file\n" msgstr "ファイル\n" -#: ../tag.c:829 msgid "E427: There is only one matching tag" msgstr "E427: 該当タグが1つだけしかありません" -#: ../tag.c:831 msgid "E428: Cannot go beyond last matching tag" msgstr "E428: 最後に該当するタグを超えて進むことはできません" -#: ../tag.c:850 #, c-format msgid "File \"%s\" does not exist" msgstr "ファイル \"%s\" がありません" #. Give an indication of the number of matching tags -#: ../tag.c:859 #, c-format msgid "tag %d of %d%s" msgstr "タグ %d (全%d%s)" -#: ../tag.c:862 msgid " or more" msgstr " かそれ以上" -#: ../tag.c:864 msgid " Using tag with different case!" msgstr " タグを異なるcaseで使用します!" -#: ../tag.c:909 #, c-format msgid "E429: File \"%s\" does not exist" msgstr "E429: ファイル \"%s\" がありません" #. Highlight title -#: ../tag.c:960 msgid "" "\n" " # TO tag FROM line in file/text" @@ -6045,79 +5624,66 @@ msgstr "" "\n" " # TO タグ FROM 行 in file/text" -#: ../tag.c:1303 #, c-format msgid "Searching tags file %s" msgstr "タグファイル %s を検索中" -#: ../tag.c:1545 +#, c-format +msgid "E430: Tag file path truncated for %s\n" +msgstr "E430: タグファイルのパスが %s に切り捨てられました\n" + msgid "Ignoring long line in tags file" msgstr "タグファイル内の長い行を無視します" -#: ../tag.c:1915 #, c-format msgid "E431: Format error in tags file \"%s\"" msgstr "E431: タグファイル \"%s\" のフォーマットにエラーがあります" -#: ../tag.c:1917 #, c-format -msgid "Before byte %" -msgstr "直前の % バイト" +msgid "Before byte %ld" +msgstr "直前の %ld バイト" -#: ../tag.c:1929 #, c-format msgid "E432: Tags file not sorted: %s" msgstr "E432: タグファイルがソートされていません: %s" #. never opened any tags file -#: ../tag.c:1960 msgid "E433: No tags file" msgstr "E433: タグファイルがありません" -#: ../tag.c:2536 msgid "E434: Can't find tag pattern" msgstr "E434: タグパターンを見つけられません" -#: ../tag.c:2544 msgid "E435: Couldn't find tag, just guessing!" msgstr "E435: タグを見つけられないので単に推測します!" -#: ../tag.c:2797 #, c-format msgid "Duplicate field name: %s" msgstr "重複したフィールド名: %s" -#: ../term.c:1442 msgid "' not known. Available builtin terminals are:" msgstr "' は未知です. 現行の組み込み端末は次のとおりです:" -#: ../term.c:1463 msgid "defaulting to '" msgstr "省略値を次のように設定します '" -#: ../term.c:1731 msgid "E557: Cannot open termcap file" msgstr "E557: termcapファイルを開けません" -#: ../term.c:1735 msgid "E558: Terminal entry not found in terminfo" msgstr "E558: terminfoに端末エントリを見つけられません" -#: ../term.c:1737 msgid "E559: Terminal entry not found in termcap" msgstr "E559: termcapに端末エントリを見つけられません" -#: ../term.c:1878 #, c-format msgid "E436: No \"%s\" entry in termcap" msgstr "E436: termcapに \"%s\" のエントリがありません" -#: ../term.c:2249 msgid "E437: terminal capability \"cm\" required" msgstr "E437: 端末に \"cm\" 機能が必要です" #. Highlight title -#: ../term.c:4376 msgid "" "\n" "--- Terminal keys ---" @@ -6125,168 +5691,347 @@ msgstr "" "\n" "--- 端末キー ---" -#: ../ui.c:481 +msgid "Cannot open $VIMRUNTIME/rgb.txt" +msgstr "$VIMRUNTIME/rgb.txtを開けません" + +msgid "new shell started\n" +msgstr "新しいシェルを起動します\n" + msgid "Vim: Error reading input, exiting...\n" msgstr "Vim: 入力を読込み中のエラーにより終了します...\n" +msgid "Used CUT_BUFFER0 instead of empty selection" +msgstr "空の選択領域のかわりにCUT_BUFFER0が使用されました" + #. This happens when the FileChangedRO autocommand changes the #. * file in a way it becomes shorter. -#: ../undo.c:379 msgid "E881: Line count changed unexpectedly" msgstr "E881: 予期せず行カウントが変わりました" -#: ../undo.c:627 +#. must display the prompt +msgid "No undo possible; continue anyway" +msgstr "可能なアンドゥはありません: とりあえず続けます" + #, c-format msgid "E828: Cannot open undo file for writing: %s" msgstr "E828: 書込み用にアンドゥファイルを開けません: %s" -#: ../undo.c:717 #, c-format msgid "E825: Corrupted undo file (%s): %s" msgstr "E825: アンドゥファイルが壊れています (%s): %s" -#: ../undo.c:1039 msgid "Cannot write undo file in any directory in 'undodir'" msgstr "'undodir'のディレクトリにアンドゥファイルを書き込めません" -#: ../undo.c:1074 #, c-format msgid "Will not overwrite with undo file, cannot read: %s" msgstr "アンドゥファイルとして読み込めないので上書きしません: %s" -#: ../undo.c:1092 #, c-format msgid "Will not overwrite, this is not an undo file: %s" msgstr "アンドゥファイルではないので上書きしません: %s" -#: ../undo.c:1108 msgid "Skipping undo file write, nothing to undo" msgstr "対象がないのでアンドゥファイルの書き込みをスキップします" -#: ../undo.c:1121 #, c-format msgid "Writing undo file: %s" msgstr "アンドゥファイル書き込み中: %s" -#: ../undo.c:1213 #, c-format msgid "E829: write error in undo file: %s" msgstr "E829: アンドゥファイルの書き込みエラーです: %s" -#: ../undo.c:1280 #, c-format msgid "Not reading undo file, owner differs: %s" msgstr "オーナーが異なるのでアンドゥファイルを読み込みません: %s" -#: ../undo.c:1292 #, c-format msgid "Reading undo file: %s" msgstr "アンドゥファイル読込中: %s" -#: ../undo.c:1299 #, c-format msgid "E822: Cannot open undo file for reading: %s" msgstr "E822: アンドゥファイルを読込用として開けません: %s" -#: ../undo.c:1308 #, c-format msgid "E823: Not an undo file: %s" msgstr "E823: アンドゥファイルではありません: %s" -#: ../undo.c:1313 +#, c-format +msgid "E832: Non-encrypted file has encrypted undo file: %s" +msgstr "E832: 非暗号化ファイルが暗号化されたアンドゥファイルを使ってます: %s" + +#, c-format +msgid "E826: Undo file decryption failed: %s" +msgstr "E826: 暗号化されたアンドゥファイルの解読に失敗しました: %s" + +#, c-format +msgid "E827: Undo file is encrypted: %s" +msgstr "E827: アンドゥファイルが暗号化されています: %s" + #, c-format msgid "E824: Incompatible undo file: %s" msgstr "E824: 互換性の無いアンドゥファイルです: %s" -#: ../undo.c:1328 msgid "File contents changed, cannot use undo info" msgstr "ファイルの内容が変わっているため、アンドゥ情報を利用できません" -#: ../undo.c:1497 #, c-format msgid "Finished reading undo file %s" msgstr "アンドゥファイル %s の取込を完了" -#: ../undo.c:1586 ../undo.c:1812 msgid "Already at oldest change" msgstr "既に一番古い変更です" -#: ../undo.c:1597 ../undo.c:1814 msgid "Already at newest change" msgstr "既に一番新しい変更です" -#: ../undo.c:1806 #, c-format -msgid "E830: Undo number % not found" -msgstr "E830: アンドゥ番号 % は見つかりません" +msgid "E830: Undo number %ld not found" +msgstr "E830: アンドゥ番号 %ld は見つかりません" -#: ../undo.c:1979 msgid "E438: u_undo: line numbers wrong" msgstr "E438: u_undo: 行番号が間違っています" -#: ../undo.c:2183 msgid "more line" msgstr "行 追加しました" -#: ../undo.c:2185 msgid "more lines" msgstr "行 追加しました" -#: ../undo.c:2187 msgid "line less" msgstr "行 削除しました" -#: ../undo.c:2189 msgid "fewer lines" msgstr "行 削除しました" -#: ../undo.c:2193 msgid "change" msgstr "箇所変更しました" -#: ../undo.c:2195 msgid "changes" msgstr "箇所変更しました" -#: ../undo.c:2225 #, c-format -msgid "% %s; %s #% %s" -msgstr "% %s; %s #% %s" +msgid "%ld %s; %s #%ld %s" +msgstr "%ld %s; %s #%ld %s" -#: ../undo.c:2228 msgid "before" msgstr "前方" -#: ../undo.c:2228 msgid "after" msgstr "後方" -#: ../undo.c:2325 msgid "Nothing to undo" msgstr "アンドゥ対象がありません" -#: ../undo.c:2330 msgid "number changes when saved" msgstr "通番 変更数 変更時期 保存済" -#: ../undo.c:2360 #, c-format -msgid "% seconds ago" -msgstr "% 秒経過しています" +msgid "%ld seconds ago" +msgstr "%ld 秒経過しています" -#: ../undo.c:2372 msgid "E790: undojoin is not allowed after undo" msgstr "E790: undo の直後に undojoin はできません" -#: ../undo.c:2466 msgid "E439: undo list corrupt" msgstr "E439: アンドゥリストが壊れています" -#: ../undo.c:2495 msgid "E440: undo line missing" msgstr "E440: アンドゥ行がありません" -#: ../version.c:600 +#, c-format +msgid "E122: Function %s already exists, add ! to replace it" +msgstr "E122: 関数 %s は定義済です, 再定義するには ! を追加してください" + +msgid "E717: Dictionary entry already exists" +msgstr "E717: 辞書型内にエントリが既に存在します" + +msgid "E718: Funcref required" +msgstr "E718: 関数参照型が要求されます" + +#, c-format +msgid "E130: Unknown function: %s" +msgstr "E130: 未知の関数です: %s" + +#, c-format +msgid "E125: Illegal argument: %s" +msgstr "E125: 不正な引数です: %s" + +#, c-format +msgid "E853: Duplicate argument name: %s" +msgstr "E853: 引数名が重複しています: %s" + +#, c-format +msgid "E740: Too many arguments for function %s" +msgstr "E740: 関数の引数が多過ぎます: %s" + +#, c-format +msgid "E116: Invalid arguments for function %s" +msgstr "E116: 関数の無効な引数です: %s" + +msgid "E132: Function call depth is higher than 'maxfuncdepth'" +msgstr "E132: 関数呼出の入れ子数が 'maxfuncdepth' を超えました" + +#, c-format +msgid "calling %s" +msgstr "%s を実行中です" + +#, c-format +msgid "%s aborted" +msgstr "%s が中断されました" + +#, c-format +msgid "%s returning #%ld" +msgstr "%s が #%ld を返しました" + +#, c-format +msgid "%s returning %s" +msgstr "%s が %s を返しました" + +msgid "E699: Too many arguments" +msgstr "E699: 引数が多過ぎます" + +#, c-format +msgid "E117: Unknown function: %s" +msgstr "E117: 未知の関数です: %s" + +#, c-format +msgid "E933: Function was deleted: %s" +msgstr "E933: 関数は削除されました: %s" + +#, c-format +msgid "E119: Not enough arguments for function: %s" +msgstr "E119: 関数の引数が足りません: %s" + +#, c-format +msgid "E120: Using not in a script context: %s" +msgstr "E120: スクリプト以外でが使われました: %s" + +#, c-format +msgid "E725: Calling dict function without Dictionary: %s" +msgstr "E725: 辞書用関数が呼ばれましたが辞書がありません: %s" + +msgid "E129: Function name required" +msgstr "E129: 関数名が要求されます" + +#, c-format +msgid "E128: Function name must start with a capital or \"s:\": %s" +msgstr "E128: 関数名は大文字か \"s:\" で始まらなければなりません: %s" + +#, c-format +msgid "E884: Function name cannot contain a colon: %s" +msgstr "E884: 関数名にはコロンは含められません: %s" + +#, c-format +msgid "E123: Undefined function: %s" +msgstr "E123: 未定義の関数です: %s" + +#, c-format +msgid "E124: Missing '(': %s" +msgstr "E124: '(' がありません: %s" + +msgid "E862: Cannot use g: here" +msgstr "E862: ここでは g: は使えません" + +#, c-format +msgid "E932: Closure function should not be at top level: %s" +msgstr "E932: クロージャー関数はトップレベルに記述できません: %s" + +msgid "E126: Missing :endfunction" +msgstr "E126: :endfunction がありません" + +#, c-format +msgid "E707: Function name conflicts with variable: %s" +msgstr "E707: 関数名が変数名と衝突します: %s" + +#, c-format +msgid "E127: Cannot redefine function %s: It is in use" +msgstr "E127: 関数 %s を再定義できません: 使用中です" + +#, c-format +msgid "E746: Function name does not match script file name: %s" +msgstr "E746: 関数名がスクリプトのファイル名と一致しません: %s" + +#, c-format +msgid "E131: Cannot delete function %s: It is in use" +msgstr "E131: 関数 %s を削除できません: 使用中です" + +msgid "E133: :return not inside a function" +msgstr "E133: 関数外に :return がありました" + +#, c-format +msgid "E107: Missing parentheses: %s" +msgstr "E107: カッコ '(' がありません: %s" + +#. Only MS VC 4.1 and earlier can do Win32s +msgid "" +"\n" +"MS-Windows 16/32-bit GUI version" +msgstr "" +"\n" +"MS-Windows 16/32 ビット GUI 版" + +msgid "" +"\n" +"MS-Windows 64-bit GUI version" +msgstr "" +"\n" +"MS-Windows 64 ビット GUI 版" + +msgid "" +"\n" +"MS-Windows 32-bit GUI version" +msgstr "" +"\n" +"MS-Windows 32 ビット GUI 版" + +msgid " with OLE support" +msgstr " with OLE サポート" + +msgid "" +"\n" +"MS-Windows 64-bit console version" +msgstr "" +"\n" +"MS-Windows 64 ビット コンソール 版" + +msgid "" +"\n" +"MS-Windows 32-bit console version" +msgstr "" +"\n" +"MS-Windows 32 ビット コンソール 版" + +msgid "" +"\n" +"MacOS X (unix) version" +msgstr "" +"\n" +"MacOS X (unix) 版" + +msgid "" +"\n" +"MacOS X version" +msgstr "" +"\n" +"MacOS X 版" + +msgid "" +"\n" +"MacOS version" +msgstr "" +"\n" +"MacOS 版" + +msgid "" +"\n" +"OpenVMS version" +msgstr "" +"\n" +"OpenVMS 版" + msgid "" "\n" "Included patches: " @@ -6294,7 +6039,6 @@ msgstr "" "\n" "適用済パッチ: " -#: ../version.c:627 msgid "" "\n" "Extra patches: " @@ -6302,11 +6046,9 @@ msgstr "" "\n" "追加拡張パッチ: " -#: ../version.c:639 ../version.c:864 msgid "Modified by " msgstr "Modified by " -#: ../version.c:646 msgid "" "\n" "Compiled " @@ -6314,11 +6056,9 @@ msgstr "" "\n" "Compiled " -#: ../version.c:649 msgid "by " msgstr "by " -#: ../version.c:660 msgid "" "\n" "Huge version " @@ -6326,1886 +6066,926 @@ msgstr "" "\n" "Huge 版 " -#: ../version.c:661 -msgid "without GUI." -msgstr "without GUI." - -#: ../version.c:662 -msgid " Features included (+) or not (-):\n" -msgstr " 機能の一覧 有効(+)/無効(-)\n" +msgid "" +"\n" +"Big version " +msgstr "" +"\n" +"Big 版 " -#: ../version.c:667 -msgid " system vimrc file: \"" -msgstr " システム vimrc: \"" +msgid "" +"\n" +"Normal version " +msgstr "" +"\n" +"通常 版 " -#: ../version.c:672 -msgid " user vimrc file: \"" +msgid "" +"\n" +"Small version " +msgstr "" +"\n" +"Small 版 " + +msgid "" +"\n" +"Tiny version " +msgstr "" +"\n" +"Tiny 版 " + +msgid "without GUI." +msgstr "without GUI." + +msgid "with GTK3 GUI." +msgstr "with GTK3 GUI." + +msgid "with GTK2-GNOME GUI." +msgstr "with GTK2-GNOME GUI." + +msgid "with GTK2 GUI." +msgstr "with GTK2 GUI." + +msgid "with X11-Motif GUI." +msgstr "with X11-Motif GUI." + +msgid "with X11-neXtaw GUI." +msgstr "with X11-neXtaw GUI." + +msgid "with X11-Athena GUI." +msgstr "with X11-Athena GUI." + +msgid "with Photon GUI." +msgstr "with Photon GUI." + +msgid "with GUI." +msgstr "with GUI." + +msgid "with Carbon GUI." +msgstr "with Carbon GUI." + +msgid "with Cocoa GUI." +msgstr "with Cocoa GUI." + +msgid "with (classic) GUI." +msgstr "with (クラシック) GUI." + +msgid " Features included (+) or not (-):\n" +msgstr " 機能の一覧 有効(+)/無効(-)\n" + +msgid " system vimrc file: \"" +msgstr " システム vimrc: \"" + +msgid " user vimrc file: \"" msgstr " ユーザー vimrc: \"" -#: ../version.c:677 msgid " 2nd user vimrc file: \"" msgstr " 第2ユーザー vimrc: \"" -#: ../version.c:682 msgid " 3rd user vimrc file: \"" msgstr " 第3ユーザー vimrc: \"" -#: ../version.c:687 msgid " user exrc file: \"" msgstr " ユーザー exrc: \"" -#: ../version.c:692 msgid " 2nd user exrc file: \"" msgstr " 第2ユーザー exrc: \"" -#: ../version.c:699 +msgid " system gvimrc file: \"" +msgstr " システム gvimrc: \"" + +msgid " user gvimrc file: \"" +msgstr " ユーザー gvimrc: \"" + +msgid "2nd user gvimrc file: \"" +msgstr " 第2ユーザー gvimrc: \"" + +msgid "3rd user gvimrc file: \"" +msgstr " 第3ユーザー gvimrc: \"" + +msgid " defaults file: \"" +msgstr " デフォルトファイル: \"" + +msgid " system menu file: \"" +msgstr " システムメニュー: \"" + msgid " fall-back for $VIM: \"" msgstr " 省略時の $VIM: \"" -#: ../version.c:705 msgid " f-b for $VIMRUNTIME: \"" msgstr "省略時の $VIMRUNTIME: \"" -#: ../version.c:709 msgid "Compilation: " msgstr "コンパイル: " -#: ../version.c:712 +msgid "Compiler: " +msgstr "コンパイラ: " + msgid "Linking: " msgstr "リンク: " -#: ../version.c:717 msgid " DEBUG BUILD" msgstr "デバッグビルド" -#: ../version.c:767 msgid "VIM - Vi IMproved" msgstr "VIM - Vi IMproved" -#: ../version.c:769 msgid "version " msgstr "version " -#: ../version.c:770 msgid "by Bram Moolenaar et al." msgstr "by Bram Moolenaar 他." -#: ../version.c:774 msgid "Vim is open source and freely distributable" msgstr "Vim はオープンソースであり自由に配布可能です" -#: ../version.c:776 msgid "Help poor children in Uganda!" msgstr "ウガンダの恵まれない子供たちに援助を!" -#: ../version.c:777 msgid "type :help iccf for information " msgstr "詳細な情報は :help iccf " -#: ../version.c:779 msgid "type :q to exit " msgstr "終了するには :q " -#: ../version.c:780 msgid "type :help or for on-line help" msgstr "オンラインヘルプは :help " -#: ../version.c:781 -msgid "type :help version7 for version info" -msgstr "バージョン情報は :help version7 " +msgid "type :help version8 for version info" +msgstr "バージョン情報は :help version8 " -#: ../version.c:784 msgid "Running in Vi compatible mode" msgstr "Vi互換モードで動作中" -#: ../version.c:785 msgid "type :set nocp for Vim defaults" msgstr "Vim推奨値にするには :set nocp " -#: ../version.c:786 msgid "type :help cp-default for info on this" msgstr "詳細な情報は :help cp-default" -#: ../version.c:827 +msgid "menu Help->Orphans for information " +msgstr "詳細はメニューの ヘルプ->孤児 を参照して下さい " + +msgid "Running modeless, typed text is inserted" +msgstr "モード無で実行中, タイプした文字が挿入されます" + +msgid "menu Edit->Global Settings->Toggle Insert Mode " +msgstr "メニューの 編集->全体設定->挿入(初心者)モード切替 " + +msgid " for two modes " +msgstr " でモード有に " + +msgid "menu Edit->Global Settings->Toggle Vi Compatible" +msgstr "メニューの 編集->全体設定->Vi互換モード切替 " + +msgid " for Vim defaults " +msgstr " でVimとして動作 " + msgid "Sponsor Vim development!" msgstr "Vimの開発を応援してください!" -#: ../version.c:828 msgid "Become a registered Vim user!" msgstr "Vimの登録ユーザーになってください!" -#: ../version.c:831 msgid "type :help sponsor for information " msgstr "詳細な情報は :help sponsor " -#: ../version.c:832 msgid "type :help register for information " msgstr "詳細な情報は :help register " -#: ../version.c:834 msgid "menu Help->Sponsor/Register for information " msgstr "詳細はメニューの ヘルプ->スポンサー/登録 を参照して下さい" -#: ../window.c:119 +msgid "WARNING: Windows 95/98/ME detected" +msgstr "警告: Windows 95/98/ME を検出しました" + +msgid "type :help windows95 for info on this" +msgstr "詳細な情報は :help windows95" + msgid "Already only one window" msgstr "既にウィンドウは1つしかありません" -#: ../window.c:224 msgid "E441: There is no preview window" msgstr "E441: プレビューウィンドウがありません" -#: ../window.c:559 msgid "E442: Can't split topleft and botright at the same time" msgstr "E442: 左上と右下を同時に分割することはできません" -#: ../window.c:1228 msgid "E443: Cannot rotate when another window is split" msgstr "E443: 他のウィンドウが分割されている時には順回できません" -#: ../window.c:1803 msgid "E444: Cannot close last window" msgstr "E444: 最後のウィンドウを閉じることはできません" -#: ../window.c:1810 msgid "E813: Cannot close autocmd window" msgstr "E813: autocmdウィンドウは閉じられません" -#: ../window.c:1814 msgid "E814: Cannot close window, only autocmd window would remain" msgstr "E814: autocmdウィンドウしか残らないため、ウィンドウは閉じられません" -#: ../window.c:2717 msgid "E445: Other window contains changes" msgstr "E445: 他のウィンドウには変更があります" -#: ../window.c:4805 msgid "E446: No file name under cursor" msgstr "E446: カーソルの下にファイル名がありません" -msgid "List or number required" -msgstr "リストか数値が必要です" +#, c-format +msgid "E447: Can't find file \"%s\" in path" +msgstr "E447: pathには \"%s\" というファイルがありません" -#~ msgid "E831: bf_key_init() called with empty password" -#~ msgstr "E831: bf_key_init() が空パスワードで呼び出されました" +#, c-format +msgid "E799: Invalid ID: %ld (must be greater than or equal to 1)" +msgstr "E799: 無効な ID: %ld (1 以上でなければなりません)" -#~ msgid "E820: sizeof(uint32_t) != 4" -#~ msgstr "E820: sizeof(uint32_t) != 4" +#, c-format +msgid "E801: ID already taken: %ld" +msgstr "E801: ID はすでに利用中です: %ld" -#~ msgid "E817: Blowfish big/little endian use wrong" -#~ msgstr "E817: Blowfish暗号のビッグ/リトルエンディアンが間違っています" +msgid "List or number required" +msgstr "リストか数値が必要です" -#~ msgid "E818: sha256 test failed" -#~ msgstr "E818: sha256のテストに失敗しました" +#, c-format +msgid "E802: Invalid ID: %ld (must be greater than or equal to 1)" +msgstr "E802: 無効な ID: %ld (1 以上でなければなりません)" -#~ msgid "E819: Blowfish test failed" -#~ msgstr "E819: Blowfish暗号のテストに失敗しました" +#, c-format +msgid "E803: ID not found: %ld" +msgstr "E803: ID はありません: %ld" -#~ msgid "Patch file" -#~ msgstr "パッチファイル" +#, c-format +msgid "E370: Could not load library %s" +msgstr "E370: ライブラリ %s をロードできませんでした" -#~ msgid "" -#~ "&OK\n" -#~ "&Cancel" -#~ msgstr "" -#~ "決定(&O)\n" -#~ "キャンセル(&C)" +msgid "Sorry, this command is disabled: the Perl library could not be loaded." +msgstr "" +"このコマンドは無効です, ごめんなさい: Perlライブラリをロードできませんでした." -#~ msgid "E240: No connection to Vim server" -#~ msgstr "E240: Vim サーバへの接続がありません" +msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" +msgstr "" +"E299: サンドボックスでは Safe モジュールを使用しないPerlスクリプトは禁じられ" +"ています" -#~ msgid "E241: Unable to send to %s" -#~ msgstr "E241: %s へ送ることができません" +msgid "Edit with &multiple Vims" +msgstr "複数のVimで編集する (&M)" -#~ msgid "E277: Unable to read a server reply" -#~ msgstr "E277: サーバの応答がありません" +msgid "Edit with single &Vim" +msgstr "1つのVimで編集する (&V)" -#~ msgid "E258: Unable to send to client" -#~ msgstr "E258: クライアントへ送ることができません" +msgid "Diff with Vim" +msgstr "Vimで差分を表示する" -#~ msgid "Save As" -#~ msgstr "別名で保存" +msgid "Edit with &Vim" +msgstr "Vimで編集する (&V)" -#~ msgid "Edit File" -#~ msgstr "ファイルを編集" +#. Now concatenate +msgid "Edit with existing Vim - " +msgstr "起動済のVimで編集する - " -# Added at 27-Jan-2004. -#~ msgid " (NOT FOUND)" -#~ msgstr " (見つかりません)" +msgid "Edits the selected file(s) with Vim" +msgstr "選択したファイルをVimで編集する" -#~ msgid "Source Vim script" -#~ msgstr "Vimスクリプトの取込み" +msgid "Error creating process: Check if gvim is in your path!" +msgstr "プロセスの作成に失敗: gvimが環境変数PATH上にあるか確認してください!" -#~ msgid "unknown" -#~ msgstr "不明" +msgid "gvimext.dll error" +msgstr "gvimext.dll エラー" -#~ msgid "Edit File in new window" -#~ msgstr "新しいウィンドウでファイルを編集します" +msgid "Path length too long!" +msgstr "パスが長過ぎます!" -#~ msgid "Append File" -#~ msgstr "追加ファイル" +msgid "--No lines in buffer--" +msgstr "--バッファに行がありません--" -#~ msgid "Window position: X %d, Y %d" -#~ msgstr "ウィンドウ位置: X %d, Y %d" +#. +#. * The error messages that can be shared are included here. +#. * Excluded are errors that are only used once and debugging messages. +#. +msgid "E470: Command aborted" +msgstr "E470: コマンドが中断されました" -#~ msgid "Save Redirection" -#~ msgstr "リダイレクトを保存します" +msgid "E471: Argument required" +msgstr "E471: 引数が必要です" -#~ msgid "Save View" -#~ msgstr "ビューを保存します" +msgid "E10: \\ should be followed by /, ? or &" +msgstr "E10: \\ の後は / か ? か & でなければなりません" -#~ msgid "Save Session" -#~ msgstr "セッション情報を保存します" +msgid "E11: Invalid in command-line window; executes, CTRL-C quits" +msgstr "E11: コマンドラインでは無効です; で実行, CTRL-Cでやめる" -#~ msgid "Save Setup" -#~ msgstr "設定を保存します" +msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" +msgstr "" +"E12: 現在のディレクトリやタグ検索ではexrc/vimrcのコマンドは許可されません" -#~ msgid "E809: #< is not available without the +eval feature" -#~ msgstr "E809: #< は +eval 機能が無いと利用できません" +msgid "E171: Missing :endif" +msgstr "E171: :endif がありません" -#~ msgid "E196: No digraphs in this version" -#~ msgstr "E196: このバージョンに合字はありません" +msgid "E600: Missing :endtry" +msgstr "E600: :endtry がありません" -#~ msgid "is a device (disabled with 'opendevice' option)" -#~ msgstr " はデバイスです ('opendevice' オプションで回避できます)" +msgid "E170: Missing :endwhile" +msgstr "E170: :endwhile がありません" -#~ msgid "Reading from stdin..." -#~ msgstr "標準入力から読込み中..." +msgid "E170: Missing :endfor" +msgstr "E170: :endfor がありません" -#~ msgid "[blowfish]" -#~ msgstr "[blowfish暗号化]" +msgid "E588: :endwhile without :while" +msgstr "E588: :while のない :endwhile があります" -#~ msgid "[crypted]" -#~ msgstr "[暗号化]" +msgid "E588: :endfor without :for" +msgstr "E588: :endfor のない :for があります" -#~ msgid "E821: File is encrypted with unknown method" -#~ msgstr "E821: ファイルが未知の方法で暗号化されています" +msgid "E13: File exists (add ! to override)" +msgstr "E13: ファイルが存在します (! を追加で上書)" -# Added at 19-Jan-2004. -#~ msgid "NetBeans disallows writes of unmodified buffers" -#~ msgstr "NetBeansは未変更のバッファを上書することは許可していません" +msgid "E472: Command failed" +msgstr "E472: コマンドが失敗しました" -#~ msgid "Partial writes disallowed for NetBeans buffers" -#~ msgstr "NetBeansバッファの一部を書き出すことはできません" +#, c-format +msgid "E234: Unknown fontset: %s" +msgstr "E234: 未知のフォントセット: %s" -#~ msgid "writing to device disabled with 'opendevice' option" -#~ msgstr "'opendevice' オプションによりデバイスへの書き込みはできません" +#, c-format +msgid "E235: Unknown font: %s" +msgstr "E235: 未知のフォント: %s" -#~ msgid "E460: The resource fork would be lost (add ! to override)" -#~ msgstr "E460: リソースフォークが失われるかもしれません (! を追加で強制)" +#, c-format +msgid "E236: Font \"%s\" is not fixed-width" +msgstr "E236: フォント \"%s\" は固定幅ではありません" -#~ msgid "E851: Failed to create a new process for the GUI" -#~ msgstr "E851: GUI用のプロセスの起動に失敗しました" +msgid "E473: Internal error" +msgstr "E473: 内部エラーです" -#~ msgid "E852: The child process failed to start the GUI" -#~ msgstr "E852: 子プロセスがGUIの起動に失敗しました" +msgid "Interrupted" +msgstr "割込まれました" -#~ msgid "E229: Cannot start the GUI" -#~ msgstr "E229: GUIを開始できません" +msgid "E14: Invalid address" +msgstr "E14: 無効なアドレスです" -#~ msgid "E230: Cannot read from \"%s\"" -#~ msgstr "E230: \"%s\"から読込むことができません" +msgid "E474: Invalid argument" +msgstr "E474: 無効な引数です" -#~ msgid "E665: Cannot start GUI, no valid font found" -#~ msgstr "E665: 有効なフォントが見つからないので, GUIを開始できません" +#, c-format +msgid "E475: Invalid argument: %s" +msgstr "E475: 無効な引数です: %s" -#~ msgid "E231: 'guifontwide' invalid" -#~ msgstr "E231: 'guifontwide' が無効です" +#, c-format +msgid "E15: Invalid expression: %s" +msgstr "E15: 無効な式です: %s" -#~ msgid "E599: Value of 'imactivatekey' is invalid" -#~ msgstr "E599: 'imactivatekey' に設定された値が無効です" +msgid "E16: Invalid range" +msgstr "E16: 無効な範囲です" -#~ msgid "E254: Cannot allocate color %s" -#~ msgstr "E254: %s の色を割り当てられません" +msgid "E476: Invalid command" +msgstr "E476: 無効なコマンドです" -#~ msgid "No match at cursor, finding next" -#~ msgstr "カーソルの位置にマッチはありません, 次を検索しています" +#, c-format +msgid "E17: \"%s\" is a directory" +msgstr "E17: \"%s\" はディレクトリです" -#~ msgid " " -#~ msgstr "<開けません> " +#, c-format +msgid "E364: Library call failed for \"%s()\"" +msgstr "E364: \"%s\"() のライブラリ呼出に失敗しました" -#~ msgid "E616: vim_SelFile: can't get font %s" -#~ msgstr "E616: vim_SelFile: フォント %s を取得できません" +#, c-format +msgid "E448: Could not load library function %s" +msgstr "E448: ライブラリの関数 %s をロードできませんでした" -#~ msgid "E614: vim_SelFile: can't return to current directory" -#~ msgstr "E614: vim_SelFile: 現在のディレクトリに戻れません" +msgid "E19: Mark has invalid line number" +msgstr "E19: マークに無効な行番号が指定されていました" -#~ msgid "Pathname:" -#~ msgstr "パス名:" +msgid "E20: Mark not set" +msgstr "E20: マークは設定されていません" -#~ msgid "E615: vim_SelFile: can't get current directory" -#~ msgstr "E615: vim_SelFile: 現在のディレクトリを取得できません" +msgid "E21: Cannot make changes, 'modifiable' is off" +msgstr "E21: 'modifiable' がオフなので, 変更できません" -#~ msgid "OK" -#~ msgstr "OK" +msgid "E22: Scripts nested too deep" +msgstr "E22: スクリプトの入れ子が深過ぎます" -#~ msgid "Cancel" -#~ msgstr "キャンセル" +msgid "E23: No alternate file" +msgstr "E23: 副ファイルはありません" -#~ msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." -#~ msgstr "スクロールバー: 画像を取得できませんでした." +msgid "E24: No such abbreviation" +msgstr "E24: そのような短縮入力はありません" -#~ msgid "Vim dialog" -#~ msgstr "Vim ダイアログ" +msgid "E477: No ! allowed" +msgstr "E477: ! は許可されていません" -#~ msgid "E232: Cannot create BalloonEval with both message and callback" -#~ msgstr "E232: メッセージとコールバックのある BalloonEval を作成できません" +msgid "E25: GUI cannot be used: Not enabled at compile time" +msgstr "E25: GUIは使用不可能です: コンパイル時に無効にされています" -#~ msgid "Input _Methods" -#~ msgstr "インプットメソッド" +msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" +msgstr "E26: ヘブライ語は使用不可能です: コンパイル時に無効にされています\n" -#~ msgid "VIM - Search and Replace..." -#~ msgstr "VIM - 検索と置換..." +msgid "E27: Farsi cannot be used: Not enabled at compile time\n" +msgstr "E27: ペルシア語は使用不可能です: コンパイル時に無効にされています\n" -#~ msgid "VIM - Search..." -#~ msgstr "VIM - 検索..." +msgid "E800: Arabic cannot be used: Not enabled at compile time\n" +msgstr "E800: アラビア語は使用不可能です: コンパイル時に無効にされています\n" -#~ msgid "Find what:" -#~ msgstr "検索文字列:" +#, c-format +msgid "E28: No such highlight group name: %s" +msgstr "E28: そのような名のハイライトグループはありません: %s" -#~ msgid "Replace with:" -#~ msgstr "置換文字列:" +msgid "E29: No inserted text yet" +msgstr "E29: まだテキストが挿入されていません" -#~ msgid "Match whole word only" -#~ msgstr "正確に該当するものだけ" +msgid "E30: No previous command line" +msgstr "E30: 以前にコマンド行がありません" -#~ msgid "Match case" -#~ msgstr "大文字/小文字を区別する" +msgid "E31: No such mapping" +msgstr "E31: そのようなマッピングはありません" -#~ msgid "Direction" -#~ msgstr "方向" +msgid "E479: No match" +msgstr "E479: 該当はありません" -#~ msgid "Up" -#~ msgstr "上" +#, c-format +msgid "E480: No match: %s" +msgstr "E480: 該当はありません: %s" -#~ msgid "Down" -#~ msgstr "下" +msgid "E32: No file name" +msgstr "E32: ファイル名がありません" -#~ msgid "Find Next" -#~ msgstr "次を検索" +msgid "E33: No previous substitute regular expression" +msgstr "E33: 正規表現置換がまだ実行されていません" -#~ msgid "Replace" -#~ msgstr "置換" +msgid "E34: No previous command" +msgstr "E34: コマンドがまだ実行されていません" -#~ msgid "Replace All" -#~ msgstr "全て置換" +msgid "E35: No previous regular expression" +msgstr "E35: 正規表現がまだ実行されていません" -#~ msgid "Vim: Received \"die\" request from session manager\n" -#~ msgstr "Vim: セッションマネージャから \"die\" 要求を受け取りました\n" +msgid "E481: No range allowed" +msgstr "E481: 範囲指定は許可されていません" -#~ msgid "Close" -#~ msgstr "閉じる" +msgid "E36: Not enough room" +msgstr "E36: ウィンドウに十分な高さもしくは幅がありません" -#~ msgid "New tab" -#~ msgstr "新規タブページ" +#, c-format +msgid "E247: no registered server named \"%s\"" +msgstr "E247: %s という名前の登録されたサーバーはありません" -#~ msgid "Open Tab..." -#~ msgstr "タブページを開く..." +#, c-format +msgid "E482: Can't create file %s" +msgstr "E482: ファイル %s を作成できません" -#~ msgid "Vim: Main window unexpectedly destroyed\n" -#~ msgstr "Vim: メインウィンドウが不意に破壊されました\n" +msgid "E483: Can't get temp file name" +msgstr "E483: 一時ファイルの名前を取得できません" -#~ msgid "&Filter" -#~ msgstr "フィルタ(&F)" +#, c-format +msgid "E484: Can't open file %s" +msgstr "E484: ファイル \"%s\" を開けません" -#~ msgid "&Cancel" -#~ msgstr "キャンセル(&C)" +#, c-format +msgid "E485: Can't read file %s" +msgstr "E485: ファイル %s を読込めません" -#~ msgid "Directories" -#~ msgstr "ディレクトリ" +msgid "E37: No write since last change (add ! to override)" +msgstr "E37: 最後の変更が保存されていません (! を追加で変更を破棄)" -#~ msgid "Filter" -#~ msgstr "フィルタ" +msgid "E37: No write since last change" +msgstr "E37: 最後の変更が保存されていません" -#~ msgid "&Help" -#~ msgstr "ヘルプ(&H)" +msgid "E38: Null argument" +msgstr "E38: 引数が空です" -#~ msgid "Files" -#~ msgstr "ファイル" +msgid "E39: Number expected" +msgstr "E39: 数値が要求されています" -#~ msgid "&OK" -#~ msgstr "&OK" +#, c-format +msgid "E40: Can't open errorfile %s" +msgstr "E40: エラーファイル %s を開けません" -#~ msgid "Selection" -#~ msgstr "選択" +msgid "E233: cannot open display" +msgstr "E233: ディスプレイを開けません" -#~ msgid "Find &Next" -#~ msgstr "次を検索(&N)" +msgid "E41: Out of memory!" +msgstr "E41: メモリが尽き果てました!" -#~ msgid "&Replace" -#~ msgstr "置換(&R)" +msgid "Pattern not found" +msgstr "パターンは見つかりませんでした" -#~ msgid "Replace &All" -#~ msgstr "全て置換(&A)" +#, c-format +msgid "E486: Pattern not found: %s" +msgstr "E486: パターンは見つかりませんでした: %s" -#~ msgid "&Undo" -#~ msgstr "アンドゥ(&U)" +msgid "E487: Argument must be positive" +msgstr "E487: 引数は正の値でなければなりません" -#~ msgid "E671: Cannot find window title \"%s\"" -#~ msgstr "E671: タイトルが \"%s\" のウィンドウは見つかりません" +msgid "E459: Cannot go back to previous directory" +msgstr "E459: 前のディレクトリに戻れません" -#~ msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." -#~ msgstr "E243: 引数はサポートされません: \"-%s\"; OLE版を使用してください." +msgid "E42: No Errors" +msgstr "E42: エラーはありません" -#~ msgid "E672: Unable to open window inside MDI application" -#~ msgstr "E672: MDIアプリの中ではウィンドウを開けません" +msgid "E776: No location list" +msgstr "E776: ロケーションリストはありません" -#~ msgid "Close tab" -#~ msgstr "タブページを閉じる" +msgid "E43: Damaged match string" +msgstr "E43: 該当文字列が破損しています" -#~ msgid "Open tab..." -#~ msgstr "タブページを開く" +msgid "E44: Corrupted regexp program" +msgstr "E44: 不正な正規表現プログラムです" -#~ msgid "Find string (use '\\\\' to find a '\\')" -#~ msgstr "検索文字列 ('\\' を検索するには '\\\\')" +msgid "E45: 'readonly' option is set (add ! to override)" +msgstr "E45: 'readonly' オプションが設定されています (! を追加で上書き)" -#~ msgid "Find & Replace (use '\\\\' to find a '\\')" -#~ msgstr "検索・置換 ('\\' を検索するには '\\\\')" +#, c-format +msgid "E46: Cannot change read-only variable \"%s\"" +msgstr "E46: 読取専用変数 \"%s\" には値を設定できません" -#~ msgid "Not Used" -#~ msgstr "使われません" +#, c-format +msgid "E794: Cannot set variable in the sandbox: \"%s\"" +msgstr "E794: サンドボックスでは変数 \"%s\" に値を設定できません" -#~ msgid "Directory\t*.nothing\n" -#~ msgstr "ディレクトリ\t*.nothing\n" +msgid "E713: Cannot use empty key for Dictionary" +msgstr "E713: 辞書型に空のキーを使うことはできません" -#~ msgid "" -#~ "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" -#~ msgstr "Vim E458: 色指定が正しくないのでエントリを割り当てられません" +msgid "E715: Dictionary required" +msgstr "E715: 辞書型が必要です" -#~ msgid "E250: Fonts for the following charsets are missing in fontset %s:" -#~ msgstr "E250: 以下の文字セットのフォントがありません %s:" +#, c-format +msgid "E684: list index out of range: %ld" +msgstr "E684: リストのインデックスが範囲外です: %ld" -#~ msgid "E252: Fontset name: %s" -#~ msgstr "E252: フォントセット名: %s" +#, c-format +msgid "E118: Too many arguments for function: %s" +msgstr "E118: 関数の引数が多過ぎます: %s" -#~ msgid "Font '%s' is not fixed-width" -#~ msgstr "フォント '%s' は固定幅ではありません" +#, c-format +msgid "E716: Key not present in Dictionary: %s" +msgstr "E716: 辞書型にキーが存在しません: %s" -#~ msgid "E253: Fontset name: %s" -#~ msgstr "E253: フォントセット名: %s" +msgid "E714: List required" +msgstr "E714: リスト型が必要です" -#~ msgid "Font0: %s" -#~ msgstr "フォント0: %s" +#, c-format +msgid "E712: Argument of %s must be a List or Dictionary" +msgstr "E712: %s の引数はリスト型または辞書型でなければなりません" -#~ msgid "Font1: %s" -#~ msgstr "フォント1: %s" +msgid "E47: Error while reading errorfile" +msgstr "E47: エラーファイルの読込中にエラーが発生しました" -#~ msgid "Font% width is not twice that of font0" -#~ msgstr "フォント% の幅がフォント0の2倍ではありません" +msgid "E48: Not allowed in sandbox" +msgstr "E48: サンドボックスでは許されません" -#~ msgid "Font0 width: %" -#~ msgstr "フォント0の幅: %" +msgid "E523: Not allowed here" +msgstr "E523: ここでは許可されません" -#~ msgid "Font1 width: %" -#~ msgstr "フォント1の幅: %" +msgid "E359: Screen mode setting not supported" +msgstr "E359: スクリーンモードの設定には対応していません" -#~ msgid "Invalid font specification" -#~ msgstr "無効なフォント指定です" +msgid "E49: Invalid scroll size" +msgstr "E49: 無効なスクロール量です" -#~ msgid "&Dismiss" -#~ msgstr "却下する(&D)" +msgid "E91: 'shell' option is empty" +msgstr "E91: 'shell' オプションが空です" -#~ msgid "no specific match" -#~ msgstr "マッチするものがありません" +msgid "E255: Couldn't read in sign data!" +msgstr "E255: sign のデータを読込めませんでした" -#~ msgid "Vim - Font Selector" -#~ msgstr "Vim - フォント選択" +msgid "E72: Close error on swap file" +msgstr "E72: スワップファイルのクローズ時エラーです" -#~ msgid "Name:" -#~ msgstr "名前:" +msgid "E73: tag stack empty" +msgstr "E73: タグスタックが空です" -#~ msgid "Show size in Points" -#~ msgstr "サイズをポイントで表示する" +msgid "E74: Command too complex" +msgstr "E74: コマンドが複雑過ぎます" -#~ msgid "Encoding:" -#~ msgstr "エンコード:" +msgid "E75: Name too long" +msgstr "E75: 名前が長過ぎます" -#~ msgid "Font:" -#~ msgstr "フォント:" +msgid "E76: Too many [" +msgstr "E76: [ が多過ぎます" -#~ msgid "Style:" -#~ msgstr "スタイル:" +msgid "E77: Too many file names" +msgstr "E77: ファイル名が多過ぎます" -#~ msgid "Size:" -#~ msgstr "サイズ:" - -#~ msgid "E256: Hangul automata ERROR" -#~ msgstr "E256: ハングルオートマトンエラー" - -#~ msgid "E563: stat error" -#~ msgstr "E563: stat エラー" - -#~ msgid "E625: cannot open cscope database: %s" -#~ msgstr "E625: cscopeデータベース: %s を開くことができません" - -#~ msgid "E626: cannot get cscope database information" -#~ msgstr "E626: cscopeデータベースの情報を取得できません" - -#~ msgid "Lua library cannot be loaded." -#~ msgstr "Luaライブラリをロードできません." - -#~ msgid "cannot save undo information" -#~ msgstr "アンドゥ情報が保存できません" - -#~ msgid "" -#~ "E815: Sorry, this command is disabled, the MzScheme libraries could not " -#~ "be loaded." -#~ msgstr "" -#~ "E815: このコマンドは無効です. MzScheme ライブラリをロードできません." - -#~ msgid "invalid expression" -#~ msgstr "無効な式です" - -#~ msgid "expressions disabled at compile time" -#~ msgstr "式はコンパイル時に無効にされています" - -#~ msgid "hidden option" -#~ msgstr "隠しオプション" - -#~ msgid "unknown option" -#~ msgstr "未知のオプションです" - -#~ msgid "window index is out of range" -#~ msgstr "範囲外のウィンドウ番号です" - -#~ msgid "couldn't open buffer" -#~ msgstr "バッファを開けません" - -#~ msgid "cannot delete line" -#~ msgstr "行を消せません" - -#~ msgid "cannot replace line" -#~ msgstr "行を置換できません" - -#~ msgid "cannot insert line" -#~ msgstr "行を挿入できません" - -#~ msgid "string cannot contain newlines" -#~ msgstr "文字列には改行文字を含められません" - -#~ msgid "error converting Scheme values to Vim" -#~ msgstr "Scheme値のVimへの変換エラー" - -#~ msgid "Vim error: ~a" -#~ msgstr "Vim エラー: ~a" - -#~ msgid "Vim error" -#~ msgstr "Vim エラー" - -#~ msgid "buffer is invalid" -#~ msgstr "バッファは無効です" - -#~ msgid "window is invalid" -#~ msgstr "ウィンドウは無効です" - -#~ msgid "linenr out of range" -#~ msgstr "範囲外の行番号です" - -#~ msgid "not allowed in the Vim sandbox" -#~ msgstr "サンドボックスでは許されません" - -#~ msgid "E370: Could not load library %s" -#~ msgstr "E370: ライブラリ %s をロードできませんでした" - -#~ msgid "" -#~ "Sorry, this command is disabled: the Perl library could not be loaded." -#~ msgstr "" -#~ "このコマンドは無効です, ごめんなさい: Perlライブラリをロードできませんでし" -#~ "た." - -#~ msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" -#~ msgstr "" -#~ "E299: サンドボックスでは Safe モジュールを使用しないPerlスクリプトは禁じら" -#~ "れています" - -#~ msgid "E836: This Vim cannot execute :python after using :py3" -#~ msgstr "E836: このVimでは :py3 を使った後に :python を使えません" - -#~ msgid "" -#~ "E263: Sorry, this command is disabled, the Python library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E263: このコマンドは無効です,ごめんなさい: Pythonライブラリをロードできま" -#~ "せんでした." - -# Added at 07-Feb-2004. -#~ msgid "E659: Cannot invoke Python recursively" -#~ msgstr "E659: Python を再帰的に実行することはできません" - -#~ msgid "E837: This Vim cannot execute :py3 after using :python" -#~ msgstr "E837: このVimでは :python を使った後に :py3 を使えません" - -#~ msgid "E265: $_ must be an instance of String" -#~ msgstr "E265: $_ は文字列のインスタンスでなければなりません" - -#~ msgid "" -#~ "E266: Sorry, this command is disabled, the Ruby library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E266: このコマンドは無効です,ごめんなさい: Rubyライブラリをロードできませ" -#~ "んでした." - -#~ msgid "E267: unexpected return" -#~ msgstr "E267: 予期せぬ return です" - -#~ msgid "E268: unexpected next" -#~ msgstr "E268: 予期せぬ next です" - -#~ msgid "E269: unexpected break" -#~ msgstr "E269: 予期せぬ break です" - -#~ msgid "E270: unexpected redo" -#~ msgstr "E270: 予期せぬ redo です" - -#~ msgid "E271: retry outside of rescue clause" -#~ msgstr "E271: rescue の外の retry です" - -#~ msgid "E272: unhandled exception" -#~ msgstr "E272: 取り扱われなかった例外があります" - -#~ msgid "E273: unknown longjmp status %d" -#~ msgstr "E273: 未知のlongjmp状態: %d" - -#~ msgid "Toggle implementation/definition" -#~ msgstr "実装と定義を切り替える" - -#~ msgid "Show base class of" -#~ msgstr "次のクラスの基底を表示" - -#~ msgid "Show overridden member function" -#~ msgstr "オーバーライドされたメンバ関数を表示" - -#~ msgid "Retrieve from file" -#~ msgstr "ファイルから回復する" - -#~ msgid "Retrieve from project" -#~ msgstr "プロジェクトから回復する" - -#~ msgid "Retrieve from all projects" -#~ msgstr "全てのプロジェクトから回復する" - -#~ msgid "Retrieve" -#~ msgstr "回復" - -#~ msgid "Show source of" -#~ msgstr "次のソースを表示する" - -#~ msgid "Find symbol" -#~ msgstr "見つけたシンボル" - -#~ msgid "Browse class" -#~ msgstr "クラスを参照" - -#~ msgid "Show class in hierarchy" -#~ msgstr "階層でクラスを表示" - -#~ msgid "Show class in restricted hierarchy" -#~ msgstr "限定された階層でクラスを表示" - -#~ msgid "Xref refers to" -#~ msgstr "Xref の参照先" - -#~ msgid "Xref referred by" -#~ msgstr "Xref が参照される" - -#~ msgid "Xref has a" -#~ msgstr "Xref が次のものをもっています" - -#~ msgid "Xref used by" -#~ msgstr "Xref が使用される" - -#~ msgid "Show docu of" -#~ msgstr "次の文章を表示" - -#~ msgid "Generate docu for" -#~ msgstr "次の文章を生成" - -#~ msgid "" -#~ "Cannot connect to SNiFF+. Check environment (sniffemacs must be found in " -#~ "$PATH).\n" -#~ msgstr "" -#~ "SNiFF+に接続できません. 環境をチェックしてください(sniffemacs が $PATH に" -#~ "なければなりません).\n" - -#~ msgid "E274: Sniff: Error during read. Disconnected" -#~ msgstr "E274: Sniff: 読込中にエラーが発生しました. 切断しました" - -#~ msgid "SNiFF+ is currently " -#~ msgstr "現在SNiFF+ の状態は「" - -#~ msgid "not " -#~ msgstr "未" - -#~ msgid "connected" -#~ msgstr "接続」です" - -#~ msgid "E275: Unknown SNiFF+ request: %s" -#~ msgstr "E275: 未知の SNiFF+ リクエストです: %s" - -#~ msgid "E276: Error connecting to SNiFF+" -#~ msgstr "E276: SNiFF+ への接続中のエラーです" - -#~ msgid "E278: SNiFF+ not connected" -#~ msgstr "E278: SNiFF+ に接続されていません" - -#~ msgid "E279: Not a SNiFF+ buffer" -#~ msgstr "E279: SNiFF+ バッファがありません" - -#~ msgid "Sniff: Error during write. Disconnected" -#~ msgstr "Sniff: 書込み中にエラーが発生したので切断しました" - -#~ msgid "invalid buffer number" -#~ msgstr "無効なバッファ番号です" - -#~ msgid "not implemented yet" -#~ msgstr "まだ実装されていません" - -#~ msgid "cannot set line(s)" -#~ msgstr "行を設定できません" - -#~ msgid "invalid mark name" -#~ msgstr "無効なマーク名です" - -#~ msgid "mark not set" -#~ msgstr "マークは設定されていません" - -#~ msgid "row %d column %d" -#~ msgstr "行 %d 列 %d" - -#~ msgid "cannot insert/append line" -#~ msgstr "行の挿入/追加をできません" - -#~ msgid "line number out of range" -#~ msgstr "範囲外の行番号です" - -#~ msgid "unknown flag: " -#~ msgstr "未知のフラグ: " - -#~ msgid "unknown vimOption" -#~ msgstr "未知の vimOption です" - -#~ msgid "keyboard interrupt" -#~ msgstr "キーボード割込み" - -#~ msgid "vim error" -#~ msgstr "vim エラー" - -#~ msgid "cannot create buffer/window command: object is being deleted" -#~ msgstr "" -#~ "バッファ/ウィンドウ作成コマンドを作成できません: オブジェクトが消去されて" -#~ "いました" - -#~ msgid "" -#~ "cannot register callback command: buffer/window is already being deleted" -#~ msgstr "" -#~ "コールバックコマンドを登録できません: バッファ/ウィンドウが既に消去されま" -#~ "した" - -#~ msgid "" -#~ "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-" -#~ "dev@vim.org" -#~ msgstr "" -#~ "E280: TCL 致命的エラー: reflist 汚染!? vim-dev@vim.org に報告してください" - -#~ msgid "cannot register callback command: buffer/window reference not found" -#~ msgstr "" -#~ "コールバックコマンドを登録できません: バッファ/ウィンドウの参照が見つかり" -#~ "ません" - -#~ msgid "" -#~ "E571: Sorry, this command is disabled: the Tcl library could not be " -#~ "loaded." -#~ msgstr "" -#~ "E571: このコマンドは無効です,ごめんなさい: Tclライブラリをロードできません" -#~ "でした." - -#~ msgid "E572: exit code %d" -#~ msgstr "E572: 終了コード %d" - -#~ msgid "cannot get line" -#~ msgstr "行を取得できません" - -#~ msgid "Unable to register a command server name" -#~ msgstr "命令サーバの名前を登録できません" - -#~ msgid "E248: Failed to send command to the destination program" -#~ msgstr "E248: 目的のプログラムへのコマンド送信に失敗しました" - -#~ msgid "E573: Invalid server id used: %s" -#~ msgstr "E573: 無効なサーバIDが使われました: %s" - -#~ msgid "E251: VIM instance registry property is badly formed. Deleted!" -#~ msgstr "E251: VIM 実体の登録プロパティが不正です. 消去しました!" - -#~ msgid "netbeans is not supported with this GUI\n" -#~ msgstr "netbeans はこのGUIでは利用できません\n" - -#~ msgid "This Vim was not compiled with the diff feature." -#~ msgstr "このVimにはdiff機能がありません(コンパイル時設定)." - -#~ msgid "'-nb' cannot be used: not enabled at compile time\n" -#~ msgstr "'-nb' 使用不可能です: コンパイル時に無効にされています\n" - -#~ msgid "Vim: Error: Failure to start gvim from NetBeans\n" -#~ msgstr "Vim: エラー: NetBeansからgvimをスタートできません\n" - -#~ msgid "" -#~ "\n" -#~ "Where case is ignored prepend / to make flag upper case" -#~ msgstr "" -#~ "\n" -#~ "大小文字が無視される場合は大文字にするために / を前置してください" - -#~ msgid "-register\t\tRegister this gvim for OLE" -#~ msgstr "-register\t\tこのgvimをOLEとして登録する" - -#~ msgid "-unregister\t\tUnregister gvim for OLE" -#~ msgstr "-unregister\t\tgvimのOLE登録を解除する" - -#~ msgid "-g\t\t\tRun using GUI (like \"gvim\")" -#~ msgstr "-g\t\t\tGUIで起動する (\"gvim\" と同じ)" - -#~ msgid "-f or --nofork\tForeground: Don't fork when starting GUI" -#~ msgstr "-f or --nofork\tフォアグラウンド: GUIを始めるときにforkしない" - -#~ msgid "-f\t\t\tDon't use newcli to open window" -#~ msgstr "-f\t\t\tウィンドウを開くのに newcli を使用しない" - -#~ msgid "-dev \t\tUse for I/O" -#~ msgstr "-dev \t\tI/Oに を使用する" - -#~ msgid "-U \t\tUse instead of any .gvimrc" -#~ msgstr "-U \t\t.gvimrcの代わりに を使う" - -#~ msgid "-x\t\t\tEdit encrypted files" -#~ msgstr "-x\t\t\t暗号化されたファイルを編集する" - -#~ msgid "-display \tConnect vim to this particular X-server" -#~ msgstr "-display \tvimを指定した X サーバに接続する" - -#~ msgid "-X\t\t\tDo not connect to X server" -#~ msgstr "-X\t\t\tXサーバに接続しない" - -#~ msgid "--remote \tEdit in a Vim server if possible" -#~ msgstr "--remote \t可能ならばVimサーバで を編集する" - -#~ msgid "--remote-silent Same, don't complain if there is no server" -#~ msgstr "--remote-silent 同上, サーバが無くても警告文を出力しない" - -#~ msgid "" -#~ "--remote-wait As --remote but wait for files to have been edited" -#~ msgstr "--remote-wait \t--remote後 ファイルの編集が終わるのを待つ" - -#~ msgid "" -#~ "--remote-wait-silent Same, don't complain if there is no server" -#~ msgstr "" -#~ "--remote-wait-silent 同上, サーバが無くても警告文を出力しない" - -#~ msgid "" -#~ "--remote-tab[-wait][-silent] As --remote but use tab page per " -#~ "file" -#~ msgstr "" -#~ "--remote-tab[-wait][-silent] --remoteでファイル1つにつき1つのタブ" -#~ "ページを開く" - -#~ msgid "--remote-send \tSend to a Vim server and exit" -#~ msgstr "--remote-send \tVimサーバに を送信して終了する" - -#~ msgid "" -#~ "--remote-expr \tEvaluate in a Vim server and print result" -#~ msgstr "--remote-expr \tサーバで を実行して結果を表示する" - -#~ msgid "--serverlist\t\tList available Vim server names and exit" -#~ msgstr "--serverlist\t\tVimサーバ名の一覧を表示して終了する" - -#~ msgid "--servername \tSend to/become the Vim server " -#~ msgstr "--servername \tVimサーバ に送信/名前設定する" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (Motif version):\n" -#~ msgstr "" -#~ "\n" -#~ "gvimによって解釈される引数(Motifバージョン):\n" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (neXtaw version):\n" -#~ msgstr "" -#~ "\n" -#~ "gvimによって解釈される引数(neXtawバージョン):\n" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (Athena version):\n" -#~ msgstr "" -#~ "\n" -#~ "gvimによって解釈される引数(Athenaバージョン):\n" - -#~ msgid "-display \tRun vim on " -#~ msgstr "-display \t でvimを実行する" - -#~ msgid "-iconic\t\tStart vim iconified" -#~ msgstr "-iconic\t\t最小化した状態でvimを起動する" - -#~ msgid "-background \tUse for the background (also: -bg)" -#~ msgstr "-background \t背景色に を使う(同義: -bg)" - -#~ msgid "-foreground \tUse for normal text (also: -fg)" -#~ msgstr "-foreground \t前景色に を使う(同義: -fg)" - -#~ msgid "-font \t\tUse for normal text (also: -fn)" -#~ msgstr "-font \t\tテキスト表示に を使う(同義: -fn)" - -#~ msgid "-boldfont \tUse for bold text" -#~ msgstr "-boldfont \t太字に を使う" - -#~ msgid "-italicfont \tUse for italic text" -#~ msgstr "-italicfont \t斜体字に を使う" - -#~ msgid "-geometry \tUse for initial geometry (also: -geom)" -#~ msgstr "-geometry \t初期配置に を使う(同義: -geom)" - -#~ msgid "-borderwidth \tUse a border width of (also: -bw)" -#~ msgstr "-borderwidth \t境界の幅を にする(同義: -bw)" - -#~ msgid "" -#~ "-scrollbarwidth Use a scrollbar width of (also: -sw)" -#~ msgstr "" -#~ "-scrollbarwidth スクロールバーの幅を にする(同義: -sw)" - -#~ msgid "-menuheight \tUse a menu bar height of (also: -mh)" -#~ msgstr "" -#~ "-menuheight \tメニューバーの高さを にする(同義: -mh)" - -#~ msgid "-reverse\t\tUse reverse video (also: -rv)" -#~ msgstr "-reverse\t\t反転映像を使用する(同義: -rv)" - -#~ msgid "+reverse\t\tDon't use reverse video (also: +rv)" -#~ msgstr "+reverse\t\t反転映像を使用しない(同義: +rv)" - -#~ msgid "-xrm \tSet the specified resource" -#~ msgstr "-xrm \t特定のリソースを使用する" - -#~ msgid "" -#~ "\n" -#~ "Arguments recognised by gvim (GTK+ version):\n" -#~ msgstr "" -#~ "\n" -#~ "gvimによって解釈される引数(GTK+バージョン):\n" - -#~ msgid "-display \tRun vim on (also: --display)" -#~ msgstr "-display \t でvimを実行する(同義: --display)" - -#~ msgid "--role \tSet a unique role to identify the main window" -#~ msgstr "--role \tメインウィンドウを識別する一意な役割(role)を設定する" - -#~ msgid "--socketid \tOpen Vim inside another GTK widget" -#~ msgstr "--socketid \t異なるGTK widgetでVimを開く" - -#~ msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout" -#~ msgstr "--echo-wid\t\tウィンドウIDを標準出力に出力する" - -#~ msgid "-P \tOpen Vim inside parent application" -#~ msgstr "-P <親のタイトル>\tVimを親アプリケーションの中で起動する" - -#~ msgid "--windowid \tOpen Vim inside another win32 widget" -#~ msgstr "--windowid \t異なるWin32 widgetの内部にVimを開く" - -#~ msgid "No display" -#~ msgstr "ディスプレイが見つかりません" - -#~ msgid ": Send failed.\n" -#~ msgstr ": 送信に失敗しました.\n" - -#~ msgid ": Send failed. Trying to execute locally\n" -#~ msgstr ": 送信に失敗しました. ローカルでの実行を試みています\n" - -#~ msgid "%d of %d edited" -#~ msgstr "%d 個 (%d 個中) のファイルを編集しました" - -#~ msgid "No display: Send expression failed.\n" -#~ msgstr "ディスプレイがありません: 式の送信に失敗しました.\n" - -#~ msgid ": Send expression failed.\n" -#~ msgstr ": 式の送信に失敗しました.\n" - -#~ msgid "E543: Not a valid codepage" -#~ msgstr "E543: 無効なコードページです" - -#~ msgid "E284: Cannot set IC values" -#~ msgstr "E284: ICの値を設定できません" - -#~ msgid "E285: Failed to create input context" -#~ msgstr "E285: インプットコンテキストの作成に失敗しました" - -#~ msgid "E286: Failed to open input method" -#~ msgstr "E286: インプットメソッドのオープンに失敗しました" - -#~ msgid "E287: Warning: Could not set destroy callback to IM" -#~ msgstr "E287: 警告: IMの破壊コールバックを設定できませんでした" - -#~ msgid "E288: input method doesn't support any style" -#~ msgstr "E288: インプットメソッドはどんなスタイルもサポートしません" - -#~ msgid "E289: input method doesn't support my preedit type" -#~ msgstr "E289: インプットメソッドは my preedit type をサポートしません" - -#~ msgid "E843: Error while updating swap file crypt" -#~ msgstr "E843: スワップファイルの暗号を更新中にエラーが発生しました" - -#~ msgid "" -#~ "E833: %s is encrypted and this version of Vim does not support encryption" -#~ msgstr "" -#~ "E833: %s はこのバージョンのVimでサポートしていない形式で暗号化されています" - -#~ msgid "Swap file is encrypted: \"%s\"" -#~ msgstr "スワップファイルは暗号化されています: \"%s\"" - -#~ msgid "" -#~ "\n" -#~ "If you entered a new crypt key but did not write the text file," -#~ msgstr "" -#~ "\n" -#~ "新しい暗号キーを入力したあとにテキストファイルを保存していない場合は," - -#~ msgid "" -#~ "\n" -#~ "enter the new crypt key." -#~ msgstr "" -#~ "\n" -#~ "新しい暗号キーを入力してください." - -#~ msgid "" -#~ "\n" -#~ "If you wrote the text file after changing the crypt key press enter" -#~ msgstr "" -#~ "\n" -#~ "暗号キーを変えたあとにテキストファイルを保存した場合は, テキストファイルと" - -#~ msgid "" -#~ "\n" -#~ "to use the same key for text file and swap file" -#~ msgstr "" -#~ "\n" -#~ "スワップファイルに同じ暗号キーを使うためにenterだけを押してください." - -#~ msgid "Using crypt key from swap file for the text file.\n" -#~ msgstr "スワップファイルから取得した暗号キーをテキストファイルに使います.\n" - -#~ msgid "" -#~ "\n" -#~ " [not usable with this version of Vim]" -#~ msgstr "" -#~ "\n" -#~ " [このVimバージョンでは使用できません]" - -#~ msgid "Tear off this menu" -#~ msgstr "このメニューを切り取る" - -#~ msgid "Select Directory dialog" -#~ msgstr "ディレクトリ選択ダイアログ" - -#~ msgid "Save File dialog" -#~ msgstr "ファイル保存ダイアログ" - -#~ msgid "Open File dialog" -#~ msgstr "ファイル読込ダイアログ" - -#~ msgid "E338: Sorry, no file browser in console mode" -#~ msgstr "" -#~ "E338: コンソールモードではファイルブラウザを使えません, ごめんなさい" - -#~ msgid "Vim: preserving files...\n" -#~ msgstr "Vim: ファイルを保存中...\n" - -#~ msgid "Vim: Finished.\n" -#~ msgstr "Vim: 終了しました.\n" - -#~ msgid "ERROR: " -#~ msgstr "エラー: " - -#~ msgid "" -#~ "\n" -#~ "[bytes] total alloc-freed %-%, in use %, peak use " -#~ "%\n" -#~ msgstr "" -#~ "\n" -#~ "[メモリ(バイト)] 総割当-解放量 %-%, 使用量 %, ピー" -#~ "ク時 %\n" - -#~ msgid "" -#~ "[calls] total re/malloc()'s %, total free()'s %\n" -#~ "\n" -#~ msgstr "" -#~ "[呼出] 総 re/malloc() 回数 %, 総 free() 回数 %\n" -#~ "\n" - -#~ msgid "E340: Line is becoming too long" -#~ msgstr "E340: 行が長くなり過ぎました" - -#~ msgid "E341: Internal error: lalloc(%, )" -#~ msgstr "E341: 内部エラー: lalloc(%,)" - -#~ msgid "E547: Illegal mouseshape" -#~ msgstr "E547: 不正な 'mouseshape' です" - -#~ msgid "Enter encryption key: " -#~ msgstr "暗号化用のキーを入力してください: " - -#~ msgid "Enter same key again: " -#~ msgstr "もう一度同じキーを入力してください: " - -#~ msgid "Keys don't match!" -#~ msgstr "キーが一致しません" - -#~ msgid "Cannot connect to Netbeans #2" -#~ msgstr "Netbeans #2 に接続できません" - -#~ msgid "Cannot connect to Netbeans" -#~ msgstr "Netbeans に接続できません" - -#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" -#~ msgstr "" -#~ "E668: NetBeansの接続情報ファイルのアクセスモードに問題があります: \"%s\"" - -#~ msgid "read from Netbeans socket" -#~ msgstr "Netbeans のソケットを読込み" - -#~ msgid "E658: NetBeans connection lost for buffer %" -#~ msgstr "E658: バッファ % の NetBeans 接続が失われました" - -#~ msgid "E838: netbeans is not supported with this GUI" -#~ msgstr "E838: NetBeansはこのGUIには対応していません" - -#~ msgid "E511: netbeans already connected" -#~ msgstr "E511: NetBeansは既に接続しています" - -#~ msgid "E505: %s is read-only (add ! to override)" -#~ msgstr "E505: %s は読込専用です (強制書込には ! を追加)" - -#~ msgid "E775: Eval feature not available" -#~ msgstr "E775: 式評価機能が無効になっています" - -#~ msgid "freeing % lines" -#~ msgstr "% 行を解放中" - -#~ msgid "E530: Cannot change term in GUI" -#~ msgstr "E530: GUIでは 'term' を変更できません" - -#~ msgid "E531: Use \":gui\" to start the GUI" -#~ msgstr "E531: GUIをスタートするには \":gui\" を使用してください" - -#~ msgid "E617: Cannot be changed in the GTK+ 2 GUI" -#~ msgstr "E617: GTK+2 GUIでは変更できません" - -#~ msgid "E596: Invalid font(s)" -#~ msgstr "E596: 無効なフォントです" - -#~ msgid "E597: can't select fontset" -#~ msgstr "E597: フォントセットを選択できません" - -#~ msgid "E598: Invalid fontset" -#~ msgstr "E598: 無効なフォントセットです" - -#~ msgid "E533: can't select wide font" -#~ msgstr "E533: ワイドフォントを選択できません" - -#~ msgid "E534: Invalid wide font" -#~ msgstr "E534: 無効なワイドフォントです" - -#~ msgid "E538: No mouse support" -#~ msgstr "E538: マウスはサポートされません" - -#~ msgid "cannot open " -#~ msgstr "開けません " - -#~ msgid "VIM: Can't open window!\n" -#~ msgstr "VIM: ウィンドウを開けません!\n" - -#~ msgid "Need Amigados version 2.04 or later\n" -#~ msgstr "Amigadosのバージョン 2.04かそれ以降が必要です\n" - -#~ msgid "Need %s version %\n" -#~ msgstr "%s のバージョン % が必要です\n" - -#~ msgid "Cannot open NIL:\n" -#~ msgstr "NILを開けません:\n" - -#~ msgid "Cannot create " -#~ msgstr "作成できません " - -#~ msgid "Vim exiting with %d\n" -#~ msgstr "Vimは %d で終了します\n" - -#~ msgid "cannot change console mode ?!\n" -#~ msgstr "コンソールモードを変更できません?!\n" - -#~ msgid "mch_get_shellsize: not a console??\n" -#~ msgstr "mch_get_shellsize: コンソールではない??\n" - -#~ msgid "E360: Cannot execute shell with -f option" -#~ msgstr "E360: -f オプションでシェルを実行できません" - -#~ msgid "Cannot execute " -#~ msgstr "実行できません " - -#~ msgid "shell " -#~ msgstr "シェル " - -#~ msgid " returned\n" -#~ msgstr " 戻りました\n" - -#~ msgid "ANCHOR_BUF_SIZE too small." -#~ msgstr "ANCHOR_BUF_SIZE が小さ過ぎます." - -#~ msgid "I/O ERROR" -#~ msgstr "入出力エラー" - -#~ msgid "Message" -#~ msgstr "メッセージ" - -#~ msgid "'columns' is not 80, cannot execute external commands" -#~ msgstr "'columns' が80ではないため, 外部コマンドを実行できません" - -#~ msgid "E237: Printer selection failed" -#~ msgstr "E237: プリンタの選択に失敗しました" - -#~ msgid "to %s on %s" -#~ msgstr "%s へ (%s 上の)" - -#~ msgid "E613: Unknown printer font: %s" -#~ msgstr "E613: 未知のプリンタオプションです: %s" - -#~ msgid "E238: Print error: %s" -#~ msgstr "E238: 印刷エラー: %s" - -#~ msgid "Printing '%s'" -#~ msgstr "印刷しています: '%s'" - -#~ msgid "E244: Illegal charset name \"%s\" in font name \"%s\"" -#~ msgstr "E244: 文字セット名 \"%s\" は不正です (フォント名 \"%s\")" - -#~ msgid "E245: Illegal char '%c' in font name \"%s\"" -#~ msgstr "E245: '%c' は不正な文字です (フォント名 \"%s\")" - -#~ msgid "Vim: Double signal, exiting\n" -#~ msgstr "Vim: 2重のシグナルのため, 終了します\n" - -#~ msgid "Vim: Caught deadly signal %s\n" -#~ msgstr "Vim: 致命的シグナル %s を検知しました\n" - -#~ msgid "Vim: Caught deadly signal\n" -#~ msgstr "Vim: 致命的シグナルを検知しました\n" - -#~ msgid "Opening the X display took % msec" -#~ msgstr "Xサーバへの接続に % ミリ秒かかりました" - -#~ msgid "" -#~ "\n" -#~ "Vim: Got X error\n" -#~ msgstr "" -#~ "\n" -#~ "Vim: X のエラーを検出しましたr\n" - -#~ msgid "Testing the X display failed" -#~ msgstr "X display のチェックに失敗しました" - -#~ msgid "Opening the X display timed out" -#~ msgstr "X display の open がタイムアウトしました" - -#~ msgid "" -#~ "\n" -#~ "Cannot execute shell sh\n" -#~ msgstr "" -#~ "\n" -#~ "sh シェルを実行できません\n" - -#~ msgid "" -#~ "\n" -#~ "Cannot create pipes\n" -#~ msgstr "" -#~ "\n" -#~ "パイプを作成できません\n" - -#~ msgid "" -#~ "\n" -#~ "Cannot fork\n" -#~ msgstr "" -#~ "\n" -#~ "fork できません\n" - -#~ msgid "" -#~ "\n" -#~ "Command terminated\n" -#~ msgstr "" -#~ "\n" -#~ "コマンドを中断しました\n" - -#~ msgid "XSMP lost ICE connection" -#~ msgstr "XSMP がICE接続を失いました" - -#~ msgid "Opening the X display failed" -#~ msgstr "X display の open に失敗しました" - -#~ msgid "XSMP handling save-yourself request" -#~ msgstr "XSMP がsave-yourself要求を処理しています" - -#~ msgid "XSMP opening connection" -#~ msgstr "XSMP が接続を開始しています" - -#~ msgid "XSMP ICE connection watch failed" -#~ msgstr "XSMP ICE接続が失敗したようです" - -#~ msgid "XSMP SmcOpenConnection failed: %s" -#~ msgstr "XSMP SmcOpenConnectionが失敗しました: %s" - -#~ msgid "At line" -#~ msgstr "行" - -#~ msgid "Could not load vim32.dll!" -#~ msgstr "vim32.dll をロードできませんでした" - -#~ msgid "VIM Error" -#~ msgstr "VIMエラー" - -#~ msgid "Could not fix up function pointers to the DLL!" -#~ msgstr "DLLから関数ポインタを取得できませんでした" - -#~ msgid "shell returned %d" -#~ msgstr "シェルがコード %d で終了しました" - -#~ msgid "Vim: Caught %s event\n" -#~ msgstr "Vim: イベント %s を検知\n" - -#~ msgid "close" -#~ msgstr "閉じる" - -#~ msgid "logoff" -#~ msgstr "ログオフ" - -#~ msgid "shutdown" -#~ msgstr "シャットダウン" - -#~ msgid "E371: Command not found" -#~ msgstr "E371: コマンドがありません" - -#~ msgid "" -#~ "VIMRUN.EXE not found in your $PATH.\n" -#~ "External commands will not pause after completion.\n" -#~ "See :help win32-vimrun for more information." -#~ msgstr "" -#~ "VIMRUN.EXEが $PATH の中に見つかりません.\n" -#~ "外部コマンドの終了後に一時停止をしません.\n" -#~ "詳細は :help win32-vimrun を参照してください." - -#~ msgid "Vim Warning" -#~ msgstr "Vimの警告" - -#~ msgid "Error file" -#~ msgstr "エラーファイル" - -#~ msgid "E868: Error building NFA with equivalence class!" -#~ msgstr "E868: 等価クラスを含むNFA構築に失敗しました!" - -#~ msgid "E878: (NFA) Could not allocate memory for branch traversal!" -#~ msgstr "E878: (NFA) 現在横断中のブランチに十分なメモリを割り当てられません!" - -#~ msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\"" -#~ msgstr "" -#~ "警告: 単語リスト \"%s_%s.spl\" および \"%s_ascii.spl\" は見つかりません" - -#~ msgid "Conversion in %s not supported" -#~ msgstr "%s 内の変換はサポートされていません" - -#~ msgid "E845: Insufficient memory, word list will be incomplete" -#~ msgstr "E845: メモリが足りないので、単語リストは不完全です" - -#~ msgid "E430: Tag file path truncated for %s\n" -#~ msgstr "E430: タグファイルのパスが %s に切り捨てられました\n" - -#~ msgid "new shell started\n" -#~ msgstr "新しいシェルを起動します\n" - -#~ msgid "Used CUT_BUFFER0 instead of empty selection" -#~ msgstr "空の選択領域のかわりにCUT_BUFFER0が使用されました" - -#~ msgid "No undo possible; continue anyway" -#~ msgstr "可能なアンドゥはありません: とりあえず続けます" - -#~ msgid "E832: Non-encrypted file has encrypted undo file: %s" -#~ msgstr "" -#~ "E832: 非暗号化ファイルが暗号化されたアンドゥファイルを使ってます: %s" - -#~ msgid "E826: Undo file decryption failed: %s" -#~ msgstr "E826: 暗号化されたアンドゥファイルの解読に失敗しました: %s" - -#~ msgid "E827: Undo file is encrypted: %s" -#~ msgstr "E827: アンドゥファイルが暗号化されています: %s" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 16/32-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 16/32 ビット GUI 版" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 64-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 64 ビット GUI 版" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 32-bit GUI version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 32 ビット GUI 版" - -#~ msgid " in Win32s mode" -#~ msgstr " in Win32s モード" - -#~ msgid " with OLE support" -#~ msgstr " with OLE サポート" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 64-bit console version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 64 ビット コンソール 版" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 32-bit console version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 32 ビット コンソール 版" - -#~ msgid "" -#~ "\n" -#~ "MS-Windows 16-bit version" -#~ msgstr "" -#~ "\n" -#~ "MS-Windows 16 ビット 版" - -#~ msgid "" -#~ "\n" -#~ "32-bit MS-DOS version" -#~ msgstr "" -#~ "\n" -#~ "32 ビット MS-DOS 版" - -#~ msgid "" -#~ "\n" -#~ "16-bit MS-DOS version" -#~ msgstr "" -#~ "\n" -#~ "16 ビット MS-DOS 版" - -#~ msgid "" -#~ "\n" -#~ "MacOS X (unix) version" -#~ msgstr "" -#~ "\n" -#~ "MacOS X (unix) 版" - -#~ msgid "" -#~ "\n" -#~ "MacOS X version" -#~ msgstr "" -#~ "\n" -#~ "MacOS X 版" - -#~ msgid "" -#~ "\n" -#~ "MacOS version" -#~ msgstr "" -#~ "\n" -#~ "MacOS 版" - -#~ msgid "" -#~ "\n" -#~ "OpenVMS version" -#~ msgstr "" -#~ "\n" -#~ "OpenVMS 版" - -#~ msgid "" -#~ "\n" -#~ "Big version " -#~ msgstr "" -#~ "\n" -#~ "Big 版 " - -#~ msgid "" -#~ "\n" -#~ "Normal version " -#~ msgstr "" -#~ "\n" -#~ "通常 版 " - -#~ msgid "" -#~ "\n" -#~ "Small version " -#~ msgstr "" -#~ "\n" -#~ "Small 版 " - -#~ msgid "" -#~ "\n" -#~ "Tiny version " -#~ msgstr "" -#~ "\n" -#~ "Tiny 版 " - -#~ msgid "with GTK2-GNOME GUI." -#~ msgstr "with GTK2-GNOME GUI." - -#~ msgid "with GTK2 GUI." -#~ msgstr "with GTK2 GUI." - -#~ msgid "with X11-Motif GUI." -#~ msgstr "with X11-Motif GUI." - -#~ msgid "with X11-neXtaw GUI." -#~ msgstr "with X11-neXtaw GUI." - -#~ msgid "with X11-Athena GUI." -#~ msgstr "with X11-Athena GUI." - -#~ msgid "with Photon GUI." -#~ msgstr "with Photon GUI." - -#~ msgid "with GUI." -#~ msgstr "with GUI." - -#~ msgid "with Carbon GUI." -#~ msgstr "with Carbon GUI." - -#~ msgid "with Cocoa GUI." -#~ msgstr "with Cocoa GUI." - -#~ msgid "with (classic) GUI." -#~ msgstr "with (クラシック) GUI." - -#~ msgid " system gvimrc file: \"" -#~ msgstr " システム gvimrc: \"" - -#~ msgid " user gvimrc file: \"" -#~ msgstr " ユーザ gvimrc: \"" - -#~ msgid "2nd user gvimrc file: \"" -#~ msgstr " 第2ユーザ gvimrc: \"" - -#~ msgid "3rd user gvimrc file: \"" -#~ msgstr " 第3ユーザ gvimrc: \"" - -#~ msgid " system menu file: \"" -#~ msgstr " システムメニュー: \"" - -#~ msgid "Compiler: " -#~ msgstr "コンパイラ: " - -#~ msgid "menu Help->Orphans for information " -#~ msgstr "詳細はメニューの ヘルプ→孤児 を参照して下さい " - -#~ msgid "Running modeless, typed text is inserted" -#~ msgstr "モード無で実行中, タイプした文字が挿入されます" +msgid "E488: Trailing characters" +msgstr "E488: 余分な文字が後ろにあります" -#~ msgid "menu Edit->Global Settings->Toggle Insert Mode " -#~ msgstr "メニューの 編集→全体設定→挿入(初心者)モード切替 " +msgid "E78: Unknown mark" +msgstr "E78: 未知のマーク" -#~ msgid " for two modes " -#~ msgstr " でモード有に " +msgid "E79: Cannot expand wildcards" +msgstr "E79: ワイルドカードを展開できません" -#~ msgid "menu Edit->Global Settings->Toggle Vi Compatible" -#~ msgstr "メニューの 編集→全体設定→Vi互換モード切替 " +msgid "E591: 'winheight' cannot be smaller than 'winminheight'" +msgstr "E591: 'winheight' は 'winminheight' より小さくできません" -#~ msgid " for Vim defaults " -#~ msgstr " でVimとして動作 " +msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" +msgstr "E592: 'winwidth' は 'winminwidth' より小さくできません" -#~ msgid "WARNING: Windows 95/98/ME detected" -#~ msgstr " 警告: Windows 95/98/Me を検出 " +msgid "E80: Error while writing" +msgstr "E80: 書込み中のエラー" -#~ msgid "type :help windows95 for info on this" -#~ msgstr " 詳細な情報は :help windows95 " +msgid "Zero count" +msgstr "ゼロカウント" -#~ msgid "Edit with &multiple Vims" -#~ msgstr "複数のVimで編集する (&M)" +msgid "E81: Using not in a script context" +msgstr "E81: スクリプト以外でが使われました" -#~ msgid "Edit with single &Vim" -#~ msgstr "1つのVimで編集する (&V)" +msgid "E449: Invalid expression received" +msgstr "E449: 無効な式を受け取りました" -#~ msgid "Diff with Vim" -#~ msgstr "Vimで差分を表示する" +msgid "E463: Region is guarded, cannot modify" +msgstr "E463: 領域が保護されているので, 変更できません" -#~ msgid "Edit with &Vim" -#~ msgstr "Vimで編集する (&V)" +msgid "E744: NetBeans does not allow changes in read-only files" +msgstr "E744: NetBeans は読込専用ファイルを変更することを許しません" -#~ msgid "Edit with existing Vim - " -#~ msgstr "起動済のVimで編集する - " +#, c-format +msgid "E685: Internal error: %s" +msgstr "E685: 内部エラーです: %s" -#~ msgid "Edits the selected file(s) with Vim" -#~ msgstr "選択したファイルをVimで編集する" +msgid "E363: pattern uses more memory than 'maxmempattern'" +msgstr "E363: パターンが 'maxmempattern' 以上のメモリを使用します" -#~ msgid "Error creating process: Check if gvim is in your path!" -#~ msgstr "プロセスの作成に失敗: gvimが環境変数PATH上にあるか確認してください!" +msgid "E749: empty buffer" +msgstr "E749: バッファが空です" -#~ msgid "gvimext.dll error" -#~ msgstr "gvimext.dll エラー" +#, c-format +msgid "E86: Buffer %ld does not exist" +msgstr "E86: バッファ %ld はありません" -#~ msgid "Path length too long!" -#~ msgstr "パスが長すぎます!" +msgid "E682: Invalid search pattern or delimiter" +msgstr "E682: 検索パターンか区切り記号が不正です" -#~ msgid "E234: Unknown fontset: %s" -#~ msgstr "E234: 未知のフォントセット: %s" +msgid "E139: File is loaded in another buffer" +msgstr "E139: 同じ名前のファイルが他のバッファで読込まれています" -#~ msgid "E235: Unknown font: %s" -#~ msgstr "E235: 未知のフォント: %s" +#, c-format +msgid "E764: Option '%s' is not set" +msgstr "E764: オプション '%s' は設定されていません" -#~ msgid "E236: Font \"%s\" is not fixed-width" -#~ msgstr "E236: フォント \"%s\" は固定幅ではありません" +msgid "E850: Invalid register name" +msgstr "E850: 無効なレジスタ名です" -#~ msgid "E448: Could not load library function %s" -#~ msgstr "E448: ライブラリの関数 %s をロードできませんでした" +#, c-format +msgid "E919: Directory not found in '%s': \"%s\"" +msgstr "E919: ディレクトリが '%s' の中にありません: \"%s\"" -#~ msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" -#~ msgstr "E26: ヘブライ語は使用不可能です: コンパイル時に無効にされています\n" +msgid "search hit TOP, continuing at BOTTOM" +msgstr "上まで検索したので下に戻ります" -#~ msgid "E27: Farsi cannot be used: Not enabled at compile time\n" -#~ msgstr "E27: ペルシア語は使用不可能です: コンパイル時に無効にされています\n" +msgid "search hit BOTTOM, continuing at TOP" +msgstr "下まで検索したので上に戻ります" -#~ msgid "E800: Arabic cannot be used: Not enabled at compile time\n" -#~ msgstr "" -#~ "E800: アラビア語は使用不可能です: コンパイル時に無効にされています\n" +#, c-format +msgid "Need encryption key for \"%s\"" +msgstr "暗号キーが必要です: \"%s\"" -#~ msgid "E247: no registered server named \"%s\"" -#~ msgstr "E247: %s という名前の登録されたサーバはありません" +msgid "empty keys are not allowed" +msgstr "空のキーは許可されていません" -#~ msgid "E233: cannot open display" -#~ msgstr "E233: ディスプレイを開けません" +msgid "dictionary is locked" +msgstr "辞書はロックされています" -#~ msgid "E449: Invalid expression received" -#~ msgstr "E449: 無効な式を受け取りました" +msgid "list is locked" +msgstr "リストはロックされています" -#~ msgid "E463: Region is guarded, cannot modify" -#~ msgstr "E463: 領域が保護されているので, 変更できません" +#, c-format +msgid "failed to add key '%s' to dictionary" +msgstr "辞書にキー '%s' を追加するのに失敗しました" -#~ msgid "E744: NetBeans does not allow changes in read-only files" -#~ msgstr "E744: NetBeans は読込専用ファイルを変更することを許しません" +#, c-format +msgid "index must be int or slice, not %s" +msgstr "インデックスは %s ではなく整数かスライスにしてください" -#~ msgid "Need encryption key for \"%s\"" -#~ msgstr "暗号キーが必要です: \"%s\"" +#, c-format +msgid "expected str() or unicode() instance, but got %s" +msgstr "str() もしくは unicode() のインスタンスが期待されているのに %s でした" -#~ msgid "empty keys are not allowed" -#~ msgstr "空のキーは許可されていません" +#, c-format +msgid "expected bytes() or str() instance, but got %s" +msgstr "bytes() もしくは str() のインスタンスが期待されているのに %s でした" -#~ msgid "dictionary is locked" -#~ msgstr "辞書はロックされています" +#, c-format +msgid "" +"expected int(), long() or something supporting coercing to long(), but got %s" +msgstr "long() かそれへ変換可能なものが期待されているのに %s でした" -#~ msgid "list is locked" -#~ msgstr "リストはロックされています" +#, c-format +msgid "expected int() or something supporting coercing to int(), but got %s" +msgstr "int() かそれへ変換可能なものが期待されているのに %s でした" -#~ msgid "failed to add key '%s' to dictionary" -#~ msgstr "辞書にキー '%s' を追加するのに失敗しました" +msgid "value is too large to fit into C int type" +msgstr "C言語の int 型としては値が大き過ぎます" -#~ msgid "index must be int or slice, not %s" -#~ msgstr "インデックスは %s ではなく整数かスライスにしてください" +msgid "value is too small to fit into C int type" +msgstr "C言語の int 型としては値が小さ過ぎます" -#~ msgid "expected str() or unicode() instance, but got %s" -#~ msgstr "" -#~ "str() もしくは unicode() のインスタンスが期待されているのに %s でした" +msgid "number must be greater than zero" +msgstr "数値は 0 より大きくなければなりません" -#~ msgid "expected bytes() or str() instance, but got %s" -#~ msgstr "bytes() もしくは str() のインスタンスが期待されているのに %s でした" +msgid "number must be greater or equal to zero" +msgstr "数値は 0 かそれ以上でなければなりません" -#~ msgid "" -#~ "expected int(), long() or something supporting coercing to long(), but " -#~ "got %s" -#~ msgstr "long() かそれへ変換可能なものが期待されているのに %s でした" +msgid "can't delete OutputObject attributes" +msgstr "OutputObject属性を消せません" -#~ msgid "expected int() or something supporting coercing to int(), but got %s" -#~ msgstr "int() かそれへ変換可能なものが期待されているのに %s でした" +#, c-format +msgid "invalid attribute: %s" +msgstr "無効な属性です: %s" -#~ msgid "value is too large to fit into C int type" -#~ msgstr "C言語の int 型としては値が大き過ぎます" +msgid "E264: Python: Error initialising I/O objects" +msgstr "E264: Python: I/Oオブジェクトの初期化エラー" -#~ msgid "value is too small to fit into C int type" -#~ msgstr "C言語の int 型としては値が小さ過ぎます" +msgid "failed to change directory" +msgstr "辞書の変更に失敗しました" -#~ msgid "number must be greater then zero" -#~ msgstr "数値は 0 より大きくなければなりません" +#, c-format +msgid "expected 3-tuple as imp.find_module() result, but got %s" +msgstr "imp.find_module() が %s を返しました (期待値: 3 要素のタプル)" -#~ msgid "number must be greater or equal to zero" -#~ msgstr "数値は 0 かそれ以上でなければなりません" +#, c-format +msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d" +msgstr "imp.find_module() が %d 要素のタプルを返しました (期待値: 3)" -#~ msgid "can't delete OutputObject attributes" -#~ msgstr "OutputObject属性を消せません" +msgid "internal error: imp.find_module returned tuple with NULL" +msgstr "内部エラー: imp.find_module が NULL を含むタプルを返しました" -#~ msgid "invalid attribute: %s" -#~ msgstr "無効な属性です: %s" +msgid "cannot delete vim.Dictionary attributes" +msgstr "vim.Dictionary属性は消せません" -#~ msgid "E264: Python: Error initialising I/O objects" -#~ msgstr "E264: Python: I/Oオブジェクトの初期化エラー" +msgid "cannot modify fixed dictionary" +msgstr "固定された辞書は変更できません" -#~ msgid "failed to change directory" -#~ msgstr "辞書の変更に失敗しました" +#, c-format +msgid "cannot set attribute %s" +msgstr "属性 %s は設定できません" -#~ msgid "expected 3-tuple as imp.find_module() result, but got %s" -#~ msgstr "imp.find_module() が %s を返しました (期待値: 2 要素のタプル)" +msgid "hashtab changed during iteration" +msgstr "イテレーション中に hashtab が変更されました" -#~ msgid "" -#~ "expected 3-tuple as imp.find_module() result, but got tuple of size %d" -#~ msgstr "impl.find_module() が %d 要素のタプルを返しました (期待値: 2)" +#, c-format +msgid "expected sequence element of size 2, but got sequence of size %d" +msgstr "シーケンスの要素数には 2 が期待されていましたが %d でした" -#~ msgid "internal error: imp.find_module returned tuple with NULL" -#~ msgstr "内部エラー: imp.find_module が NULL を含むタプルを返しました" +msgid "list constructor does not accept keyword arguments" +msgstr "リストのコンストラクタはキーワード引数を受け付けません" -#~ msgid "cannot delete vim.Dictionary attributes" -#~ msgstr "vim.Dictionary属性は消せません" +msgid "list index out of range" +msgstr "リスト範囲外のインデックスです" -#~ msgid "cannot modify fixed dictionary" -#~ msgstr "固定された辞書は変更できません" +#. No more suitable format specifications in python-2.3 +#, c-format +msgid "internal error: failed to get vim list item %d" +msgstr "内部エラー: vimのリスト要素 %d の取得に失敗しました" -#~ msgid "cannot set attribute %s" -#~ msgstr "属性 %s は設定できません" +msgid "slice step cannot be zero" +msgstr "スライスのステップに 0 は指定できません" -#~ msgid "hashtab changed during iteration" -#~ msgstr "イテレーション中に hashtab が変更されました" +#, c-format +msgid "attempt to assign sequence of size greater than %d to extended slice" +msgstr "長さ %d の拡張スライスに、より長いスライスを割り当てようとしました" -#~ msgid "expected sequence element of size 2, but got sequence of size %d" -#~ msgstr "シーケンスの要素数には 2 が期待されていましたが %d でした" +#, c-format +msgid "internal error: no vim list item %d" +msgstr "内部エラー: vimのリスト要素 %d はありません" -#~ msgid "list constructor does not accept keyword arguments" -#~ msgstr "リストのコンストラクタはキーワード引数を受け付けません" +msgid "internal error: not enough list items" +msgstr "内部エラー: リストに十分な要素がありません" -#~ msgid "list index out of range" -#~ msgstr "リスト範囲外のインデックスです" +msgid "internal error: failed to add item to list" +msgstr "内部エラー: リストへの要素追加に失敗しました" -#~ msgid "internal error: failed to get vim list item %d" -#~ msgstr "内部エラー: vimのリスト要素 %d の取得に失敗しました" +#, c-format +msgid "attempt to assign sequence of size %d to extended slice of size %d" +msgstr "長さ %d のスライスを %d の拡張スライスに割り当てようとしました" -#~ msgid "failed to add item to list" -#~ msgstr "リストへの要素追加に失敗しました" +msgid "failed to add item to list" +msgstr "リストへの要素追加に失敗しました" -#~ msgid "internal error: no vim list item %d" -#~ msgstr "内部エラー: vimのリスト要素 %d はありません" +msgid "cannot delete vim.List attributes" +msgstr "vim.List 属性は消せません" -#~ msgid "internal error: failed to add item to list" -#~ msgstr "内部エラー: リストへの要素追加に失敗しました" +msgid "cannot modify fixed list" +msgstr "固定されたリストは変更できません" -#~ msgid "cannot delete vim.List attributes" -#~ msgstr "vim.List 属性は消せません" +#, c-format +msgid "unnamed function %s does not exist" +msgstr "無名関数 %s は存在しません" -#~ msgid "cannot modify fixed list" -#~ msgstr "固定されたリストは変更できません" +#, c-format +msgid "function %s does not exist" +msgstr "関数 %s がありません" -#~ msgid "unnamed function %s does not exist" -#~ msgstr "無名関数 %s は存在しません" +#, c-format +msgid "failed to run function %s" +msgstr "関数 %s の実行に失敗しました" -#~ msgid "function %s does not exist" -#~ msgstr "関数 %s がありません" +msgid "unable to get option value" +msgstr "オプションの値は取得できません" -#~ msgid "function constructor does not accept keyword arguments" -#~ msgstr "関数のコンストラクタはキーワード引数を受け付けません" +msgid "internal error: unknown option type" +msgstr "内部エラー: 未知のオプション型です" -#~ msgid "failed to run function %s" -#~ msgstr "関数 %s の実行に失敗しました" +msgid "problem while switching windows" +msgstr "ウィンドウを切換中に問題が発生しました" -#~ msgid "problem while switching windows" -#~ msgstr "ウィンドウを切換中に問題が発生しました" +#, c-format +msgid "unable to unset global option %s" +msgstr "グローバルオプション %s の設定解除はできません" -#~ msgid "unable to unset global option %s" -#~ msgstr "グローバルオプション %s の設定解除はできません" +#, c-format +msgid "unable to unset option %s which does not have global value" +msgstr "グローバルな値の無いオプション %s の設定解除はできません" -#~ msgid "unable to unset option %s which does not have global value" -#~ msgstr "グローバルな値の無いオプション %s の設定解除はできません" +msgid "attempt to refer to deleted tab page" +msgstr "削除されたタブを参照しようとしました" -#~ msgid "attempt to refer to deleted tab page" -#~ msgstr "削除されたタブを参照しようとしました" +msgid "no such tab page" +msgstr "そのようなタブページはありません" -#~ msgid "no such tab page" -#~ msgstr "そのようなタブページはありません" +msgid "attempt to refer to deleted window" +msgstr "削除されたウィンドウを参照しようとしました" -#~ msgid "attempt to refer to deleted window" -#~ msgstr "削除されたウィンドウを参照しようとしました" +msgid "readonly attribute: buffer" +msgstr "読込専用属性: バッファー" -#~ msgid "readonly attribute: buffer" -#~ msgstr "読込専用属性: バッファー" +msgid "cursor position outside buffer" +msgstr "カーソル位置がバッファの外側です" -#~ msgid "cursor position outside buffer" -#~ msgstr "カーソル位置がバッファの外側です" +msgid "no such window" +msgstr "そのようなウィンドウはありません" -#~ msgid "no such window" -#~ msgstr "そのようなウィンドウはありません" +msgid "attempt to refer to deleted buffer" +msgstr "削除されたバッファを参照しようとしました" -#~ msgid "attempt to refer to deleted buffer" -#~ msgstr "削除されたバッファを参照しようとしました" +msgid "failed to rename buffer" +msgstr "バッファ名の変更に失敗しました" -#~ msgid "failed to rename buffer" -#~ msgstr "バッファ名の変更に失敗しました" +msgid "mark name must be a single character" +msgstr "マーク名は1文字のアルファベットでなければなりません" -#~ msgid "mark name must be a single character" -#~ msgstr "マーク名は1文字のアルファベットでなければなりません" +#, c-format +msgid "expected vim.Buffer object, but got %s" +msgstr "vim.Bufferオブジェクトが期待されているのに %s でした" -#~ msgid "expected vim.Buffer object, but got %s" -#~ msgstr "vim.Bufferオブジェクトが期待されているのに %s でした" +#, c-format +msgid "failed to switch to buffer %d" +msgstr "指定されたバッファ %d への切り替えに失敗しました" -#~ msgid "failed to switch to buffer %d" -#~ msgstr "指定されたバッファ %d への切り替えに失敗しました" +#, c-format +msgid "expected vim.Window object, but got %s" +msgstr "vim.Windowオブジェクトが期待されているのに %s でした" -#~ msgid "expected vim.Window object, but got %s" -#~ msgstr "vim.Windowオブジェクトが期待されているのに %s でした" +msgid "failed to find window in the current tab page" +msgstr "現在のタブには指定されたウィンドウがありませんでした" -#~ msgid "failed to find window in the current tab page" -#~ msgstr "現在のタブには指定されたウィンドウがありませんでした" +msgid "did not switch to the specified window" +msgstr "指定されたウィンドウに切り替えませんでした" -#~ msgid "did not switch to the specified window" -#~ msgstr "指定されたウィンドウに切り替えませんでした" +#, c-format +msgid "expected vim.TabPage object, but got %s" +msgstr "vim.TabPageオブジェクトが期待されているのに %s でした" -#~ msgid "expected vim.TabPage object, but got %s" -#~ msgstr "vim.TabPageオブジェクトが期待されているのに %s でした" +msgid "did not switch to the specified tab page" +msgstr "指定されたタブページに切り替えませんでした" -#~ msgid "did not switch to the specified tab page" -#~ msgstr "指定されたタブページに切り替えませんでした" +msgid "failed to run the code" +msgstr "コードの実行に失敗しました" -#~ msgid "failed to run the code" -#~ msgstr "コードの実行に失敗しました" +msgid "E858: Eval did not return a valid python object" +msgstr "E858: 式評価は有効なpythonオブジェクトを返しませんでした" -#~ msgid "E858: Eval did not return a valid python object" -#~ msgstr "E858: 式評価は有効なpythonオブジェクトを返しませんでした" +msgid "E859: Failed to convert returned python object to vim value" +msgstr "E859: 返されたpythonオブジェクトをvimの値に変換できませんでした" -#~ msgid "E859: Failed to convert returned python object to vim value" -#~ msgstr "E859: 返されたpythonオブジェクトをvimの値に変換できませんでした" +#, c-format +msgid "unable to convert %s to vim dictionary" +msgstr "%s vimの辞書型に変換できません" -#~ msgid "unable to convert %s to vim dictionary" -#~ msgstr "%s vimの辞書型に変換できません" +#, c-format +msgid "unable to convert %s to vim list" +msgstr "%s をvimのリストに変換できません" -#~ msgid "unable to convert %s to vim structure" -#~ msgstr "%s をvimの構造体に変換できません" +#, c-format +msgid "unable to convert %s to vim structure" +msgstr "%s をvimの構造体に変換できません" -#~ msgid "internal error: NULL reference passed" -#~ msgstr "内部エラー: NULL参照が渡されました" +msgid "internal error: NULL reference passed" +msgstr "内部エラー: NULL参照が渡されました" -#~ msgid "internal error: invalid value type" -#~ msgstr "内部エラー: 無効な値型です" +msgid "internal error: invalid value type" +msgstr "内部エラー: 無効な値型です" -#~ msgid "" -#~ "Failed to set path hook: sys.path_hooks is not a list\n" -#~ "You should now do the following:\n" -#~ "- append vim.path_hook to sys.path_hooks\n" -#~ "- append vim.VIM_SPECIAL_PATH to sys.path\n" -#~ msgstr "" -#~ "パスフックの設定に失敗しました: sys.path_hooks がリストではありません\n" -#~ "すぐに下記を実施してください:\n" -#~ "- vim.path_hooks を sys.path_hooks へ追加\n" -#~ "- vim.VIM_SPECIAL_PATH を sys.path へ追加\n" +msgid "" +"Failed to set path hook: sys.path_hooks is not a list\n" +"You should now do the following:\n" +"- append vim.path_hook to sys.path_hooks\n" +"- append vim.VIM_SPECIAL_PATH to sys.path\n" +msgstr "" +"パスフックの設定に失敗しました: sys.path_hooks がリストではありません\n" +"すぐに下記を実施してください:\n" +"- vim.path_hooks を sys.path_hooks へ追加\n" +"- vim.VIM_SPECIAL_PATH を sys.path へ追加\n" -#~ msgid "" -#~ "Failed to set path: sys.path is not a list\n" -#~ "You should now append vim.VIM_SPECIAL_PATH to sys.path" -#~ msgstr "" -#~ "パスの設定に失敗しました: sys.path がリストではありません\n" -#~ "すぐに vim.VIM_SPECIAL_PATH を sys.path に追加してください" +msgid "" +"Failed to set path: sys.path is not a list\n" +"You should now append vim.VIM_SPECIAL_PATH to sys.path" +msgstr "" +"パスの設定に失敗しました: sys.path がリストではありません\n" +"すぐに vim.VIM_SPECIAL_PATH を sys.path に追加してください" -- cgit From 1e7806bd410f8ff0fcf5aec81370e57f1a57938e Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sat, 29 Apr 2017 01:47:52 +0200 Subject: vim-patch:6d5ad4c4118c Updated runtime files. https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb --- src/nvim/po/ga.po | 6393 ++++++++++++++++++++++++----------------------------- 1 file changed, 2854 insertions(+), 3539 deletions(-) (limited to 'src') diff --git a/src/nvim/po/ga.po b/src/nvim/po/ga.po index 761539039d..abb3565077 100644 --- a/src/nvim/po/ga.po +++ b/src/nvim/po/ga.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: vim 7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-05-26 14:21+0200\n" +"POT-Creation-Date: 2016-10-25 09:31-0500\n" "PO-Revision-Date: 2010-04-14 10:01-0500\n" "Last-Translator: Kevin Patrick Scannell \n" "Language-Team: Irish \n" @@ -14,208 +14,171 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :" +"(n>6 && n<11) ? 3 : 4;\n" -#: ../api/private/helpers.c:201 -#, fuzzy -msgid "Unable to get option value" -msgstr "Dramhal i ndiaidh arginte rogha" +msgid "E831: bf_key_init() called with empty password" +msgstr "E831: cuireadh glaoch ar bf_key_init() le focal faire folamh" -#: ../api/private/helpers.c:204 -msgid "internal error: unknown option type" -msgstr "" +msgid "E820: sizeof(uint32_t) != 4" +msgstr "E820: sizeof(uint32_t) != 4" + +msgid "E817: Blowfish big/little endian use wrong" +msgstr "E817: sid mhcheart Blowfish mrcheannach/caolcheannach" + +msgid "E818: sha256 test failed" +msgstr "E818: Theip ar thstil sha256" + +msgid "E819: Blowfish test failed" +msgstr "E819: Theip ar thstil Blowfish" -#: ../buffer.c:92 msgid "[Location List]" msgstr "[Liosta Suomh]" -#: ../buffer.c:93 msgid "[Quickfix List]" -msgstr "[Liosta Ceartchn Tapa]" +msgstr "[Liosta Mearcheartchn]" -#: ../buffer.c:94 -#, fuzzy msgid "E855: Autocommands caused command to abort" -msgstr "E812: Bh maoln n ainm maolin athraithe ag orduithe uathoibrocha" +msgstr "E855: Tobscoireadh an t-ord mar gheall ar uathorduithe" -#: ../buffer.c:135 msgid "E82: Cannot allocate any buffer, exiting..." msgstr "E82: N fidir maoln a dhileadh, ag scor..." -#: ../buffer.c:138 msgid "E83: Cannot allocate buffer, using other one..." msgstr "E83: N fidir maoln a dhileadh, ag sid cinn eile..." -#: ../buffer.c:763 +msgid "E931: Buffer cannot be registered" +msgstr "E931: N fidir an maoln a chlr" + +msgid "E937: Attempt to delete a buffer that is in use" +msgstr "E937: Iarracht ar mhaoln in sid a scriosadh" + msgid "E515: No buffers were unloaded" msgstr "E515: N raibh aon mhaoln dluchtaithe" -#: ../buffer.c:765 msgid "E516: No buffers were deleted" msgstr "E516: N raibh aon mhaoln scriosta" -#: ../buffer.c:767 msgid "E517: No buffers were wiped out" msgstr "E517: N raibh aon mhaoln bnaithe" -#: ../buffer.c:772 msgid "1 buffer unloaded" msgstr "Bh maoln amhin dluchtaithe" -#: ../buffer.c:774 #, c-format msgid "%d buffers unloaded" msgstr "%d maoln folmhaithe" -#: ../buffer.c:777 msgid "1 buffer deleted" msgstr "Bh maoln amhin scriosta" -#: ../buffer.c:779 #, c-format msgid "%d buffers deleted" msgstr "%d maoln scriosta" -#: ../buffer.c:782 msgid "1 buffer wiped out" msgstr "Bh maoln amhin bnaithe" -#: ../buffer.c:784 #, c-format msgid "%d buffers wiped out" msgstr "%d maoln bnaithe" -#: ../buffer.c:806 msgid "E90: Cannot unload last buffer" msgstr "E90: N fidir an maoln deireanach a dhlucht" -#: ../buffer.c:874 msgid "E84: No modified buffer found" msgstr "E84: Nor aimsodh maoln mionathraithe" #. back where we started, didn't find anything. -#: ../buffer.c:903 msgid "E85: There is no listed buffer" msgstr "E85: Nl aon mhaoln liostaithe ann" -#: ../buffer.c:913 -#, c-format -msgid "E86: Buffer % does not exist" -msgstr "E86: Nl a leithid de mhaoln %" - -#: ../buffer.c:915 msgid "E87: Cannot go beyond last buffer" msgstr "E87: N fidir a dhul thar an maoln deireanach" -#: ../buffer.c:917 msgid "E88: Cannot go before first buffer" msgstr "E88: N fidir a dhul roimh an chad mhaoln" -#: ../buffer.c:945 #, c-format -msgid "" -"E89: No write since last change for buffer % (add ! to override)" +msgid "E89: No write since last change for buffer %ld (add ! to override)" msgstr "" -"E89: Athraodh maoln % ach nach bhfuil s sbhilte shin (cuir ! " -"leis an ord chun sr)" +"E89: Athraodh maoln %ld ach nach bhfuil s sbhilte shin (cuir ! leis " +"an ord chun sr)" -#. wrap around (may cause duplicates) -#: ../buffer.c:1423 msgid "W14: Warning: List of file names overflow" msgstr "W14: Rabhadh: Liosta ainmneacha comhaid thar maoil" -#: ../buffer.c:1555 ../quickfix.c:3361 #, c-format -msgid "E92: Buffer % not found" -msgstr "E92: Maoln % gan aimsi" +msgid "E92: Buffer %ld not found" +msgstr "E92: Maoln %ld gan aimsi" -#: ../buffer.c:1798 #, c-format msgid "E93: More than one match for %s" msgstr "E93: Nos m n teaghrn amhin comhoirinaithe le %s" -#: ../buffer.c:1800 #, c-format msgid "E94: No matching buffer for %s" msgstr "E94: Nl aon mhaoln comhoirinaithe le %s" -#: ../buffer.c:2161 #, c-format -msgid "line %" -msgstr "lne %:" +msgid "line %ld" +msgstr "lne %ld:" -#: ../buffer.c:2233 msgid "E95: Buffer with this name already exists" msgstr "E95: T maoln ann leis an ainm seo cheana" -#: ../buffer.c:2498 msgid " [Modified]" msgstr " [Mionathraithe]" -#: ../buffer.c:2501 msgid "[Not edited]" msgstr "[Gan eagr]" -#: ../buffer.c:2504 msgid "[New file]" msgstr "[Comhad nua]" -#: ../buffer.c:2505 msgid "[Read errors]" msgstr "[Earrid limh]" -#: ../buffer.c:2506 ../buffer.c:3217 ../fileio.c:1807 ../screen.c:4895 msgid "[RO]" msgstr "[L-A]" -#: ../buffer.c:2507 ../fileio.c:1807 msgid "[readonly]" msgstr "[inlite amhin]" -#: ../buffer.c:2524 #, c-format msgid "1 line --%d%%--" msgstr "1 lne --%d%%--" -#: ../buffer.c:2526 #, c-format -msgid "% lines --%d%%--" -msgstr "% lne --%d%%--" +msgid "%ld lines --%d%%--" +msgstr "%ld lne --%d%%--" -#: ../buffer.c:2530 #, c-format -msgid "line % of % --%d%%-- col " -msgstr "lne % de % --%d%%-- col " +msgid "line %ld of %ld --%d%%-- col " +msgstr "lne %ld de %ld --%d%%-- col " -#: ../buffer.c:2632 ../buffer.c:4292 ../memline.c:1554 msgid "[No Name]" msgstr "[Gan Ainm]" #. must be a help buffer -#: ../buffer.c:2667 msgid "help" msgstr "cabhair" -#: ../buffer.c:3225 ../screen.c:4883 msgid "[Help]" msgstr "[Cabhair]" -#: ../buffer.c:3254 ../screen.c:4887 msgid "[Preview]" msgstr "[Ramhamharc]" -#: ../buffer.c:3528 msgid "All" msgstr "Uile" -#: ../buffer.c:3528 msgid "Bot" msgstr "Bun" -#: ../buffer.c:3531 msgid "Top" msgstr "Barr" -#: ../buffer.c:4244 msgid "" "\n" "# Buffer list:\n" @@ -223,11 +186,9 @@ msgstr "" "\n" "# Liosta maolin:\n" -#: ../buffer.c:4289 msgid "[Scratch]" msgstr "[Sealadach]" -#: ../buffer.c:4529 msgid "" "\n" "--- Signs ---" @@ -235,202 +196,236 @@ msgstr "" "\n" "--- Comhartha ---" -#: ../buffer.c:4538 #, c-format msgid "Signs for %s:" msgstr "Comhartha do %s:" -#: ../buffer.c:4543 #, c-format -msgid " line=% id=%d name=%s" -msgstr " lne=% id=%d ainm=%s" +msgid " line=%ld id=%d name=%s" +msgstr " lne=%ld id=%d ainm=%s" -#: ../cursor_shape.c:68 -msgid "E545: Missing colon" -msgstr "E545: Idirstad ar iarraidh" +msgid "E902: Cannot connect to port" +msgstr "E902: N fidir ceangal leis an bport" -#: ../cursor_shape.c:70 ../cursor_shape.c:94 -msgid "E546: Illegal mode" -msgstr "E546: Md neamhcheadaithe" +msgid "E901: gethostbyname() in channel_open()" +msgstr "E901: gethostbyname() in channel_open()" -#: ../cursor_shape.c:134 -msgid "E548: digit expected" -msgstr "E548: ag sil le digit" +msgid "E898: socket() in channel_open()" +msgstr "E898: socket() in channel_open()" -#: ../cursor_shape.c:138 -msgid "E549: Illegal percentage" -msgstr "E549: Catadn neamhcheadaithe" +msgid "E903: received command with non-string argument" +msgstr "E903: fuarthas ord le hargint nach bhfuil ina theaghrn" + +msgid "E904: last argument for expr/call must be a number" +msgstr "E904: n mr don argint dheireanach ar expr/call a bheith ina huimhir" + +msgid "E904: third argument for call must be a list" +msgstr "E904: Caithfidh an tr argint a bheith ina liosta" + +#, c-format +msgid "E905: received unknown command: %s" +msgstr "E905: fuarthas ord anaithnid: %s" + +#, c-format +msgid "E630: %s(): write while not connected" +msgstr "E630: %s(): scrobh gan ceangal a bheith ann" + +#, c-format +msgid "E631: %s(): write failed" +msgstr "E631: %s(): theip ar scrobh" + +#, c-format +msgid "E917: Cannot use a callback with %s()" +msgstr "E917: N fidir aisghlaoch a sid le %s()" + +msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel" +msgstr "E912: n fidir ch_evalexpr()/ch_sendexpr() a sid le cainal raw n nl" + +msgid "E906: not an open channel" +msgstr "E906: n cainal oscailte " + +msgid "E920: _io file requires _name to be set" +msgstr "E920: caithfear _name a shocr chun comhad _io a sid" + +msgid "E915: in_io buffer requires in_buf or in_name to be set" +msgstr "E915: caithfear in_buf n in_name a shocr chun maoln in_io a sid" + +#, c-format +msgid "E918: buffer must be loaded: %s" +msgstr "E918: n mr an maoln a lucht: %s" + +msgid "E821: File is encrypted with unknown method" +msgstr "E821: Comhad criptithe le modh anaithnid" + +msgid "Warning: Using a weak encryption method; see :help 'cm'" +msgstr "Rabhadh: Criptichn lag; fach :help 'cm'" + +msgid "Enter encryption key: " +msgstr "Iontril eochair chriptichin: " + +msgid "Enter same key again: " +msgstr "Iontril an eochair ars: " + +msgid "Keys don't match!" +msgstr "Nl na heochracha comhoirinach le chile!" + +msgid "[crypted]" +msgstr "[criptithe]" + +#, c-format +msgid "E720: Missing colon in Dictionary: %s" +msgstr "E720: Idirstad ar iarraidh i bhFoclir: %s" + +#, c-format +msgid "E721: Duplicate key in Dictionary: \"%s\"" +msgstr "E721: Eochair dhblach i bhFoclir: \"%s\"" + +#, c-format +msgid "E722: Missing comma in Dictionary: %s" +msgstr "E722: Camg ar iarraidh i bhFoclir: %s" + +#, c-format +msgid "E723: Missing end of Dictionary '}': %s" +msgstr "E723: '}' ar iarraidh ag deireadh foclra: %s" + +msgid "extend() argument" +msgstr "argint extend()" + +#, c-format +msgid "E737: Key already exists: %s" +msgstr "E737: T eochair ann cheana: %s" -#: ../diff.c:146 #, c-format -msgid "E96: Can not diff more than % buffers" -msgstr "E96: N fidir diff a dhanamh ar nos m n % maoln" +msgid "E96: Cannot diff more than %ld buffers" +msgstr "E96: N fidir diff a dhanamh ar nos m n %ld maoln" -#: ../diff.c:753 msgid "E810: Cannot read or write temp files" msgstr "E810: N fidir comhaid shealadacha a lamh n a scrobh" -#: ../diff.c:755 msgid "E97: Cannot create diffs" msgstr "E97: N fidir diffeanna a chruth" -#: ../diff.c:966 +msgid "Patch file" +msgstr "Comhad paiste" + msgid "E816: Cannot read patch output" msgstr "E816: N fidir aschur 'patch' a lamh" -#: ../diff.c:1220 msgid "E98: Cannot read diff output" msgstr "E98: N fidir aschur 'diff' a lamh" -#: ../diff.c:2081 msgid "E99: Current buffer is not in diff mode" msgstr "E99: Nl an maoln reatha sa mhd diff" -#: ../diff.c:2100 msgid "E793: No other buffer in diff mode is modifiable" msgstr "E793: N fidir aon mhaoln eile a athr sa mhd diff" -#: ../diff.c:2102 msgid "E100: No other buffer in diff mode" msgstr "E100: Nl aon mhaoln eile sa mhd diff" -#: ../diff.c:2112 msgid "E101: More than two buffers in diff mode, don't know which one to use" msgstr "" "E101: T nos m n dh mhaoln sa mhd diff, nl fhios agam c acu ba chir " "a sid" -#: ../diff.c:2141 #, c-format msgid "E102: Can't find buffer \"%s\"" msgstr "E102: T maoln \"%s\" gan aimsi" -#: ../diff.c:2152 #, c-format msgid "E103: Buffer \"%s\" is not in diff mode" msgstr "E103: Nl maoln \"%s\" i md diff" -#: ../diff.c:2193 msgid "E787: Buffer changed unexpectedly" msgstr "E787: Athraodh an maoln gan choinne" -#: ../digraph.c:1598 msgid "E104: Escape not allowed in digraph" msgstr "E104: N cheadatear carachtair alchin i ndghraf" -#: ../digraph.c:1760 msgid "E544: Keymap file not found" msgstr "E544: Comhad eochairmhapla gan aimsi" -#: ../digraph.c:1785 msgid "E105: Using :loadkeymap not in a sourced file" msgstr "E105: Ag sid :loadkeymap ach n comhad foinsithe seo" -#: ../digraph.c:1821 msgid "E791: Empty keymap entry" msgstr "E791: Iontril fholamh eochairmhapla" -#: ../edit.c:82 msgid " Keyword completion (^N^P)" msgstr " Comhln lorgfhocal (^N^P)" #. ctrl_x_mode == 0, ^P/^N compl. -#: ../edit.c:83 msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" msgstr " md ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" -#: ../edit.c:85 msgid " Whole line completion (^L^N^P)" msgstr " Comhln Lnte Ina Iomln (^L^N^P)" -#: ../edit.c:86 msgid " File name completion (^F^N^P)" msgstr " Comhln de na hainmneacha comhaid (^F^N^P)" -#: ../edit.c:87 msgid " Tag completion (^]^N^P)" msgstr " Comhln clibeanna (^]/^N/^P)" -#: ../edit.c:88 msgid " Path pattern completion (^N^P)" msgstr " Comhln Conaire (^N^P)" -#: ../edit.c:89 msgid " Definition completion (^D^N^P)" msgstr " Comhln de na sainmhnithe (^D^N^P)" -#: ../edit.c:91 msgid " Dictionary completion (^K^N^P)" msgstr " Comhln foclra (^K^N^P)" -#: ../edit.c:92 msgid " Thesaurus completion (^T^N^P)" msgstr " Comhln teasrais (^T^N^P)" -#: ../edit.c:93 msgid " Command-line completion (^V^N^P)" msgstr " Comhln den lne ordaithe (^V^N^P)" -#: ../edit.c:94 msgid " User defined completion (^U^N^P)" msgstr " Comhln saincheaptha (^U^N^P)" -#: ../edit.c:95 msgid " Omni completion (^O^N^P)" msgstr " Comhln Omni (^O^N^P)" -#: ../edit.c:96 msgid " Spelling suggestion (s^N^P)" msgstr " Moladh litrithe (s^N^P)" -#: ../edit.c:97 msgid " Keyword Local completion (^N^P)" msgstr " Comhln lognta lorgfhocal (^N^P)" -#: ../edit.c:100 msgid "Hit end of paragraph" msgstr "Sroicheadh croch an pharagraif" -#: ../edit.c:101 -#, fuzzy msgid "E839: Completion function changed window" -msgstr "E813: N fidir fuinneog autocmd a dhnadh" +msgstr "E839: D'athraigh an fheidhm chomhlnaithe an fhuinneog" -#: ../edit.c:102 msgid "E840: Completion function deleted text" -msgstr "" +msgstr "E840: Scrios an fheidhm chomhlnaithe roinnt tacs" -#: ../edit.c:1847 msgid "'dictionary' option is empty" msgstr "t an rogha 'dictionary' folamh" -#: ../edit.c:1848 msgid "'thesaurus' option is empty" msgstr "t an rogha 'thesaurus' folamh" -#: ../edit.c:2655 #, c-format msgid "Scanning dictionary: %s" msgstr "Foclir scanadh: %s" -#: ../edit.c:3079 msgid " (insert) Scroll (^E/^Y)" msgstr " (ionsigh) Scrollaigh (^E/^Y)" -#: ../edit.c:3081 msgid " (replace) Scroll (^E/^Y)" msgstr " (ionadaigh) Scrollaigh (^E/^Y)" -#: ../edit.c:3587 #, c-format msgid "Scanning: %s" msgstr "%s scanadh" -#: ../edit.c:3614 msgid "Scanning tags." msgstr "Clibeanna scanadh." -#: ../edit.c:4519 msgid " Adding" msgstr " Mad" @@ -438,702 +433,451 @@ msgstr " M #. * be called before line = ml_get(), or when this address is no #. * longer needed. -- Acevedo. #. -#: ../edit.c:4562 msgid "-- Searching..." msgstr "-- Ag Cuardach..." -#: ../edit.c:4618 msgid "Back at original" msgstr "Ar ais ag an mbunit" -#: ../edit.c:4621 msgid "Word from other line" msgstr "Focal as lne eile" -#: ../edit.c:4624 msgid "The only match" msgstr "An t-aon teaghrn amhin comhoirinaithe" -#: ../edit.c:4680 #, c-format msgid "match %d of %d" msgstr "comhoirin %d as %d" -#: ../edit.c:4684 #, c-format msgid "match %d" msgstr "comhoirin %d" -#: ../eval.c:137 +#. maximum nesting of lists and dicts msgid "E18: Unexpected characters in :let" msgstr "E18: Carachtair gan choinne i :let" -#: ../eval.c:138 -#, c-format -msgid "E684: list index out of range: %" -msgstr "E684: innacs liosta as raon: %" - -#: ../eval.c:139 #, c-format msgid "E121: Undefined variable: %s" msgstr "E121: Athrg gan sainmhni: %s" -#: ../eval.c:140 msgid "E111: Missing ']'" msgstr "E111: `]' ar iarraidh" -#: ../eval.c:141 -#, c-format -msgid "E686: Argument of %s must be a List" -msgstr "E686: Caithfidh argint de %s a bheith ina Liosta" - -#: ../eval.c:143 -#, c-format -msgid "E712: Argument of %s must be a List or Dictionary" -msgstr "E712: Caithfidh argint de %s a bheith ina Liosta n Foclir" - -#: ../eval.c:144 -msgid "E713: Cannot use empty key for Dictionary" -msgstr "E713: N fidir eochair fholamh a sid le Foclir" - -#: ../eval.c:145 -msgid "E714: List required" -msgstr "E714: T g le liosta" - -#: ../eval.c:146 -msgid "E715: Dictionary required" -msgstr "E715: T g le foclir" - -#: ../eval.c:147 -#, c-format -msgid "E118: Too many arguments for function: %s" -msgstr "E118: An iomarca argint d'fheidhm: %s" - -#: ../eval.c:148 -#, c-format -msgid "E716: Key not present in Dictionary: %s" -msgstr "E716: Nl an eochair seo san Fhoclir: %s" - -#: ../eval.c:150 -#, c-format -msgid "E122: Function %s already exists, add ! to replace it" -msgstr "E122: T feidhm %s ann cheana, cuir ! leis an ord chun a asiti" - -#: ../eval.c:151 -msgid "E717: Dictionary entry already exists" -msgstr "E717: T an iontril foclra seo ann cheana" - -#: ../eval.c:152 -msgid "E718: Funcref required" -msgstr "E718: T g le Funcref" - -#: ../eval.c:153 msgid "E719: Cannot use [:] with a Dictionary" msgstr "E719: N fidir [:] a sid le foclir" -#: ../eval.c:154 #, c-format msgid "E734: Wrong variable type for %s=" msgstr "E734: Cinel mcheart athrige le haghaidh %s=" -#: ../eval.c:155 -#, c-format -msgid "E130: Unknown function: %s" -msgstr "E130: Feidhm anaithnid: %s" - -#: ../eval.c:156 #, c-format msgid "E461: Illegal variable name: %s" msgstr "E461: Ainm athrige neamhcheadaithe: %s" -#: ../eval.c:157 msgid "E806: using Float as a String" msgstr "E806: Snmhphointe sid mar Theaghrn" -#: ../eval.c:1830 msgid "E687: Less targets than List items" msgstr "E687: Nos l spriocanna n mreanna Liosta" -#: ../eval.c:1834 msgid "E688: More targets than List items" msgstr "E688: Nos m spriocanna n mreanna Liosta" -#: ../eval.c:1906 msgid "Double ; in list of variables" msgstr "; dblach i liosta na n-athrg" -#: ../eval.c:2078 #, c-format msgid "E738: Can't list variables for %s" msgstr "E738: N fidir athrga do %s a thaispeint" -#: ../eval.c:2391 msgid "E689: Can only index a List or Dictionary" msgstr "E689: Is fidir Liosta n Foclir amhin a innacs" -#: ../eval.c:2396 msgid "E708: [:] must come last" msgstr "E708: caithfidh [:] a bheith ar deireadh" -#: ../eval.c:2439 msgid "E709: [:] requires a List value" msgstr "E709: n folir Liosta a thabhairt le [:]" -#: ../eval.c:2674 msgid "E710: List value has more items than target" msgstr "E710: T nos m mreanna ag an Liosta n an sprioc" -#: ../eval.c:2678 msgid "E711: List value has not enough items" msgstr "E711: Nl go leor mreanna ag an Liosta" -#: ../eval.c:2867 msgid "E690: Missing \"in\" after :for" msgstr "E690: \"in\" ar iarraidh i ndiaidh :for" -#: ../eval.c:3063 -#, c-format -msgid "E107: Missing parentheses: %s" -msgstr "E107: Libn ar iarraidh: %s" - -#: ../eval.c:3263 #, c-format msgid "E108: No such variable: \"%s\"" msgstr "E108: Nl a leithid d'athrg: \"%s\"" -#: ../eval.c:3333 msgid "E743: variable nested too deep for (un)lock" msgstr "E743: athrg neadaithe rdhomhain chun a (d)ghlasil" -#: ../eval.c:3630 msgid "E109: Missing ':' after '?'" msgstr "E109: ':' ar iarraidh i ndiaidh '?'" -#: ../eval.c:3893 msgid "E691: Can only compare List with List" msgstr "E691: Is fidir Liosta a chur i gcomparid le Liosta eile amhin" -#: ../eval.c:3895 -msgid "E692: Invalid operation for Lists" +msgid "E692: Invalid operation for List" msgstr "E692: Oibrocht neamhbhail ar Liosta" -#: ../eval.c:3915 msgid "E735: Can only compare Dictionary with Dictionary" msgstr "E735: Is fidir Foclir a chur i gcomparid le Foclir eile amhin" -#: ../eval.c:3917 msgid "E736: Invalid operation for Dictionary" msgstr "E736: Oibrocht neamhbhail ar Fhoclir" -#: ../eval.c:3932 -msgid "E693: Can only compare Funcref with Funcref" -msgstr "E693: Is fidir Funcref a chur i gcomparid le Funcref eile amhin" - -#: ../eval.c:3934 msgid "E694: Invalid operation for Funcrefs" msgstr "E694: Oibrocht neamhbhail ar Funcref" -#: ../eval.c:4277 msgid "E804: Cannot use '%' with Float" msgstr "E804: N fidir '%' a sid le Snmhphointe" -#: ../eval.c:4478 msgid "E110: Missing ')'" msgstr "E110: ')' ar iarraidh" -#: ../eval.c:4609 msgid "E695: Cannot index a Funcref" msgstr "E695: N fidir Funcref a innacs" -#: ../eval.c:4839 +msgid "E909: Cannot index a special variable" +msgstr "E909: N fidir athrg speisialta a innacs" + #, c-format msgid "E112: Option name missing: %s" msgstr "E112: Ainm rogha ar iarraidh: %s" -#: ../eval.c:4855 #, c-format msgid "E113: Unknown option: %s" msgstr "E113: Rogha anaithnid: %s" -#: ../eval.c:4904 #, c-format msgid "E114: Missing quote: %s" msgstr "E114: Comhartha athfhriotail ar iarraidh: %s" -#: ../eval.c:5020 #, c-format msgid "E115: Missing quote: %s" msgstr "E115: Comhartha athfhriotail ar iarraidh: %s" -#: ../eval.c:5084 -#, c-format -msgid "E696: Missing comma in List: %s" -msgstr "E696: Camg ar iarraidh i Liosta: %s" +msgid "Not enough memory to set references, garbage collection aborted!" +msgstr "" +"Nl go leor cuimhne ann le tagairt a shocr; baili dramhaola thobscor!" -#: ../eval.c:5091 -#, c-format -msgid "E697: Missing end of List ']': %s" -msgstr "E697: ']' ar iarraidh ag deireadh liosta: %s" +msgid "E724: variable nested too deep for displaying" +msgstr "E724: athrg neadaithe rdhomhain chun a thaispeint" -#: ../eval.c:6475 -#, c-format -msgid "E720: Missing colon in Dictionary: %s" -msgstr "E720: Idirstad ar iarraidh i bhFoclir: %s" +msgid "E805: Using a Float as a Number" +msgstr "E805: Snmhphointe sid mar Uimhir" -#: ../eval.c:6499 -#, c-format -msgid "E721: Duplicate key in Dictionary: \"%s\"" -msgstr "E721: Eochair dhblach i bhFoclir: \"%s\"" +msgid "E703: Using a Funcref as a Number" +msgstr "E703: Funcref sid mar Uimhir" -#: ../eval.c:6517 -#, c-format -msgid "E722: Missing comma in Dictionary: %s" -msgstr "E722: Camg ar iarraidh i bhFoclir: %s" +msgid "E745: Using a List as a Number" +msgstr "E745: Liosta sid mar Uimhir" -#: ../eval.c:6524 -#, c-format -msgid "E723: Missing end of Dictionary '}': %s" -msgstr "E723: '}' ar iarraidh ag deireadh foclra: %s" +msgid "E728: Using a Dictionary as a Number" +msgstr "E728: Foclir sid mar Uimhir" -#: ../eval.c:6555 -msgid "E724: variable nested too deep for displaying" -msgstr "E724: athrg neadaithe rdhomhain chun a thaispeint" +msgid "E910: Using a Job as a Number" +msgstr "E910: Jab sid mar Uimhir" + +msgid "E913: Using a Channel as a Number" +msgstr "E913: Cainal sid mar Uimhir" + +msgid "E891: Using a Funcref as a Float" +msgstr "E891: Funcref sid mar Shnmhphointe" + +msgid "E892: Using a String as a Float" +msgstr "E892: Teaghrn sid mar Shnmhphointe" + +msgid "E893: Using a List as a Float" +msgstr "E893: Liosta sid mar Shnmhphointe" + +msgid "E894: Using a Dictionary as a Float" +msgstr "E894: Foclir sid mar Shnmhphointe" + +msgid "E907: Using a special value as a Float" +msgstr "E907: Luach speisialta sid mar Shnmhphointe" + +msgid "E911: Using a Job as a Float" +msgstr "E911: Jab sid mar Shnmhphointe" + +msgid "E914: Using a Channel as a Float" +msgstr "E914: Cainal sid mar Shnmhphointe" + +msgid "E729: using Funcref as a String" +msgstr "E729: Funcref sid mar Theaghrn" + +msgid "E730: using List as a String" +msgstr "E730: Liosta sid mar Theaghrn" + +msgid "E731: using Dictionary as a String" +msgstr "E731: Foclir sid mar Theaghrn" + +msgid "E908: using an invalid value as a String" +msgstr "E908: luach neamhbhail sid mar Theaghrn" -#: ../eval.c:7188 #, c-format -msgid "E740: Too many arguments for function %s" -msgstr "E740: An iomarca argint d'fheidhm %s" +msgid "E795: Cannot delete variable %s" +msgstr "E795: N fidir athrg %s a scriosadh" -#: ../eval.c:7190 #, c-format -msgid "E116: Invalid arguments for function %s" -msgstr "E116: Argint neamhbhail d'fheidhm %s" +msgid "E704: Funcref variable name must start with a capital: %s" +msgstr "E704: Caithfidh ceannlitir a bheith ar dts ainm Funcref: %s" -#: ../eval.c:7377 #, c-format -msgid "E117: Unknown function: %s" -msgstr "E117: Feidhm anaithnid: %s" +msgid "E705: Variable name conflicts with existing function: %s" +msgstr "E705: Tagann ainm athrige salach ar fheidhm at ann cheana: %s" -#: ../eval.c:7383 #, c-format -msgid "E119: Not enough arguments for function: %s" -msgstr "E119: Nl go leor feidhmeanna d'fheidhm: %s" +msgid "E741: Value is locked: %s" +msgstr "E741: T an luach faoi ghlas: %s" + +msgid "Unknown" +msgstr "Anaithnid" -#: ../eval.c:7387 #, c-format -msgid "E120: Using not in a script context: %s" -msgstr "E120: sid ach gan a bheith i gcomhthacs scripte: %s" +msgid "E742: Cannot change value of %s" +msgstr "E742: N fidir an luach de %s a athr" + +msgid "E698: variable nested too deep for making a copy" +msgstr "E698: athrg neadaithe rdhomhain chun a chipeil" + +msgid "" +"\n" +"# global variables:\n" +msgstr "" +"\n" +"# athrga comhchoiteanna:\n" + +msgid "" +"\n" +"\tLast set from " +msgstr "" +"\n" +"\tSocraithe is dana " + +msgid "map() argument" +msgstr "argint map()" + +msgid "filter() argument" +msgstr "argint filter()" -#: ../eval.c:7391 #, c-format -msgid "E725: Calling dict function without Dictionary: %s" -msgstr "E725: Feidhm 'dict' ghlao gan Foclir: %s" +msgid "E686: Argument of %s must be a List" +msgstr "E686: Caithfidh argint de %s a bheith ina Liosta" + +msgid "E928: String required" +msgstr "E928: Teaghrn de dhth" -#: ../eval.c:7453 msgid "E808: Number or Float required" msgstr "E808: Uimhir n Snmhphointe de dhth" -#: ../eval.c:7503 -#, fuzzy msgid "add() argument" -msgstr "argint -c" - -#: ../eval.c:7907 -msgid "E699: Too many arguments" -msgstr "E699: An iomarca argint" +msgstr "argint add()" -#: ../eval.c:8073 msgid "E785: complete() can only be used in Insert mode" msgstr "E785: is fidir complete() a sid sa mhd Ionsite amhin" -#: ../eval.c:8156 +#. +#. * Yes this is ugly, I don't particularly like it either. But doing it +#. * this way has the compelling advantage that translations need not to +#. * be touched at all. See below what 'ok' and 'ync' are used for. +#. msgid "&Ok" msgstr "&Ok" -#: ../eval.c:8676 -#, c-format -msgid "E737: Key already exists: %s" -msgstr "E737: T eochair ann cheana: %s" - -#: ../eval.c:8692 -#, fuzzy -msgid "extend() argument" -msgstr "argint --cmd" - -#: ../eval.c:8915 -#, fuzzy -msgid "map() argument" -msgstr "argint -c" - -#: ../eval.c:8916 -#, fuzzy -msgid "filter() argument" -msgstr "argint -c" - -#: ../eval.c:9229 #, c-format -msgid "+-%s%3ld lines: " -msgstr "+-%s%3ld lne: " +msgid "+-%s%3ld line: " +msgid_plural "+-%s%3ld lines: " +msgstr[0] "+-%s%3ld lne: " +msgstr[1] "+-%s%3ld lne: " +msgstr[2] "+-%s%3ld lne: " +msgstr[3] "+-%s%3ld lne: " +msgstr[4] "+-%s%3ld lne: " -#: ../eval.c:9291 #, c-format msgid "E700: Unknown function: %s" msgstr "E700: Feidhm anaithnid: %s" -#: ../eval.c:10729 +msgid "E922: expected a dict" +msgstr "E922: bhothas ag sil le foclir" + +msgid "E923: Second argument of function() must be a list or a dict" +msgstr "E923: Caithfidh an dara hargint de function() a bheith ina liosta n ina foclir" + +msgid "" +"&OK\n" +"&Cancel" +msgstr "" +"&OK\n" +"&Cealaigh" + msgid "called inputrestore() more often than inputsave()" msgstr "Glaodh inputrestore() nos minice n inputsave()" -#: ../eval.c:10771 -#, fuzzy msgid "insert() argument" -msgstr "argint -c" +msgstr "argint insert()" -#: ../eval.c:10841 msgid "E786: Range not allowed" msgstr "E786: N cheadatear an raon" -#: ../eval.c:11140 +msgid "E916: not a valid job" +msgstr "E916: n jab bail " + msgid "E701: Invalid type for len()" msgstr "E701: Cinel neamhbhail le haghaidh len()" -#: ../eval.c:11980 +#, c-format +msgid "E798: ID is reserved for \":match\": %ld" +msgstr "E798: Aitheantas in irithe do \":match\": %ld" + msgid "E726: Stride is zero" msgstr "E726: Is nialas an chim" -#: ../eval.c:11982 msgid "E727: Start past end" msgstr "E727: Tosach thar dheireadh" -#: ../eval.c:12024 ../eval.c:15297 msgid "" msgstr "" -#: ../eval.c:12282 -#, fuzzy +msgid "E240: No connection to Vim server" +msgstr "E240: Nl aon nasc le freastala Vim" + +#, c-format +msgid "E241: Unable to send to %s" +msgstr "E241: N fidir aon rud a sheoladh chuig %s" + +msgid "E277: Unable to read a server reply" +msgstr "E277: N fidir freagra n fhreastala a lamh" + msgid "remove() argument" -msgstr "argint --cmd" +msgstr "argint remove()" -#: ../eval.c:12466 msgid "E655: Too many symbolic links (cycle?)" msgstr "E655: An iomarca naisc shiombalacha (ciogal?)" -#: ../eval.c:12593 -#, fuzzy msgid "reverse() argument" -msgstr "argint -c" +msgstr "argint reverse()" + +msgid "E258: Unable to send to client" +msgstr "E258: N fidir aon rud a sheoladh chuig an chliant" + +#, c-format +msgid "E927: Invalid action: '%s'" +msgstr "E927: Gnomh neamhbhail: '%s'" -#: ../eval.c:13721 -#, fuzzy msgid "sort() argument" -msgstr "argint -c" +msgstr "argint sort()" -#: ../eval.c:13721 -#, fuzzy msgid "uniq() argument" -msgstr "argint -c" +msgstr "argint uniq()" -#: ../eval.c:13776 msgid "E702: Sort compare function failed" msgstr "E702: Theip ar fheidhm chomparide le linn srtla" -#: ../eval.c:13806 -#, fuzzy msgid "E882: Uniq compare function failed" -msgstr "E702: Theip ar fheidhm chomparide le linn srtla" +msgstr "E882: Theip ar fheidhm chomparide Uniq" -#: ../eval.c:14085 msgid "(Invalid)" msgstr "(Neamhbhail)" -#: ../eval.c:14590 -msgid "E677: Error writing temp file" -msgstr "E677: Earrid agus comhad sealadach scrobh" - -#: ../eval.c:16159 -msgid "E805: Using a Float as a Number" -msgstr "E805: Snmhphointe sid mar Uimhir" - -#: ../eval.c:16162 -msgid "E703: Using a Funcref as a Number" -msgstr "E703: Funcref sid mar Uimhir" - -#: ../eval.c:16170 -msgid "E745: Using a List as a Number" -msgstr "E745: Liosta sid mar Uimhir" - -#: ../eval.c:16173 -msgid "E728: Using a Dictionary as a Number" -msgstr "E728: Foclir sid mar Uimhir" - -#: ../eval.c:16259 -msgid "E729: using Funcref as a String" -msgstr "E729: Funcref sid mar Theaghrn" - -#: ../eval.c:16262 -msgid "E730: using List as a String" -msgstr "E730: Liosta sid mar Theaghrn" - -#: ../eval.c:16265 -msgid "E731: using Dictionary as a String" -msgstr "E731: Foclir sid mar Theaghrn" - -#: ../eval.c:16619 -#, c-format -msgid "E706: Variable type mismatch for: %s" -msgstr "E706: Mmheaitseil idir cinelacha athrige: %s" - -#: ../eval.c:16705 -#, c-format -msgid "E795: Cannot delete variable %s" -msgstr "E795: N fidir athrg %s a scriosadh" - -#: ../eval.c:16724 -#, c-format -msgid "E704: Funcref variable name must start with a capital: %s" -msgstr "E704: Caithfidh ceannlitir a bheith ar dts ainm Funcref: %s" - -#: ../eval.c:16732 -#, c-format -msgid "E705: Variable name conflicts with existing function: %s" -msgstr "E705: Tagann ainm athrige salach ar fheidhm at ann cheana: %s" - -#: ../eval.c:16763 -#, c-format -msgid "E741: Value is locked: %s" -msgstr "E741: T an luach faoi ghlas: %s" - -#: ../eval.c:16764 ../eval.c:16769 ../message.c:1839 -msgid "Unknown" -msgstr "Anaithnid" - -#: ../eval.c:16768 -#, c-format -msgid "E742: Cannot change value of %s" -msgstr "E742: N fidir an luach de %s a athr" - -#: ../eval.c:16838 -msgid "E698: variable nested too deep for making a copy" -msgstr "E698: athrg neadaithe rdhomhain chun a chipeil" - -#: ../eval.c:17249 -#, c-format -msgid "E123: Undefined function: %s" -msgstr "E123: Feidhm gan sainmhni: %s" - -#: ../eval.c:17260 -#, c-format -msgid "E124: Missing '(': %s" -msgstr "E124: '(' ar iarraidh: %s" - -#: ../eval.c:17293 -#, fuzzy -msgid "E862: Cannot use g: here" -msgstr "E284: N fidir luachanna IC a shocr" - -#: ../eval.c:17312 #, c-format -msgid "E125: Illegal argument: %s" -msgstr "E125: Argint neamhcheadaithe: %s" - -#: ../eval.c:17323 -#, fuzzy, c-format -msgid "E853: Duplicate argument name: %s" -msgstr "E125: Argint neamhcheadaithe: %s" - -#: ../eval.c:17416 -msgid "E126: Missing :endfunction" -msgstr "E126: :endfunction ar iarraidh" - -#: ../eval.c:17537 -#, c-format -msgid "E707: Function name conflicts with variable: %s" -msgstr "E707: Tagann ainm na feidhme salach ar athrg: %s" - -#: ../eval.c:17549 -#, c-format -msgid "E127: Cannot redefine function %s: It is in use" -msgstr "" -"E127: N fidir sainmhni nua a dhanamh ar fheidhm %s: In sid cheana" - -#: ../eval.c:17604 -#, c-format -msgid "E746: Function name does not match script file name: %s" -msgstr "" -"E746: Nl ainm na feidhme comhoirinach le hainm comhaid na scripte: %s" - -#: ../eval.c:17716 -msgid "E129: Function name required" -msgstr "E129: T g le hainm feidhme" - -#: ../eval.c:17824 -#, fuzzy, c-format -msgid "E128: Function name must start with a capital or \"s:\": %s" -msgstr "" -"E128: Caithfidh ceannlitir a bheith ar dts ainm feidhme, n idirstad a " -"bheith ann: %s" - -#: ../eval.c:17833 -#, fuzzy, c-format -msgid "E884: Function name cannot contain a colon: %s" -msgstr "" -"E128: Caithfidh ceannlitir a bheith ar dts ainm feidhme, n idirstad a " -"bheith ann: %s" - -#: ../eval.c:18336 -#, c-format -msgid "E131: Cannot delete function %s: It is in use" -msgstr "E131: N fidir feidhm %s a scriosadh: T s in sid faoi lthair" - -#: ../eval.c:18441 -msgid "E132: Function call depth is higher than 'maxfuncdepth'" -msgstr "E132: Doimhneacht na nglaonna nos m n 'maxfuncdepth'" - -#: ../eval.c:18568 -#, c-format -msgid "calling %s" -msgstr "%s glao" - -#: ../eval.c:18651 -#, c-format -msgid "%s aborted" -msgstr "%s tobscortha" - -#: ../eval.c:18653 -#, c-format -msgid "%s returning #%" -msgstr "%s ag aisfhilleadh #%" - -#: ../eval.c:18670 -#, c-format -msgid "%s returning %s" -msgstr "%s ag aisfhilleadh %s" - -#: ../eval.c:18691 ../ex_cmds2.c:2695 -#, c-format -msgid "continuing in %s" -msgstr "ag leanint i %s" - -#: ../eval.c:18795 -msgid "E133: :return not inside a function" -msgstr "E133: Caithfidh :return a bheith isteach i bhfeidhm" - -#: ../eval.c:19159 -msgid "" -"\n" -"# global variables:\n" -msgstr "" -"\n" -"# athrga comhchoiteanna:\n" +msgid "E935: invalid submatch number: %d" +msgstr "E935: uimhir fho-mheaitsela neamhbhail: %d" -#: ../eval.c:19254 -msgid "" -"\n" -"\tLast set from " -msgstr "" -"\n" -"\tSocraithe is dana " +msgid "E677: Error writing temp file" +msgstr "E677: Earrid agus comhad sealadach scrobh" -#: ../eval.c:19272 -msgid "No old files" -msgstr "Gan seanchomhaid" +msgid "E921: Invalid callback argument" +msgstr "E921: Argint neamhbhail ar aisghlaoch" -#: ../ex_cmds.c:122 #, c-format msgid "<%s>%s%s %d, Hex %02x, Octal %03o" msgstr "<%s>%s%s %d, Heics %02x, Ocht %03o" -#: ../ex_cmds.c:145 #, c-format msgid "> %d, Hex %04x, Octal %o" msgstr "> %d, Heics %04x, Ocht %o" -#: ../ex_cmds.c:146 #, c-format msgid "> %d, Hex %08x, Octal %o" msgstr "> %d, Heics %08x, Ocht %o" -#: ../ex_cmds.c:684 msgid "E134: Move lines into themselves" msgstr "E134: Bog lnte isteach iontu fin" -#: ../ex_cmds.c:747 msgid "1 line moved" msgstr "Bogadh lne amhin" -#: ../ex_cmds.c:749 #, c-format -msgid "% lines moved" -msgstr "Bogadh % lne" +msgid "%ld lines moved" +msgstr "Bogadh %ld lne" -#: ../ex_cmds.c:1175 #, c-format -msgid "% lines filtered" -msgstr "Scagadh % lne" +msgid "%ld lines filtered" +msgstr "Scagadh %ld lne" -#: ../ex_cmds.c:1194 msgid "E135: *Filter* Autocommands must not change current buffer" msgstr "" "E135: N cheadatear d'uathorduithe *scagaire* an maoln reatha a athr" -#: ../ex_cmds.c:1244 msgid "[No write since last change]\n" msgstr "[Athraithe agus nach sbhilte shin]\n" -#: ../ex_cmds.c:1424 #, c-format msgid "%sviminfo: %s in line: " msgstr "%sviminfo: %s i lne: " -#: ../ex_cmds.c:1431 msgid "E136: viminfo: Too many errors, skipping rest of file" msgstr "" "E136: viminfo: An iomarca earrid, ag scipeil an chuid eile den chomhad" -#: ../ex_cmds.c:1458 #, c-format msgid "Reading viminfo file \"%s\"%s%s%s" msgstr "Comhad viminfo \"%s\"%s%s%s lamh" -#: ../ex_cmds.c:1460 msgid " info" msgstr " eolas" -#: ../ex_cmds.c:1461 msgid " marks" msgstr " marcanna" -#: ../ex_cmds.c:1462 msgid " oldfiles" msgstr " seanchomhad" -#: ../ex_cmds.c:1463 msgid " FAILED" msgstr " TEIPTHE" #. avoid a wait_return for this message, it's annoying -#: ../ex_cmds.c:1541 #, c-format msgid "E137: Viminfo file is not writable: %s" msgstr "E137: Nl an comhad Viminfo inscrofa: %s" -#: ../ex_cmds.c:1626 +#, c-format +msgid "E929: Too many viminfo temp files, like %s!" +msgstr "E929: An iomarca comhad sealadach viminfo, mar shampla %s!" + #, c-format msgid "E138: Can't write viminfo file %s!" msgstr "E138: N fidir comhad viminfo %s a scrobh!" -#: ../ex_cmds.c:1635 #, c-format msgid "Writing viminfo file \"%s\"" msgstr "Comhad viminfo \"%s\" scrobh" +#, c-format +msgid "E886: Can't rename viminfo file to %s!" +msgstr "E886: N fidir ainm %s a chur ar an gcomhad viminfo!" + #. Write the info: -#: ../ex_cmds.c:1720 #, c-format msgid "# This viminfo file was generated by Vim %s.\n" msgstr "# Chruthaigh Vim an comhad viminfo seo %s.\n" -#: ../ex_cmds.c:1722 msgid "" "# You may edit it if you're careful!\n" "\n" @@ -1141,47 +885,47 @@ msgstr "" "# Is fidir leat an comhad seo a chur in eagar ach b cramach!\n" "\n" -#: ../ex_cmds.c:1723 msgid "# Value of 'encoding' when this file was written\n" msgstr "# Luach 'encoding' agus an comhad seo scrobh\n" -#: ../ex_cmds.c:1800 msgid "Illegal starting char" msgstr "Carachtar neamhcheadaithe tosaigh" -#: ../ex_cmds.c:2162 +msgid "" +"\n" +"# Bar lines, copied verbatim:\n" +msgstr "" +"\n" +"# Barralnte, cipeilte focal ar fhocal:\n" + +msgid "Save As" +msgstr "Sbhil Mar" + msgid "Write partial file?" msgstr "Scrobh comhad neamhiomln?" -#: ../ex_cmds.c:2166 msgid "E140: Use ! to write partial buffer" msgstr "E140: Bain sid as ! chun maoln neamhiomln a scrobh" -#: ../ex_cmds.c:2281 #, c-format msgid "Overwrite existing file \"%s\"?" msgstr "Forscrobh comhad \"%s\" at ann cheana?" -#: ../ex_cmds.c:2317 #, c-format msgid "Swap file \"%s\" exists, overwrite anyway?" msgstr "T comhad babhtla \"%s\" ann cheana; forscrobh mar sin fin?" -#: ../ex_cmds.c:2326 #, c-format msgid "E768: Swap file exists: %s (:silent! overrides)" msgstr "E768: T comhad babhtla ann cheana: %s (sid :silent! chun sr)" -#: ../ex_cmds.c:2381 #, c-format -msgid "E141: No file name for buffer %" -msgstr "E141: Nl aon ainm ar mhaoln %" +msgid "E141: No file name for buffer %ld" +msgstr "E141: Nl aon ainm ar mhaoln %ld" -#: ../ex_cmds.c:2412 msgid "E142: File not written: Writing is disabled by 'write' option" msgstr "E142: Nor scrobhadh an comhad: dchumasaithe leis an rogha 'write'" -#: ../ex_cmds.c:2434 #, c-format msgid "" "'readonly' option is set for \"%s\".\n" @@ -1190,7 +934,6 @@ msgstr "" "t an rogha 'readonly' socraithe do \"%s\".\n" "Ar mhaith leat a scrobh mar sin fin?" -#: ../ex_cmds.c:2439 #, c-format msgid "" "File permissions of \"%s\" are read-only.\n" @@ -1201,85 +944,70 @@ msgstr "" "Seans gurbh fhidir scrobh ann mar sin fin.\n" "An bhfuil fonn ort triail a bhaint as?" -#: ../ex_cmds.c:2451 #, c-format msgid "E505: \"%s\" is read-only (add ! to override)" msgstr "E505: is inlite amhin \"%s\" (cuir ! leis an ord chun sr)" -#: ../ex_cmds.c:3120 +msgid "Edit File" +msgstr "Cuir Comhad in Eagar" + #, c-format msgid "E143: Autocommands unexpectedly deleted new buffer %s" msgstr "E143: Scrios na huathorduithe maoln nua %s go tobann" -#: ../ex_cmds.c:3313 msgid "E144: non-numeric argument to :z" msgstr "E144: argint neamhuimhriil chun :z" -#: ../ex_cmds.c:3404 msgid "E145: Shell commands not allowed in rvim" msgstr "E145: N cheadatear orduithe blaoisce i rvim" -#: ../ex_cmds.c:3498 msgid "E146: Regular expressions can't be delimited by letters" msgstr "" "E146: N cheadatear litreacha mar theormharcir ar shloinn ionadaochta" -#: ../ex_cmds.c:3964 #, c-format msgid "replace with %s (y/n/a/q/l/^E/^Y)?" msgstr "cuir %s ina ionad (y/n/a/q/l/^E/^Y)?" -#: ../ex_cmds.c:4379 msgid "(Interrupted) " msgstr "(Idirbhriste) " -#: ../ex_cmds.c:4384 msgid "1 match" msgstr "1 rud comhoirinach" -#: ../ex_cmds.c:4384 msgid "1 substitution" msgstr "1 ionadaocht" -#: ../ex_cmds.c:4387 #, c-format -msgid "% matches" -msgstr "% rud comhoirinach" +msgid "%ld matches" +msgstr "%ld rud comhoirinach" -#: ../ex_cmds.c:4388 #, c-format -msgid "% substitutions" -msgstr "% ionadaocht" +msgid "%ld substitutions" +msgstr "%ld ionadaocht" -#: ../ex_cmds.c:4392 msgid " on 1 line" msgstr " ar lne amhin" -#: ../ex_cmds.c:4395 #, c-format -msgid " on % lines" -msgstr " ar % lne" +msgid " on %ld lines" +msgstr " ar %ld lne" -#: ../ex_cmds.c:4438 msgid "E147: Cannot do :global recursive" msgstr "E147: N cheadatear :global go hathchrsach" # should have ":" -#: ../ex_cmds.c:4467 msgid "E148: Regular expression missing from global" msgstr "E148: Slonn ionadaochta ar iarraidh :global" -#: ../ex_cmds.c:4508 #, c-format msgid "Pattern found in every line: %s" msgstr "Aimsodh an patrn i ngach lne: %s" -#: ../ex_cmds.c:4510 -#, fuzzy, c-format +#, c-format msgid "Pattern not found: %s" -msgstr "Patrn gan aimsi" +msgstr "Patrn gan aimsi: %s" -#: ../ex_cmds.c:4587 msgid "" "\n" "# Last Substitute String:\n" @@ -1289,682 +1017,599 @@ msgstr "" "# Teaghrn Ionadach Is Dana:\n" "$" -#: ../ex_cmds.c:4679 msgid "E478: Don't panic!" msgstr "E478: N tigh i scaoll!" -#: ../ex_cmds.c:4717 #, c-format msgid "E661: Sorry, no '%s' help for %s" msgstr "E661: T brn orm, n aon chabhair '%s' do %s" -#: ../ex_cmds.c:4719 #, c-format msgid "E149: Sorry, no help for %s" msgstr "E149: T brn orm, nl aon chabhair do %s" -#: ../ex_cmds.c:4751 #, c-format msgid "Sorry, help file \"%s\" not found" msgstr "T brn orm, comhad cabhrach \"%s\" gan aimsi" -#: ../ex_cmds.c:5323 #, c-format -msgid "E150: Not a directory: %s" -msgstr "E150: N comhadlann : %s" +msgid "E151: No match: %s" +msgstr "E151: Gan meaitseil: %s" -#: ../ex_cmds.c:5446 #, c-format msgid "E152: Cannot open %s for writing" msgstr "E152: N fidir %s a oscailt chun scrobh ann" -#: ../ex_cmds.c:5471 #, c-format msgid "E153: Unable to open %s for reading" msgstr "E153: N fidir %s a oscailt chun a lamh" -#: ../ex_cmds.c:5500 #, c-format msgid "E670: Mix of help file encodings within a language: %s" msgstr "E670: Ionchduithe agsla do chomhaid chabhracha i dteanga aonair: %s" -#: ../ex_cmds.c:5565 #, c-format msgid "E154: Duplicate tag \"%s\" in file %s/%s" msgstr "E154: Clib dhblach \"%s\" i gcomhad %s/%s" -#: ../ex_cmds.c:5687 +#, c-format +msgid "E150: Not a directory: %s" +msgstr "E150: N comhadlann : %s" + #, c-format msgid "E160: Unknown sign command: %s" msgstr "E160: Ord anaithnid comhartha: %s" -#: ../ex_cmds.c:5704 msgid "E156: Missing sign name" msgstr "E156: Ainm comhartha ar iarraidh" -#: ../ex_cmds.c:5746 msgid "E612: Too many signs defined" msgstr "E612: An iomarca comhartha sainmhnithe" -#: ../ex_cmds.c:5813 #, c-format msgid "E239: Invalid sign text: %s" msgstr "E239: Tacs neamhbhail comhartha: %s" -#: ../ex_cmds.c:5844 ../ex_cmds.c:6035 #, c-format msgid "E155: Unknown sign: %s" msgstr "E155: Comhartha anaithnid: %s" -#: ../ex_cmds.c:5877 msgid "E159: Missing sign number" msgstr "E159: Uimhir chomhartha ar iarraidh" -#: ../ex_cmds.c:5971 #, c-format msgid "E158: Invalid buffer name: %s" msgstr "E158: Ainm maolin neamhbhail: %s" -#: ../ex_cmds.c:6008 +msgid "E934: Cannot jump to a buffer that does not have a name" +msgstr "E934: N fidir lim go maoln gan ainm" + #, c-format -msgid "E157: Invalid sign ID: %" -msgstr "E157: ID neamhbhail comhartha: %" +msgid "E157: Invalid sign ID: %ld" +msgstr "E157: ID neamhbhail comhartha: %ld" + +#, c-format +msgid "E885: Not possible to change sign %s" +msgstr "E885: N fidir an comhartha a athr: %s" + +msgid " (NOT FOUND)" +msgstr " (AR IARRAIDH)" -#: ../ex_cmds.c:6066 msgid " (not supported)" msgstr " (nl an rogha seo ar fil)" -#: ../ex_cmds.c:6169 msgid "[Deleted]" msgstr "[Scriosta]" -#: ../ex_cmds2.c:139 +msgid "No old files" +msgstr "Gan seanchomhaid" + msgid "Entering Debug mode. Type \"cont\" to continue." msgstr "Md dfhabhtaithe thos. Clscrobh \"cont\" chun leanint." -#: ../ex_cmds2.c:143 ../ex_docmd.c:759 #, c-format -msgid "line %: %s" -msgstr "lne %: %s" +msgid "line %ld: %s" +msgstr "lne %ld: %s" -#: ../ex_cmds2.c:145 #, c-format msgid "cmd: %s" msgstr "ord: %s" -#: ../ex_cmds2.c:322 +msgid "frame is zero" +msgstr "is nialas an frma" + +#, c-format +msgid "frame at highest level: %d" +msgstr "frma ag an leibhal is airde: %d" + #, c-format -msgid "Breakpoint in \"%s%s\" line %" -msgstr "Brisphointe i \"%s%s\" lne %" +msgid "Breakpoint in \"%s%s\" line %ld" +msgstr "Brisphointe i \"%s%s\" lne %ld" -#: ../ex_cmds2.c:581 #, c-format msgid "E161: Breakpoint not found: %s" msgstr "E161: Brisphointe gan aimsi: %s" -#: ../ex_cmds2.c:611 msgid "No breakpoints defined" msgstr "Nl aon bhrisphointe socraithe" -#: ../ex_cmds2.c:617 #, c-format -msgid "%3d %s %s line %" -msgstr "%3d %s %s lne %" +msgid "%3d %s %s line %ld" +msgstr "%3d %s %s lne %ld" -#: ../ex_cmds2.c:942 msgid "E750: First use \":profile start {fname}\"" msgstr "E750: sid \":profile start {ainm}\" ar dts" -#: ../ex_cmds2.c:1269 #, c-format msgid "Save changes to \"%s\"?" msgstr "Sbhil athruithe ar \"%s\"?" -#: ../ex_cmds2.c:1271 ../ex_docmd.c:8851 msgid "Untitled" msgstr "Gan Teideal" -#: ../ex_cmds2.c:1421 #, c-format msgid "E162: No write since last change for buffer \"%s\"" msgstr "E162: Athraodh maoln \"%s\" ach nach bhfuil s sbhilte shin" -#: ../ex_cmds2.c:1480 msgid "Warning: Entered other buffer unexpectedly (check autocommands)" msgstr "Rabhadh: Chuathas i maoln eile go tobann (seiceil na huathorduithe)" -#: ../ex_cmds2.c:1826 msgid "E163: There is only one file to edit" msgstr "E163: Nl ach aon chomhad amhin le cur in eagar" -#: ../ex_cmds2.c:1828 msgid "E164: Cannot go before first file" msgstr "E164: N fidir a dhul roimh an chad chomhad" -#: ../ex_cmds2.c:1830 msgid "E165: Cannot go beyond last file" msgstr "E165: N fidir a dhul thar an gcomhad deireanach" -#: ../ex_cmds2.c:2175 #, c-format msgid "E666: compiler not supported: %s" msgstr "E666: n ghlactar leis an tiomsaitheoir: %s" -#: ../ex_cmds2.c:2257 #, c-format msgid "Searching for \"%s\" in \"%s\"" msgstr "Ag danamh cuardach ar \"%s\" i \"%s\"" -#: ../ex_cmds2.c:2284 #, c-format msgid "Searching for \"%s\"" msgstr "Ag danamh cuardach ar \"%s\"" -#: ../ex_cmds2.c:2307 #, c-format -msgid "not found in 'runtimepath': \"%s\"" -msgstr "gan aimsi i 'runtimepath': \"%s\"" +msgid "not found in '%s': \"%s\"" +msgstr "gan aimsi in '%s': \"%s\"" + +msgid "Source Vim script" +msgstr "Foinsigh script Vim" -#: ../ex_cmds2.c:2472 #, c-format msgid "Cannot source a directory: \"%s\"" msgstr "N fidir comhadlann a lamh: \"%s\"" -#: ../ex_cmds2.c:2518 #, c-format msgid "could not source \"%s\"" msgstr "norbh fhidir \"%s\" a lamh" -#: ../ex_cmds2.c:2520 #, c-format -msgid "line %: could not source \"%s\"" -msgstr "lne %: norbh fhidir \"%s\" a fhoinsi" +msgid "line %ld: could not source \"%s\"" +msgstr "lne %ld: norbh fhidir \"%s\" a fhoinsi" -#: ../ex_cmds2.c:2535 #, c-format msgid "sourcing \"%s\"" msgstr "\"%s\" fhoinsi" -#: ../ex_cmds2.c:2537 #, c-format -msgid "line %: sourcing \"%s\"" -msgstr "lne %: \"%s\" fhoinsi" +msgid "line %ld: sourcing \"%s\"" +msgstr "lne %ld: \"%s\" fhoinsi" -#: ../ex_cmds2.c:2693 #, c-format msgid "finished sourcing %s" msgstr "deireadh ag foinsi %s" -#: ../ex_cmds2.c:2765 +#, c-format +msgid "continuing in %s" +msgstr "ag leanint i %s" + msgid "modeline" msgstr "mdlne" -#: ../ex_cmds2.c:2767 msgid "--cmd argument" msgstr "argint --cmd" -#: ../ex_cmds2.c:2769 msgid "-c argument" msgstr "argint -c" -#: ../ex_cmds2.c:2771 msgid "environment variable" msgstr "athrg thimpeallachta" -#: ../ex_cmds2.c:2773 msgid "error handler" msgstr "limhsela earrid" -#: ../ex_cmds2.c:3020 msgid "W15: Warning: Wrong line separator, ^M may be missing" msgstr "" "W15: Rabhadh: Deighilteoir lnte mcheart, is fidir go bhfuil ^M ar iarraidh" -#: ../ex_cmds2.c:3139 msgid "E167: :scriptencoding used outside of a sourced file" msgstr "E167: n sidtear :scriptencoding ach i gcomhad foinsithe" -#: ../ex_cmds2.c:3166 msgid "E168: :finish used outside of a sourced file" msgstr "E168: n sidtear :finish ach i gcomhaid foinsithe" -#: ../ex_cmds2.c:3389 #, c-format msgid "Current %slanguage: \"%s\"" msgstr "%sTeanga faoi lthair: \"%s\"" -#: ../ex_cmds2.c:3404 #, c-format msgid "E197: Cannot set language to \"%s\"" msgstr "E197: N fidir an teanga a shocr mar \"%s\"" -#. don't redisplay the window -#. don't wait for return -#: ../ex_docmd.c:387 msgid "Entering Ex mode. Type \"visual\" to go to Normal mode." msgstr "Md Ex thos. Clscrobh \"visual\" le haghaidh an ghnthmhd." # in FARF -KPS -#: ../ex_docmd.c:428 msgid "E501: At end-of-file" msgstr "E501: Ag an chomhadchroch" -#: ../ex_docmd.c:513 msgid "E169: Command too recursive" msgstr "E169: Ord r-athchrsach" -#: ../ex_docmd.c:1006 #, c-format msgid "E605: Exception not caught: %s" msgstr "E605: Eisceacht gan limhseil: %s" -#: ../ex_docmd.c:1085 msgid "End of sourced file" msgstr "Croch chomhaid foinsithe" -#: ../ex_docmd.c:1086 msgid "End of function" msgstr "Croch fheidhme" -#: ../ex_docmd.c:1628 msgid "E464: Ambiguous use of user-defined command" msgstr "E464: sid athbhroch d'ord saincheaptha" -#: ../ex_docmd.c:1638 msgid "E492: Not an editor command" msgstr "E492: Nl ina ord eagarthra" -#: ../ex_docmd.c:1729 msgid "E493: Backwards range given" msgstr "E493: Raon droim ar ais" -#: ../ex_docmd.c:1733 msgid "Backwards range given, OK to swap" msgstr "Raon droim ar ais, babhtil" -#. append -#. typed wrong -#: ../ex_docmd.c:1787 msgid "E494: Use w or w>>" msgstr "E494: Bain sid as w n w>>" -#: ../ex_docmd.c:3454 -msgid "E319: The command is not available in this version" +msgid "E319: Sorry, the command is not available in this version" msgstr "E319: T brn orm, nl an t-ord ar fil sa leagan seo" -#: ../ex_docmd.c:3752 msgid "E172: Only one file name allowed" msgstr "E172: N cheadatear ach aon ainm comhaid amhin" -#: ../ex_docmd.c:4238 msgid "1 more file to edit. Quit anyway?" msgstr "1 comhad le cur in eagar fs. Scoir mar sin fin?" -#: ../ex_docmd.c:4242 #, c-format msgid "%d more files to edit. Quit anyway?" msgstr "%d comhad le cur in eagar fs. Scoir mar sin fin?" -#: ../ex_docmd.c:4248 msgid "E173: 1 more file to edit" msgstr "E173: 1 chomhad le heagr fs" -#: ../ex_docmd.c:4250 #, c-format -msgid "E173: % more files to edit" -msgstr "E173: % comhad le cur in eagar" +msgid "E173: %ld more files to edit" +msgstr "E173: %ld comhad le cur in eagar" -#: ../ex_docmd.c:4320 msgid "E174: Command already exists: add ! to replace it" msgstr "E174: T an t-ord ann cheana: cuir ! leis chun sr" -#: ../ex_docmd.c:4432 msgid "" "\n" -" Name Args Range Complete Definition" +" Name Args Address Complete Definition" msgstr "" "\n" -" Ainm Arg Raon Iomln Sainmhni" +" Ainm Arg Seoladh Iomln Sainmhni" -#: ../ex_docmd.c:4516 msgid "No user-defined commands found" msgstr "Nl aon ord aimsithe at sainithe ag an sideoir" -#: ../ex_docmd.c:4538 msgid "E175: No attribute specified" msgstr "E175: Nl aon aitreabid sainithe" -#: ../ex_docmd.c:4583 msgid "E176: Invalid number of arguments" msgstr "E176: T lon na n-argint mcheart" -#: ../ex_docmd.c:4594 msgid "E177: Count cannot be specified twice" msgstr "E177: N cheadatear an t-ireamh a bheith tugtha faoi dh" -#: ../ex_docmd.c:4603 msgid "E178: Invalid default value for count" msgstr "E178: Luach ramhshocraithe neamhbhail ar ireamh" -#: ../ex_docmd.c:4625 msgid "E179: argument required for -complete" msgstr "E179: t g le hargint i ndiaidh -complete" -#: ../ex_docmd.c:4635 +msgid "E179: argument required for -addr" +msgstr "E179: t g le hargint i ndiaidh -addr" + #, c-format msgid "E181: Invalid attribute: %s" msgstr "E181: Aitreabid neamhbhail: %s" -#: ../ex_docmd.c:4678 msgid "E182: Invalid command name" msgstr "E182: Ainm neamhbhail ordaithe" -#: ../ex_docmd.c:4691 msgid "E183: User defined commands must start with an uppercase letter" msgstr "" "E183: Caithfidh ceannlitir a bheith ar dts orduithe at sainithe ag an " "sideoir" -#: ../ex_docmd.c:4696 -#, fuzzy msgid "E841: Reserved name, cannot be used for user defined command" -msgstr "E464: sid athbhroch d'ord saincheaptha" +msgstr "" +"E841: Ainm in irithe, n fidir a chur ar ord sainithe ag an sideoir" -#: ../ex_docmd.c:4751 #, c-format msgid "E184: No such user-defined command: %s" msgstr "E184: Nl a leithid d'ord saincheaptha: %s" -#: ../ex_docmd.c:5219 +#, c-format +msgid "E180: Invalid address type value: %s" +msgstr "E180: Cinel neamhbhail seolta: %s" + #, c-format msgid "E180: Invalid complete value: %s" msgstr "E180: Luach iomln neamhbhail: %s" -#: ../ex_docmd.c:5225 msgid "E468: Completion argument only allowed for custom completion" msgstr "" "E468: N cheadatear argint chomhlnaithe ach le comhln saincheaptha" -#: ../ex_docmd.c:5231 msgid "E467: Custom completion requires a function argument" msgstr "E467: T g le hargint fheidhme le comhln saincheaptha" -#: ../ex_docmd.c:5257 -#, fuzzy, c-format +msgid "unknown" +msgstr "anaithnid" + +#, c-format msgid "E185: Cannot find color scheme '%s'" -msgstr "E185: Scim dathanna %s gan aimsi" +msgstr "E185: Scim dathanna '%s' gan aimsi" -#: ../ex_docmd.c:5263 msgid "Greetings, Vim user!" msgstr "Dia duit, a sideoir Vim!" -#: ../ex_docmd.c:5431 msgid "E784: Cannot close last tab page" -msgstr "E784: N fidir an leathanach cluaisn deiridh a dhnadh" +msgstr "E784: N fidir an leathanach cluaisn deiridh a dhnadh" -#: ../ex_docmd.c:5462 msgid "Already only one tab page" -msgstr "Nl ach leathanach cluaisn amhin cheana fin" +msgstr "Nl ach leathanach cluaisn amhin cheana fin" + +msgid "Edit File in new window" +msgstr "Cuir comhad in eagar i bhfuinneog nua" -#: ../ex_docmd.c:6004 #, c-format msgid "Tab page %d" msgstr "Leathanach cluaisn %d" -#: ../ex_docmd.c:6295 msgid "No swap file" msgstr "Nl aon chomhad babhtla ann" -#: ../ex_docmd.c:6478 +msgid "Append File" +msgstr "Cuir Comhad i nDeireadh" + msgid "E747: Cannot change directory, buffer is modified (add ! to override)" msgstr "" "E747: N fidir an chomhadlann a athr, mionathraodh an maoln (cuir ! leis " "an ord chun sr)" -#: ../ex_docmd.c:6485 msgid "E186: No previous directory" msgstr "E186: Nl aon chomhadlann roimhe seo" -#: ../ex_docmd.c:6530 msgid "E187: Unknown" msgstr "E187: Anaithnid" -#: ../ex_docmd.c:6610 msgid "E465: :winsize requires two number arguments" msgstr "E465: n folir dh argint uimhrila le :winsize" -#: ../ex_docmd.c:6655 +#, c-format +msgid "Window position: X %d, Y %d" +msgstr "Ionad na fuinneoige: X %d, Y %d" + msgid "E188: Obtaining window position not implemented for this platform" msgstr "E188: N fidir ionad na fuinneoige a fhil amach ar an chras seo" -#: ../ex_docmd.c:6662 msgid "E466: :winpos requires two number arguments" msgstr "E466: n folir dh argint uimhrila le :winpos" -#: ../ex_docmd.c:7241 +msgid "E930: Cannot use :redir inside execute()" +msgstr "E930: N fidir :redir a sid laistigh de execute()" + +msgid "Save Redirection" +msgstr "Sbhil Atreor" + +msgid "Save View" +msgstr "Sbhil an tAmharc" + +msgid "Save Session" +msgstr "Sbhil an Seisin" + +msgid "Save Setup" +msgstr "Sbhil an Socr" + #, c-format msgid "E739: Cannot create directory: %s" msgstr "E739: N fidir comhadlann a chruth: %s" -#: ../ex_docmd.c:7268 #, c-format msgid "E189: \"%s\" exists (add ! to override)" msgstr "E189: T \"%s\" ann cheana (cuir ! leis an ord chun sr)" -#: ../ex_docmd.c:7273 #, c-format msgid "E190: Cannot open \"%s\" for writing" msgstr "E190: N fidir \"%s\" a oscailt chun lamh" #. set mark -#: ../ex_docmd.c:7294 msgid "E191: Argument must be a letter or forward/backward quote" msgstr "E191: Caithfidh an argint a bheith litir n comhartha athfhriotal" -#: ../ex_docmd.c:7333 msgid "E192: Recursive use of :normal too deep" msgstr "E192: athchrsil :normal rdhomhain" -#: ../ex_docmd.c:7807 +msgid "E809: #< is not available without the +eval feature" +msgstr "E809: nl #< ar fil gan ghn +eval" + msgid "E194: No alternate file name to substitute for '#'" msgstr "E194: Nl aon ainm comhaid a chur in ionad '#'" -#: ../ex_docmd.c:7841 msgid "E495: no autocommand file name to substitute for \"\"" msgstr "E495: nl aon ainm comhaid uathordaithe le cur in ionad \"\"" -#: ../ex_docmd.c:7850 msgid "E496: no autocommand buffer number to substitute for \"\"" msgstr "E496: nl aon uimhir mhaoln uathordaithe le cur in ionad \"\"" -#: ../ex_docmd.c:7861 msgid "E497: no autocommand match name to substitute for \"\"" msgstr "" "E497: nl aon ainm meaitsela uathordaithe le cur in ionad \"\"" -#: ../ex_docmd.c:7870 msgid "E498: no :source file name to substitute for \"\"" msgstr "E498: nl aon ainm comhaid :source le cur in ionad \"\"" -#: ../ex_docmd.c:7876 -#, fuzzy msgid "E842: no line number to use for \"\"" -msgstr "E498: nl aon ainm comhaid :source le cur in ionad \"\"" +msgstr "E842: nl aon lne-uimhir ar fil le haghaidh \"\"" -#: ../ex_docmd.c:7903 -#, fuzzy, c-format +#, no-c-format msgid "E499: Empty file name for '%' or '#', only works with \":p:h\"" msgstr "" "E499: Ainm comhaid folamh le haghaidh '%' n '#', oibreoidh s le \":p:h\" " "amhin" -#: ../ex_docmd.c:7905 msgid "E500: Evaluates to an empty string" msgstr "E500: Luachiltear seo mar theaghrn folamh" -#: ../ex_docmd.c:8838 msgid "E195: Cannot open viminfo file for reading" msgstr "E195: N fidir an comhad viminfo a oscailt chun lamh" -#: ../ex_eval.c:464 +msgid "E196: No digraphs in this version" +msgstr "E196: N cheadatear dghraif sa leagan seo" + msgid "E608: Cannot :throw exceptions with 'Vim' prefix" msgstr "E608: N fidir eisceachta a :throw le rimr 'Vim'" #. always scroll up, don't overwrite -#: ../ex_eval.c:496 #, c-format msgid "Exception thrown: %s" msgstr "Gineadh eisceacht: %s" -#: ../ex_eval.c:545 #, c-format msgid "Exception finished: %s" msgstr "Eisceacht curtha i gcrch: %s" -#: ../ex_eval.c:546 #, c-format msgid "Exception discarded: %s" msgstr "Eisceacht curtha i leataobh: %s" -#: ../ex_eval.c:588 ../ex_eval.c:634 #, c-format -msgid "%s, line %" -msgstr "%s, lne %" +msgid "%s, line %ld" +msgstr "%s, lne %ld" #. always scroll up, don't overwrite -#: ../ex_eval.c:608 #, c-format msgid "Exception caught: %s" msgstr "Limhseladh eisceacht: %s" -#: ../ex_eval.c:676 #, c-format msgid "%s made pending" msgstr "%s ar feitheamh anois" -#: ../ex_eval.c:679 #, c-format msgid "%s resumed" msgstr "atosaodh %s" -#: ../ex_eval.c:683 #, c-format msgid "%s discarded" msgstr "%s curtha i leataobh" -#: ../ex_eval.c:708 msgid "Exception" msgstr "Eisceacht" -#: ../ex_eval.c:713 msgid "Error and interrupt" msgstr "Earrid agus idirbhriseadh" -#: ../ex_eval.c:715 msgid "Error" msgstr "Earrid" #. if (pending & CSTP_INTERRUPT) -#: ../ex_eval.c:717 msgid "Interrupt" msgstr "Idirbhriseadh" -#: ../ex_eval.c:795 msgid "E579: :if nesting too deep" msgstr "E579: :if neadaithe rdhomhain" -#: ../ex_eval.c:830 msgid "E580: :endif without :if" msgstr "E580: :endif gan :if" -#: ../ex_eval.c:873 msgid "E581: :else without :if" msgstr "E581: :else gan :if" -#: ../ex_eval.c:876 msgid "E582: :elseif without :if" msgstr "E582: :elseif gan :if" -#: ../ex_eval.c:880 msgid "E583: multiple :else" msgstr "E583: :else iomadla" -#: ../ex_eval.c:883 msgid "E584: :elseif after :else" msgstr "E584: :elseif i ndiaidh :else" -#: ../ex_eval.c:941 msgid "E585: :while/:for nesting too deep" msgstr "E585: :while/:for neadaithe rdhomhain" -#: ../ex_eval.c:1028 msgid "E586: :continue without :while or :for" msgstr "E586: :continue gan :while n :for" -#: ../ex_eval.c:1061 msgid "E587: :break without :while or :for" msgstr "E587: :break gan :while n :for" -#: ../ex_eval.c:1102 msgid "E732: Using :endfor with :while" msgstr "E732: :endfor sid le :while" -#: ../ex_eval.c:1104 msgid "E733: Using :endwhile with :for" msgstr "E733: :endwhile sid le :for" -#: ../ex_eval.c:1247 msgid "E601: :try nesting too deep" msgstr "E601: :try neadaithe rdhomhain" -#: ../ex_eval.c:1317 msgid "E603: :catch without :try" msgstr "E603: :catch gan :try" #. Give up for a ":catch" after ":finally" and ignore it. #. * Just parse. -#: ../ex_eval.c:1332 msgid "E604: :catch after :finally" msgstr "E604: :catch i ndiaidh :finally" -#: ../ex_eval.c:1451 msgid "E606: :finally without :try" msgstr "E606: :finally gan :try" #. Give up for a multiple ":finally" and ignore it. -#: ../ex_eval.c:1467 msgid "E607: multiple :finally" msgstr "E607: :finally iomadla" -#: ../ex_eval.c:1571 msgid "E602: :endtry without :try" msgstr "E602: :endtry gan :try" -#: ../ex_eval.c:2026 msgid "E193: :endfunction not inside a function" msgstr "E193: Caithfidh :endfunction a bheith isteach i bhfeidhm" -#: ../ex_getln.c:1643 msgid "E788: Not allowed to edit another buffer now" msgstr "E788: Nl cead agat maoln eile a chur in eagar anois" -#: ../ex_getln.c:1656 msgid "E811: Not allowed to change buffer information now" msgstr "E811: Nl cead agat faisnis an mhaolin a athr anois" -#: ../ex_getln.c:3178 msgid "tagname" msgstr "clibainm" -#: ../ex_getln.c:3181 msgid " kind file\n" msgstr " cinel comhaid\n" -#: ../ex_getln.c:4799 msgid "'history' option is zero" msgstr "t an rogha 'history' nialas" -#: ../ex_getln.c:5046 #, c-format msgid "" "\n" @@ -1975,310 +1620,230 @@ msgstr "" # this gets plugged into the %s in the previous string, # hence the colon -#: ../ex_getln.c:5047 msgid "Command Line" msgstr "Lne na nOrduithe:" -#: ../ex_getln.c:5048 msgid "Search String" msgstr "Teaghrn Cuardaigh" -#: ../ex_getln.c:5049 msgid "Expression" msgstr "Sloinn:" -#: ../ex_getln.c:5050 msgid "Input Line" msgstr "Lne an Ionchuir:" -#: ../ex_getln.c:5117 +msgid "Debug Line" +msgstr "Lne Dhfhabhtaithe" + msgid "E198: cmd_pchar beyond the command length" msgstr "E198: cmd_pchar os cionn fad an ordaithe" -#: ../ex_getln.c:5279 msgid "E199: Active window or buffer deleted" msgstr "E199: Scriosadh an fhuinneog reatha n an maoln reatha" -#: ../file_search.c:203 -msgid "E854: path too long for completion" -msgstr "" - -#: ../file_search.c:446 -#, c-format -msgid "" -"E343: Invalid path: '**[number]' must be at the end of the path or be " -"followed by '%s'." -msgstr "" -"E343: Conair neamhbhail: n mr '**[uimhir]' a bheith ag deireadh na " -"conaire, n le '%s' ina dhiaidh." - -#: ../file_search.c:1505 -#, c-format -msgid "E344: Can't find directory \"%s\" in cdpath" -msgstr "E344: N fidir comhadlann \"%s\" a aimsi sa cdpath" - -#: ../file_search.c:1508 -#, c-format -msgid "E345: Can't find file \"%s\" in path" -msgstr "E345: N fidir comhad \"%s\" a aimsi sa chonair" - -#: ../file_search.c:1512 -#, c-format -msgid "E346: No more directory \"%s\" found in cdpath" -msgstr "E346: Nl comhadlann \"%s\" sa cdpath a thuilleadh" - -#: ../file_search.c:1515 -#, c-format -msgid "E347: No more file \"%s\" found in path" -msgstr "E347: Nl comhad \"%s\" sa chonair a thuilleadh" - -#: ../fileio.c:137 msgid "E812: Autocommands changed buffer or buffer name" msgstr "E812: Bh maoln n ainm maolin athraithe ag orduithe uathoibrocha" -#: ../fileio.c:368 msgid "Illegal file name" msgstr "Ainm comhaid neamhcheadaithe" -#: ../fileio.c:395 ../fileio.c:476 ../fileio.c:2543 ../fileio.c:2578 msgid "is a directory" msgstr "is comhadlann " -#: ../fileio.c:397 msgid "is not a file" msgstr "n comhad " -#: ../fileio.c:508 ../fileio.c:3522 +msgid "is a device (disabled with 'opendevice' option)" +msgstr "is glas seo (dchumasaithe le rogha 'opendevice')" + msgid "[New File]" msgstr "[Comhad Nua]" -#: ../fileio.c:511 msgid "[New DIRECTORY]" msgstr "[COMHADLANN nua]" -#: ../fileio.c:529 ../fileio.c:532 msgid "[File too big]" msgstr "[Comhad rmhr]" -#: ../fileio.c:534 msgid "[Permission Denied]" msgstr "[Cead Diltaithe]" -#: ../fileio.c:653 msgid "E200: *ReadPre autocommands made the file unreadable" msgstr "E200: Rinne uathorduithe *ReadPre praiseach as an chomhad" -#: ../fileio.c:655 msgid "E201: *ReadPre autocommands must not change current buffer" msgstr "E201: N cheadatear d'uathorduithe *ReadPre an maoln reatha a athr" -#: ../fileio.c:672 -msgid "Nvim: Reading from stdin...\n" +msgid "Vim: Reading from stdin...\n" msgstr "Vim: Ag lamh n ionchur caighdenach...\n" +msgid "Reading from stdin..." +msgstr "Ag lamh n ionchur caighdenach..." + #. Re-opening the original file failed! -#: ../fileio.c:909 msgid "E202: Conversion made file unreadable!" msgstr "E202: Comhad dolite i ndiaidh an tiontaithe!" -#. fifo or socket -#: ../fileio.c:1782 msgid "[fifo/socket]" msgstr "[fifo/soicad]" # `TITA' ?! -KPS -#. fifo -#: ../fileio.c:1788 msgid "[fifo]" msgstr "[fifo]" -#. or socket -#: ../fileio.c:1794 msgid "[socket]" msgstr "[soicad]" -#. or character special -#: ../fileio.c:1801 msgid "[character special]" msgstr "[comhad speisialta den chinel carachtar]" -#: ../fileio.c:1815 msgid "[CR missing]" msgstr "[CR ar iarraidh]" -#: ../fileio.c:1819 msgid "[long lines split]" msgstr "[lnte fada deighilte]" -#: ../fileio.c:1823 ../fileio.c:3512 msgid "[NOT converted]" msgstr "[N tiontaithe]" -#: ../fileio.c:1826 ../fileio.c:3515 msgid "[converted]" msgstr "[tiontaithe]" -#: ../fileio.c:1831 #, c-format -msgid "[CONVERSION ERROR in line %]" -msgstr "[EARRID TIONTAITHE i lne %]" +msgid "[CONVERSION ERROR in line %ld]" +msgstr "[EARRID TIONTAITHE i lne %ld]" -#: ../fileio.c:1835 #, c-format -msgid "[ILLEGAL BYTE in line %]" -msgstr "[BEART NEAMHCHEADAITHE i lne %]" +msgid "[ILLEGAL BYTE in line %ld]" +msgstr "[BEART NEAMHCHEADAITHE i lne %ld]" -#: ../fileio.c:1838 msgid "[READ ERRORS]" msgstr "[EARRID LIMH]" -#: ../fileio.c:2104 msgid "Can't find temp file for conversion" msgstr "N fidir comhad sealadach a aimsi le haghaidh tiontaithe" -#: ../fileio.c:2110 msgid "Conversion with 'charconvert' failed" msgstr "Theip ar thiont le 'charconvert'" -#: ../fileio.c:2113 msgid "can't read output of 'charconvert'" msgstr "n fidir an t-aschur 'charconvert' a lamh" -#: ../fileio.c:2437 msgid "E676: No matching autocommands for acwrite buffer" msgstr "E676: Nl aon uathord comhoirinaithe le haghaidh maolin acwrite" -#: ../fileio.c:2466 msgid "E203: Autocommands deleted or unloaded buffer to be written" msgstr "E203: Scrios n dhluchtaigh uathorduithe an maoln le scrobh" -#: ../fileio.c:2486 msgid "E204: Autocommand changed number of lines in unexpected way" msgstr "E204: D'athraigh uathord lon na lnte gan choinne" -#: ../fileio.c:2548 ../fileio.c:2565 +msgid "NetBeans disallows writes of unmodified buffers" +msgstr "N cheadaonn NetBeans maolin gan athr a bheith scrofa" + +msgid "Partial writes disallowed for NetBeans buffers" +msgstr "N cheadatear maolin NetBeans a bheith scrofa go neamhiomln" + msgid "is not a file or writable device" msgstr "n comhad n glas inscrofa " -#: ../fileio.c:2601 +msgid "writing to device disabled with 'opendevice' option" +msgstr "dchumasaodh scrobh chuig glas le rogha 'opendevice'" + msgid "is read-only (add ! to override)" msgstr "is inlite amhin (cuir ! leis an ord chun sr)" -#: ../fileio.c:2886 msgid "E506: Can't write to backup file (add ! to override)" msgstr "" "E506: N fidir scrobh a dhanamh sa chomhad cltaca (sid ! chun sr)" -#: ../fileio.c:2898 msgid "E507: Close error for backup file (add ! to override)" msgstr "" "E507: Earrid agus comhad cltaca dhnadh (cuir ! leis an ord chun sr)" -#: ../fileio.c:2901 msgid "E508: Can't read file for backup (add ! to override)" msgstr "" "E508: N fidir an comhad cltaca a lamh (cuir ! leis an ord chun sr)" -#: ../fileio.c:2923 msgid "E509: Cannot create backup file (add ! to override)" msgstr "" "E509: N fidir comhad cltaca a chruth (cuir ! leis an ord chun sr)" -#: ../fileio.c:3008 msgid "E510: Can't make backup file (add ! to override)" msgstr "" "E510: N fidir comhad cltaca a chruth (cuir ! leis an ord chun sr)" -#. Can't write without a tempfile! -#: ../fileio.c:3121 +msgid "E460: The resource fork would be lost (add ! to override)" +msgstr "E460: Chaillf an forc acmhainne (cuir ! leis an ord chun sr)" + msgid "E214: Can't find temp file for writing" msgstr "E214: N fidir comhad sealadach a aimsi chun scrobh ann" -#: ../fileio.c:3134 msgid "E213: Cannot convert (add ! to write without conversion)" msgstr "E213: N fidir tiont (cuir ! leis an ord chun scrobh gan tiont)" -#: ../fileio.c:3169 msgid "E166: Can't open linked file for writing" msgstr "E166: N fidir comhad nasctha a oscailt chun scrobh ann" -#: ../fileio.c:3173 msgid "E212: Can't open file for writing" msgstr "E212: N fidir comhad a oscailt chun scrobh ann" -#: ../fileio.c:3363 msgid "E667: Fsync failed" msgstr "E667: Theip ar fsync" -#: ../fileio.c:3398 msgid "E512: Close failed" msgstr "E512: Theip ar dnadh" -#: ../fileio.c:3436 msgid "E513: write error, conversion failed (make 'fenc' empty to override)" msgstr "" "E513: earrid le linn scrobh, theip ar thiont (sid 'fenc' folamh chun " "sr)" -#: ../fileio.c:3441 #, c-format msgid "" -"E513: write error, conversion failed in line % (make 'fenc' empty to " +"E513: write error, conversion failed in line %ld (make 'fenc' empty to " "override)" msgstr "" -"E513: earrid le linn scrofa, theip ar thiont ar lne % (sid " -"'fenc' folamh le sr)" +"E513: earrid le linn scrofa, theip ar thiont ar lne %ld (sid 'fenc' " +"folamh le sr)" -#: ../fileio.c:3448 msgid "E514: write error (file system full?)" msgstr "E514: earrid le linn scrofa (an bhfuil an cras comhaid ln?)" -#: ../fileio.c:3506 msgid " CONVERSION ERROR" msgstr " EARRID TIONTAITHE" -#: ../fileio.c:3509 #, c-format -msgid " in line %;" -msgstr " ar lne %;" +msgid " in line %ld;" +msgstr " ar lne %ld;" -#: ../fileio.c:3519 msgid "[Device]" msgstr "[Glas]" -#: ../fileio.c:3522 msgid "[New]" msgstr "[Nua]" -#: ../fileio.c:3535 msgid " [a]" msgstr " [a]" -#: ../fileio.c:3535 msgid " appended" msgstr " iarcheangailte" -#: ../fileio.c:3537 msgid " [w]" msgstr " [w]" -#: ../fileio.c:3537 msgid " written" msgstr " scrofa" -#: ../fileio.c:3579 msgid "E205: Patchmode: can't save original file" msgstr "E205: Patchmode: n fidir an comhad bunsach a shbhil" -#: ../fileio.c:3602 msgid "E206: patchmode: can't touch empty original file" msgstr "E206: patchmode: n fidir an comhad bunsach folamh a theagmhil" -#: ../fileio.c:3616 msgid "E207: Can't delete backup file" msgstr "E207: N fidir an comhad cltaca a scriosadh" -#: ../fileio.c:3672 msgid "" "\n" "WARNING: Original file may be lost or damaged\n" @@ -2286,96 +1851,75 @@ msgstr "" "\n" "RABHADH: Is fidir gur caillte n loite an comhad bunsach\n" -#: ../fileio.c:3675 msgid "don't quit the editor until the file is successfully written!" msgstr "n scoir go dt go scrobhfa an comhad!" -#: ../fileio.c:3795 msgid "[dos]" msgstr "[dos]" -#: ../fileio.c:3795 msgid "[dos format]" msgstr "[formid dos]" -#: ../fileio.c:3801 msgid "[mac]" msgstr "[mac]" -#: ../fileio.c:3801 msgid "[mac format]" msgstr "[formid mac]" -#: ../fileio.c:3807 msgid "[unix]" msgstr "[unix]" -#: ../fileio.c:3807 msgid "[unix format]" msgstr "[formid unix]" -#: ../fileio.c:3831 msgid "1 line, " msgstr "1 lne, " -#: ../fileio.c:3833 #, c-format -msgid "% lines, " -msgstr "% lne, " +msgid "%ld lines, " +msgstr "%ld lne, " -#: ../fileio.c:3836 msgid "1 character" msgstr "1 carachtar" -#: ../fileio.c:3838 #, c-format -msgid "% characters" -msgstr "% carachtar" +msgid "%lld characters" +msgstr "%lld carachtar" -#: ../fileio.c:3849 msgid "[noeol]" msgstr "[ganEOL]" -#: ../fileio.c:3849 msgid "[Incomplete last line]" msgstr "[Is neamhiomln an lne dheireanach]" #. don't overwrite messages here #. must give this prompt #. don't use emsg() here, don't want to flush the buffers -#: ../fileio.c:3865 msgid "WARNING: The file has been changed since reading it!!!" msgstr "RABHADH: Athraodh an comhad ladh !!!" -#: ../fileio.c:3867 msgid "Do you really want to write to it" msgstr "An bhfuil t cinnte gur mhaith leat a scrobh" -#: ../fileio.c:4648 #, c-format msgid "E208: Error writing to \"%s\"" msgstr "E208: Earrid agus \"%s\" scrobh" -#: ../fileio.c:4655 #, c-format msgid "E209: Error closing \"%s\"" msgstr "E209: Earrid agus \"%s\" dhnadh" -#: ../fileio.c:4657 #, c-format msgid "E210: Error reading \"%s\"" msgstr "E210: Earrid agus \"%s\" lamh" -#: ../fileio.c:4883 msgid "E246: FileChangedShell autocommand deleted buffer" msgstr "E246: Scrios uathord FileChangedShell an maoln" -#: ../fileio.c:4894 #, c-format msgid "E211: File \"%s\" no longer available" msgstr "E211: Nl comhad \"%s\" ar fil feasta" -#: ../fileio.c:4906 #, c-format msgid "" "W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as " @@ -2383,39 +1927,31 @@ msgid "" msgstr "" "W12: Rabhadh: Athraodh comhad \"%s\" agus athraodh an maoln i Vim fosta" -#: ../fileio.c:4907 msgid "See \":help W12\" for more info." msgstr "Bain triail as \":help W12\" chun tuilleadh eolais a fhil." -#: ../fileio.c:4910 #, c-format msgid "W11: Warning: File \"%s\" has changed since editing started" msgstr "W11: Rabhadh: Athraodh comhad \"%s\" tosaodh a chur in eagar" -#: ../fileio.c:4911 msgid "See \":help W11\" for more info." msgstr "Bain triail as \":help W11\" chun tuilleadh eolais a fhil." -#: ../fileio.c:4914 #, c-format msgid "W16: Warning: Mode of file \"%s\" has changed since editing started" msgstr "" "W16: Rabhadh: Athraodh md an chomhaid \"%s\" tosaodh a chur in eagar" -#: ../fileio.c:4915 msgid "See \":help W16\" for more info." msgstr "Bain triail as \":help W16\" chun tuilleadh eolais a fhil." -#: ../fileio.c:4927 #, c-format msgid "W13: Warning: File \"%s\" has been created after editing started" msgstr "W13: Rabhadh: Cruthaodh comhad \"%s\" tosaodh a chur in eagar" -#: ../fileio.c:4947 msgid "Warning" msgstr "Rabhadh" -#: ../fileio.c:4948 msgid "" "&OK\n" "&Load File" @@ -2423,48 +1959,45 @@ msgstr "" "&OK\n" "&Luchtaigh Comhad" -#: ../fileio.c:5065 #, c-format msgid "E462: Could not prepare for reloading \"%s\"" msgstr "E462: N fidir \"%s\" a ullmh le haghaidh athluchtaithe" -#: ../fileio.c:5078 #, c-format msgid "E321: Could not reload \"%s\"" msgstr "E321: N fidir \"%s\" a athlucht" -#: ../fileio.c:5601 msgid "--Deleted--" msgstr "--Scriosta--" -#: ../fileio.c:5732 #, c-format msgid "auto-removing autocommand: %s " msgstr "uathord bhaint go huathoibroch: %s " #. the group doesn't exist -#: ../fileio.c:5772 #, c-format msgid "E367: No such group: \"%s\"" msgstr "E367: Nl a leithid de ghrpa: \"%s\"" -#: ../fileio.c:5897 +msgid "E936: Cannot delete the current group" +msgstr "E936: N fidir an grpa reatha a scriosadh" + +msgid "W19: Deleting augroup that is still in use" +msgstr "W19: Iarracht ar augroup at fs in sid a scriosadh" + #, c-format msgid "E215: Illegal character after *: %s" msgstr "E215: Carachtar neamhcheadaithe i ndiaidh *: %s" -#: ../fileio.c:5905 #, c-format msgid "E216: No such event: %s" msgstr "E216: Nl a leithid de theagmhas: %s" -#: ../fileio.c:5907 #, c-format msgid "E216: No such group or event: %s" msgstr "E216: Nl a leithid de ghrpa n theagmhas: %s" #. Highlight title -#: ../fileio.c:6090 msgid "" "\n" "--- Auto-Commands ---" @@ -2472,765 +2005,567 @@ msgstr "" "\n" "--- Uathorduithe ---" -#: ../fileio.c:6293 #, c-format msgid "E680: : invalid buffer number " msgstr "E680: : uimhir neamhbhail mhaolin " -#: ../fileio.c:6370 msgid "E217: Can't execute autocommands for ALL events" msgstr "E217: N fidir uathorduithe a rith i gcomhair teagmhas UILE" -#: ../fileio.c:6393 msgid "No matching autocommands" msgstr "Nl aon uathord comhoirinaithe" -#: ../fileio.c:6831 msgid "E218: autocommand nesting too deep" msgstr "E218: uathord neadaithe rdhomhain" -#: ../fileio.c:7143 #, c-format msgid "%s Auto commands for \"%s\"" msgstr "%s Uathorduithe do \"%s\"" -#: ../fileio.c:7149 #, c-format msgid "Executing %s" msgstr "%s rith" -#: ../fileio.c:7211 #, c-format msgid "autocommand %s" msgstr "uathord %s" -#: ../fileio.c:7795 msgid "E219: Missing {." msgstr "E219: { ar iarraidh." -#: ../fileio.c:7797 msgid "E220: Missing }." msgstr "E220: } ar iarraidh." -#: ../fold.c:93 msgid "E490: No fold found" msgstr "E490: Nor aimsodh aon fhilleadh" -#: ../fold.c:544 msgid "E350: Cannot create fold with current 'foldmethod'" msgstr "E350: N fidir filleadh a chruth leis an 'foldmethod' reatha" -#: ../fold.c:546 msgid "E351: Cannot delete fold with current 'foldmethod'" msgstr "E351: N fidir filleadh a scriosadh leis an 'foldmethod' reatha" -#: ../fold.c:1784 #, c-format -msgid "+--%3ld lines folded " -msgstr "+--%3ld lne fillte " +msgid "+--%3ld line folded " +msgid_plural "+--%3ld lines folded " +msgstr[0] "+--%3ld lne fillte " +msgstr[1] "+--%3ld lne fillte " +msgstr[2] "+--%3ld lne fillte " +msgstr[3] "+--%3ld lne fillte " +msgstr[4] "+--%3ld lne fillte " -#. buffer has already been read -#: ../getchar.c:273 msgid "E222: Add to read buffer" msgstr "E222: Cuir leis an maoln lite" -#: ../getchar.c:2040 msgid "E223: recursive mapping" msgstr "E223: mapil athchrsach" -#: ../getchar.c:2849 #, c-format msgid "E224: global abbreviation already exists for %s" msgstr "E224: t giorrchn comhchoiteann ann cheana le haghaidh %s" -#: ../getchar.c:2852 #, c-format msgid "E225: global mapping already exists for %s" msgstr "E225: t mapil chomhchoiteann ann cheana le haghaidh %s" -#: ../getchar.c:2952 #, c-format msgid "E226: abbreviation already exists for %s" msgstr "E226: t giorrchn ann cheana le haghaidh %s" -#: ../getchar.c:2955 #, c-format msgid "E227: mapping already exists for %s" msgstr "E227: t mapil ann cheana le haghaidh %s" -#: ../getchar.c:3008 msgid "No abbreviation found" msgstr "Nor aimsodh aon ghiorrchn" -#: ../getchar.c:3010 msgid "No mapping found" msgstr "Nor aimsodh aon mhapil" -#: ../getchar.c:3974 msgid "E228: makemap: Illegal mode" msgstr "E228: makemap: Md neamhcheadaithe" -#. key value of 'cedit' option -#. type of cmdline window or 0 -#. result of cmdline window or 0 -#: ../globals.h:924 -msgid "--No lines in buffer--" -msgstr "--T an maoln folamh--" +msgid "E851: Failed to create a new process for the GUI" +msgstr "E851: Norbh fhidir priseas nua a chruth don GUI" -#. -#. * The error messages that can be shared are included here. -#. * Excluded are errors that are only used once and debugging messages. -#. -#: ../globals.h:996 -msgid "E470: Command aborted" -msgstr "E470: Ord tobscortha" +msgid "E852: The child process failed to start the GUI" +msgstr "E852: Theip ar an macphriseas an GUI a thos" -#: ../globals.h:997 -msgid "E471: Argument required" -msgstr "E471: T g le hargint" +msgid "E229: Cannot start the GUI" +msgstr "E229: N fidir an GUI a chur ag obair" -#: ../globals.h:998 -msgid "E10: \\ should be followed by /, ? or &" -msgstr "E10: Ba chir /, ? n & a chur i ndiaidh \\" +#, c-format +msgid "E230: Cannot read from \"%s\"" +msgstr "E230: N fidir lamh \"%s\"" -#: ../globals.h:1000 -msgid "E11: Invalid in command-line window; executes, CTRL-C quits" +msgid "E665: Cannot start GUI, no valid font found" msgstr "" -"E11: Neamhbhail i bhfuinneog lne na n-orduithe; =rith, CTRL-C=scoir" +"E665: N fidir an GUI a chur ag obair, nl aon chlfhoireann bhail ann" -#: ../globals.h:1002 -msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" -msgstr "" -"E12: N cheadatear ord exrc/vimrc sa chomhadlann reatha n chuardach " -"clibe" +msgid "E231: 'guifontwide' invalid" +msgstr "E231: 'guifontwide' neamhbhail" -#: ../globals.h:1003 -msgid "E171: Missing :endif" -msgstr "E171: :endif ar iarraidh" +msgid "E599: Value of 'imactivatekey' is invalid" +msgstr "E599: Luach neamhbhail ar 'imactivatekey'" -#: ../globals.h:1004 -msgid "E600: Missing :endtry" -msgstr "E600: :endtry ar iarraidh" +#, c-format +msgid "E254: Cannot allocate color %s" +msgstr "E254: N fidir dath %s a dhileadh" -#: ../globals.h:1005 -msgid "E170: Missing :endwhile" -msgstr "E170: :endwhile ar iarraidh" +msgid "No match at cursor, finding next" +msgstr "Nl a leithid ag an chrsir, ag cuardach ar an chad cheann eile" -#: ../globals.h:1006 -msgid "E170: Missing :endfor" -msgstr "E170: :endfor ar iarraidh" - -#: ../globals.h:1007 -msgid "E588: :endwhile without :while" -msgstr "E588: :endwhile gan :while" - -#: ../globals.h:1008 -msgid "E588: :endfor without :for" -msgstr "E588: :endfor gan :for" - -#: ../globals.h:1009 -msgid "E13: File exists (add ! to override)" -msgstr "E13: T comhad ann cheana (cuir ! leis an ord chun forscrobh)" - -#: ../globals.h:1010 -msgid "E472: Command failed" -msgstr "E472: Theip ar ord" - -#: ../globals.h:1011 -msgid "E473: Internal error" -msgstr "E473: Earrid inmhenach" +msgid " " +msgstr " " -#: ../globals.h:1012 -msgid "Interrupted" -msgstr "Idirbhriste" - -#: ../globals.h:1013 -msgid "E14: Invalid address" -msgstr "E14: Drochsheoladh" - -#: ../globals.h:1014 -msgid "E474: Invalid argument" -msgstr "E474: Argint neamhbhail" - -#: ../globals.h:1015 #, c-format -msgid "E475: Invalid argument: %s" -msgstr "E475: Argint neamhbhail: %s" +msgid "E616: vim_SelFile: can't get font %s" +msgstr "E616: vim_SelFile: nl aon fhil ar an chlfhoireann %s" -#: ../globals.h:1016 -#, c-format -msgid "E15: Invalid expression: %s" -msgstr "E15: Slonn neamhbhail: %s" +msgid "E614: vim_SelFile: can't return to current directory" +msgstr "E614: vim_SelFile: n fidir dul ar ais go dt an chomhadlann reatha" -#: ../globals.h:1017 -msgid "E16: Invalid range" -msgstr "E16: Raon neamhbhail" +msgid "Pathname:" +msgstr "Conair:" -#: ../globals.h:1018 -msgid "E476: Invalid command" -msgstr "E476: Ord neamhbhail" +msgid "E615: vim_SelFile: can't get current directory" +msgstr "E615: vim_SelFile: nl an chomhadlann reatha ar fil" -#: ../globals.h:1019 -#, c-format -msgid "E17: \"%s\" is a directory" -msgstr "E17: is comhadlann \"%s\"" +msgid "OK" +msgstr "OK" -#: ../globals.h:1020 -#, fuzzy -msgid "E900: Invalid job id" -msgstr "E49: Mid neamhbhail scrollaithe" +msgid "Cancel" +msgstr "Cealaigh" -#: ../globals.h:1021 -msgid "E901: Job table is full" +msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." msgstr "" +"Giuirlid Scrollbharra: N fidir cimseata an mhapa picteiln a fhil." -#: ../globals.h:1024 -#, c-format -msgid "E364: Library call failed for \"%s()\"" -msgstr "E364: Theip ar ghlao leabharlainne \"%s()\"" - -#: ../globals.h:1026 -msgid "E19: Mark has invalid line number" -msgstr "E19: T lne-uimhir neamhbhail ag an mharc" - -#: ../globals.h:1027 -msgid "E20: Mark not set" -msgstr "E20: Marc gan socr" +msgid "Vim dialog" +msgstr "Dialg Vim" -#: ../globals.h:1029 -msgid "E21: Cannot make changes, 'modifiable' is off" +msgid "E232: Cannot create BalloonEval with both message and callback" msgstr "" -"E21: N fidir athruithe a chur i bhfeidhm, nl an bhratach 'modifiable' " -"socraithe" - -#: ../globals.h:1030 -msgid "E22: Scripts nested too deep" -msgstr "E22: scripteanna neadaithe rdhomhain" +"E232: N fidir BalloonEval a chruth le teachtaireacht agus aisghlaoch araon" -#: ../globals.h:1031 -msgid "E23: No alternate file" -msgstr "E23: Nl aon chomhad malartach" +msgid "_Cancel" +msgstr "_Cealaigh" -#: ../globals.h:1032 -msgid "E24: No such abbreviation" -msgstr "E24: Nl a leithid de ghiorrchn ann" +msgid "_Save" +msgstr "_Sbhil" -#: ../globals.h:1033 -msgid "E477: No ! allowed" -msgstr "E477: N cheadatear !" +msgid "_Open" +msgstr "_Oscail" -#: ../globals.h:1035 -msgid "E25: Nvim does not have a built-in GUI" -msgstr "E25: N fidir an GUI a sid: Nor cumasaodh ag am tiomsaithe" +msgid "_OK" +msgstr "_OK" -#: ../globals.h:1036 -#, c-format -msgid "E28: No such highlight group name: %s" -msgstr "E28: Nl a leithid d'ainm grpa aibhsithe: %s" +msgid "" +"&Yes\n" +"&No\n" +"&Cancel" +msgstr "" +"&T\n" +"&Nl\n" +"&Cealaigh" -#: ../globals.h:1037 -msgid "E29: No inserted text yet" -msgstr "E29: Nl aon tacs ionsite go dt seo" +msgid "Yes" +msgstr "T" -#: ../globals.h:1038 -msgid "E30: No previous command line" -msgstr "E30: Nl aon lne na n-orduithe roimhe seo" +msgid "No" +msgstr "Nl" -#: ../globals.h:1039 -msgid "E31: No such mapping" -msgstr "E31: Nl a leithid de mhapil" +msgid "Input _Methods" +msgstr "_Modhanna ionchuir" -#: ../globals.h:1040 -msgid "E479: No match" -msgstr "E479: Nl aon rud comhoirinach ann" +# in OLT --KPS +msgid "VIM - Search and Replace..." +msgstr "VIM - Cuardaigh agus Athchuir..." -#: ../globals.h:1041 -#, c-format -msgid "E480: No match: %s" -msgstr "E480: Nl aon rud comhoirinach ann: %s" +msgid "VIM - Search..." +msgstr "VIM - Cuardaigh..." -#: ../globals.h:1042 -msgid "E32: No file name" -msgstr "E32: Nl aon ainm comhaid" +msgid "Find what:" +msgstr "Aimsigh:" -#: ../globals.h:1044 -msgid "E33: No previous substitute regular expression" -msgstr "E33: Nl aon slonn ionadaochta roimhe seo" +msgid "Replace with:" +msgstr "Le cur in ionad:" -#: ../globals.h:1045 -msgid "E34: No previous command" -msgstr "E34: Nl aon ord roimhe seo" +#. whole word only button +msgid "Match whole word only" +msgstr "Focal iomln amhin" -#: ../globals.h:1046 -msgid "E35: No previous regular expression" -msgstr "E35: Nl aon slonn ionadaochta roimhe seo" +#. match case button +msgid "Match case" +msgstr "Meaitseil an cs" -#: ../globals.h:1047 -msgid "E481: No range allowed" -msgstr "E481: N cheadatear raon" +msgid "Direction" +msgstr "Treo" -#: ../globals.h:1048 -msgid "E36: Not enough room" -msgstr "E36: Nl sl a dhthain ann" +#. 'Up' and 'Down' buttons +msgid "Up" +msgstr "Suas" -#: ../globals.h:1049 -#, c-format -msgid "E482: Can't create file %s" -msgstr "E482: N fidir comhad %s a chruth" +msgid "Down" +msgstr "Sos" -#: ../globals.h:1050 -msgid "E483: Can't get temp file name" -msgstr "E483: Nl aon fhil ar ainm comhaid sealadach" +msgid "Find Next" +msgstr "An Chad Cheann Eile" -#: ../globals.h:1051 -#, c-format -msgid "E484: Can't open file %s" -msgstr "E484: N fidir comhad %s a oscailt" +msgid "Replace" +msgstr "Ionadaigh" -#: ../globals.h:1052 -#, c-format -msgid "E485: Can't read file %s" -msgstr "E485: N fidir comhad %s a lamh" +msgid "Replace All" +msgstr "Ionadaigh Uile" -#: ../globals.h:1054 -msgid "E37: No write since last change (add ! to override)" -msgstr "E37: T athruithe ann gan sbhil (cuir ! leis an ord chun sr)" +msgid "_Close" +msgstr "_Dn" -#: ../globals.h:1055 -#, fuzzy -msgid "E37: No write since last change" -msgstr "[Athraithe agus nach sbhilte shin]\n" +msgid "Vim: Received \"die\" request from session manager\n" +msgstr "Vim: Fuarthas iarratas \"die\" bhainisteoir an tseisiin\n" -#: ../globals.h:1056 -msgid "E38: Null argument" -msgstr "E38: Argint nialasach" +msgid "Close tab" +msgstr "Dn cluaisn" -#: ../globals.h:1057 -msgid "E39: Number expected" -msgstr "E39: Ag sil le huimhir" +msgid "New tab" +msgstr "Cluaisn nua" -#: ../globals.h:1058 -#, c-format -msgid "E40: Can't open errorfile %s" -msgstr "E40: N fidir an comhad earride %s a oscailt" +msgid "Open Tab..." +msgstr "Oscail Cluaisn..." -#: ../globals.h:1059 -msgid "E41: Out of memory!" -msgstr "E41: Cuimhne dithe!" +msgid "Vim: Main window unexpectedly destroyed\n" +msgstr "Vim: Milleadh an promhfhuinneog gan choinne\n" -#: ../globals.h:1060 -msgid "Pattern not found" -msgstr "Patrn gan aimsi" +msgid "&Filter" +msgstr "&Scagaire" -#: ../globals.h:1061 -#, c-format -msgid "E486: Pattern not found: %s" -msgstr "E486: Patrn gan aimsi: %s" +msgid "&Cancel" +msgstr "&Cealaigh" -#: ../globals.h:1062 -msgid "E487: Argument must be positive" -msgstr "E487: N folir argint dheimhneach" +msgid "Directories" +msgstr "Comhadlanna" -#: ../globals.h:1064 -msgid "E459: Cannot go back to previous directory" -msgstr "E459: N fidir a fhilleadh ar an chomhadlann roimhe seo" +msgid "Filter" +msgstr "Scagaire" -#: ../globals.h:1066 -msgid "E42: No Errors" -msgstr "E42: Nl Aon Earrid Ann" +msgid "&Help" +msgstr "&Cabhair" -#: ../globals.h:1067 -msgid "E776: No location list" -msgstr "E776: Gan liosta suomh" +msgid "Files" +msgstr "Comhaid" -#: ../globals.h:1068 -msgid "E43: Damaged match string" -msgstr "E43: Teaghrn cuardaigh loite" +msgid "&OK" +msgstr "&OK" -#: ../globals.h:1069 -msgid "E44: Corrupted regexp program" -msgstr "E44: Clr na sloinn ionadaochta truaillithe" +msgid "Selection" +msgstr "Roghn" -#: ../globals.h:1071 -msgid "E45: 'readonly' option is set (add ! to override)" -msgstr "E45: t an rogha 'readonly' socraithe (cuir ! leis an ord chun sr)" +msgid "Find &Next" +msgstr "An Chad Chea&nn Eile" -#: ../globals.h:1073 -#, c-format -msgid "E46: Cannot change read-only variable \"%s\"" -msgstr "E46: N fidir athrg inlite amhin \"%s\" a athr" +msgid "&Replace" +msgstr "&Ionadaigh" -#: ../globals.h:1075 -#, c-format -msgid "E794: Cannot set variable in the sandbox: \"%s\"" -msgstr "E794: N fidir athrg a shocr sa bhosca gainimh: \"%s\"" +msgid "Replace &All" +msgstr "Ionadaigh &Uile" -#: ../globals.h:1076 -msgid "E47: Error while reading errorfile" -msgstr "E47: Earrid agus comhad earride lamh" +msgid "&Undo" +msgstr "&Cealaigh" -#: ../globals.h:1078 -msgid "E48: Not allowed in sandbox" -msgstr "E48: N cheadatear seo i mbosca gainimh" +msgid "Open tab..." +msgstr "Oscail cluaisn..." -#: ../globals.h:1080 -msgid "E523: Not allowed here" -msgstr "E523: N cheadatear anseo" +msgid "Find string (use '\\\\' to find a '\\')" +msgstr "Aimsigh teaghrn (bain sid as '\\\\' chun '\\' a aimsi)" -#: ../globals.h:1082 -msgid "E359: Screen mode setting not supported" -msgstr "E359: N fidir an md scilein a shocr" +msgid "Find & Replace (use '\\\\' to find a '\\')" +msgstr "Aimsigh & Athchuir (sid '\\\\' chun '\\' a aimsi)" -#: ../globals.h:1083 -msgid "E49: Invalid scroll size" -msgstr "E49: Mid neamhbhail scrollaithe" +#. We fake this: Use a filter that doesn't select anything and a default +#. * file name that won't be used. +msgid "Not Used" +msgstr "Gan sid" -#: ../globals.h:1084 -msgid "E91: 'shell' option is empty" -msgstr "E91: rogha 'shell' folamh" +msgid "Directory\t*.nothing\n" +msgstr "Comhadlann\t*.neamhn\n" -#: ../globals.h:1085 -msgid "E255: Couldn't read in sign data!" -msgstr "E255: Norbh fhidir na sonra comhartha a lamh!" +#, c-format +msgid "E671: Cannot find window title \"%s\"" +msgstr "E671: N fidir teideal na fuinneoige \"%s\" a aimsi" -#: ../globals.h:1086 -msgid "E72: Close error on swap file" -msgstr "E72: Earrid agus comhad babhtla dhnadh" +#, c-format +msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." +msgstr "E243: Argint gan tacaocht: \"-%s\"; Bain sid as an leagan OLE." -#: ../globals.h:1087 -msgid "E73: tag stack empty" -msgstr "E73: t cruach na gclibeanna folamh" +msgid "E672: Unable to open window inside MDI application" +msgstr "E672: N fidir fuinneog a oscailt isteach i bhfeidhmchlr MDI" -#: ../globals.h:1088 -msgid "E74: Command too complex" -msgstr "E74: Ord rchasta" +msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" +msgstr "" +"Vim E458: N fidir iontril dathmhapla a dhileadh, is fidir go mbeidh " +"dathanna mchearta ann" -#: ../globals.h:1089 -msgid "E75: Name too long" -msgstr "E75: Ainm rfhada" +#, c-format +msgid "E250: Fonts for the following charsets are missing in fontset %s:" +msgstr "" +"E250: Clnna ar iarraidh le haghaidh na dtacar carachtar i dtacar cl %s:" -#: ../globals.h:1090 -msgid "E76: Too many [" -msgstr "E76: an iomarca [" +#, c-format +msgid "E252: Fontset name: %s" +msgstr "E252: Ainm an tacar cl: %s" -#: ../globals.h:1091 -msgid "E77: Too many file names" -msgstr "E77: An iomarca ainmneacha comhaid" +#, c-format +msgid "Font '%s' is not fixed-width" +msgstr "N cl aonleithid '%s'" -#: ../globals.h:1092 -msgid "E488: Trailing characters" -msgstr "E488: Carachtair chun deiridh" +#, c-format +msgid "E253: Fontset name: %s" +msgstr "E253: Ainm an tacar cl: %s" -#: ../globals.h:1093 -msgid "E78: Unknown mark" -msgstr "E78: Marc anaithnid" +#, c-format +msgid "Font0: %s" +msgstr "Cl0: %s" -#: ../globals.h:1094 -msgid "E79: Cannot expand wildcards" -msgstr "E79: N fidir saorga a leathn" +#, c-format +msgid "Font1: %s" +msgstr "Cl1: %s" -#: ../globals.h:1096 -msgid "E591: 'winheight' cannot be smaller than 'winminheight'" -msgstr "E591: n cheadatear 'winheight' a bheith nos l n 'winminheight'" +#, c-format +msgid "Font%ld width is not twice that of font0" +msgstr "Nl Cl%ld nos leithne faoi dh n cl0" -#: ../globals.h:1098 -msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" -msgstr "E592: n cheadatear 'winwidth' a bheith nos l n 'winminwidth'" +#, c-format +msgid "Font0 width: %ld" +msgstr "Leithead Cl0: %ld" -#: ../globals.h:1099 -msgid "E80: Error while writing" -msgstr "E80: Earrid agus scrobh" +#, c-format +msgid "Font1 width: %ld" +msgstr "Leithead cl1: %ld" -#: ../globals.h:1100 -msgid "Zero count" -msgstr "Nialas" +msgid "Invalid font specification" +msgstr "Sonr neamhbhail cl" -#: ../globals.h:1101 -msgid "E81: Using not in a script context" -msgstr "E81: sid nach i gcomhthacs scripte" +msgid "&Dismiss" +msgstr "&Ruaig" -#: ../globals.h:1102 -#, c-format -msgid "E685: Internal error: %s" -msgstr "E685: Earrid inmhenach: %s" +msgid "no specific match" +msgstr "nl a leithid ann" -#: ../globals.h:1104 -msgid "E363: pattern uses more memory than 'maxmempattern'" -msgstr "E363: sideann an patrn nos m cuimhne n 'maxmempattern'" +msgid "Vim - Font Selector" +msgstr "Vim - Roghn Cl" -#: ../globals.h:1105 -msgid "E749: empty buffer" -msgstr "E749: maoln folamh" +msgid "Name:" +msgstr "Ainm:" -#: ../globals.h:1108 -msgid "E682: Invalid search pattern or delimiter" -msgstr "E682: Patrn n teormharcir neamhbhail cuardaigh" +#. create toggle button +msgid "Show size in Points" +msgstr "Taispein mid (Point)" -#: ../globals.h:1109 -msgid "E139: File is loaded in another buffer" -msgstr "E139: T an comhad luchtaithe i maoln eile" +msgid "Encoding:" +msgstr "Ionchd:" -#: ../globals.h:1110 -#, c-format -msgid "E764: Option '%s' is not set" -msgstr "E764: Rogha '%s' gan socr" +msgid "Font:" +msgstr "Cl:" -#: ../globals.h:1111 -#, fuzzy -msgid "E850: Invalid register name" -msgstr "E354: Ainm neamhbhail tabhaill: '%s'" +msgid "Style:" +msgstr "Stl:" -#: ../globals.h:1114 -msgid "search hit TOP, continuing at BOTTOM" -msgstr "Buaileadh an BARR le linn an chuardaigh, ag leanint ag an CHROCH" +msgid "Size:" +msgstr "Mid:" -#: ../globals.h:1115 -msgid "search hit BOTTOM, continuing at TOP" -msgstr "Buaileadh an BUN le linn an chuardaigh, ag leanint ag an BHARR" +msgid "E256: Hangul automata ERROR" +msgstr "E256: EARRID leis na huathoibrein Hangul" -#: ../hardcopy.c:240 msgid "E550: Missing colon" msgstr "E550: Idirstad ar iarraidh" -#: ../hardcopy.c:252 msgid "E551: Illegal component" msgstr "E551: Comhphirt neamhcheadaithe" -#: ../hardcopy.c:259 msgid "E552: digit expected" msgstr "E552: ag sil le digit" -#: ../hardcopy.c:473 #, c-format msgid "Page %d" msgstr "Leathanach %d" -#: ../hardcopy.c:597 msgid "No text to be printed" msgstr "Nl aon tacs le priontil" -#: ../hardcopy.c:668 #, c-format msgid "Printing page %d (%d%%)" msgstr "Leathanach %d (%d%%) phriontil" -#: ../hardcopy.c:680 #, c-format msgid " Copy %d of %d" msgstr " Cip %d de %d" -#: ../hardcopy.c:733 #, c-format msgid "Printed: %s" msgstr "Priontilte: %s" -#: ../hardcopy.c:740 msgid "Printing aborted" msgstr "Priontil tobscortha" -#: ../hardcopy.c:1365 msgid "E455: Error writing to PostScript output file" msgstr "E455: Earrid le linn scrobh chuig aschomhad PostScript" -#: ../hardcopy.c:1747 #, c-format msgid "E624: Can't open file \"%s\"" msgstr "E624: N fidir an comhad \"%s\" a oscailt" -#: ../hardcopy.c:1756 ../hardcopy.c:2470 #, c-format msgid "E457: Can't read PostScript resource file \"%s\"" msgstr "E457: N fidir comhad acmhainne PostScript \"%s\" a lamh" -#: ../hardcopy.c:1772 #, c-format msgid "E618: file \"%s\" is not a PostScript resource file" msgstr "E618: Nl comhad \"%s\" ina chomhad acmhainne PostScript" -#: ../hardcopy.c:1788 ../hardcopy.c:1805 ../hardcopy.c:1844 #, c-format msgid "E619: file \"%s\" is not a supported PostScript resource file" msgstr "E619: T \"%s\" ina chomhad acmhainne PostScript gan tac" -#: ../hardcopy.c:1856 #, c-format msgid "E621: \"%s\" resource file has wrong version" msgstr "E621: T an leagan mcheart ar an gcomhad acmhainne \"%s\"" -#: ../hardcopy.c:2225 msgid "E673: Incompatible multi-byte encoding and character set." msgstr "E673: Ionchd agus tacar carachtar ilbhirt neamh-chomhoirinach." -#: ../hardcopy.c:2238 msgid "E674: printmbcharset cannot be empty with multi-byte encoding." msgstr "" "E674: n cheadatear printmbcharset a bheith folamh le hionchd ilbhirt." -#: ../hardcopy.c:2254 msgid "E675: No default font specified for multi-byte printing." msgstr "E675: Nor ramhshocraodh cl le haghaidh priontla ilbhirt." -#: ../hardcopy.c:2426 msgid "E324: Can't open PostScript output file" msgstr "E324: N fidir aschomhad PostScript a oscailt" -#: ../hardcopy.c:2458 #, c-format msgid "E456: Can't open file \"%s\"" msgstr "E456: N fidir an comhad \"%s\" a oscailt" -#: ../hardcopy.c:2583 msgid "E456: Can't find PostScript resource file \"prolog.ps\"" msgstr "E456: Comhad acmhainne PostScript \"prolog.ps\" gan aimsi" -#: ../hardcopy.c:2593 msgid "E456: Can't find PostScript resource file \"cidfont.ps\"" msgstr "E456: Comhad acmhainne PostScript \"cidfont.ps\" gan aimsi" -#: ../hardcopy.c:2622 ../hardcopy.c:2639 ../hardcopy.c:2665 #, c-format msgid "E456: Can't find PostScript resource file \"%s.ps\"" msgstr "E456: Comhad acmhainne PostScript \"%s.ps\" gan aimsi" -#: ../hardcopy.c:2654 #, c-format msgid "E620: Unable to convert to print encoding \"%s\"" msgstr "E620: N fidir an t-ionchd priontla \"%s\" a thiont" -#: ../hardcopy.c:2877 msgid "Sending to printer..." msgstr " sheoladh chuig an phrintir..." -#: ../hardcopy.c:2881 msgid "E365: Failed to print PostScript file" msgstr "E365: Theip ar phriontil comhaid PostScript" -#: ../hardcopy.c:2883 msgid "Print job sent." msgstr "Seoladh jab priontla." -#: ../if_cscope.c:85 msgid "Add a new database" msgstr "Bunachar sonra nua" -#: ../if_cscope.c:87 msgid "Query for a pattern" msgstr "Iarratas ar phatrn" -#: ../if_cscope.c:89 msgid "Show this message" msgstr "Taispein an teachtaireacht seo" -#: ../if_cscope.c:91 msgid "Kill a connection" msgstr "Maraigh nasc" -#: ../if_cscope.c:93 msgid "Reinit all connections" msgstr "Atsaigh gach nasc" -#: ../if_cscope.c:95 msgid "Show connections" msgstr "Taispein naisc" -#: ../if_cscope.c:101 #, c-format msgid "E560: Usage: cs[cope] %s" msgstr "E560: sid: cs[cope] %s" -#: ../if_cscope.c:225 msgid "This cscope command does not support splitting the window.\n" msgstr "N fidir fuinneoga a scoilteadh leis an ord seo `cscope'.\n" -#: ../if_cscope.c:266 msgid "E562: Usage: cstag " msgstr "E562: sid: cstag " -#: ../if_cscope.c:313 msgid "E257: cstag: tag not found" msgstr "E257: cstag: clib gan aimsi" -#: ../if_cscope.c:461 #, c-format msgid "E563: stat(%s) error: %d" msgstr "E563: earrid stat(%s): %d" -#: ../if_cscope.c:551 +msgid "E563: stat error" +msgstr "E563: earrid stat" + #, c-format msgid "E564: %s is not a directory or a valid cscope database" msgstr "E564: Nl %s ina comhadlann n bunachar sonra cscope bail" -#: ../if_cscope.c:566 #, c-format msgid "Added cscope database %s" msgstr "Bunachar sonra nua cscope: %s" -#: ../if_cscope.c:616 #, c-format -msgid "E262: error reading cscope connection %" -msgstr "E262: earrid agus an nasc cscope % lamh" +msgid "E262: error reading cscope connection %ld" +msgstr "E262: earrid agus an nasc cscope %ld lamh" -#: ../if_cscope.c:711 msgid "E561: unknown cscope search type" msgstr "E561: cinel anaithnid cuardaigh cscope" -#: ../if_cscope.c:752 ../if_cscope.c:789 msgid "E566: Could not create cscope pipes" msgstr "E566: Norbh fhidir popa cscope a chruth" -#: ../if_cscope.c:767 msgid "E622: Could not fork for cscope" msgstr "E622: Norbh fhidir forc a dhanamh le haghaidh cscope" -#: ../if_cscope.c:849 -#, fuzzy msgid "cs_create_connection setpgid failed" -msgstr "theip ar rith cs_create_connection" +msgstr "theip ar setpgid do cs_create_connection" -#: ../if_cscope.c:853 ../if_cscope.c:889 msgid "cs_create_connection exec failed" msgstr "theip ar rith cs_create_connection" -#: ../if_cscope.c:863 ../if_cscope.c:902 msgid "cs_create_connection: fdopen for to_fp failed" msgstr "cs_create_connection: theip ar fdopen le haghaidh to_fp" -#: ../if_cscope.c:865 ../if_cscope.c:906 msgid "cs_create_connection: fdopen for fr_fp failed" msgstr "cs_create_connection: theip ar fdopen le haghaidh fr_fp" -#: ../if_cscope.c:890 msgid "E623: Could not spawn cscope process" msgstr "E623: Norbh fhidir priseas cscope a sceitheadh" -#: ../if_cscope.c:932 msgid "E567: no cscope connections" msgstr "E567: nl aon nasc cscope ann" -#: ../if_cscope.c:1009 #, c-format msgid "E469: invalid cscopequickfix flag %c for %c" msgstr "E469: bratach neamhbhail cscopequickfix %c le haghaidh %c" -#: ../if_cscope.c:1058 #, c-format msgid "E259: no matches found for cscope query %s of %s" msgstr "" "E259: nor aimsodh aon rud comhoirinach leis an iarratas cscope %s de %s" -#: ../if_cscope.c:1142 msgid "cscope commands:\n" msgstr "Orduithe cscope:\n" -#: ../if_cscope.c:1150 #, c-format msgid "%-5s: %s%*s (Usage: %s)" msgstr "%-5s: %s%*s (sid: %s)" -#: ../if_cscope.c:1155 -#, fuzzy msgid "" "\n" +" a: Find assignments to this symbol\n" " c: Find functions calling this function\n" " d: Find functions called by this function\n" " e: Find this egrep pattern\n" @@ -3241,6 +2576,7 @@ msgid "" " t: Find this text string\n" msgstr "" "\n" +" a: Aimsigh ritis sannachin leis an tsiombail seo\n" " c: Aimsigh feidhmeanna a chuireann glaoch ar an bhfeidhm seo\n" " d: Aimsigh feidhmeanna a gcuireann an fheidhm seo glaoch orthu\n" " e: Aimsigh an patrn egrep seo\n" @@ -3248,33 +2584,34 @@ msgstr "" " g: Aimsigh an sainmhni seo\n" " i: Aimsigh comhaid a #include-il an comhad seo\n" " s: Aimsigh an tsiombail C seo\n" -" t: Aimsigh sannta do\n" +" t: Aimsigh an teaghrn tacs seo\n" + +#, c-format +msgid "E625: cannot open cscope database: %s" +msgstr "E625: n fidir bunachar sonra cscope a oscailt: %s" + +msgid "E626: cannot get cscope database information" +msgstr "E626: n fidir eolas a fhil faoin bhunachar sonra cscope" -#: ../if_cscope.c:1226 msgid "E568: duplicate cscope database not added" msgstr "E568: nor cuireadh bunachar sonra dblach cscope leis" -#: ../if_cscope.c:1335 #, c-format msgid "E261: cscope connection %s not found" msgstr "E261: nasc cscope %s gan aimsi" -#: ../if_cscope.c:1364 #, c-format msgid "cscope connection %s closed" msgstr "Dnadh nasc cscope %s" #. should not reach here -#: ../if_cscope.c:1486 msgid "E570: fatal error in cs_manage_matches" msgstr "E570: earrid mharfach i cs_manage_matches" -#: ../if_cscope.c:1693 #, c-format msgid "Cscope tag: %s" msgstr "Clib cscope: %s" -#: ../if_cscope.c:1711 msgid "" "\n" " # line" @@ -3282,88 +2619,301 @@ msgstr "" "\n" " # lne" -#: ../if_cscope.c:1713 msgid "filename / context / line\n" msgstr "ainm comhaid / comhthacs / lne\n" -#: ../if_cscope.c:1809 #, c-format msgid "E609: Cscope error: %s" msgstr "E609: Earrid cscope: %s" -#: ../if_cscope.c:2053 msgid "All cscope databases reset" msgstr "Athshocraodh gach bunachar sonra cscope" -#: ../if_cscope.c:2123 msgid "no cscope connections\n" msgstr "nl aon nasc cscope\n" -#: ../if_cscope.c:2126 msgid " # pid database name prepend path\n" msgstr " # pid ainm bunachair conair thosaigh\n" -#: ../main.c:144 -msgid "Unknown option argument" -msgstr "Argint anaithnid rogha" - -#: ../main.c:146 -msgid "Too many edit arguments" -msgstr "An iomarca argint eagarthireachta" +msgid "Lua library cannot be loaded." +msgstr "N fidir an leabharlann Lua a lucht." -#: ../main.c:148 -msgid "Argument missing after" -msgstr "Argint ar iarraidh i ndiaidh" +msgid "cannot save undo information" +msgstr "n fidir eolas cealaithe a shbhil" -#: ../main.c:150 -msgid "Garbage after option argument" -msgstr "Dramhal i ndiaidh arginte rogha" +msgid "" +"E815: Sorry, this command is disabled, the MzScheme libraries could not be " +"loaded." +msgstr "" +"E815: T brn orm, bh an t-ord seo dchumasaithe, norbh fhidir " +"leabharlanna MzScheme a lucht." -#: ../main.c:152 -msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments" +msgid "" +"E895: Sorry, this command is disabled, the MzScheme's racket/base module " +"could not be loaded." msgstr "" -"An iomarca argint den chinel \"+ord\", \"-c ord\" n \"--cmd ord\"" +"E895: r leithscal, t an t-ord seo dchumasaithe; norbh fhidir " +"modl racket/base MzScheme a lucht." -#: ../main.c:154 -msgid "Invalid argument for" -msgstr "Argint neamhbhail do" +msgid "invalid expression" +msgstr "slonn neamhbhail" -#: ../main.c:294 -#, c-format -msgid "%d files to edit\n" -msgstr "%d comhad le heagr\n" +msgid "expressions disabled at compile time" +msgstr "dchumasaodh sloinn ag am an tiomsaithe" -#: ../main.c:1342 -msgid "Attempt to open script file again: \"" -msgstr "Dan iarracht ar oscailt na scripte ars: \"" +msgid "hidden option" +msgstr "rogha fholaithe" -#: ../main.c:1350 -msgid "Cannot open for reading: \"" -msgstr "N fidir a oscailt chun lamh: \"" +msgid "unknown option" +msgstr "rogha anaithnid" -#: ../main.c:1393 -msgid "Cannot open for script output: \"" -msgstr "N fidir a oscailt le haghaidh an aschuir scripte: \"" +msgid "window index is out of range" +msgstr "innacs fuinneoige as raon" -#: ../main.c:1622 -msgid "Vim: Warning: Output is not to a terminal\n" -msgstr "Vim: Rabhadh: Nl an t-aschur ag dul chuig teirminal\n" +msgid "couldn't open buffer" +msgstr "n fidir maoln a oscailt" -#: ../main.c:1624 -msgid "Vim: Warning: Input is not from a terminal\n" -msgstr "Vim: Rabhadh: Nl an t-ionchur ag teacht theirminal\n" +msgid "cannot delete line" +msgstr "n fidir an lne a scriosadh" -#. just in case.. -#: ../main.c:1891 -msgid "pre-vimrc command line" -msgstr "lne na n-orduithe pre-vimrc" +msgid "cannot replace line" +msgstr "n fidir an lne a athchur" + +msgid "cannot insert line" +msgstr "n fidir lne a ions" + +msgid "string cannot contain newlines" +msgstr "n cheadatear carachtair lne nua sa teaghrn" + +msgid "error converting Scheme values to Vim" +msgstr "earrid agus luach Scheme thiont go Vim" + +msgid "Vim error: ~a" +msgstr "earrid Vim: ~a" + +msgid "Vim error" +msgstr "earrid Vim" + +msgid "buffer is invalid" +msgstr "maoln neamhbhail" + +msgid "window is invalid" +msgstr "fuinneog neamhbhail" + +msgid "linenr out of range" +msgstr "lne-uimhir as raon" + +msgid "not allowed in the Vim sandbox" +msgstr "n cheadatear seo i mbosca gainimh Vim" + +msgid "E836: This Vim cannot execute :python after using :py3" +msgstr "" +"E836: N fidir leis an leagan seo de Vim :python a rith tar is :py3 a sid" + +msgid "" +"E263: Sorry, this command is disabled, the Python library could not be " +"loaded." +msgstr "" +"E263: T brn orm, nl an t-ord seo le fil, norbh fhidir an leabharlann " +"Python a lucht." + +msgid "" +"E887: Sorry, this command is disabled, the Python's site module could not be " +"loaded." +msgstr "" +"E887: r leithscal, nl an t-ord seo le fil, norbh fhidir an modl " +"Python a lucht." + +msgid "E659: Cannot invoke Python recursively" +msgstr "E659: N fidir Python a rith go hathchrsach" + +msgid "E837: This Vim cannot execute :py3 after using :python" +msgstr "" +"E837: N fidir leis an leagan seo de Vim :py3 a rith tar is :python a sid" + +msgid "E265: $_ must be an instance of String" +msgstr "E265: caithfidh $_ a bheith cinel Teaghrin" + +msgid "" +"E266: Sorry, this command is disabled, the Ruby library could not be loaded." +msgstr "" +"E266: T brn orm, nl an t-ord seo le fil, norbh fhidir an leabharlann " +"Ruby a lucht." + +msgid "E267: unexpected return" +msgstr "E267: \"return\" gan choinne" + +msgid "E268: unexpected next" +msgstr "E268: \"next\" gan choinne" + +msgid "E269: unexpected break" +msgstr "E269: \"break\" gan choinne" + +msgid "E270: unexpected redo" +msgstr "E270: \"redo\" gan choinne" + +msgid "E271: retry outside of rescue clause" +msgstr "E271: \"retry\" taobh amuigh de chlsal tarrthla" + +msgid "E272: unhandled exception" +msgstr "E272: eisceacht gan limhseil" + +#, c-format +msgid "E273: unknown longjmp status %d" +msgstr "E273: stdas anaithnid longjmp %d" + +msgid "invalid buffer number" +msgstr "uimhir neamhbhail mhaolin" + +msgid "not implemented yet" +msgstr "nl ar fil" + +#. ??? +msgid "cannot set line(s)" +msgstr "n fidir ln(t)e a shocr" + +msgid "invalid mark name" +msgstr "ainm neamhbhail mairc" + +msgid "mark not set" +msgstr "marc gan socr" + +#, c-format +msgid "row %d column %d" +msgstr "lne %d coln %d" + +msgid "cannot insert/append line" +msgstr "n fidir lne a ions/iarcheangal" + +msgid "line number out of range" +msgstr "lne-uimhir as raon" + +msgid "unknown flag: " +msgstr "bratach anaithnid: " + +msgid "unknown vimOption" +msgstr "vimOption anaithnid" + +msgid "keyboard interrupt" +msgstr "idirbhriseadh marchlir" + +msgid "vim error" +msgstr "earrid vim" + +msgid "cannot create buffer/window command: object is being deleted" +msgstr "n fidir ord maolin/fuinneoige a chruth: rad scriosadh" + +msgid "" +"cannot register callback command: buffer/window is already being deleted" +msgstr "n fidir ord aisghlaoch a chlr: maoln/fuinneog scriosadh cheana" + +#. This should never happen. Famous last word? +msgid "" +"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim." +"org" +msgstr "" +"E280: EARRID MHARFACH TCL: liosta truaillithe tagartha!? Seol tuairisc " +"fhabht chuig le do thoil" + +msgid "cannot register callback command: buffer/window reference not found" +msgstr "" +"n fidir ord aisghlaoch a chlr: tagairt mhaoln/fhuinneoige gan aimsi" + +msgid "" +"E571: Sorry, this command is disabled: the Tcl library could not be loaded." +msgstr "" +"E571: T brn orm, nl an t-ord seo le fil: norbh fhidir an leabharlann " +"Tcl a lucht." + +#, c-format +msgid "E572: exit code %d" +msgstr "E572: cd scortha %d" + +msgid "cannot get line" +msgstr "n fidir an lne a fhil" + +msgid "Unable to register a command server name" +msgstr "N fidir ainm fhreastala ordaithe a chlr" + +msgid "E248: Failed to send command to the destination program" +msgstr "E248: Theip ar sheoladh ord chuig an sprioc-chlr" + +#, c-format +msgid "E573: Invalid server id used: %s" +msgstr "E573: Aitheantas neamhbhail freastala in sid: %s" + +msgid "E251: VIM instance registry property is badly formed. Deleted!" +msgstr "E251: Air mchumtha sa chlrlann isc VIM. Scriosta!" + +#, c-format +msgid "E696: Missing comma in List: %s" +msgstr "E696: Camg ar iarraidh i Liosta: %s" + +#, c-format +msgid "E697: Missing end of List ']': %s" +msgstr "E697: ']' ar iarraidh ag deireadh liosta: %s" + +msgid "Unknown option argument" +msgstr "Argint anaithnid rogha" + +msgid "Too many edit arguments" +msgstr "An iomarca argint eagarthireachta" + +msgid "Argument missing after" +msgstr "Argint ar iarraidh i ndiaidh" + +msgid "Garbage after option argument" +msgstr "Dramhal i ndiaidh arginte rogha" + +msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments" +msgstr "" +"An iomarca argint den chinel \"+ord\", \"-c ord\" n \"--cmd ord\"" + +msgid "Invalid argument for" +msgstr "Argint neamhbhail do" + +#, c-format +msgid "%d files to edit\n" +msgstr "%d comhad le heagr\n" + +msgid "netbeans is not supported with this GUI\n" +msgstr "N thacatear le netbeans sa GUI seo\n" + +msgid "'-nb' cannot be used: not enabled at compile time\n" +msgstr "N fidir '-nb' a sid: nor cumasaodh ag am tiomsaithe\n" + +msgid "This Vim was not compiled with the diff feature." +msgstr "Nor tiomsaodh an leagan Vim seo le `diff' ar fil." + +msgid "Attempt to open script file again: \"" +msgstr "Dan iarracht ar oscailt na scripte ars: \"" + +msgid "Cannot open for reading: \"" +msgstr "N fidir a oscailt chun lamh: \"" + +msgid "Cannot open for script output: \"" +msgstr "N fidir a oscailt le haghaidh an aschuir scripte: \"" + +msgid "Vim: Error: Failure to start gvim from NetBeans\n" +msgstr "Vim: Earrid: Theip ar thos gvim NetBeans\n" + +msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n" +msgstr "Vim: Earrid: N fidir an leagan seo de Vim a rith i dteirminal Cygwin\n" + +msgid "Vim: Warning: Output is not to a terminal\n" +msgstr "Vim: Rabhadh: Nl an t-aschur ag dul chuig teirminal\n" + +msgid "Vim: Warning: Input is not from a terminal\n" +msgstr "Vim: Rabhadh: Nl an t-ionchur ag teacht theirminal\n" + +#. just in case.. +msgid "pre-vimrc command line" +msgstr "lne na n-orduithe pre-vimrc" -#: ../main.c:1964 #, c-format msgid "E282: Cannot read from \"%s\"" msgstr "E282: N fidir lamh \"%s\"" -#: ../main.c:2149 msgid "" "\n" "More info with: \"vim -h\"\n" @@ -3371,23 +2921,18 @@ msgstr "" "\n" "Tuilleadh eolais: \"vim -h\"\n" -#: ../main.c:2178 msgid "[file ..] edit specified file(s)" msgstr "[comhad ..] cuir na comhaid ceaptha in eagar" -#: ../main.c:2179 msgid "- read text from stdin" msgstr "- scrobh tacs stdin" -#: ../main.c:2180 msgid "-t tag edit file where tag is defined" msgstr "-t tag cuir an comhad ina bhfuil an chlib in eagar" -#: ../main.c:2181 msgid "-q [errorfile] edit file with first error" msgstr "-q [comhadearr] cuir comhad leis an chad earrid in eagar" -#: ../main.c:2187 msgid "" "\n" "\n" @@ -3397,11 +2942,9 @@ msgstr "" "\n" "sid:" -#: ../main.c:2189 msgid " vim [arguments] " msgstr " vim [argint] " -#: ../main.c:2193 msgid "" "\n" " or:" @@ -3409,7 +2952,14 @@ msgstr "" "\n" " n:" -#: ../main.c:2196 +msgid "" +"\n" +"Where case is ignored prepend / to make flag upper case" +msgstr "" +"\n" +"Nuair nach csogair , cuir '/' ag tosach na brata chun a chur sa chs " +"uachtair" + msgid "" "\n" "\n" @@ -3419,194 +2969,338 @@ msgstr "" "\n" "Argint:\n" -#: ../main.c:2197 msgid "--\t\t\tOnly file names after this" msgstr "--\t\t\tN cheadatear ach ainmneacha comhaid i ndiaidh seo" -#: ../main.c:2199 msgid "--literal\t\tDon't expand wildcards" msgstr "--literal\t\tN leathnaigh saorga" -#: ../main.c:2201 +msgid "-register\t\tRegister this gvim for OLE" +msgstr "-register\t\tClraigh an gvim seo le haghaidh OLE" + +msgid "-unregister\t\tUnregister gvim for OLE" +msgstr "-unregister\t\tDchlraigh an gvim seo le haghaidh OLE" + +msgid "-g\t\t\tRun using GUI (like \"gvim\")" +msgstr "-g\t\t\tRith agus sid an GUI (mar \"gvim\")" + +msgid "-f or --nofork\tForeground: Don't fork when starting GUI" +msgstr "-f n --nofork\tTulra: N dan forc agus an GUI thos" + msgid "-v\t\t\tVi mode (like \"vi\")" msgstr "-v\t\t\tMd Vi (mar \"vi\")" -#: ../main.c:2202 msgid "-e\t\t\tEx mode (like \"ex\")" msgstr "-e\t\t\tMd Ex (mar \"ex\")" -#: ../main.c:2203 msgid "-E\t\t\tImproved Ex mode" -msgstr "" +msgstr "-E\t\t\tMd Ex feabhsaithe" -#: ../main.c:2204 msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")" msgstr "-s\t\t\tMd ciin (baiscphrisela) (do \"ex\" amhin)" -#: ../main.c:2205 msgid "-d\t\t\tDiff mode (like \"vimdiff\")" msgstr "-d\t\t\tMd diff (mar \"vimdiff\")" -#: ../main.c:2206 msgid "-y\t\t\tEasy mode (like \"evim\", modeless)" msgstr "-y\t\t\tMd asca (mar \"evim\", gan mhid)" -#: ../main.c:2207 msgid "-R\t\t\tReadonly mode (like \"view\")" msgstr "-R\t\t\tMd inlite amhin (mar \"view\")" -#: ../main.c:2208 msgid "-Z\t\t\tRestricted mode (like \"rvim\")" msgstr "-Z\t\t\tMd srianta (mar \"rvim\")" -#: ../main.c:2209 msgid "-m\t\t\tModifications (writing files) not allowed" msgstr "-m\t\t\tN cheadatear athruithe (.i. scrobh na gcomhad)" -#: ../main.c:2210 msgid "-M\t\t\tModifications in text not allowed" msgstr "-M\t\t\tN cheadatear athruithe sa tacs" -#: ../main.c:2211 msgid "-b\t\t\tBinary mode" msgstr "-b\t\t\tMd dnrtha" -#: ../main.c:2212 msgid "-l\t\t\tLisp mode" msgstr "-l\t\t\tMd Lisp" -#: ../main.c:2213 msgid "-C\t\t\tCompatible with Vi: 'compatible'" msgstr "-C\t\t\tComhoirinach le Vi: 'compatible'" -#: ../main.c:2214 msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'" msgstr "-N\t\t\tN comhoirinaithe le Vi go hiomln: 'nocompatible'" -#: ../main.c:2215 msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]" msgstr "" "-V[N][fname]\t\tB foclach [leibhal N] [logil teachtaireachta i fname]" -#: ../main.c:2216 msgid "-D\t\t\tDebugging mode" msgstr "-D\t\t\tMd dfhabhtaithe" -#: ../main.c:2217 msgid "-n\t\t\tNo swap file, use memory only" msgstr "-n\t\t\tN hsid comhad babhtla .i. n hsid ach an chuimhne" -#: ../main.c:2218 msgid "-r\t\t\tList swap files and exit" msgstr "-r\t\t\tTaispein comhaid bhabhtla agus scoir" -#: ../main.c:2219 msgid "-r (with file name)\tRecover crashed session" msgstr "-r (le hainm comhaid)\tAthshlnaigh chliseadh" -#: ../main.c:2220 msgid "-L\t\t\tSame as -r" msgstr "-L\t\t\tAr comhbhr le -r" -#: ../main.c:2221 +msgid "-f\t\t\tDon't use newcli to open window" +msgstr "-f\t\t\tN hsid newcli chun fuinneog a oscailt" + +msgid "-dev \t\tUse for I/O" +msgstr "-dev \t\tBain sid as do I/A" + msgid "-A\t\t\tstart in Arabic mode" msgstr "-A\t\t\ttosaigh sa mhd Araibise" -#: ../main.c:2222 msgid "-H\t\t\tStart in Hebrew mode" msgstr "-H\t\t\tTosaigh sa mhd Eabhraise" -#: ../main.c:2223 msgid "-F\t\t\tStart in Farsi mode" msgstr "-F\t\t\tTosaigh sa mhd Pheirsise" -#: ../main.c:2224 msgid "-T \tSet terminal type to " msgstr "-T \tSocraigh cinel teirminal" -#: ../main.c:2225 +msgid "--not-a-term\t\tSkip warning for input/output not being a terminal" +msgstr "--not-a-term\t\tN bac le rabhadh faoi ionchur/aschur gan a bheith n teirminal" + msgid "-u \t\tUse instead of any .vimrc" msgstr "-u \t\tsid in ionad aon .vimrc" -#: ../main.c:2226 +msgid "-U \t\tUse instead of any .gvimrc" +msgstr "-U \t\tBain sid as in ionad aon .gvimrc" + msgid "--noplugin\t\tDon't load plugin scripts" msgstr "--noplugin\t\tN luchtaigh breisein" -#: ../main.c:2227 msgid "-p[N]\t\tOpen N tab pages (default: one for each file)" -msgstr "-p[N]\t\tOscail N leathanach cluaisn (default: ceann do gach comhad)" +msgstr "-p[N]\t\tOscail N leathanach cluaisn (default: ceann do gach comhad)" -#: ../main.c:2228 msgid "-o[N]\t\tOpen N windows (default: one for each file)" msgstr "-o[N]\t\tOscail N fuinneog (ramhshocr: ceann do gach comhad)" -#: ../main.c:2229 msgid "-O[N]\t\tLike -o but split vertically" msgstr "-O[N]\t\tMar -o, ach roinn go hingearach" -#: ../main.c:2230 msgid "+\t\t\tStart at end of file" msgstr "+\t\t\tTosaigh ag an chomhadchroch" -#: ../main.c:2231 msgid "+\t\tStart at line " msgstr "+\t\tTosaigh ar lne " -#: ../main.c:2232 msgid "--cmd \tExecute before loading any vimrc file" msgstr "--cmd \tRith roimh aon chomhad vimrc a lucht" -#: ../main.c:2233 msgid "-c \t\tExecute after loading the first file" msgstr "-c \t\tRith i ndiaidh lucht an chad chomhad" -#: ../main.c:2235 msgid "-S \t\tSource file after loading the first file" msgstr "" "-S \t\tLigh comhad i ndiaidh an chad chomhad lamh" -#: ../main.c:2236 msgid "-s \tRead Normal mode commands from file " msgstr "-s