From a24fabbb6fc0b7dedd56a363e5eb5819010fec37 Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 24 May 2018 13:07:42 +1000 Subject: [PATCH 1/8] extmod/modure: Add match.groups() method, and tests. This feature is controlled at compile time by MICROPY_PY_URE_MATCH_GROUPS, disabled by default. Thanks to @dmazzella for the original patch for this feature; see #3770. --- extmod/modure.c | 20 ++++++++++++++++++++ py/mpconfig.h | 4 ++++ tests/extmod/ure_groups.py | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 tests/extmod/ure_groups.py diff --git a/extmod/modure.c b/extmod/modure.c index 1a70270267c7..cce41e5a5fb4 100644 --- a/extmod/modure.c +++ b/extmod/modure.c @@ -77,8 +77,28 @@ STATIC mp_obj_t match_group(mp_obj_t self_in, mp_obj_t no_in) { } MP_DEFINE_CONST_FUN_OBJ_2(match_group_obj, match_group); +#if MICROPY_PY_URE_MATCH_GROUPS + +STATIC mp_obj_t match_groups(mp_obj_t self_in) { + mp_obj_match_t *self = MP_OBJ_TO_PTR(self_in); + if (self->num_matches <= 1) { + return mp_const_empty_tuple; + } + mp_obj_tuple_t *groups = MP_OBJ_TO_PTR(mp_obj_new_tuple(self->num_matches - 1, NULL)); + for (int i = 1; i < self->num_matches; ++i) { + groups->items[i - 1] = match_group(self_in, MP_OBJ_NEW_SMALL_INT(i)); + } + return MP_OBJ_FROM_PTR(groups); +} +MP_DEFINE_CONST_FUN_OBJ_1(match_groups_obj, match_groups); + +#endif + STATIC const mp_rom_map_elem_t match_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_group), MP_ROM_PTR(&match_group_obj) }, + #if MICROPY_PY_URE_MATCH_GROUPS + { MP_ROM_QSTR(MP_QSTR_groups), MP_ROM_PTR(&match_groups_obj) }, + #endif }; STATIC MP_DEFINE_CONST_DICT(match_locals_dict, match_locals_dict_table); diff --git a/py/mpconfig.h b/py/mpconfig.h index a846f6a2583f..8f789e861d50 100755 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -1164,6 +1164,10 @@ typedef double mp_float_t; #define MICROPY_PY_URE (0) #endif +#ifndef MICROPY_PY_URE_MATCH_GROUPS +#define MICROPY_PY_URE_MATCH_GROUPS (0) +#endif + #ifndef MICROPY_PY_UHEAPQ #define MICROPY_PY_UHEAPQ (0) #endif diff --git a/tests/extmod/ure_groups.py b/tests/extmod/ure_groups.py new file mode 100644 index 000000000000..4fac896d7fdb --- /dev/null +++ b/tests/extmod/ure_groups.py @@ -0,0 +1,33 @@ +# test match.groups() + +try: + import ure as re +except ImportError: + try: + import re + except ImportError: + print("SKIP") + raise SystemExit + +try: + m = re.match(".", "a") + m.groups +except AttributeError: + print('SKIP') + raise SystemExit + + +m = re.match(r'(([0-9]*)([a-z]*)[0-9]*)','1234hello567') +print(m.groups()) + +m = re.match(r'([0-9]*)(([a-z]*)([0-9]*))','1234hello567') +print(m.groups()) + +# optional group that matches +print(re.match(r'(a)?b(c)', 'abc').groups()) + +# optional group that doesn't match +print(re.match(r'(a)?b(c)', 'bc').groups()) + +# only a single match +print(re.match(r'abc', 'abc').groups()) From cbeac094ef88b1f6a12cad7a3135f0530302ad20 Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 24 May 2018 13:08:15 +1000 Subject: [PATCH 2/8] extmod/modure: Add match.span(), start() and end() methods, and tests. This feature is controlled at compile time by MICROPY_PY_URE_MATCH_SPAN_START_END, disabled by default. Thanks to @dmazzella for the original patch for this feature; see #3770. --- extmod/modure.c | 55 ++++++++++++++++++++++++++++++++++++++++ py/mpconfig.h | 4 +++ tests/extmod/ure_span.py | 40 +++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 tests/extmod/ure_span.py diff --git a/extmod/modure.c b/extmod/modure.c index cce41e5a5fb4..a3b5378249cb 100644 --- a/extmod/modure.c +++ b/extmod/modure.c @@ -94,11 +94,66 @@ MP_DEFINE_CONST_FUN_OBJ_1(match_groups_obj, match_groups); #endif +#if MICROPY_PY_URE_MATCH_SPAN_START_END + +STATIC void match_span_helper(size_t n_args, const mp_obj_t *args, mp_obj_t span[2]) { + mp_obj_match_t *self = MP_OBJ_TO_PTR(args[0]); + + mp_int_t no = 0; + if (n_args == 2) { + no = mp_obj_get_int(args[1]); + if (no < 0 || no >= self->num_matches) { + nlr_raise(mp_obj_new_exception_arg1(&mp_type_IndexError, args[1])); + } + } + + mp_int_t s = -1; + mp_int_t e = -1; + const char *start = self->caps[no * 2]; + if (start != NULL) { + // have a match for this group + const char *begin = mp_obj_str_get_str(self->str); + s = start - begin; + e = self->caps[no * 2 + 1] - begin; + } + + span[0] = mp_obj_new_int(s); + span[1] = mp_obj_new_int(e); +} + +STATIC mp_obj_t match_span(size_t n_args, const mp_obj_t *args) { + mp_obj_t span[2]; + match_span_helper(n_args, args, span); + return mp_obj_new_tuple(2, span); +} +MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(match_span_obj, 1, 2, match_span); + +STATIC mp_obj_t match_start(size_t n_args, const mp_obj_t *args) { + mp_obj_t span[2]; + match_span_helper(n_args, args, span); + return span[0]; +} +MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(match_start_obj, 1, 2, match_start); + +STATIC mp_obj_t match_end(size_t n_args, const mp_obj_t *args) { + mp_obj_t span[2]; + match_span_helper(n_args, args, span); + return span[1]; +} +MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(match_end_obj, 1, 2, match_end); + +#endif + STATIC const mp_rom_map_elem_t match_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_group), MP_ROM_PTR(&match_group_obj) }, #if MICROPY_PY_URE_MATCH_GROUPS { MP_ROM_QSTR(MP_QSTR_groups), MP_ROM_PTR(&match_groups_obj) }, #endif + #if MICROPY_PY_URE_MATCH_SPAN_START_END + { MP_ROM_QSTR(MP_QSTR_span), MP_ROM_PTR(&match_span_obj) }, + { MP_ROM_QSTR(MP_QSTR_start), MP_ROM_PTR(&match_start_obj) }, + { MP_ROM_QSTR(MP_QSTR_end), MP_ROM_PTR(&match_end_obj) }, + #endif }; STATIC MP_DEFINE_CONST_DICT(match_locals_dict, match_locals_dict_table); diff --git a/py/mpconfig.h b/py/mpconfig.h index 8f789e861d50..cf757cf427e0 100755 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -1168,6 +1168,10 @@ typedef double mp_float_t; #define MICROPY_PY_URE_MATCH_GROUPS (0) #endif +#ifndef MICROPY_PY_URE_MATCH_SPAN_START_END +#define MICROPY_PY_URE_MATCH_SPAN_START_END (0) +#endif + #ifndef MICROPY_PY_UHEAPQ #define MICROPY_PY_UHEAPQ (0) #endif diff --git a/tests/extmod/ure_span.py b/tests/extmod/ure_span.py new file mode 100644 index 000000000000..50f44399ce71 --- /dev/null +++ b/tests/extmod/ure_span.py @@ -0,0 +1,40 @@ +# test match.span(), and nested spans + +try: + import ure as re +except ImportError: + try: + import re + except ImportError: + print("SKIP") + raise SystemExit + +try: + m = re.match(".", "a") + m.span +except AttributeError: + print('SKIP') + raise SystemExit + + +def print_spans(match): + print('----') + try: + i = 0 + while True: + print(match.span(i), match.start(i), match.end(i)) + i += 1 + except IndexError: + pass + +m = re.match(r'(([0-9]*)([a-z]*)[0-9]*)','1234hello567') +print_spans(m) + +m = re.match(r'([0-9]*)(([a-z]*)([0-9]*))','1234hello567') +print_spans(m) + +# optional span that matches +print_spans(re.match(r'(a)?b(c)', 'abc')) + +# optional span that doesn't match +print_spans(re.match(r'(a)?b(c)', 'bc')) From b9dc23c070bde772a941f803d8fac9cafc0e163c Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 24 May 2018 13:08:51 +1000 Subject: [PATCH 3/8] extmod/modure: Add ure.sub() function and method, and tests. This feature is controlled at compile time by MICROPY_PY_URE_SUB, disabled by default. Thanks to @dmazzella for the original patch for this feature; see #3770. --- extmod/modure.c | 128 ++++++++++++++++++++++++++ py/mpconfig.h | 4 + tests/extmod/ure_sub.py | 61 ++++++++++++ tests/extmod/ure_sub_unmatched.py | 19 ++++ tests/extmod/ure_sub_unmatched.py.exp | 1 + 5 files changed, 213 insertions(+) create mode 100644 tests/extmod/ure_sub.py create mode 100644 tests/extmod/ure_sub_unmatched.py create mode 100644 tests/extmod/ure_sub_unmatched.py.exp diff --git a/extmod/modure.c b/extmod/modure.c index a3b5378249cb..84780196633e 100644 --- a/extmod/modure.c +++ b/extmod/modure.c @@ -249,10 +249,127 @@ STATIC mp_obj_t re_split(size_t n_args, const mp_obj_t *args) { } MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(re_split_obj, 2, 3, re_split); +#if MICROPY_PY_URE_SUB + +STATIC mp_obj_t re_sub_helper(mp_obj_t self_in, size_t n_args, const mp_obj_t *args) { + mp_obj_re_t *self = MP_OBJ_TO_PTR(self_in); + mp_obj_t replace = args[1]; + mp_obj_t where = args[2]; + mp_int_t count = 0; + if (n_args > 3) { + count = mp_obj_get_int(args[3]); + // Note: flags are currently ignored + } + + size_t where_len; + const char *where_str = mp_obj_str_get_data(where, &where_len); + Subject subj; + subj.begin = where_str; + subj.end = subj.begin + where_len; + int caps_num = (self->re.sub + 1) * 2; + + vstr_t vstr_return; + vstr_return.buf = NULL; // We'll init the vstr after the first match + mp_obj_match_t *match = mp_local_alloc(sizeof(mp_obj_match_t) + caps_num * sizeof(char*)); + match->base.type = &match_type; + match->num_matches = caps_num / 2; // caps_num counts start and end pointers + match->str = where; + + for (;;) { + // cast is a workaround for a bug in msvc: it treats const char** as a const pointer instead of a pointer to pointer to const char + memset((char*)match->caps, 0, caps_num * sizeof(char*)); + int res = re1_5_recursiveloopprog(&self->re, &subj, match->caps, caps_num, false); + + // If we didn't have a match, or had an empty match, it's time to stop + if (!res || match->caps[0] == match->caps[1]) { + break; + } + + // Initialise the vstr if it's not already + if (vstr_return.buf == NULL) { + vstr_init(&vstr_return, match->caps[0] - subj.begin); + } + + // Add pre-match string + vstr_add_strn(&vstr_return, subj.begin, match->caps[0] - subj.begin); + + // Get replacement string + const char* repl = mp_obj_str_get_str((mp_obj_is_callable(replace) ? mp_call_function_1(replace, MP_OBJ_FROM_PTR(match)) : replace)); + + // Append replacement string to result, substituting any regex groups + while (*repl != '\0') { + if (*repl == '\\') { + ++repl; + bool is_g_format = false; + if (*repl == 'g' && repl[1] == '<') { + // Group specified with syntax "\g" + repl += 2; + is_g_format = true; + } + + if ('0' <= *repl && *repl <= '9') { + // Group specified with syntax "\g" or "\number" + unsigned int match_no = 0; + do { + match_no = match_no * 10 + (*repl++ - '0'); + } while ('0' <= *repl && *repl <= '9'); + if (is_g_format && *repl == '>') { + ++repl; + } + + if (match_no >= (unsigned int)match->num_matches) { + nlr_raise(mp_obj_new_exception_arg1(&mp_type_IndexError, MP_OBJ_NEW_SMALL_INT(match_no))); + } + + const char *start_match = match->caps[match_no * 2]; + if (start_match != NULL) { + // Add the substring matched by group + const char *end_match = match->caps[match_no * 2 + 1]; + vstr_add_strn(&vstr_return, start_match, end_match - start_match); + } + } + } else { + // Just add the current byte from the replacement string + vstr_add_byte(&vstr_return, *repl++); + } + } + + // Move start pointer to end of last match + subj.begin = match->caps[1]; + + // Stop substitutions if count was given and gets to 0 + if (count > 0 && --count == 0) { + break; + } + } + + mp_local_free(match); + + if (vstr_return.buf == NULL) { + // Optimisation for case of no substitutions + return where; + } + + // Add post-match string + vstr_add_strn(&vstr_return, subj.begin, subj.end - subj.begin); + + return mp_obj_new_str_from_vstr(mp_obj_get_type(where), &vstr_return); +} + +STATIC mp_obj_t re_sub(size_t n_args, const mp_obj_t *args) { + return re_sub_helper(args[0], n_args, args); +} +MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(re_sub_obj, 3, 5, re_sub); + +#endif + STATIC const mp_rom_map_elem_t re_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_match), MP_ROM_PTR(&re_match_obj) }, { MP_ROM_QSTR(MP_QSTR_search), MP_ROM_PTR(&re_search_obj) }, { MP_ROM_QSTR(MP_QSTR_split), MP_ROM_PTR(&re_split_obj) }, + #if MICROPY_PY_URE_SUB + { MP_ROM_QSTR(MP_QSTR_sub), MP_ROM_PTR(&re_sub_obj) }, + #endif }; STATIC MP_DEFINE_CONST_DICT(re_locals_dict, re_locals_dict_table); @@ -307,11 +424,22 @@ STATIC mp_obj_t mod_re_search(size_t n_args, const mp_obj_t *args) { } MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_re_search_obj, 2, 4, mod_re_search); +#if MICROPY_PY_URE_SUB +STATIC mp_obj_t mod_re_sub(size_t n_args, const mp_obj_t *args) { + mp_obj_t self = mod_re_compile(1, args); + return re_sub_helper(self, n_args, args); +} +MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_re_sub_obj, 3, 5, mod_re_sub); +#endif + STATIC const mp_rom_map_elem_t mp_module_re_globals_table[] = { { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_ure) }, { MP_ROM_QSTR(MP_QSTR_compile), MP_ROM_PTR(&mod_re_compile_obj) }, { MP_ROM_QSTR(MP_QSTR_match), MP_ROM_PTR(&mod_re_match_obj) }, { MP_ROM_QSTR(MP_QSTR_search), MP_ROM_PTR(&mod_re_search_obj) }, + #if MICROPY_PY_URE_SUB + { MP_ROM_QSTR(MP_QSTR_sub), MP_ROM_PTR(&mod_re_sub_obj) }, + #endif { MP_ROM_QSTR(MP_QSTR_DEBUG), MP_ROM_INT(FLAG_DEBUG) }, }; diff --git a/py/mpconfig.h b/py/mpconfig.h index cf757cf427e0..bb7952a8b324 100755 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -1172,6 +1172,10 @@ typedef double mp_float_t; #define MICROPY_PY_URE_MATCH_SPAN_START_END (0) #endif +#ifndef MICROPY_PY_URE_SUB +#define MICROPY_PY_URE_SUB (0) +#endif + #ifndef MICROPY_PY_UHEAPQ #define MICROPY_PY_UHEAPQ (0) #endif diff --git a/tests/extmod/ure_sub.py b/tests/extmod/ure_sub.py new file mode 100644 index 000000000000..4aeb8650a18e --- /dev/null +++ b/tests/extmod/ure_sub.py @@ -0,0 +1,61 @@ +try: + import ure as re +except ImportError: + try: + import re + except ImportError: + print('SKIP') + raise SystemExit + +try: + re.sub +except AttributeError: + print('SKIP') + raise SystemExit + + +def multiply(m): + return str(int(m.group(0)) * 2) + +print(re.sub("\d+", multiply, "10 20 30 40 50")) + +print(re.sub("\d+", lambda m: str(int(m.group(0)) // 2), "10 20 30 40 50")) + +def A(): + return "A" +print(re.sub('a', A(), 'aBCBABCDabcda.')) + +print( + re.sub( + r'def\s+([a-zA-Z_][a-zA-Z_0-9]*)\s*\(\s*\):', + 'static PyObject*\npy_\\1(void){\n return;\n}\n', + '\n\ndef myfunc():\n\ndef myfunc1():\n\ndef myfunc2():' + ) +) + +print( + re.compile( + '(calzino) (blu|bianco|verde) e (scarpa) (blu|bianco|verde)' + ).sub( + r'\g<1> colore \2 con \g<3> colore \4? ...', + 'calzino blu e scarpa verde' + ) +) + +# no matches at all +print(re.sub('a', 'b', 'c')) + +# with maximum substitution count specified +print(re.sub('a', 'b', '1a2a3a', 2)) + +# invalid group +try: + re.sub('(a)', 'b\\2', 'a') +except: + print('invalid group') + +# invalid group with very large number (to test overflow in uPy) +try: + re.sub('(a)', 'b\\199999999999999999999999999999999999999', 'a') +except: + print('invalid group') diff --git a/tests/extmod/ure_sub_unmatched.py b/tests/extmod/ure_sub_unmatched.py new file mode 100644 index 000000000000..4795b3196f46 --- /dev/null +++ b/tests/extmod/ure_sub_unmatched.py @@ -0,0 +1,19 @@ +# test re.sub with unmatched groups, behaviour changed in CPython 3.5 + +try: + import ure as re +except ImportError: + try: + import re + except ImportError: + print('SKIP') + raise SystemExit + +try: + re.sub +except AttributeError: + print('SKIP') + raise SystemExit + +# first group matches, second optional group doesn't so is replaced with a blank +print(re.sub(r'(a)(b)?', r'\2-\1', '1a2')) diff --git a/tests/extmod/ure_sub_unmatched.py.exp b/tests/extmod/ure_sub_unmatched.py.exp new file mode 100644 index 000000000000..1e5f0fda0554 --- /dev/null +++ b/tests/extmod/ure_sub_unmatched.py.exp @@ -0,0 +1 @@ +1-a2 From 20a787adb4140002acb8e5ea21536069e184ffaf Mon Sep 17 00:00:00 2001 From: Radomir Dopieralski Date: Tue, 25 Jul 2017 01:09:47 +0200 Subject: [PATCH 4/8] extmod/ure: Handle some escape sequences. Fix MicroPython #3176 Handle escape sequences inside regular expressions. This adds handling for \a, \b, \f, \n, \r, \v and \\. --- extmod/re1.5/compilecode.c | 46 +++++++++++++++++++++++++++++++++----- tests/extmod/ure1.py | 13 +++++++++++ 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/extmod/re1.5/compilecode.c b/extmod/re1.5/compilecode.c index a685a508a04b..01d3d149884e 100644 --- a/extmod/re1.5/compilecode.c +++ b/extmod/re1.5/compilecode.c @@ -10,6 +10,29 @@ #define EMIT(at, byte) (code ? (code[at] = byte) : (at)) #define PC (prog->bytelen) + +static char unescape(char c) { + switch (c) { + case 'a': + return '\a'; + case 'b': + return '\b'; + case 'f': + return '\f'; + case 'n': + return '\n'; + case 'r': + return '\r'; + case 'v': + return '\v'; + case 'x': + return '\\'; + default: + return c; + } +} + + static const char *_compilecode(const char *re, ByteProg *prog, int sizecode) { char *code = sizecode ? NULL : prog->insts; @@ -22,13 +45,16 @@ static const char *_compilecode(const char *re, ByteProg *prog, int sizecode) case '\\': re++; if (!*re) return NULL; // Trailing backslash + term = PC; if ((*re | 0x20) == 'd' || (*re | 0x20) == 's' || (*re | 0x20) == 'w') { - term = PC; EMIT(PC++, NamedClass); EMIT(PC++, *re); - prog->len++; - break; + } else { + EMIT(PC++, Char); + EMIT(PC++, unescape(*re)); } + prog->len++; + break; default: term = PC; EMIT(PC++, Char); @@ -54,11 +80,21 @@ static const char *_compilecode(const char *re, ByteProg *prog, int sizecode) prog->len++; for (cnt = 0; *re != ']'; re++, cnt++) { if (!*re) return NULL; - EMIT(PC++, *re); + if (*re == '\\') { + re += 1; + EMIT(PC++, unescape(*re)); + } else { + EMIT(PC++, *re); + } if (re[1] == '-' && re[2] != ']') { re += 2; } - EMIT(PC++, *re); + if (*re == '\\') { + re += 1; + EMIT(PC++, unescape(*re)); + } else { + EMIT(PC++, *re); + } } EMIT(term + 1, cnt); break; diff --git a/tests/extmod/ure1.py b/tests/extmod/ure1.py index 54471ed4f97c..710720c8b651 100644 --- a/tests/extmod/ure1.py +++ b/tests/extmod/ure1.py @@ -28,6 +28,19 @@ except IndexError: print("IndexError") +r = re.compile(r"\n") +m = r.match("\n") +print(m.group(0)) +m = r.match("\\") +print(m) +r = re.compile(r"[\n-\r]") +m = r.match("\n") +print(m.group(0)) +r = re.compile(r"[\]]") +m = r.match("]") +print(m.group(0)) +print("===") + r = re.compile("[a-cu-z]") m = r.match("a") print(m.group(0)) From 0865c9d38193b61898d631081161cac4d3365437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Tue, 12 Feb 2019 22:42:59 +0100 Subject: [PATCH 5/8] extmod/ure: Support search/match() pos and endpos parameters MICROPY_PY_URE_MATCH_SPAN_START_END is used to enable the functionality since it's similar. --- extmod/modure.c | 29 +++++++++++++++++++++++++++++ py/objstr.c | 9 +++++++++ py/objstr.h | 2 ++ py/objstrunicode.c | 20 ++++++++++++++++++++ 4 files changed, 60 insertions(+) diff --git a/extmod/modure.c b/extmod/modure.c index 84780196633e..a368ee8fac00 100644 --- a/extmod/modure.c +++ b/extmod/modure.c @@ -178,6 +178,35 @@ STATIC mp_obj_t ure_exec(bool is_anchored, uint n_args, const mp_obj_t *args) { size_t len; subj.begin = mp_obj_str_get_data(args[1], &len); subj.end = subj.begin + len; +#if MICROPY_PY_URE_MATCH_SPAN_START_END + if (n_args > 2) { + const mp_obj_type_t *self_type = mp_obj_get_type(args[1]); + mp_int_t str_len = MP_OBJ_SMALL_INT_VALUE(mp_obj_len_maybe(args[1])); + const byte *begin = (const byte *)subj.begin; + + int pos = mp_obj_get_int(args[2]); + if (pos >= str_len) { + return mp_const_none; + } + if (pos < 0) { + pos = 0; + } + const byte *pos_ptr = str_index_to_ptr(self_type, begin, len, MP_OBJ_NEW_SMALL_INT(pos), true); + + const byte *endpos_ptr = (const byte *)subj.end; + if (n_args > 3) { + int endpos = mp_obj_get_int(args[3]); + if (endpos <= pos) { + return mp_const_none; + } + // Will cap to length + endpos_ptr = str_index_to_ptr(self_type, begin, len, args[3], true); + } + + subj.begin = (const char *)pos_ptr; + subj.end = (const char *)endpos_ptr; + } +#endif int caps_num = (self->re.sub + 1) * 2; mp_obj_match_t *match = m_new_obj_var(mp_obj_match_t, char*, caps_num); // cast is a workaround for a bug in msvc: it treats const char** as a const pointer instead of a pointer to pointer to const char diff --git a/py/objstr.c b/py/objstr.c index 7236d97727aa..ebd11d5cc28f 100644 --- a/py/objstr.c +++ b/py/objstr.c @@ -408,6 +408,15 @@ mp_obj_t mp_obj_str_binary_op(mp_binary_op_t op, mp_obj_t lhs_in, mp_obj_t rhs_i #if !MICROPY_PY_BUILTINS_STR_UNICODE // objstrunicode defines own version +size_t str_offset_to_index(const mp_obj_type_t *type, const byte *self_data, size_t self_len, + size_t offset) { + if (offset > self_len) { + mp_raise_ValueError(translate("offset out of bounds")); + } + + return offset; +} + const byte *str_index_to_ptr(const mp_obj_type_t *type, const byte *self_data, size_t self_len, mp_obj_t index, bool is_slice) { size_t index_val = mp_get_index(type, self_len, index, is_slice); diff --git a/py/objstr.h b/py/objstr.h index 89513044617d..0efe62a801ee 100644 --- a/py/objstr.h +++ b/py/objstr.h @@ -71,6 +71,8 @@ mp_obj_t mp_obj_new_str_of_type(const mp_obj_type_t *type, const byte* data, siz mp_obj_t mp_obj_str_binary_op(mp_binary_op_t op, mp_obj_t lhs_in, mp_obj_t rhs_in); mp_int_t mp_obj_str_get_buffer(mp_obj_t self_in, mp_buffer_info_t *bufinfo, mp_uint_t flags); +size_t str_offset_to_index(const mp_obj_type_t *type, const byte *self_data, size_t self_len, + size_t offset); const byte *str_index_to_ptr(const mp_obj_type_t *type, const byte *self_data, size_t self_len, mp_obj_t index, bool is_slice); const byte *find_subbytes(const byte *haystack, size_t hlen, const byte *needle, size_t nlen, int direction); diff --git a/py/objstrunicode.c b/py/objstrunicode.c index 03106f987348..30000a51e775 100644 --- a/py/objstrunicode.c +++ b/py/objstrunicode.c @@ -112,6 +112,26 @@ STATIC mp_obj_t uni_unary_op(mp_unary_op_t op, mp_obj_t self_in) { } } +size_t str_offset_to_index(const mp_obj_type_t *type, const byte *self_data, size_t self_len, + size_t offset) { + if (offset > self_len) { + mp_raise_ValueError(translate("offset out of bounds")); + } + + if (type == &mp_type_bytes) { + return offset; + } + + size_t index_val = 0; + const byte *s = self_data; + for (size_t i = 0; i < offset; i++, s++) { + if (!UTF8_IS_CONT(*s)) { + ++index_val; + } + } + return index_val; +} + // Convert an index into a pointer to its lead byte. Out of bounds indexing will raise IndexError or // be capped to the first/last character of the string, depending on is_slice. const byte *str_index_to_ptr(const mp_obj_type_t *type, const byte *self_data, size_t self_len, From 9cdffe5e8c18f67e9c2318ef1d92f01f091488a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Thu, 14 Feb 2019 10:46:53 +0100 Subject: [PATCH 6/8] atmel-samd: Remove samd module from SAMD21 builds Remove the samd module which has representations of the clocks. This is done to save on precious flash. --- ports/atmel-samd/mpconfigport.h | 1 - 1 file changed, 1 deletion(-) diff --git a/ports/atmel-samd/mpconfigport.h b/ports/atmel-samd/mpconfigport.h index 080b7ff69f37..f08399219a86 100644 --- a/ports/atmel-samd/mpconfigport.h +++ b/ports/atmel-samd/mpconfigport.h @@ -421,7 +421,6 @@ extern const struct _mp_obj_module_t pixelbuf_module; { MP_OBJ_NEW_QSTR(MP_QSTR_pulseio), (mp_obj_t)&pulseio_module }, \ { MP_OBJ_NEW_QSTR(MP_QSTR_random), (mp_obj_t)&random_module }, \ { MP_OBJ_NEW_QSTR(MP_QSTR_rtc), (mp_obj_t)&rtc_module }, \ - { MP_OBJ_NEW_QSTR(MP_QSTR_samd),(mp_obj_t)&samd_module }, \ { MP_OBJ_NEW_QSTR(MP_QSTR_storage), (mp_obj_t)&storage_module }, \ { MP_OBJ_NEW_QSTR(MP_QSTR_struct), (mp_obj_t)&struct_module }, \ { MP_OBJ_NEW_QSTR(MP_QSTR_supervisor), (mp_obj_t)&supervisor_module }, \ From 77ff17cc8d2dc8fc550d41e686a0c42bdefca72c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Tue, 12 Feb 2019 22:51:46 +0100 Subject: [PATCH 7/8] atmel-samd: Enable extra ure functionality on Express boards This enables ure.sub(), Match.span/start/end() and the ure.Compile.search/match() pos/endpos arguments. --- ports/atmel-samd/mpconfigport.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ports/atmel-samd/mpconfigport.h b/ports/atmel-samd/mpconfigport.h index f08399219a86..8fdf916c35d4 100644 --- a/ports/atmel-samd/mpconfigport.h +++ b/ports/atmel-samd/mpconfigport.h @@ -257,6 +257,9 @@ extern const struct _mp_obj_module_t pixelbuf_module; #define MICROPY_PY_UERRNO (1) #define MICROPY_PY_UERRNO_ERRORCODE (0) #define MICROPY_PY_URE (1) + #define MICROPY_PY_URE_MATCH_GROUPS (1) + #define MICROPY_PY_URE_MATCH_SPAN_START_END (1) + #define MICROPY_PY_URE_SUB (1) #ifndef MICROPY_PY_FRAMEBUF #define MICROPY_PY_FRAMEBUF (0) #endif From 0edd739609cbcd42e4d77976f4d1e71003bf2b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Thu, 14 Feb 2019 15:43:13 +0100 Subject: [PATCH 8/8] Update translations --- locale/ID.po | 160 +++++++++++++------------ locale/circuitpython.pot | 110 +++++++++--------- locale/de_DE.po | 130 +++++++++++---------- locale/en_US.po | 110 +++++++++--------- locale/es.po | 240 +++++++++++++++++++------------------- locale/fil.po | 240 +++++++++++++++++++------------------- locale/fr.po | 244 ++++++++++++++++++++------------------- locale/it_IT.po | 234 +++++++++++++++++++------------------ locale/pt_BR.po | 183 +++++++++++++++-------------- 9 files changed, 848 insertions(+), 803 deletions(-) diff --git a/locale/ID.po b/locale/ID.po index 83a8ea2b4a0c..198c5ed59cac 100644 --- a/locale/ID.po +++ b/locale/ID.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-12 22:32-0500\n" +"POT-Creation-Date: 2019-02-14 15:42+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -103,11 +103,11 @@ msgstr "heap kosong" msgid "syntax error in JSON" msgstr "sintaksis error pada JSON" -#: extmod/modure.c:161 +#: extmod/modure.c:265 msgid "Splitting with sub-captures" msgstr "Memisahkan dengan menggunakan sub-captures" -#: extmod/modure.c:207 +#: extmod/modure.c:428 msgid "Error in regex" msgstr "Error pada regex" @@ -155,7 +155,7 @@ msgstr "kompilasi script tidak didukung" msgid " output:\n" msgstr "output:\n" -#: main.c:166 main.c:247 +#: main.c:166 main.c:248 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -167,7 +167,7 @@ msgstr "" msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Berjalan di mode aman(safe mode)! Auto-reload tidak aktif.\n" -#: main.c:170 main.c:249 +#: main.c:170 main.c:250 msgid "Auto-reload is off.\n" msgstr "Auto-reload tidak aktif.\n" @@ -186,13 +186,13 @@ msgid "" "Code done running. Waiting for reload.\n" msgstr "" -#: main.c:254 +#: main.c:255 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" "Tekan tombol apa saja untuk masuk ke dalam REPL. Gunakan CTRL+D untuk reset " "(Reload)" -#: main.c:419 +#: main.c:420 msgid "soft reboot\n" msgstr "memulai ulang software(soft reboot)\n" @@ -360,12 +360,12 @@ msgstr "Gagal untuk mengalokasikan buffer RX" msgid "Could not initialize UART" msgstr "Tidak dapat menginisialisasi UART" -#: ports/atmel-samd/common-hal/busio/UART.c:241 +#: ports/atmel-samd/common-hal/busio/UART.c:252 #: ports/nrf/common-hal/busio/UART.c:230 msgid "No RX pin" msgstr "Tidak pin RX" -#: ports/atmel-samd/common-hal/busio/UART.c:300 +#: ports/atmel-samd/common-hal/busio/UART.c:311 #: ports/nrf/common-hal/busio/UART.c:265 msgid "No TX pin" msgstr "Tidak ada pin TX" @@ -1508,7 +1508,7 @@ msgstr "" msgid "object with buffer protocol required" msgstr "" -#: py/objarray.c:413 py/objstr.c:428 py/objstrunicode.c:191 py/objtuple.c:188 +#: py/objarray.c:413 py/objstr.c:437 py/objstrunicode.c:211 py/objtuple.c:188 #: shared-bindings/nvm/ByteArray.c:85 msgid "only slices with step=1 (aka None) are supported" msgstr "" @@ -1658,152 +1658,157 @@ msgstr "" msgid "wrong number of arguments" msgstr "" -#: py/objstr.c:468 +#: py/objstr.c:414 py/objstrunicode.c:118 +#, fuzzy +msgid "offset out of bounds" +msgstr "modul tidak ditemukan" + +#: py/objstr.c:477 msgid "join expects a list of str/bytes objects consistent with self object" msgstr "" -#: py/objstr.c:543 py/objstr.c:648 py/objstr.c:1745 +#: py/objstr.c:552 py/objstr.c:657 py/objstr.c:1754 msgid "empty separator" msgstr "" -#: py/objstr.c:642 +#: py/objstr.c:651 msgid "rsplit(None,n)" msgstr "" -#: py/objstr.c:714 +#: py/objstr.c:723 msgid "substring not found" msgstr "" -#: py/objstr.c:771 +#: py/objstr.c:780 msgid "start/end indices" msgstr "" -#: py/objstr.c:932 +#: py/objstr.c:941 msgid "bad format string" msgstr "" -#: py/objstr.c:954 +#: py/objstr.c:963 msgid "single '}' encountered in format string" msgstr "" -#: py/objstr.c:993 +#: py/objstr.c:1002 msgid "bad conversion specifier" msgstr "" -#: py/objstr.c:997 +#: py/objstr.c:1006 msgid "end of format while looking for conversion specifier" msgstr "" -#: py/objstr.c:999 +#: py/objstr.c:1008 #, c-format msgid "unknown conversion specifier %c" msgstr "" -#: py/objstr.c:1030 +#: py/objstr.c:1039 msgid "unmatched '{' in format" msgstr "" -#: py/objstr.c:1037 +#: py/objstr.c:1046 msgid "expected ':' after format specifier" msgstr "" -#: py/objstr.c:1051 +#: py/objstr.c:1060 msgid "" "can't switch from automatic field numbering to manual field specification" msgstr "" -#: py/objstr.c:1056 py/objstr.c:1084 +#: py/objstr.c:1065 py/objstr.c:1093 msgid "tuple index out of range" msgstr "" -#: py/objstr.c:1072 +#: py/objstr.c:1081 msgid "attributes not supported yet" msgstr "" -#: py/objstr.c:1080 +#: py/objstr.c:1089 msgid "" "can't switch from manual field specification to automatic field numbering" msgstr "" -#: py/objstr.c:1172 +#: py/objstr.c:1181 msgid "invalid format specifier" msgstr "" -#: py/objstr.c:1193 +#: py/objstr.c:1202 msgid "sign not allowed in string format specifier" msgstr "" -#: py/objstr.c:1201 +#: py/objstr.c:1210 msgid "sign not allowed with integer format specifier 'c'" msgstr "" -#: py/objstr.c:1260 +#: py/objstr.c:1269 #, c-format msgid "unknown format code '%c' for object of type '%s'" msgstr "" -#: py/objstr.c:1332 +#: py/objstr.c:1341 #, c-format msgid "unknown format code '%c' for object of type 'float'" msgstr "" -#: py/objstr.c:1344 +#: py/objstr.c:1353 msgid "'=' alignment not allowed in string format specifier" msgstr "" -#: py/objstr.c:1368 +#: py/objstr.c:1377 #, c-format msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: py/objstr.c:1416 +#: py/objstr.c:1425 msgid "format requires a dict" msgstr "" -#: py/objstr.c:1425 +#: py/objstr.c:1434 msgid "incomplete format key" msgstr "" -#: py/objstr.c:1483 +#: py/objstr.c:1492 msgid "incomplete format" msgstr "" -#: py/objstr.c:1491 +#: py/objstr.c:1500 msgid "not enough arguments for format string" msgstr "" -#: py/objstr.c:1501 +#: py/objstr.c:1510 #, c-format msgid "%%c requires int or char" msgstr "" -#: py/objstr.c:1508 +#: py/objstr.c:1517 msgid "integer required" msgstr "" -#: py/objstr.c:1571 +#: py/objstr.c:1580 #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" -#: py/objstr.c:1578 +#: py/objstr.c:1587 msgid "not all arguments converted during string formatting" msgstr "" -#: py/objstr.c:2103 +#: py/objstr.c:2112 msgid "can't convert to str implicitly" msgstr "" -#: py/objstr.c:2107 +#: py/objstr.c:2116 msgid "can't convert '%q' object to %q implicitly" msgstr "" -#: py/objstrunicode.c:134 +#: py/objstrunicode.c:154 #, c-format msgid "string indices must be integers, not %s" msgstr "" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 +#: py/objstrunicode.c:165 py/objstrunicode.c:184 msgid "string index out of range" msgstr "" @@ -2233,8 +2238,11 @@ msgid "timeout must be >= 0.0" msgstr "bits harus memilki nilai 8" #: shared-bindings/bleio/CharacteristicBuffer.c:79 +#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 +#: shared-bindings/displayio/Group.c:100 shared-bindings/displayio/Shape.c:69 +#: shared-bindings/displayio/Shape.c:73 #, fuzzy -msgid "buffer_size must be >= 1" +msgid "%q must be >= 1" msgstr "buffers harus mempunyai panjang yang sama" #: shared-bindings/bleio/CharacteristicBuffer.c:83 @@ -2393,12 +2401,6 @@ msgstr "" msgid "Command must be an int between 0 and 255" msgstr "" -#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 -#: shared-bindings/displayio/Group.c:100 -#, fuzzy -msgid "%q must be >= 1" -msgstr "buffers harus mempunyai panjang yang sama" - #: shared-bindings/displayio/Palette.c:91 msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgstr "" @@ -2420,15 +2422,15 @@ msgstr "" msgid "palette_index should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:88 +#: shared-bindings/displayio/Shape.c:97 msgid "y should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:92 +#: shared-bindings/displayio/Shape.c:101 msgid "start_x should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:96 +#: shared-bindings/displayio/Shape.c:105 msgid "end_x should be an int" msgstr "" @@ -2845,38 +2847,42 @@ msgid "" "exit safe mode.\n" msgstr "" -#, fuzzy -#~ msgid "unicode_characters must be a string" -#~ msgstr "keyword harus berupa string" - -#~ msgid "All PWM peripherals are in use" -#~ msgstr "Semua perangkat PWM sedang digunakan" - -#~ msgid "Invalid UUID string length" -#~ msgstr "Panjang string UUID tidak valid" +#~ msgid "busio.UART not available" +#~ msgstr "busio.UART tidak tersedia" #~ msgid "" -#~ "enough power for the whole circuit and press reset (after ejecting " -#~ "CIRCUITPY).\n" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" #~ msgstr "" -#~ "tegangan cukup untuk semua sirkuit dan tekan reset (setelah mencabut " -#~ "CIRCUITPY).\n" +#~ "Silahkan taruh masalah disini dengan isi dari CIRCUITPY drive: anda \n" -#~ msgid "Invalid UUID parameter" -#~ msgstr "Parameter UUID tidak valid" +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "" +#~ "Sepertinya inti kode CircuitPython kita crash dengan sangat keras. Ups!\n" #, fuzzy #~ msgid "unpack requires a buffer of %d bytes" #~ msgstr "Gagal untuk megalokasikan buffer RX dari %d byte" -#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -#~ msgstr "" -#~ "Sepertinya inti kode CircuitPython kita crash dengan sangat keras. Ups!\n" +#~ msgid "Invalid UUID parameter" +#~ msgstr "Parameter UUID tidak valid" #~ msgid "" -#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ "enough power for the whole circuit and press reset (after ejecting " +#~ "CIRCUITPY).\n" #~ msgstr "" -#~ "Silahkan taruh masalah disini dengan isi dari CIRCUITPY drive: anda \n" +#~ "tegangan cukup untuk semua sirkuit dan tekan reset (setelah mencabut " +#~ "CIRCUITPY).\n" -#~ msgid "busio.UART not available" -#~ msgstr "busio.UART tidak tersedia" +#~ msgid "Invalid UUID string length" +#~ msgstr "Panjang string UUID tidak valid" + +#~ msgid "All PWM peripherals are in use" +#~ msgstr "Semua perangkat PWM sedang digunakan" + +#, fuzzy +#~ msgid "unicode_characters must be a string" +#~ msgstr "keyword harus berupa string" + +#, fuzzy +#~ msgid "buffer_size must be >= 1" +#~ msgstr "buffers harus mempunyai panjang yang sama" diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot index f9c0263c054a..1d6e30ddc1ee 100644 --- a/locale/circuitpython.pot +++ b/locale/circuitpython.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-12 22:32-0500\n" +"POT-Creation-Date: 2019-02-14 15:42+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -103,11 +103,11 @@ msgstr "" msgid "syntax error in JSON" msgstr "" -#: extmod/modure.c:161 +#: extmod/modure.c:265 msgid "Splitting with sub-captures" msgstr "" -#: extmod/modure.c:207 +#: extmod/modure.c:428 msgid "Error in regex" msgstr "" @@ -155,7 +155,7 @@ msgstr "" msgid " output:\n" msgstr "" -#: main.c:166 main.c:247 +#: main.c:166 main.c:248 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -165,7 +165,7 @@ msgstr "" msgid "Running in safe mode! Auto-reload is off.\n" msgstr "" -#: main.c:170 main.c:249 +#: main.c:170 main.c:250 msgid "Auto-reload is off.\n" msgstr "" @@ -183,11 +183,11 @@ msgid "" "Code done running. Waiting for reload.\n" msgstr "" -#: main.c:254 +#: main.c:255 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" -#: main.c:419 +#: main.c:420 msgid "soft reboot\n" msgstr "" @@ -353,12 +353,12 @@ msgstr "" msgid "Could not initialize UART" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:241 +#: ports/atmel-samd/common-hal/busio/UART.c:252 #: ports/nrf/common-hal/busio/UART.c:230 msgid "No RX pin" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:300 +#: ports/atmel-samd/common-hal/busio/UART.c:311 #: ports/nrf/common-hal/busio/UART.c:265 msgid "No TX pin" msgstr "" @@ -1474,7 +1474,7 @@ msgstr "" msgid "object with buffer protocol required" msgstr "" -#: py/objarray.c:413 py/objstr.c:428 py/objstrunicode.c:191 py/objtuple.c:188 +#: py/objarray.c:413 py/objstr.c:437 py/objstrunicode.c:211 py/objtuple.c:188 #: shared-bindings/nvm/ByteArray.c:85 msgid "only slices with step=1 (aka None) are supported" msgstr "" @@ -1624,152 +1624,156 @@ msgstr "" msgid "wrong number of arguments" msgstr "" -#: py/objstr.c:468 +#: py/objstr.c:414 py/objstrunicode.c:118 +msgid "offset out of bounds" +msgstr "" + +#: py/objstr.c:477 msgid "join expects a list of str/bytes objects consistent with self object" msgstr "" -#: py/objstr.c:543 py/objstr.c:648 py/objstr.c:1745 +#: py/objstr.c:552 py/objstr.c:657 py/objstr.c:1754 msgid "empty separator" msgstr "" -#: py/objstr.c:642 +#: py/objstr.c:651 msgid "rsplit(None,n)" msgstr "" -#: py/objstr.c:714 +#: py/objstr.c:723 msgid "substring not found" msgstr "" -#: py/objstr.c:771 +#: py/objstr.c:780 msgid "start/end indices" msgstr "" -#: py/objstr.c:932 +#: py/objstr.c:941 msgid "bad format string" msgstr "" -#: py/objstr.c:954 +#: py/objstr.c:963 msgid "single '}' encountered in format string" msgstr "" -#: py/objstr.c:993 +#: py/objstr.c:1002 msgid "bad conversion specifier" msgstr "" -#: py/objstr.c:997 +#: py/objstr.c:1006 msgid "end of format while looking for conversion specifier" msgstr "" -#: py/objstr.c:999 +#: py/objstr.c:1008 #, c-format msgid "unknown conversion specifier %c" msgstr "" -#: py/objstr.c:1030 +#: py/objstr.c:1039 msgid "unmatched '{' in format" msgstr "" -#: py/objstr.c:1037 +#: py/objstr.c:1046 msgid "expected ':' after format specifier" msgstr "" -#: py/objstr.c:1051 +#: py/objstr.c:1060 msgid "" "can't switch from automatic field numbering to manual field specification" msgstr "" -#: py/objstr.c:1056 py/objstr.c:1084 +#: py/objstr.c:1065 py/objstr.c:1093 msgid "tuple index out of range" msgstr "" -#: py/objstr.c:1072 +#: py/objstr.c:1081 msgid "attributes not supported yet" msgstr "" -#: py/objstr.c:1080 +#: py/objstr.c:1089 msgid "" "can't switch from manual field specification to automatic field numbering" msgstr "" -#: py/objstr.c:1172 +#: py/objstr.c:1181 msgid "invalid format specifier" msgstr "" -#: py/objstr.c:1193 +#: py/objstr.c:1202 msgid "sign not allowed in string format specifier" msgstr "" -#: py/objstr.c:1201 +#: py/objstr.c:1210 msgid "sign not allowed with integer format specifier 'c'" msgstr "" -#: py/objstr.c:1260 +#: py/objstr.c:1269 #, c-format msgid "unknown format code '%c' for object of type '%s'" msgstr "" -#: py/objstr.c:1332 +#: py/objstr.c:1341 #, c-format msgid "unknown format code '%c' for object of type 'float'" msgstr "" -#: py/objstr.c:1344 +#: py/objstr.c:1353 msgid "'=' alignment not allowed in string format specifier" msgstr "" -#: py/objstr.c:1368 +#: py/objstr.c:1377 #, c-format msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: py/objstr.c:1416 +#: py/objstr.c:1425 msgid "format requires a dict" msgstr "" -#: py/objstr.c:1425 +#: py/objstr.c:1434 msgid "incomplete format key" msgstr "" -#: py/objstr.c:1483 +#: py/objstr.c:1492 msgid "incomplete format" msgstr "" -#: py/objstr.c:1491 +#: py/objstr.c:1500 msgid "not enough arguments for format string" msgstr "" -#: py/objstr.c:1501 +#: py/objstr.c:1510 #, c-format msgid "%%c requires int or char" msgstr "" -#: py/objstr.c:1508 +#: py/objstr.c:1517 msgid "integer required" msgstr "" -#: py/objstr.c:1571 +#: py/objstr.c:1580 #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" -#: py/objstr.c:1578 +#: py/objstr.c:1587 msgid "not all arguments converted during string formatting" msgstr "" -#: py/objstr.c:2103 +#: py/objstr.c:2112 msgid "can't convert to str implicitly" msgstr "" -#: py/objstr.c:2107 +#: py/objstr.c:2116 msgid "can't convert '%q' object to %q implicitly" msgstr "" -#: py/objstrunicode.c:134 +#: py/objstrunicode.c:154 #, c-format msgid "string indices must be integers, not %s" msgstr "" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 +#: py/objstrunicode.c:165 py/objstrunicode.c:184 msgid "string index out of range" msgstr "" @@ -2197,7 +2201,10 @@ msgid "timeout must be >= 0.0" msgstr "" #: shared-bindings/bleio/CharacteristicBuffer.c:79 -msgid "buffer_size must be >= 1" +#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 +#: shared-bindings/displayio/Group.c:100 shared-bindings/displayio/Shape.c:69 +#: shared-bindings/displayio/Shape.c:73 +msgid "%q must be >= 1" msgstr "" #: shared-bindings/bleio/CharacteristicBuffer.c:83 @@ -2354,11 +2361,6 @@ msgstr "" msgid "Command must be an int between 0 and 255" msgstr "" -#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 -#: shared-bindings/displayio/Group.c:100 -msgid "%q must be >= 1" -msgstr "" - #: shared-bindings/displayio/Palette.c:91 msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgstr "" @@ -2380,15 +2382,15 @@ msgstr "" msgid "palette_index should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:88 +#: shared-bindings/displayio/Shape.c:97 msgid "y should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:92 +#: shared-bindings/displayio/Shape.c:101 msgid "start_x should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:96 +#: shared-bindings/displayio/Shape.c:105 msgid "end_x should be an int" msgstr "" diff --git a/locale/de_DE.po b/locale/de_DE.po index 509bc0488d4b..e0e38b0e7532 100644 --- a/locale/de_DE.po +++ b/locale/de_DE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-12 22:32-0500\n" +"POT-Creation-Date: 2019-02-14 15:42+0100\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n" "Last-Translator: Sebastian Plamauer\n" "Language-Team: \n" @@ -103,11 +103,11 @@ msgstr "leerer heap" msgid "syntax error in JSON" msgstr "Syntaxfehler in JSON" -#: extmod/modure.c:161 +#: extmod/modure.c:265 msgid "Splitting with sub-captures" msgstr "Teilen mit unter-captures" -#: extmod/modure.c:207 +#: extmod/modure.c:428 msgid "Error in regex" msgstr "Fehler in regex" @@ -155,7 +155,7 @@ msgstr "kompilieren von Skripten ist nicht unterstützt" msgid " output:\n" msgstr " Ausgabe:\n" -#: main.c:166 main.c:247 +#: main.c:166 main.c:248 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -167,7 +167,7 @@ msgstr "" msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Sicherheitsmodus aktiv! Automatisches Neuladen ist deaktiviert.\n" -#: main.c:170 main.c:249 +#: main.c:170 main.c:250 msgid "Auto-reload is off.\n" msgstr "Automatisches Neuladen ist deaktiviert.\n" @@ -186,13 +186,13 @@ msgid "" "Code done running. Waiting for reload.\n" msgstr "" -#: main.c:254 +#: main.c:255 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" "Drücke eine Taste um dich mit der REPL zu verbinden. Drücke Strg-D zum neu " "laden" -#: main.c:419 +#: main.c:420 msgid "soft reboot\n" msgstr "soft reboot\n" @@ -358,12 +358,12 @@ msgstr "Konnte keinen RX Buffer allozieren" msgid "Could not initialize UART" msgstr "Konnte UART nicht initialisieren" -#: ports/atmel-samd/common-hal/busio/UART.c:241 +#: ports/atmel-samd/common-hal/busio/UART.c:252 #: ports/nrf/common-hal/busio/UART.c:230 msgid "No RX pin" msgstr "Kein RX Pin" -#: ports/atmel-samd/common-hal/busio/UART.c:300 +#: ports/atmel-samd/common-hal/busio/UART.c:311 #: ports/nrf/common-hal/busio/UART.c:265 msgid "No TX pin" msgstr "Kein TX Pin" @@ -1493,7 +1493,7 @@ msgstr "'%s' Objekt unterstützt keine item assignment" msgid "object with buffer protocol required" msgstr "Objekt mit Pufferprotokoll (buffer protocol) erforderlich" -#: py/objarray.c:413 py/objstr.c:428 py/objstrunicode.c:191 py/objtuple.c:188 +#: py/objarray.c:413 py/objstr.c:437 py/objstrunicode.c:211 py/objtuple.c:188 #: shared-bindings/nvm/ByteArray.c:85 msgid "only slices with step=1 (aka None) are supported" msgstr "" @@ -1643,152 +1643,157 @@ msgstr "" msgid "wrong number of arguments" msgstr "" -#: py/objstr.c:468 +#: py/objstr.c:414 py/objstrunicode.c:118 +#, fuzzy +msgid "offset out of bounds" +msgstr "Modul nicht gefunden" + +#: py/objstr.c:477 msgid "join expects a list of str/bytes objects consistent with self object" msgstr "" -#: py/objstr.c:543 py/objstr.c:648 py/objstr.c:1745 +#: py/objstr.c:552 py/objstr.c:657 py/objstr.c:1754 msgid "empty separator" msgstr "" -#: py/objstr.c:642 +#: py/objstr.c:651 msgid "rsplit(None,n)" msgstr "" -#: py/objstr.c:714 +#: py/objstr.c:723 msgid "substring not found" msgstr "" -#: py/objstr.c:771 +#: py/objstr.c:780 msgid "start/end indices" msgstr "" -#: py/objstr.c:932 +#: py/objstr.c:941 msgid "bad format string" msgstr "" -#: py/objstr.c:954 +#: py/objstr.c:963 msgid "single '}' encountered in format string" msgstr "" -#: py/objstr.c:993 +#: py/objstr.c:1002 msgid "bad conversion specifier" msgstr "" -#: py/objstr.c:997 +#: py/objstr.c:1006 msgid "end of format while looking for conversion specifier" msgstr "" -#: py/objstr.c:999 +#: py/objstr.c:1008 #, c-format msgid "unknown conversion specifier %c" msgstr "" -#: py/objstr.c:1030 +#: py/objstr.c:1039 msgid "unmatched '{' in format" msgstr "" -#: py/objstr.c:1037 +#: py/objstr.c:1046 msgid "expected ':' after format specifier" msgstr "" -#: py/objstr.c:1051 +#: py/objstr.c:1060 msgid "" "can't switch from automatic field numbering to manual field specification" msgstr "" -#: py/objstr.c:1056 py/objstr.c:1084 +#: py/objstr.c:1065 py/objstr.c:1093 msgid "tuple index out of range" msgstr "" -#: py/objstr.c:1072 +#: py/objstr.c:1081 msgid "attributes not supported yet" msgstr "" -#: py/objstr.c:1080 +#: py/objstr.c:1089 msgid "" "can't switch from manual field specification to automatic field numbering" msgstr "" -#: py/objstr.c:1172 +#: py/objstr.c:1181 msgid "invalid format specifier" msgstr "" -#: py/objstr.c:1193 +#: py/objstr.c:1202 msgid "sign not allowed in string format specifier" msgstr "" -#: py/objstr.c:1201 +#: py/objstr.c:1210 msgid "sign not allowed with integer format specifier 'c'" msgstr "" -#: py/objstr.c:1260 +#: py/objstr.c:1269 #, c-format msgid "unknown format code '%c' for object of type '%s'" msgstr "" -#: py/objstr.c:1332 +#: py/objstr.c:1341 #, c-format msgid "unknown format code '%c' for object of type 'float'" msgstr "" -#: py/objstr.c:1344 +#: py/objstr.c:1353 msgid "'=' alignment not allowed in string format specifier" msgstr "" -#: py/objstr.c:1368 +#: py/objstr.c:1377 #, c-format msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: py/objstr.c:1416 +#: py/objstr.c:1425 msgid "format requires a dict" msgstr "" -#: py/objstr.c:1425 +#: py/objstr.c:1434 msgid "incomplete format key" msgstr "" -#: py/objstr.c:1483 +#: py/objstr.c:1492 msgid "incomplete format" msgstr "" -#: py/objstr.c:1491 +#: py/objstr.c:1500 msgid "not enough arguments for format string" msgstr "" -#: py/objstr.c:1501 +#: py/objstr.c:1510 #, c-format msgid "%%c requires int or char" msgstr "" -#: py/objstr.c:1508 +#: py/objstr.c:1517 msgid "integer required" msgstr "" -#: py/objstr.c:1571 +#: py/objstr.c:1580 #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" -#: py/objstr.c:1578 +#: py/objstr.c:1587 msgid "not all arguments converted during string formatting" msgstr "" -#: py/objstr.c:2103 +#: py/objstr.c:2112 msgid "can't convert to str implicitly" msgstr "" -#: py/objstr.c:2107 +#: py/objstr.c:2116 msgid "can't convert '%q' object to %q implicitly" msgstr "" -#: py/objstrunicode.c:134 +#: py/objstrunicode.c:154 #, c-format msgid "string indices must be integers, not %s" msgstr "" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 +#: py/objstrunicode.c:165 py/objstrunicode.c:184 msgid "string index out of range" msgstr "" @@ -2222,7 +2227,11 @@ msgid "timeout must be >= 0.0" msgstr "timeout muss >= 0.0 sein" #: shared-bindings/bleio/CharacteristicBuffer.c:79 -msgid "buffer_size must be >= 1" +#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 +#: shared-bindings/displayio/Group.c:100 shared-bindings/displayio/Shape.c:69 +#: shared-bindings/displayio/Shape.c:73 +#, fuzzy +msgid "%q must be >= 1" msgstr "Puffergröße muss >= 1 sein" #: shared-bindings/bleio/CharacteristicBuffer.c:83 @@ -2379,12 +2388,6 @@ msgstr "" msgid "Command must be an int between 0 and 255" msgstr "" -#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 -#: shared-bindings/displayio/Group.c:100 -#, fuzzy -msgid "%q must be >= 1" -msgstr "Puffergröße muss >= 1 sein" - #: shared-bindings/displayio/Palette.c:91 msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgstr "" @@ -2406,15 +2409,15 @@ msgstr "" msgid "palette_index should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:88 +#: shared-bindings/displayio/Shape.c:97 msgid "y should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:92 +#: shared-bindings/displayio/Shape.c:101 msgid "start_x should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:96 +#: shared-bindings/displayio/Shape.c:105 msgid "end_x should be an int" msgstr "" @@ -2841,16 +2844,19 @@ msgstr "" "Die Reset-Taste wurde beim Booten von CircuitPython gedrückt. Drücke sie " "erneut um den abgesicherten Modus zu verlassen. \n" -#, fuzzy -#~ msgid "Group must have %q at least 1" -#~ msgstr "Der Puffer muss eine Mindestenslänge von 1 haben" +#~ msgid "busio.UART not available" +#~ msgstr "busio.UART nicht verfügbar" + +#~ msgid "All PWM peripherals are in use" +#~ msgstr "Alle PWM-Peripheriegeräte werden verwendet" #, fuzzy #~ msgid "unicode_characters must be a string" #~ msgstr "name muss ein String sein" -#~ msgid "All PWM peripherals are in use" -#~ msgstr "Alle PWM-Peripheriegeräte werden verwendet" +#, fuzzy +#~ msgid "Group must have %q at least 1" +#~ msgstr "Der Puffer muss eine Mindestenslänge von 1 haben" -#~ msgid "busio.UART not available" -#~ msgstr "busio.UART nicht verfügbar" +#~ msgid "buffer_size must be >= 1" +#~ msgstr "Puffergröße muss >= 1 sein" diff --git a/locale/en_US.po b/locale/en_US.po index 327a7f5f58d1..64cf566a2080 100644 --- a/locale/en_US.po +++ b/locale/en_US.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-12 22:32-0500\n" +"POT-Creation-Date: 2019-02-14 15:42+0100\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n" "Last-Translator: \n" "Language-Team: \n" @@ -103,11 +103,11 @@ msgstr "" msgid "syntax error in JSON" msgstr "" -#: extmod/modure.c:161 +#: extmod/modure.c:265 msgid "Splitting with sub-captures" msgstr "" -#: extmod/modure.c:207 +#: extmod/modure.c:428 msgid "Error in regex" msgstr "" @@ -155,7 +155,7 @@ msgstr "" msgid " output:\n" msgstr "" -#: main.c:166 main.c:247 +#: main.c:166 main.c:248 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -165,7 +165,7 @@ msgstr "" msgid "Running in safe mode! Auto-reload is off.\n" msgstr "" -#: main.c:170 main.c:249 +#: main.c:170 main.c:250 msgid "Auto-reload is off.\n" msgstr "" @@ -183,11 +183,11 @@ msgid "" "Code done running. Waiting for reload.\n" msgstr "" -#: main.c:254 +#: main.c:255 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" -#: main.c:419 +#: main.c:420 msgid "soft reboot\n" msgstr "" @@ -353,12 +353,12 @@ msgstr "" msgid "Could not initialize UART" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:241 +#: ports/atmel-samd/common-hal/busio/UART.c:252 #: ports/nrf/common-hal/busio/UART.c:230 msgid "No RX pin" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:300 +#: ports/atmel-samd/common-hal/busio/UART.c:311 #: ports/nrf/common-hal/busio/UART.c:265 msgid "No TX pin" msgstr "" @@ -1474,7 +1474,7 @@ msgstr "" msgid "object with buffer protocol required" msgstr "" -#: py/objarray.c:413 py/objstr.c:428 py/objstrunicode.c:191 py/objtuple.c:188 +#: py/objarray.c:413 py/objstr.c:437 py/objstrunicode.c:211 py/objtuple.c:188 #: shared-bindings/nvm/ByteArray.c:85 msgid "only slices with step=1 (aka None) are supported" msgstr "" @@ -1624,152 +1624,156 @@ msgstr "" msgid "wrong number of arguments" msgstr "" -#: py/objstr.c:468 +#: py/objstr.c:414 py/objstrunicode.c:118 +msgid "offset out of bounds" +msgstr "" + +#: py/objstr.c:477 msgid "join expects a list of str/bytes objects consistent with self object" msgstr "" -#: py/objstr.c:543 py/objstr.c:648 py/objstr.c:1745 +#: py/objstr.c:552 py/objstr.c:657 py/objstr.c:1754 msgid "empty separator" msgstr "" -#: py/objstr.c:642 +#: py/objstr.c:651 msgid "rsplit(None,n)" msgstr "" -#: py/objstr.c:714 +#: py/objstr.c:723 msgid "substring not found" msgstr "" -#: py/objstr.c:771 +#: py/objstr.c:780 msgid "start/end indices" msgstr "" -#: py/objstr.c:932 +#: py/objstr.c:941 msgid "bad format string" msgstr "" -#: py/objstr.c:954 +#: py/objstr.c:963 msgid "single '}' encountered in format string" msgstr "" -#: py/objstr.c:993 +#: py/objstr.c:1002 msgid "bad conversion specifier" msgstr "" -#: py/objstr.c:997 +#: py/objstr.c:1006 msgid "end of format while looking for conversion specifier" msgstr "" -#: py/objstr.c:999 +#: py/objstr.c:1008 #, c-format msgid "unknown conversion specifier %c" msgstr "" -#: py/objstr.c:1030 +#: py/objstr.c:1039 msgid "unmatched '{' in format" msgstr "" -#: py/objstr.c:1037 +#: py/objstr.c:1046 msgid "expected ':' after format specifier" msgstr "" -#: py/objstr.c:1051 +#: py/objstr.c:1060 msgid "" "can't switch from automatic field numbering to manual field specification" msgstr "" -#: py/objstr.c:1056 py/objstr.c:1084 +#: py/objstr.c:1065 py/objstr.c:1093 msgid "tuple index out of range" msgstr "" -#: py/objstr.c:1072 +#: py/objstr.c:1081 msgid "attributes not supported yet" msgstr "" -#: py/objstr.c:1080 +#: py/objstr.c:1089 msgid "" "can't switch from manual field specification to automatic field numbering" msgstr "" -#: py/objstr.c:1172 +#: py/objstr.c:1181 msgid "invalid format specifier" msgstr "" -#: py/objstr.c:1193 +#: py/objstr.c:1202 msgid "sign not allowed in string format specifier" msgstr "" -#: py/objstr.c:1201 +#: py/objstr.c:1210 msgid "sign not allowed with integer format specifier 'c'" msgstr "" -#: py/objstr.c:1260 +#: py/objstr.c:1269 #, c-format msgid "unknown format code '%c' for object of type '%s'" msgstr "" -#: py/objstr.c:1332 +#: py/objstr.c:1341 #, c-format msgid "unknown format code '%c' for object of type 'float'" msgstr "" -#: py/objstr.c:1344 +#: py/objstr.c:1353 msgid "'=' alignment not allowed in string format specifier" msgstr "" -#: py/objstr.c:1368 +#: py/objstr.c:1377 #, c-format msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: py/objstr.c:1416 +#: py/objstr.c:1425 msgid "format requires a dict" msgstr "" -#: py/objstr.c:1425 +#: py/objstr.c:1434 msgid "incomplete format key" msgstr "" -#: py/objstr.c:1483 +#: py/objstr.c:1492 msgid "incomplete format" msgstr "" -#: py/objstr.c:1491 +#: py/objstr.c:1500 msgid "not enough arguments for format string" msgstr "" -#: py/objstr.c:1501 +#: py/objstr.c:1510 #, c-format msgid "%%c requires int or char" msgstr "" -#: py/objstr.c:1508 +#: py/objstr.c:1517 msgid "integer required" msgstr "" -#: py/objstr.c:1571 +#: py/objstr.c:1580 #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" -#: py/objstr.c:1578 +#: py/objstr.c:1587 msgid "not all arguments converted during string formatting" msgstr "" -#: py/objstr.c:2103 +#: py/objstr.c:2112 msgid "can't convert to str implicitly" msgstr "" -#: py/objstr.c:2107 +#: py/objstr.c:2116 msgid "can't convert '%q' object to %q implicitly" msgstr "" -#: py/objstrunicode.c:134 +#: py/objstrunicode.c:154 #, c-format msgid "string indices must be integers, not %s" msgstr "" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 +#: py/objstrunicode.c:165 py/objstrunicode.c:184 msgid "string index out of range" msgstr "" @@ -2197,7 +2201,10 @@ msgid "timeout must be >= 0.0" msgstr "" #: shared-bindings/bleio/CharacteristicBuffer.c:79 -msgid "buffer_size must be >= 1" +#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 +#: shared-bindings/displayio/Group.c:100 shared-bindings/displayio/Shape.c:69 +#: shared-bindings/displayio/Shape.c:73 +msgid "%q must be >= 1" msgstr "" #: shared-bindings/bleio/CharacteristicBuffer.c:83 @@ -2354,11 +2361,6 @@ msgstr "" msgid "Command must be an int between 0 and 255" msgstr "" -#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 -#: shared-bindings/displayio/Group.c:100 -msgid "%q must be >= 1" -msgstr "" - #: shared-bindings/displayio/Palette.c:91 msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgstr "" @@ -2380,15 +2382,15 @@ msgstr "" msgid "palette_index should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:88 +#: shared-bindings/displayio/Shape.c:97 msgid "y should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:92 +#: shared-bindings/displayio/Shape.c:101 msgid "start_x should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:96 +#: shared-bindings/displayio/Shape.c:105 msgid "end_x should be an int" msgstr "" diff --git a/locale/es.po b/locale/es.po index 8183e64ea341..721effe7f336 100644 --- a/locale/es.po +++ b/locale/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-12 22:32-0500\n" +"POT-Creation-Date: 2019-02-14 15:42+0100\n" "PO-Revision-Date: 2018-08-24 22:56-0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -104,11 +104,11 @@ msgstr "heap vacío" msgid "syntax error in JSON" msgstr "error de sintaxis en JSON" -#: extmod/modure.c:161 +#: extmod/modure.c:265 msgid "Splitting with sub-captures" msgstr "Dividiendo con sub-capturas" -#: extmod/modure.c:207 +#: extmod/modure.c:428 msgid "Error in regex" msgstr "Error en regex" @@ -156,7 +156,7 @@ msgstr "script de compilación no soportado" msgid " output:\n" msgstr " salida:\n" -#: main.c:166 main.c:247 +#: main.c:166 main.c:248 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -168,7 +168,7 @@ msgstr "" msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Ejecutando en modo seguro! La auto-recarga esta deshabilitada.\n" -#: main.c:170 main.c:249 +#: main.c:170 main.c:250 msgid "Auto-reload is off.\n" msgstr "Auto-recarga deshabilitada.\n" @@ -186,12 +186,12 @@ msgid "" "Code done running. Waiting for reload.\n" msgstr "" -#: main.c:254 +#: main.c:255 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" "Presiona cualquier tecla para entrar al REPL. Usa CTRL-D para recargar." -#: main.c:419 +#: main.c:420 msgid "soft reboot\n" msgstr "reinicio suave\n" @@ -359,12 +359,12 @@ msgstr "Ha fallado la asignación del buffer RX" msgid "Could not initialize UART" msgstr "No se puede inicializar la UART" -#: ports/atmel-samd/common-hal/busio/UART.c:241 +#: ports/atmel-samd/common-hal/busio/UART.c:252 #: ports/nrf/common-hal/busio/UART.c:230 msgid "No RX pin" msgstr "Sin pin RX" -#: ports/atmel-samd/common-hal/busio/UART.c:300 +#: ports/atmel-samd/common-hal/busio/UART.c:311 #: ports/nrf/common-hal/busio/UART.c:265 msgid "No TX pin" msgstr "Sin pin TX" @@ -1511,7 +1511,7 @@ msgstr "el objeto '%s' no soporta la asignación de elementos" msgid "object with buffer protocol required" msgstr "objeto con protocolo de buffer requerido" -#: py/objarray.c:413 py/objstr.c:428 py/objstrunicode.c:191 py/objtuple.c:188 +#: py/objarray.c:413 py/objstr.c:437 py/objstrunicode.c:211 py/objtuple.c:188 #: shared-bindings/nvm/ByteArray.c:85 msgid "only slices with step=1 (aka None) are supported" msgstr "solo se admiten segmentos con step=1 (alias None)" @@ -1662,158 +1662,163 @@ msgstr "valor de bytes fuera de rango" msgid "wrong number of arguments" msgstr "numero erroneo de argumentos" -#: py/objstr.c:468 +#: py/objstr.c:414 py/objstrunicode.c:118 +#, fuzzy +msgid "offset out of bounds" +msgstr "address fuera de límites" + +#: py/objstr.c:477 msgid "join expects a list of str/bytes objects consistent with self object" msgstr "" "join espera una lista de objetos str/bytes consistentes con el mismo objeto" -#: py/objstr.c:543 py/objstr.c:648 py/objstr.c:1745 +#: py/objstr.c:552 py/objstr.c:657 py/objstr.c:1754 msgid "empty separator" msgstr "separator vacío" -#: py/objstr.c:642 +#: py/objstr.c:651 msgid "rsplit(None,n)" msgstr "rsplit(None,n)" -#: py/objstr.c:714 +#: py/objstr.c:723 msgid "substring not found" msgstr "substring no encontrado" -#: py/objstr.c:771 +#: py/objstr.c:780 msgid "start/end indices" msgstr "índices inicio/final" -#: py/objstr.c:932 +#: py/objstr.c:941 msgid "bad format string" msgstr "formato de string erroneo" -#: py/objstr.c:954 +#: py/objstr.c:963 msgid "single '}' encountered in format string" msgstr "un solo '}' encontrado en format string" -#: py/objstr.c:993 +#: py/objstr.c:1002 msgid "bad conversion specifier" msgstr "especificador de conversion erroneo" -#: py/objstr.c:997 +#: py/objstr.c:1006 msgid "end of format while looking for conversion specifier" msgstr "el final del formato mientras se busca el especificador de conversión" -#: py/objstr.c:999 +#: py/objstr.c:1008 #, c-format msgid "unknown conversion specifier %c" msgstr "especificador de conversión %c desconocido" -#: py/objstr.c:1030 +#: py/objstr.c:1039 msgid "unmatched '{' in format" msgstr "No coinciden '{' en format" -#: py/objstr.c:1037 +#: py/objstr.c:1046 msgid "expected ':' after format specifier" msgstr "se espera ':' despues de un especificaro de tipo format" -#: py/objstr.c:1051 +#: py/objstr.c:1060 msgid "" "can't switch from automatic field numbering to manual field specification" msgstr "" "no se puede cambiar de la numeración automática de campos a la " "especificación de campo manual" -#: py/objstr.c:1056 py/objstr.c:1084 +#: py/objstr.c:1065 py/objstr.c:1093 msgid "tuple index out of range" msgstr "tuple index fuera de rango" -#: py/objstr.c:1072 +#: py/objstr.c:1081 msgid "attributes not supported yet" msgstr "atributos aún no soportados" -#: py/objstr.c:1080 +#: py/objstr.c:1089 msgid "" "can't switch from manual field specification to automatic field numbering" msgstr "" "no se puede cambiar de especificación de campo manual a numeración " "automática de campos" -#: py/objstr.c:1172 +#: py/objstr.c:1181 msgid "invalid format specifier" msgstr "especificador de formato inválido" -#: py/objstr.c:1193 +#: py/objstr.c:1202 msgid "sign not allowed in string format specifier" msgstr "signo no permitido en el espeficador de string format" -#: py/objstr.c:1201 +#: py/objstr.c:1210 msgid "sign not allowed with integer format specifier 'c'" msgstr "signo no permitido con el especificador integer format 'c'" -#: py/objstr.c:1260 +#: py/objstr.c:1269 #, c-format msgid "unknown format code '%c' for object of type '%s'" msgstr "codigo format desconocido '%c' para el typo de objeto '%s'" -#: py/objstr.c:1332 +#: py/objstr.c:1341 #, c-format msgid "unknown format code '%c' for object of type 'float'" msgstr "codigo format desconocido '%c' para el typo de objeto 'float'" -#: py/objstr.c:1344 +#: py/objstr.c:1353 msgid "'=' alignment not allowed in string format specifier" msgstr "'=' alineación no permitida en el especificador string format" -#: py/objstr.c:1368 +#: py/objstr.c:1377 #, c-format msgid "unknown format code '%c' for object of type 'str'" msgstr "codigo format desconocido '%c' para objeto de tipo 'str'" -#: py/objstr.c:1416 +#: py/objstr.c:1425 msgid "format requires a dict" msgstr "format requiere un dict" -#: py/objstr.c:1425 +#: py/objstr.c:1434 msgid "incomplete format key" msgstr "" -#: py/objstr.c:1483 +#: py/objstr.c:1492 msgid "incomplete format" msgstr "formato incompleto" -#: py/objstr.c:1491 +#: py/objstr.c:1500 msgid "not enough arguments for format string" msgstr "no suficientes argumentos para format string" -#: py/objstr.c:1501 +#: py/objstr.c:1510 #, c-format msgid "%%c requires int or char" msgstr "%%c requiere int o char" -#: py/objstr.c:1508 +#: py/objstr.c:1517 msgid "integer required" msgstr "Entero requerido" -#: py/objstr.c:1571 +#: py/objstr.c:1580 #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "carácter no soportado '%c' (0x%x) en índice %d" -#: py/objstr.c:1578 +#: py/objstr.c:1587 msgid "not all arguments converted during string formatting" msgstr "" "no todos los argumentos fueron convertidos durante el formato de string" -#: py/objstr.c:2103 +#: py/objstr.c:2112 msgid "can't convert to str implicitly" msgstr "no se puede convertir a str implícitamente" -#: py/objstr.c:2107 +#: py/objstr.c:2116 msgid "can't convert '%q' object to %q implicitly" msgstr "no se puede convertir el objeto '%q' a %q implícitamente" -#: py/objstrunicode.c:134 +#: py/objstrunicode.c:154 #, c-format msgid "string indices must be integers, not %s" msgstr "índices de string deben ser enteros, no %s" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 +#: py/objstrunicode.c:165 py/objstrunicode.c:184 msgid "string index out of range" msgstr "string index fuera de rango" @@ -2253,8 +2258,11 @@ msgid "timeout must be >= 0.0" msgstr "bits debe ser 8" #: shared-bindings/bleio/CharacteristicBuffer.c:79 +#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 +#: shared-bindings/displayio/Group.c:100 shared-bindings/displayio/Shape.c:69 +#: shared-bindings/displayio/Shape.c:73 #, fuzzy -msgid "buffer_size must be >= 1" +msgid "%q must be >= 1" msgstr "los buffers deben de tener la misma longitud" #: shared-bindings/bleio/CharacteristicBuffer.c:83 @@ -2417,12 +2425,6 @@ msgstr "" msgid "Command must be an int between 0 and 255" msgstr "Bytes debe estar entre 0 y 255." -#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 -#: shared-bindings/displayio/Group.c:100 -#, fuzzy -msgid "%q must be >= 1" -msgstr "los buffers deben de tener la misma longitud" - #: shared-bindings/displayio/Palette.c:91 msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgstr "color buffer deberia ser un bytearray o array de tipo 'b' o 'B'" @@ -2444,16 +2446,16 @@ msgstr "color buffer deber ser un buffer o un int" msgid "palette_index should be an int" msgstr "palette_index deberia ser un int" -#: shared-bindings/displayio/Shape.c:88 +#: shared-bindings/displayio/Shape.c:97 msgid "y should be an int" msgstr "y deberia ser un int" -#: shared-bindings/displayio/Shape.c:92 +#: shared-bindings/displayio/Shape.c:101 #, fuzzy msgid "start_x should be an int" msgstr "y deberia ser un int" -#: shared-bindings/displayio/Shape.c:96 +#: shared-bindings/displayio/Shape.c:105 #, fuzzy msgid "end_x should be an int" msgstr "y deberia ser un int" @@ -2883,95 +2885,99 @@ msgstr "" "El botón reset fue presionado mientras arrancaba CircuitPython. Presiona " "otra vez para salir del modo seguro.\n" -#, fuzzy -#~ msgid "Group must have %q at least 1" -#~ msgstr "Group debe tener size de minimo 1" +#~ msgid "busio.UART not available" +#~ msgstr "busio.UART no disponible" -#~ msgid "Baud rate too high for this SPI peripheral" -#~ msgstr "Baud rate demasiado alto para este periférico SPI" +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "No se puede aplicar los datos de anuncio. status: 0x%02x" -#~ msgid "Invalid UUID parameter" -#~ msgstr "Parámetro UUID inválido" +#, fuzzy +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "Por favor registra un issue en la siguiente URL con el contenidos de tu " +#~ "unidad de almacenamiento CIRCUITPY:\n" -#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'" -#~ msgstr "row buffer deberia ser un bytearray o array de tipo 'b' o 'B'" +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "No se pueden establecer los parámetros PPCP." -#~ msgid "row data must be a buffer" -#~ msgstr "row data debe ser un buffer" +#~ msgid "Can not apply device name in the stack." +#~ msgstr "No se puede aplicar el nombre del dispositivo en el stack." -#, fuzzy -#~ msgid "unicode_characters must be a string" -#~ msgstr "palabras clave deben ser strings" +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "No se pueden aplicar los parámetros GAP." -#~ msgid "index must be int" -#~ msgstr "indice debe ser int" +#~ msgid "Wrong number of bytes provided" +#~ msgstr "Numero erroneo de bytes dados" -#~ msgid "Can not query for the device address." -#~ msgstr "No se puede consultar la dirección del dispositivo." +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "No se puede codificar el UUID, para revisar la longitud." -#~ msgid "All PWM peripherals are in use" -#~ msgstr "Todos los periféricos PWM en uso" +#, fuzzy +#~ msgid "unpack requires a buffer of %d bytes" +#~ msgstr "Falló la asignación del buffer RX de %d bytes" -#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgid "" +#~ "enough power for the whole circuit and press reset (after ejecting " +#~ "CIRCUITPY).\n" #~ msgstr "" -#~ "Parece que nuestro código CircuitPython dejó de funcionar. Whoops!\n" +#~ "suficiente poder para todo el circuito y presiona reset (después de " +#~ "expulsar CIRCUITPY).\n" -#~ msgid "Group empty" -#~ msgstr "Group vacío" +#~ msgid "displayio is a work in progress" +#~ msgstr "displayio todavia esta en desarrollo" -#~ msgid "Wrong address length" -#~ msgstr "Longitud de address erronea" +#~ msgid "Can not add Service." +#~ msgstr "No se puede agregar el Servicio." -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "Se puede codificar el UUID en el paquete de anuncio." +#~ msgid "Invalid UUID string length" +#~ msgstr "Longitud de string UUID inválida" #~ msgid "Invalid Service type" #~ msgstr "Tipo de Servicio inválido" -#~ msgid "Invalid UUID string length" -#~ msgstr "Longitud de string UUID inválida" +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "Se puede codificar el UUID en el paquete de anuncio." -#~ msgid "Can not add Service." -#~ msgstr "No se puede agregar el Servicio." +#~ msgid "Wrong address length" +#~ msgstr "Longitud de address erronea" -#~ msgid "displayio is a work in progress" -#~ msgstr "displayio todavia esta en desarrollo" +#~ msgid "Group empty" +#~ msgstr "Group vacío" -#~ msgid "" -#~ "enough power for the whole circuit and press reset (after ejecting " -#~ "CIRCUITPY).\n" +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" #~ msgstr "" -#~ "suficiente poder para todo el circuito y presiona reset (después de " -#~ "expulsar CIRCUITPY).\n" +#~ "Parece que nuestro código CircuitPython dejó de funcionar. Whoops!\n" -#, fuzzy -#~ msgid "unpack requires a buffer of %d bytes" -#~ msgstr "Falló la asignación del buffer RX de %d bytes" +#~ msgid "All PWM peripherals are in use" +#~ msgstr "Todos los periféricos PWM en uso" -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "No se puede codificar el UUID, para revisar la longitud." +#~ msgid "Can not query for the device address." +#~ msgstr "No se puede consultar la dirección del dispositivo." -#~ msgid "Wrong number of bytes provided" -#~ msgstr "Numero erroneo de bytes dados" +#~ msgid "index must be int" +#~ msgstr "indice debe ser int" -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "No se pueden aplicar los parámetros GAP." +#, fuzzy +#~ msgid "unicode_characters must be a string" +#~ msgstr "palabras clave deben ser strings" -#~ msgid "Can not apply device name in the stack." -#~ msgstr "No se puede aplicar el nombre del dispositivo en el stack." +#~ msgid "row data must be a buffer" +#~ msgstr "row data debe ser un buffer" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "No se pueden establecer los parámetros PPCP." +#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'" +#~ msgstr "row buffer deberia ser un bytearray o array de tipo 'b' o 'B'" -#, fuzzy -#~ msgid "" -#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" -#~ msgstr "" -#~ "Por favor registra un issue en la siguiente URL con el contenidos de tu " -#~ "unidad de almacenamiento CIRCUITPY:\n" +#~ msgid "Invalid UUID parameter" +#~ msgstr "Parámetro UUID inválido" -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "No se puede aplicar los datos de anuncio. status: 0x%02x" +#~ msgid "Baud rate too high for this SPI peripheral" +#~ msgstr "Baud rate demasiado alto para este periférico SPI" -#~ msgid "busio.UART not available" -#~ msgstr "busio.UART no disponible" +#, fuzzy +#~ msgid "Group must have %q at least 1" +#~ msgstr "Group debe tener size de minimo 1" + +#, fuzzy +#~ msgid "buffer_size must be >= 1" +#~ msgstr "los buffers deben de tener la misma longitud" diff --git a/locale/fil.po b/locale/fil.po index 3adc339e675d..670b35ad35b6 100644 --- a/locale/fil.po +++ b/locale/fil.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-12 22:32-0500\n" +"POT-Creation-Date: 2019-02-14 15:42+0100\n" "PO-Revision-Date: 2018-12-20 22:15-0800\n" "Last-Translator: Timothy \n" "Language-Team: fil\n" @@ -103,11 +103,11 @@ msgstr "walang laman ang heap" msgid "syntax error in JSON" msgstr "sintaks error sa JSON" -#: extmod/modure.c:161 +#: extmod/modure.c:265 msgid "Splitting with sub-captures" msgstr "Binibiyak gamit ang sub-captures" -#: extmod/modure.c:207 +#: extmod/modure.c:428 msgid "Error in regex" msgstr "May pagkakamali sa REGEX" @@ -155,7 +155,7 @@ msgstr "script kompilasyon hindi supportado" msgid " output:\n" msgstr " output:\n" -#: main.c:166 main.c:247 +#: main.c:166 main.c:248 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -167,7 +167,7 @@ msgstr "" msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Tumatakbo sa safe mode! Awtomatikong pag re-reload ay OFF.\n" -#: main.c:170 main.c:249 +#: main.c:170 main.c:250 msgid "Auto-reload is off.\n" msgstr "Awtomatikong pag re-reload ay OFF.\n" @@ -185,13 +185,13 @@ msgid "" "Code done running. Waiting for reload.\n" msgstr "" -#: main.c:254 +#: main.c:255 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" "Pindutin ang anumang key upang pumasok sa REPL. Gamitin ang CTRL-D upang i-" "reload." -#: main.c:419 +#: main.c:420 msgid "soft reboot\n" msgstr "malambot na reboot\n" @@ -357,12 +357,12 @@ msgstr "Nabigong ilaan ang RX buffer" msgid "Could not initialize UART" msgstr "Hindi ma-initialize ang UART" -#: ports/atmel-samd/common-hal/busio/UART.c:241 +#: ports/atmel-samd/common-hal/busio/UART.c:252 #: ports/nrf/common-hal/busio/UART.c:230 msgid "No RX pin" msgstr "Walang RX pin" -#: ports/atmel-samd/common-hal/busio/UART.c:300 +#: ports/atmel-samd/common-hal/busio/UART.c:311 #: ports/nrf/common-hal/busio/UART.c:265 msgid "No TX pin" msgstr "Walang TX pin" @@ -1512,7 +1512,7 @@ msgstr "'%s' object hindi sumusuporta ng item assignment" msgid "object with buffer protocol required" msgstr "object na may buffer protocol kinakailangan" -#: py/objarray.c:413 py/objstr.c:428 py/objstrunicode.c:191 py/objtuple.c:188 +#: py/objarray.c:413 py/objstr.c:437 py/objstrunicode.c:211 py/objtuple.c:188 #: shared-bindings/nvm/ByteArray.c:85 msgid "only slices with step=1 (aka None) are supported" msgstr "ang mga slices lamang na may hakbang = 1 (aka None) ang sinusuportahan" @@ -1663,158 +1663,163 @@ msgstr "bytes value wala sa sakop" msgid "wrong number of arguments" msgstr "mali ang bilang ng argumento" -#: py/objstr.c:468 +#: py/objstr.c:414 py/objstrunicode.c:118 +#, fuzzy +msgid "offset out of bounds" +msgstr "wala sa sakop ang address" + +#: py/objstr.c:477 msgid "join expects a list of str/bytes objects consistent with self object" msgstr "" "join umaaasang may listahan ng str/bytes objects na naalinsunod sa self " "object" -#: py/objstr.c:543 py/objstr.c:648 py/objstr.c:1745 +#: py/objstr.c:552 py/objstr.c:657 py/objstr.c:1754 msgid "empty separator" msgstr "walang laman na separator" -#: py/objstr.c:642 +#: py/objstr.c:651 msgid "rsplit(None,n)" msgstr "rsplit(None,n)" -#: py/objstr.c:714 +#: py/objstr.c:723 msgid "substring not found" msgstr "substring hindi nahanap" -#: py/objstr.c:771 +#: py/objstr.c:780 msgid "start/end indices" msgstr "start/end indeks" -#: py/objstr.c:932 +#: py/objstr.c:941 msgid "bad format string" msgstr "maling format ang string" -#: py/objstr.c:954 +#: py/objstr.c:963 msgid "single '}' encountered in format string" msgstr "isang '}' nasalubong sa format string" -#: py/objstr.c:993 +#: py/objstr.c:1002 msgid "bad conversion specifier" msgstr "masamang pag convert na specifier" -#: py/objstr.c:997 +#: py/objstr.c:1006 msgid "end of format while looking for conversion specifier" msgstr "sa huli ng format habang naghahanap sa conversion specifier" -#: py/objstr.c:999 +#: py/objstr.c:1008 #, c-format msgid "unknown conversion specifier %c" msgstr "hindi alam ang conversion specifier na %c" -#: py/objstr.c:1030 +#: py/objstr.c:1039 msgid "unmatched '{' in format" msgstr "hindi tugma ang '{' sa format" -#: py/objstr.c:1037 +#: py/objstr.c:1046 msgid "expected ':' after format specifier" msgstr "umaasa ng ':' pagkatapos ng format specifier" -#: py/objstr.c:1051 +#: py/objstr.c:1060 msgid "" "can't switch from automatic field numbering to manual field specification" msgstr "" "hindi mapalitan ang awtomatikong field numbering sa manual field " "specification" -#: py/objstr.c:1056 py/objstr.c:1084 +#: py/objstr.c:1065 py/objstr.c:1093 msgid "tuple index out of range" msgstr "indeks ng tuple wala sa sakop" -#: py/objstr.c:1072 +#: py/objstr.c:1081 msgid "attributes not supported yet" msgstr "attributes hindi sinusuportahan" -#: py/objstr.c:1080 +#: py/objstr.c:1089 msgid "" "can't switch from manual field specification to automatic field numbering" msgstr "" "hindi mapalitan ang manual field specification sa awtomatikong field " "numbering" -#: py/objstr.c:1172 +#: py/objstr.c:1181 msgid "invalid format specifier" msgstr "mali ang format specifier" -#: py/objstr.c:1193 +#: py/objstr.c:1202 msgid "sign not allowed in string format specifier" msgstr "sign hindi maaring string format specifier" -#: py/objstr.c:1201 +#: py/objstr.c:1210 msgid "sign not allowed with integer format specifier 'c'" msgstr "sign hindi maari sa integer format specifier 'c'" -#: py/objstr.c:1260 +#: py/objstr.c:1269 #, c-format msgid "unknown format code '%c' for object of type '%s'" msgstr "hindi alam ang format code '%c' para sa object na ang type ay '%s'" -#: py/objstr.c:1332 +#: py/objstr.c:1341 #, c-format msgid "unknown format code '%c' for object of type 'float'" msgstr "hindi alam ang format code '%c' sa object na ang type ay 'float'" -#: py/objstr.c:1344 +#: py/objstr.c:1353 msgid "'=' alignment not allowed in string format specifier" msgstr "'=' Gindi pinapayagan ang alignment sa pag specify ng string format" -#: py/objstr.c:1368 +#: py/objstr.c:1377 #, c-format msgid "unknown format code '%c' for object of type 'str'" msgstr "hindi alam ang format ng code na '%c' para sa object ng type ay 'str'" -#: py/objstr.c:1416 +#: py/objstr.c:1425 msgid "format requires a dict" msgstr "kailangan ng format ng dict" -#: py/objstr.c:1425 +#: py/objstr.c:1434 msgid "incomplete format key" msgstr "hindi kumpleto ang format key" -#: py/objstr.c:1483 +#: py/objstr.c:1492 msgid "incomplete format" msgstr "hindi kumpleto ang format" -#: py/objstr.c:1491 +#: py/objstr.c:1500 msgid "not enough arguments for format string" msgstr "kulang sa arguments para sa format string" -#: py/objstr.c:1501 +#: py/objstr.c:1510 #, c-format msgid "%%c requires int or char" msgstr "%%c nangangailangan ng int o char" -#: py/objstr.c:1508 +#: py/objstr.c:1517 msgid "integer required" msgstr "kailangan ng int" -#: py/objstr.c:1571 +#: py/objstr.c:1580 #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "hindi sinusuportahan ang format character na '%c' (0x%x) sa index %d" -#: py/objstr.c:1578 +#: py/objstr.c:1587 msgid "not all arguments converted during string formatting" msgstr "hindi lahat ng arguments na i-convert habang string formatting" -#: py/objstr.c:2103 +#: py/objstr.c:2112 msgid "can't convert to str implicitly" msgstr "hindi ma i-convert sa string ng walang pahiwatig" -#: py/objstr.c:2107 +#: py/objstr.c:2116 msgid "can't convert '%q' object to %q implicitly" msgstr "hindi maaaring i-convert ang '%q' na bagay sa %q nang walang pahiwatig" -#: py/objstrunicode.c:134 +#: py/objstrunicode.c:154 #, c-format msgid "string indices must be integers, not %s" msgstr "ang indeks ng string ay dapat na integer, hindi %s" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 +#: py/objstrunicode.c:165 py/objstrunicode.c:184 msgid "string index out of range" msgstr "indeks ng string wala sa sakop" @@ -2258,8 +2263,11 @@ msgid "timeout must be >= 0.0" msgstr "bits ay dapat walo (8)" #: shared-bindings/bleio/CharacteristicBuffer.c:79 +#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 +#: shared-bindings/displayio/Group.c:100 shared-bindings/displayio/Shape.c:69 +#: shared-bindings/displayio/Shape.c:73 #, fuzzy -msgid "buffer_size must be >= 1" +msgid "%q must be >= 1" msgstr "aarehas na haba dapat ang buffer slices" #: shared-bindings/bleio/CharacteristicBuffer.c:83 @@ -2422,12 +2430,6 @@ msgstr "" msgid "Command must be an int between 0 and 255" msgstr "Sa gitna ng 0 o 255 dapat ang bytes." -#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 -#: shared-bindings/displayio/Group.c:100 -#, fuzzy -msgid "%q must be >= 1" -msgstr "aarehas na haba dapat ang buffer slices" - #: shared-bindings/displayio/Palette.c:91 msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgstr "ang color buffer ay dapat bytearray o array na type ‘b’ or ‘B’" @@ -2449,16 +2451,16 @@ msgstr "color buffer ay dapat buffer or int" msgid "palette_index should be an int" msgstr "palette_index ay dapat na int" -#: shared-bindings/displayio/Shape.c:88 +#: shared-bindings/displayio/Shape.c:97 msgid "y should be an int" msgstr "y ay dapat int" -#: shared-bindings/displayio/Shape.c:92 +#: shared-bindings/displayio/Shape.c:101 #, fuzzy msgid "start_x should be an int" msgstr "y ay dapat int" -#: shared-bindings/displayio/Shape.c:96 +#: shared-bindings/displayio/Shape.c:105 #, fuzzy msgid "end_x should be an int" msgstr "y ay dapat int" @@ -2889,95 +2891,99 @@ msgstr "" "Ang reset button ay pinindot habang nag boot ang CircuitPython. Pindutin " "ulit para lumabas sa safe mode.\n" -#, fuzzy -#~ msgid "Group must have %q at least 1" -#~ msgstr "Group dapat ay hindi baba sa 1 na haba" +#~ msgid "busio.UART not available" +#~ msgstr "busio.UART hindi available" -#, fuzzy -#~ msgid "palette must be displayio.Palette" -#~ msgstr "ang palette ay dapat 32 bytes ang haba" +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "Hindi ma i-apply ang advertisement data. status: 0x%02x" -#~ msgid "Invalid UUID parameter" -#~ msgstr "Mali ang UUID parameter" +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "Mag-file ng isang isyu dito gamit ang mga nilalaman ng iyong CIRCUITPY " +#~ "drive:\n" -#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'" -#~ msgstr "ang row buffer ay dapat bytearray o array na type ‘b’ or ‘B’" +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Hindi ma-set ang PPCP parameters." -#~ msgid "row data must be a buffer" -#~ msgstr "row data ay dapat na buffer" +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Hindi maaaring ma-aplay ang device name sa stack." -#, fuzzy -#~ msgid "unicode_characters must be a string" -#~ msgstr "ang keywords dapat strings" +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Hindi ma-apply ang GAP parameters." -#~ msgid "index must be int" -#~ msgstr "index ay dapat int" +#~ msgid "Wrong number of bytes provided" +#~ msgstr "Mali ang bilang ng bytes" -#~ msgid "Can not query for the device address." -#~ msgstr "Hindi maaaring mag-query para sa address ng device." +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "Hindi ma-encode UUID, para suriin ang haba." -#~ msgid "All PWM peripherals are in use" -#~ msgstr "Lahat ng PWM peripherals ay ginagamit" +#, fuzzy +#~ msgid "unpack requires a buffer of %d bytes" +#~ msgstr "Nabigong ilaan ang RX buffer ng %d bytes" -#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgid "" +#~ "enough power for the whole circuit and press reset (after ejecting " +#~ "CIRCUITPY).\n" #~ msgstr "" -#~ "Mukhang ang core CircuitPython code ay nag-crash ng malakas. Aray!\n" +#~ "ay nagbibigay ng sapat na power para sa buong circuit at i-press ang " +#~ "reset (pagkatapos i-eject ang CIRCUITPY).\n" -#~ msgid "Group empty" -#~ msgstr "Walang laman ang group" +#~ msgid "displayio is a work in progress" +#~ msgstr "displayio ay nasa gitna ng konstruksiyon" -#~ msgid "Wrong address length" -#~ msgstr "Mali ang address length" +#~ msgid "Can not add Service." +#~ msgstr "Hindi maidaragdag ang serbisyo." -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "Maaring i-encode ang UUID sa advertisement packet." +#~ msgid "Invalid UUID string length" +#~ msgstr "Mali ang UUID string length" #~ msgid "Invalid Service type" #~ msgstr "Mali ang tipo ng serbisyo" -#~ msgid "Invalid UUID string length" -#~ msgstr "Mali ang UUID string length" +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "Maaring i-encode ang UUID sa advertisement packet." -#~ msgid "Can not add Service." -#~ msgstr "Hindi maidaragdag ang serbisyo." +#~ msgid "Wrong address length" +#~ msgstr "Mali ang address length" -#~ msgid "displayio is a work in progress" -#~ msgstr "displayio ay nasa gitna ng konstruksiyon" +#~ msgid "Group empty" +#~ msgstr "Walang laman ang group" -#~ msgid "" -#~ "enough power for the whole circuit and press reset (after ejecting " -#~ "CIRCUITPY).\n" +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" #~ msgstr "" -#~ "ay nagbibigay ng sapat na power para sa buong circuit at i-press ang " -#~ "reset (pagkatapos i-eject ang CIRCUITPY).\n" +#~ "Mukhang ang core CircuitPython code ay nag-crash ng malakas. Aray!\n" -#, fuzzy -#~ msgid "unpack requires a buffer of %d bytes" -#~ msgstr "Nabigong ilaan ang RX buffer ng %d bytes" +#~ msgid "All PWM peripherals are in use" +#~ msgstr "Lahat ng PWM peripherals ay ginagamit" -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "Hindi ma-encode UUID, para suriin ang haba." +#~ msgid "Can not query for the device address." +#~ msgstr "Hindi maaaring mag-query para sa address ng device." -#~ msgid "Wrong number of bytes provided" -#~ msgstr "Mali ang bilang ng bytes" +#~ msgid "index must be int" +#~ msgstr "index ay dapat int" -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Hindi ma-apply ang GAP parameters." +#, fuzzy +#~ msgid "unicode_characters must be a string" +#~ msgstr "ang keywords dapat strings" -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Hindi maaaring ma-aplay ang device name sa stack." +#~ msgid "row data must be a buffer" +#~ msgstr "row data ay dapat na buffer" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Hindi ma-set ang PPCP parameters." +#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'" +#~ msgstr "ang row buffer ay dapat bytearray o array na type ‘b’ or ‘B’" -#~ msgid "" -#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" -#~ msgstr "" -#~ "Mag-file ng isang isyu dito gamit ang mga nilalaman ng iyong CIRCUITPY " -#~ "drive:\n" +#~ msgid "Invalid UUID parameter" +#~ msgstr "Mali ang UUID parameter" -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "Hindi ma i-apply ang advertisement data. status: 0x%02x" +#, fuzzy +#~ msgid "palette must be displayio.Palette" +#~ msgstr "ang palette ay dapat 32 bytes ang haba" -#~ msgid "busio.UART not available" -#~ msgstr "busio.UART hindi available" +#, fuzzy +#~ msgid "Group must have %q at least 1" +#~ msgstr "Group dapat ay hindi baba sa 1 na haba" + +#, fuzzy +#~ msgid "buffer_size must be >= 1" +#~ msgstr "aarehas na haba dapat ang buffer slices" diff --git a/locale/fr.po b/locale/fr.po index 674ef675e16f..d6ff47eef947 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-12 22:32-0500\n" +"POT-Creation-Date: 2019-02-14 15:42+0100\n" "PO-Revision-Date: 2018-12-23 20:05+0100\n" "Last-Translator: Pierrick Couturier \n" "Language-Team: fr\n" @@ -102,11 +102,11 @@ msgstr "'heap' vide" msgid "syntax error in JSON" msgstr "erreur de syntaxe JSON" -#: extmod/modure.c:161 +#: extmod/modure.c:265 msgid "Splitting with sub-captures" msgstr "Fractionnement avec des captures 'sub'" -#: extmod/modure.c:207 +#: extmod/modure.c:428 msgid "Error in regex" msgstr "Erreur dans l'expression régulière" @@ -154,7 +154,7 @@ msgstr "compilation de script non supporté" msgid " output:\n" msgstr " sortie:\n" -#: main.c:166 main.c:247 +#: main.c:166 main.c:248 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -166,7 +166,7 @@ msgstr "" msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Mode sans-échec. Auto-rechargement désactivé.\n" -#: main.c:170 main.c:249 +#: main.c:170 main.c:250 msgid "Auto-reload is off.\n" msgstr "Auto-rechargement désactivé.\n" @@ -184,11 +184,11 @@ msgid "" "Code done running. Waiting for reload.\n" msgstr "" -#: main.c:254 +#: main.c:255 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "Appuyez sur une touche pour entrer sur REPL ou CTRL-D pour recharger." -#: main.c:419 +#: main.c:420 msgid "soft reboot\n" msgstr "redémarrage logiciel\n" @@ -354,12 +354,12 @@ msgstr "Echec de l'allocation du tampon RX" msgid "Could not initialize UART" msgstr "L'UART n'a pu être initialisé" -#: ports/atmel-samd/common-hal/busio/UART.c:241 +#: ports/atmel-samd/common-hal/busio/UART.c:252 #: ports/nrf/common-hal/busio/UART.c:230 msgid "No RX pin" msgstr "Pas de broche RX" -#: ports/atmel-samd/common-hal/busio/UART.c:300 +#: ports/atmel-samd/common-hal/busio/UART.c:311 #: ports/nrf/common-hal/busio/UART.c:265 msgid "No TX pin" msgstr "Pas de broche TX" @@ -1509,7 +1509,7 @@ msgstr "l'objet '%s' ne supporte pas l'assignation d'éléments" msgid "object with buffer protocol required" msgstr "un objet avec un protocol de tampon est nécessaire" -#: py/objarray.c:413 py/objstr.c:428 py/objstrunicode.c:191 py/objtuple.c:188 +#: py/objarray.c:413 py/objstr.c:437 py/objstrunicode.c:211 py/objtuple.c:188 #: shared-bindings/nvm/ByteArray.c:85 msgid "only slices with step=1 (aka None) are supported" msgstr "seuls les slices avec 'step=1' (cad None) sont supportées" @@ -1661,157 +1661,162 @@ msgstr "valeur des octets hors gamme" msgid "wrong number of arguments" msgstr "mauvais nombres d'arguments" -#: py/objstr.c:468 +#: py/objstr.c:414 py/objstrunicode.c:118 +#, fuzzy +msgid "offset out of bounds" +msgstr "adresse hors limites" + +#: py/objstr.c:477 msgid "join expects a list of str/bytes objects consistent with self object" msgstr "join attend une liste d'objets str/bytes cohérent avec l'objet self" -#: py/objstr.c:543 py/objstr.c:648 py/objstr.c:1745 +#: py/objstr.c:552 py/objstr.c:657 py/objstr.c:1754 msgid "empty separator" msgstr "séparateur vide" -#: py/objstr.c:642 +#: py/objstr.c:651 msgid "rsplit(None,n)" msgstr "rsplit(None,n)" -#: py/objstr.c:714 +#: py/objstr.c:723 msgid "substring not found" msgstr "sous-chaîne non trouvée" -#: py/objstr.c:771 +#: py/objstr.c:780 msgid "start/end indices" msgstr "indices de début/fin" -#: py/objstr.c:932 +#: py/objstr.c:941 msgid "bad format string" msgstr "chaîne mal-formée" -#: py/objstr.c:954 +#: py/objstr.c:963 msgid "single '}' encountered in format string" msgstr "'}' seule rencontrée dans une chaîne de format" -#: py/objstr.c:993 +#: py/objstr.c:1002 msgid "bad conversion specifier" msgstr "mauvaise spécification de conversion" -#: py/objstr.c:997 +#: py/objstr.c:1006 msgid "end of format while looking for conversion specifier" msgstr "fin de format en cherchant une spécification de conversion" -#: py/objstr.c:999 +#: py/objstr.c:1008 #, c-format msgid "unknown conversion specifier %c" msgstr "spécification %c de conversion inconnue" -#: py/objstr.c:1030 +#: py/objstr.c:1039 msgid "unmatched '{' in format" msgstr "'{' sans correspondance dans le format" -#: py/objstr.c:1037 +#: py/objstr.c:1046 msgid "expected ':' after format specifier" msgstr "':' attendu après la spécification de format" -#: py/objstr.c:1051 +#: py/objstr.c:1060 msgid "" "can't switch from automatic field numbering to manual field specification" msgstr "" "impossible de passer d'une énumération auto des champs à une spécification " "manuelle" -#: py/objstr.c:1056 py/objstr.c:1084 +#: py/objstr.c:1065 py/objstr.c:1093 msgid "tuple index out of range" msgstr "index du tuple hors gamme" -#: py/objstr.c:1072 +#: py/objstr.c:1081 msgid "attributes not supported yet" msgstr "attribut pas encore supporté" -#: py/objstr.c:1080 +#: py/objstr.c:1089 msgid "" "can't switch from manual field specification to automatic field numbering" msgstr "" "impossible de passer d'une spécification manuelle des champs à une " "énumération auto" -#: py/objstr.c:1172 +#: py/objstr.c:1181 msgid "invalid format specifier" msgstr "spécification de format invalide" -#: py/objstr.c:1193 +#: py/objstr.c:1202 msgid "sign not allowed in string format specifier" msgstr "signe non autorisé dans les spéc. de formats de chaînes de caractères" -#: py/objstr.c:1201 +#: py/objstr.c:1210 msgid "sign not allowed with integer format specifier 'c'" msgstr "signe non autorisé avec la spéc. de format d'entier 'c'" -#: py/objstr.c:1260 +#: py/objstr.c:1269 #, c-format msgid "unknown format code '%c' for object of type '%s'" msgstr "code de format '%c' inconnu pour un objet de type '%s'" -#: py/objstr.c:1332 +#: py/objstr.c:1341 #, c-format msgid "unknown format code '%c' for object of type 'float'" msgstr "code de format '%c' inconnu pour un objet de type 'float'" -#: py/objstr.c:1344 +#: py/objstr.c:1353 msgid "'=' alignment not allowed in string format specifier" msgstr "'=' alignement non autorisé dans la spéc. de format de chaîne" -#: py/objstr.c:1368 +#: py/objstr.c:1377 #, c-format msgid "unknown format code '%c' for object of type 'str'" msgstr "code de format '%c' inconnu pour un objet de type 'str'" -#: py/objstr.c:1416 +#: py/objstr.c:1425 msgid "format requires a dict" msgstr "le format nécessite un dict" -#: py/objstr.c:1425 +#: py/objstr.c:1434 msgid "incomplete format key" msgstr "clé de format incomplète" -#: py/objstr.c:1483 +#: py/objstr.c:1492 msgid "incomplete format" msgstr "format incomplet" -#: py/objstr.c:1491 +#: py/objstr.c:1500 msgid "not enough arguments for format string" msgstr "pas assez d'arguments pour la chaîne de format" -#: py/objstr.c:1501 +#: py/objstr.c:1510 #, c-format msgid "%%c requires int or char" msgstr "%%c nécessite un entier int ou un caractère char" -#: py/objstr.c:1508 +#: py/objstr.c:1517 msgid "integer required" msgstr "entier requis" -#: py/objstr.c:1571 +#: py/objstr.c:1580 #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "caractère de format '%c' (0x%x) non supporté à l'index %d" -#: py/objstr.c:1578 +#: py/objstr.c:1587 msgid "not all arguments converted during string formatting" msgstr "" "tous les arguments n'ont pas été convertis pendant le formatage de la chaîne" -#: py/objstr.c:2103 +#: py/objstr.c:2112 msgid "can't convert to str implicitly" msgstr "impossible de convertir en str implicitement" -#: py/objstr.c:2107 +#: py/objstr.c:2116 msgid "can't convert '%q' object to %q implicitly" msgstr "impossible de convertir l'objet '%q' en '%q' implicitement" -#: py/objstrunicode.c:134 +#: py/objstrunicode.c:154 #, c-format msgid "string indices must be integers, not %s" msgstr "les indices de chaîne de caractère doivent être des entiers, pas %s" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 +#: py/objstrunicode.c:165 py/objstrunicode.c:184 msgid "string index out of range" msgstr "index de chaîne hors gamme" @@ -2258,8 +2263,11 @@ msgid "timeout must be >= 0.0" msgstr "les bits doivent être 8" #: shared-bindings/bleio/CharacteristicBuffer.c:79 +#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 +#: shared-bindings/displayio/Group.c:100 shared-bindings/displayio/Shape.c:69 +#: shared-bindings/displayio/Shape.c:73 #, fuzzy -msgid "buffer_size must be >= 1" +msgid "%q must be >= 1" msgstr "les slices de tampon doivent être de longueurs égales" #: shared-bindings/bleio/CharacteristicBuffer.c:83 @@ -2423,12 +2431,6 @@ msgstr "" msgid "Command must be an int between 0 and 255" msgstr "Les octets 'bytes' doivent être entre 0 et 255" -#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 -#: shared-bindings/displayio/Group.c:100 -#, fuzzy -msgid "%q must be >= 1" -msgstr "les slices de tampon doivent être de longueurs égales" - #: shared-bindings/displayio/Palette.c:91 #, fuzzy msgid "color buffer must be a bytearray or array of type 'b' or 'B'" @@ -2455,17 +2457,17 @@ msgstr "le tampon de couleur doit être un tampon ou un entier" msgid "palette_index should be an int" msgstr "palette_index devrait être un entier (int)'" -#: shared-bindings/displayio/Shape.c:88 +#: shared-bindings/displayio/Shape.c:97 #, fuzzy msgid "y should be an int" msgstr "y doit être un entier (int)" -#: shared-bindings/displayio/Shape.c:92 +#: shared-bindings/displayio/Shape.c:101 #, fuzzy msgid "start_x should be an int" msgstr "y doit être un entier (int)" -#: shared-bindings/displayio/Shape.c:96 +#: shared-bindings/displayio/Shape.c:105 #, fuzzy msgid "end_x should be an int" msgstr "y doit être un entier (int)" @@ -2912,101 +2914,105 @@ msgstr "" "Appuyer denouveau pour quitter de le mode sans-échec.\n" #, fuzzy -#~ msgid "Group must have %q at least 1" -#~ msgstr "Le tampon doit être de longueur au moins 1" +#~ msgid "busio.UART not available" +#~ msgstr "busio.UART n'est pas disponible" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Impossible d'appliquer les paramètres PPCP" +#~ msgid "Can not query for the device address." +#~ msgstr "Impossible d'obtenir l'adresse du périphérique" -#~ msgid "Invalid UUID parameter" -#~ msgstr "Paramètre UUID invalide" +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur." -#, fuzzy -#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'" +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Impossible d'appliquer les paramètres GAP" + +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" #~ msgstr "" -#~ "le tampon de ligne doit être un bytearray ou un tableau de type 'b' ou 'B'" +#~ "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n" -#, fuzzy -#~ msgid "row data must be a buffer" -#~ msgstr "les données de ligne doivent être un tampon" +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "" +#~ "Il semblerait que votre code CircuitPython a durement planté. Oups!\n" #, fuzzy -#~ msgid "unicode_characters must be a string" -#~ msgstr "les noms doivent être des chaînes de caractère" - -#~ msgid "index must be int" -#~ msgstr "l'index doit être un entier" +#~ msgid "Wrong number of bytes provided" +#~ msgstr "mauvais nombre d'octets fourni'" -#, fuzzy -#~ msgid "palette must be displayio.Palette" -#~ msgstr "la palette doit être une displayio.Palette" +#~ msgid "" +#~ "enough power for the whole circuit and press reset (after ejecting " +#~ "CIRCUITPY).\n" +#~ msgstr "" +#~ "assez de puissance pour l'ensemble du circuit et appuyez sur " +#~ "'reset' (après avoir éjecter CIRCUITPY).\n" #, fuzzy -#~ msgid "All PWM peripherals are in use" -#~ msgstr "Tous les périphériques PWM sont utilisés" +#~ msgid "unpack requires a buffer of %d bytes" +#~ msgstr "Echec de l'allocation de %d octets du tampon RX" -#, fuzzy -#~ msgid "value_size must be power of two" -#~ msgstr "value_size doit être une puissance de 2" +#~ msgid "Invalid Service type" +#~ msgstr "Type de service invalide" -#, fuzzy -#~ msgid "Group empty" -#~ msgstr "Groupe vide" +#~ msgid "displayio is a work in progress" +#~ msgstr "displayio est en cours de développement" -#~ msgid "Wrong address length" -#~ msgstr "Mauvaise longueur d'adresse" +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Impossible d'appliquer le nom de périphérique dans la pile" -#~ msgid "Can not add Service." -#~ msgstr "Impossible d'ajouter le Service" +#~ msgid "Invalid UUID string length" +#~ msgstr "Longeur de chaîne UUID invalide" #~ msgid "Can not add Characteristic." #~ msgstr "Impossible d'ajouter la Characteristic." -#~ msgid "Invalid UUID string length" -#~ msgstr "Longeur de chaîne UUID invalide" +#~ msgid "Can not add Service." +#~ msgstr "Impossible d'ajouter le Service" -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Impossible d'appliquer le nom de périphérique dans la pile" +#~ msgid "Wrong address length" +#~ msgstr "Mauvaise longueur d'adresse" -#~ msgid "displayio is a work in progress" -#~ msgstr "displayio est en cours de développement" +#, fuzzy +#~ msgid "Group empty" +#~ msgstr "Groupe vide" -#~ msgid "Invalid Service type" -#~ msgstr "Type de service invalide" +#, fuzzy +#~ msgid "value_size must be power of two" +#~ msgstr "value_size doit être une puissance de 2" #, fuzzy -#~ msgid "unpack requires a buffer of %d bytes" -#~ msgstr "Echec de l'allocation de %d octets du tampon RX" +#~ msgid "All PWM peripherals are in use" +#~ msgstr "Tous les périphériques PWM sont utilisés" -#~ msgid "" -#~ "enough power for the whole circuit and press reset (after ejecting " -#~ "CIRCUITPY).\n" -#~ msgstr "" -#~ "assez de puissance pour l'ensemble du circuit et appuyez sur " -#~ "'reset' (après avoir éjecter CIRCUITPY).\n" +#, fuzzy +#~ msgid "palette must be displayio.Palette" +#~ msgstr "la palette doit être une displayio.Palette" + +#~ msgid "index must be int" +#~ msgstr "l'index doit être un entier" #, fuzzy -#~ msgid "Wrong number of bytes provided" -#~ msgstr "mauvais nombre d'octets fourni'" +#~ msgid "unicode_characters must be a string" +#~ msgstr "les noms doivent être des chaînes de caractère" -#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -#~ msgstr "" -#~ "Il semblerait que votre code CircuitPython a durement planté. Oups!\n" +#, fuzzy +#~ msgid "row data must be a buffer" +#~ msgstr "les données de ligne doivent être un tampon" -#~ msgid "" -#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#, fuzzy +#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'" #~ msgstr "" -#~ "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n" +#~ "le tampon de ligne doit être un bytearray ou un tableau de type 'b' ou 'B'" -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Impossible d'appliquer les paramètres GAP" +#~ msgid "Invalid UUID parameter" +#~ msgstr "Paramètre UUID invalide" -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur." +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Impossible d'appliquer les paramètres PPCP" -#~ msgid "Can not query for the device address." -#~ msgstr "Impossible d'obtenir l'adresse du périphérique" +#, fuzzy +#~ msgid "Group must have %q at least 1" +#~ msgstr "Le tampon doit être de longueur au moins 1" #, fuzzy -#~ msgid "busio.UART not available" -#~ msgstr "busio.UART n'est pas disponible" +#~ msgid "buffer_size must be >= 1" +#~ msgstr "les slices de tampon doivent être de longueurs égales" diff --git a/locale/it_IT.po b/locale/it_IT.po index 4b797418e33e..9d9650a791c3 100644 --- a/locale/it_IT.po +++ b/locale/it_IT.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-12 22:32-0500\n" +"POT-Creation-Date: 2019-02-14 15:42+0100\n" "PO-Revision-Date: 2018-10-02 16:27+0200\n" "Last-Translator: Enrico Paganin \n" "Language-Team: \n" @@ -103,11 +103,11 @@ msgstr "heap vuoto" msgid "syntax error in JSON" msgstr "errore di sintassi nel JSON" -#: extmod/modure.c:161 +#: extmod/modure.c:265 msgid "Splitting with sub-captures" msgstr "Suddivisione con sotto-catture" -#: extmod/modure.c:207 +#: extmod/modure.c:428 msgid "Error in regex" msgstr "Errore nella regex" @@ -155,7 +155,7 @@ msgstr "compilazione dello scrip non suportata" msgid " output:\n" msgstr " output:\n" -#: main.c:166 main.c:247 +#: main.c:166 main.c:248 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -167,7 +167,7 @@ msgstr "" msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Modalità sicura in esecuzione! Auto-reload disattivato.\n" -#: main.c:170 main.c:249 +#: main.c:170 main.c:250 msgid "Auto-reload is off.\n" msgstr "Auto-reload disattivato.\n" @@ -185,12 +185,12 @@ msgid "" "Code done running. Waiting for reload.\n" msgstr "" -#: main.c:254 +#: main.c:255 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" "Premi un qualunque tasto per entrare nel REPL. Usa CTRL-D per ricaricare." -#: main.c:419 +#: main.c:420 msgid "soft reboot\n" msgstr "soft reboot\n" @@ -358,12 +358,12 @@ msgstr "Impossibile allocare buffer RX" msgid "Could not initialize UART" msgstr "Impossibile inizializzare l'UART" -#: ports/atmel-samd/common-hal/busio/UART.c:241 +#: ports/atmel-samd/common-hal/busio/UART.c:252 #: ports/nrf/common-hal/busio/UART.c:230 msgid "No RX pin" msgstr "Nessun pin RX" -#: ports/atmel-samd/common-hal/busio/UART.c:300 +#: ports/atmel-samd/common-hal/busio/UART.c:311 #: ports/nrf/common-hal/busio/UART.c:265 msgid "No TX pin" msgstr "Nessun pin TX" @@ -1509,7 +1509,7 @@ msgstr "" msgid "object with buffer protocol required" msgstr "" -#: py/objarray.c:413 py/objstr.c:428 py/objstrunicode.c:191 py/objtuple.c:188 +#: py/objarray.c:413 py/objstr.c:437 py/objstrunicode.c:211 py/objtuple.c:188 #: shared-bindings/nvm/ByteArray.c:85 msgid "only slices with step=1 (aka None) are supported" msgstr "solo slice con step=1 (aka None) sono supportate" @@ -1659,155 +1659,160 @@ msgstr "valore byte fuori intervallo" msgid "wrong number of arguments" msgstr "numero di argomenti errato" -#: py/objstr.c:468 +#: py/objstr.c:414 py/objstrunicode.c:118 +#, fuzzy +msgid "offset out of bounds" +msgstr "indirizzo fuori limite" + +#: py/objstr.c:477 msgid "join expects a list of str/bytes objects consistent with self object" msgstr "" "join prende una lista di oggetti str/byte consistenti con l'oggetto stesso" -#: py/objstr.c:543 py/objstr.c:648 py/objstr.c:1745 +#: py/objstr.c:552 py/objstr.c:657 py/objstr.c:1754 msgid "empty separator" msgstr "separatore vuoto" -#: py/objstr.c:642 +#: py/objstr.c:651 msgid "rsplit(None,n)" msgstr "" -#: py/objstr.c:714 +#: py/objstr.c:723 msgid "substring not found" msgstr "sottostringa non trovata" -#: py/objstr.c:771 +#: py/objstr.c:780 msgid "start/end indices" msgstr "" -#: py/objstr.c:932 +#: py/objstr.c:941 msgid "bad format string" msgstr "stringa di formattazione scorretta" -#: py/objstr.c:954 +#: py/objstr.c:963 msgid "single '}' encountered in format string" msgstr "'}' singolo presente nella stringa di formattazione" -#: py/objstr.c:993 +#: py/objstr.c:1002 msgid "bad conversion specifier" msgstr "specificatore di conversione scorretto" -#: py/objstr.c:997 +#: py/objstr.c:1006 msgid "end of format while looking for conversion specifier" msgstr "" -#: py/objstr.c:999 +#: py/objstr.c:1008 #, c-format msgid "unknown conversion specifier %c" msgstr "specificatore di conversione %s sconosciuto" -#: py/objstr.c:1030 +#: py/objstr.c:1039 msgid "unmatched '{' in format" msgstr "'{' spaiato nella stringa di formattazione" -#: py/objstr.c:1037 +#: py/objstr.c:1046 msgid "expected ':' after format specifier" msgstr "':' atteso dopo lo specificatore di formato" -#: py/objstr.c:1051 +#: py/objstr.c:1060 msgid "" "can't switch from automatic field numbering to manual field specification" msgstr "" -#: py/objstr.c:1056 py/objstr.c:1084 +#: py/objstr.c:1065 py/objstr.c:1093 msgid "tuple index out of range" msgstr "indice della tupla fuori intervallo" -#: py/objstr.c:1072 +#: py/objstr.c:1081 msgid "attributes not supported yet" msgstr "attributi non ancora supportati" -#: py/objstr.c:1080 +#: py/objstr.c:1089 msgid "" "can't switch from manual field specification to automatic field numbering" msgstr "" -#: py/objstr.c:1172 +#: py/objstr.c:1181 msgid "invalid format specifier" msgstr "specificatore di formato non valido" -#: py/objstr.c:1193 +#: py/objstr.c:1202 msgid "sign not allowed in string format specifier" msgstr "segno non permesso nello spcificatore di formato della stringa" -#: py/objstr.c:1201 +#: py/objstr.c:1210 msgid "sign not allowed with integer format specifier 'c'" msgstr "segno non permesso nello spcificatore di formato 'c' della stringa" -#: py/objstr.c:1260 +#: py/objstr.c:1269 #, c-format msgid "unknown format code '%c' for object of type '%s'" msgstr "codice di formattaione '%c' sconosciuto per oggetto di tipo '%s'" -#: py/objstr.c:1332 +#: py/objstr.c:1341 #, c-format msgid "unknown format code '%c' for object of type 'float'" msgstr "codice di formattazione '%c' sconosciuto per oggetto di tipo 'float'" -#: py/objstr.c:1344 +#: py/objstr.c:1353 msgid "'=' alignment not allowed in string format specifier" msgstr "" -#: py/objstr.c:1368 +#: py/objstr.c:1377 #, c-format msgid "unknown format code '%c' for object of type 'str'" msgstr "codice di formattazione '%c' sconosciuto per oggetto di tipo 'str'" -#: py/objstr.c:1416 +#: py/objstr.c:1425 msgid "format requires a dict" msgstr "la formattazione richiede un dict" -#: py/objstr.c:1425 +#: py/objstr.c:1434 msgid "incomplete format key" msgstr "" -#: py/objstr.c:1483 +#: py/objstr.c:1492 msgid "incomplete format" msgstr "formato incompleto" -#: py/objstr.c:1491 +#: py/objstr.c:1500 msgid "not enough arguments for format string" msgstr "argomenti non sufficienti per la stringa di formattazione" -#: py/objstr.c:1501 +#: py/objstr.c:1510 #, c-format msgid "%%c requires int or char" msgstr "%%c necessita di int o char" -#: py/objstr.c:1508 +#: py/objstr.c:1517 msgid "integer required" msgstr "intero richiesto" -#: py/objstr.c:1571 +#: py/objstr.c:1580 #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "carattere di formattazione '%c' (0x%x) non supportato all indice %d" -#: py/objstr.c:1578 +#: py/objstr.c:1587 msgid "not all arguments converted during string formatting" msgstr "" "non tutti gli argomenti sono stati convertiti durante la formatazione in " "stringhe" -#: py/objstr.c:2103 +#: py/objstr.c:2112 msgid "can't convert to str implicitly" msgstr "impossibile convertire a stringa implicitamente" -#: py/objstr.c:2107 +#: py/objstr.c:2116 msgid "can't convert '%q' object to %q implicitly" msgstr "impossibile convertire l'oggetto '%q' implicitamente in %q" -#: py/objstrunicode.c:134 +#: py/objstrunicode.c:154 #, c-format msgid "string indices must be integers, not %s" msgstr "indici della stringa devono essere interi, non %s" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 +#: py/objstrunicode.c:165 py/objstrunicode.c:184 msgid "string index out of range" msgstr "indice della stringa fuori intervallo" @@ -2255,8 +2260,11 @@ msgid "timeout must be >= 0.0" msgstr "i bit devono essere 8" #: shared-bindings/bleio/CharacteristicBuffer.c:79 +#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 +#: shared-bindings/displayio/Group.c:100 shared-bindings/displayio/Shape.c:69 +#: shared-bindings/displayio/Shape.c:73 #, fuzzy -msgid "buffer_size must be >= 1" +msgid "%q must be >= 1" msgstr "slice del buffer devono essere della stessa lunghezza" #: shared-bindings/bleio/CharacteristicBuffer.c:83 @@ -2419,12 +2427,6 @@ msgstr "" msgid "Command must be an int between 0 and 255" msgstr "I byte devono essere compresi tra 0 e 255" -#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 -#: shared-bindings/displayio/Group.c:100 -#, fuzzy -msgid "%q must be >= 1" -msgstr "slice del buffer devono essere della stessa lunghezza" - #: shared-bindings/displayio/Palette.c:91 msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgstr "" @@ -2448,16 +2450,16 @@ msgstr "il buffer del colore deve essere un buffer o un int" msgid "palette_index should be an int" msgstr "palette_index deve essere un int" -#: shared-bindings/displayio/Shape.c:88 +#: shared-bindings/displayio/Shape.c:97 msgid "y should be an int" msgstr "y dovrebbe essere un int" -#: shared-bindings/displayio/Shape.c:92 +#: shared-bindings/displayio/Shape.c:101 #, fuzzy msgid "start_x should be an int" msgstr "y dovrebbe essere un int" -#: shared-bindings/displayio/Shape.c:96 +#: shared-bindings/displayio/Shape.c:105 #, fuzzy msgid "end_x should be an int" msgstr "y dovrebbe essere un int" @@ -2885,93 +2887,97 @@ msgid "" "exit safe mode.\n" msgstr "" -#~ msgid "row data must be a buffer" -#~ msgstr "valori della riga devono essere un buffer" - #, fuzzy -#~ msgid "Group must have %q at least 1" -#~ msgstr "Il gruppo deve avere dimensione almeno 1" - -#~ msgid "Invalid UUID parameter" -#~ msgstr "Parametro UUID non valido" +#~ msgid "busio.UART not available" +#~ msgstr "busio.UART non ancora implementato" -#~ msgid "Group empty" -#~ msgstr "Gruppo vuoto" +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "Non è possibile codificare l'UUID, lunghezza da controllare." #, fuzzy -#~ msgid "All PWM peripherals are in use" -#~ msgstr "Tutte le periferiche SPI sono in uso" +#~ msgid "unpack requires a buffer of %d bytes" +#~ msgstr "Fallita allocazione del buffer RX di %d byte" -#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'" +#~ msgid "Invalid UUID string length" +#~ msgstr "Lunghezza della stringa UUID non valida" + +#~ msgid "" +#~ "enough power for the whole circuit and press reset (after ejecting " +#~ "CIRCUITPY).\n" #~ msgstr "" -#~ "buffer di riga deve essere un bytearray o un array di tipo 'b' o 'B'" +#~ "abbastanza potenza per l'intero circuito e premere reset (dopo aver " +#~ "espulso CIRCUITPY).\n" -#, fuzzy -#~ msgid "unicode_characters must be a string" -#~ msgstr "argomenti nominati devono essere stringhe" +#~ msgid "Can not add Service." +#~ msgstr "Non è possibile aggiungere Service." -#~ msgid "index must be int" -#~ msgstr "l'indice deve essere int" +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "È possibile codificare l'UUID nel pacchetto di advertisement." -#~ msgid "Invalid Service type" -#~ msgstr "Tipo di servizio non valido" +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Non è possibile inserire il nome del dipositivo nella lista." -#, fuzzy -#~ msgid "Wrong number of bytes provided" -#~ msgstr "numero di argomenti errato" +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Impossibile impostare i parametri PPCP." -#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgid "Can not query for the device address." +#~ msgstr "Non è possibile trovare l'indirizzo del dispositivo." + +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" #~ msgstr "" -#~ "Sembra che il codice del core di CircuitPython sia crashato malamente. " -#~ "Whoops!\n" +#~ "Ti preghiamo di compilare una issue con il contenuto del tuo drie " +#~ "CIRCUITPY:\n" -#~ msgid "Can not add Characteristic." -#~ msgstr "Non è possibile aggiungere Characteristic." +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "Impossible inserire dati advertisement. status: 0x%02x" #~ msgid "Cannot apply GAP parameters." #~ msgstr "Impossibile applicare i parametri GAP." -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "Impossible inserire dati advertisement. status: 0x%02x" +#~ msgid "Can not add Characteristic." +#~ msgstr "Non è possibile aggiungere Characteristic." -#~ msgid "" -#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" #~ msgstr "" -#~ "Ti preghiamo di compilare una issue con il contenuto del tuo drie " -#~ "CIRCUITPY:\n" - -#~ msgid "Can not query for the device address." -#~ msgstr "Non è possibile trovare l'indirizzo del dispositivo." +#~ "Sembra che il codice del core di CircuitPython sia crashato malamente. " +#~ "Whoops!\n" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Impossibile impostare i parametri PPCP." +#, fuzzy +#~ msgid "Wrong number of bytes provided" +#~ msgstr "numero di argomenti errato" -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Non è possibile inserire il nome del dipositivo nella lista." +#~ msgid "Invalid Service type" +#~ msgstr "Tipo di servizio non valido" -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "È possibile codificare l'UUID nel pacchetto di advertisement." +#~ msgid "index must be int" +#~ msgstr "l'indice deve essere int" -#~ msgid "Can not add Service." -#~ msgstr "Non è possibile aggiungere Service." +#, fuzzy +#~ msgid "unicode_characters must be a string" +#~ msgstr "argomenti nominati devono essere stringhe" -#~ msgid "" -#~ "enough power for the whole circuit and press reset (after ejecting " -#~ "CIRCUITPY).\n" +#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'" #~ msgstr "" -#~ "abbastanza potenza per l'intero circuito e premere reset (dopo aver " -#~ "espulso CIRCUITPY).\n" +#~ "buffer di riga deve essere un bytearray o un array di tipo 'b' o 'B'" -#~ msgid "Invalid UUID string length" -#~ msgstr "Lunghezza della stringa UUID non valida" +#, fuzzy +#~ msgid "All PWM peripherals are in use" +#~ msgstr "Tutte le periferiche SPI sono in uso" + +#~ msgid "Group empty" +#~ msgstr "Gruppo vuoto" + +#~ msgid "Invalid UUID parameter" +#~ msgstr "Parametro UUID non valido" #, fuzzy -#~ msgid "unpack requires a buffer of %d bytes" -#~ msgstr "Fallita allocazione del buffer RX di %d byte" +#~ msgid "Group must have %q at least 1" +#~ msgstr "Il gruppo deve avere dimensione almeno 1" -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "Non è possibile codificare l'UUID, lunghezza da controllare." +#~ msgid "row data must be a buffer" +#~ msgstr "valori della riga devono essere un buffer" #, fuzzy -#~ msgid "busio.UART not available" -#~ msgstr "busio.UART non ancora implementato" +#~ msgid "buffer_size must be >= 1" +#~ msgstr "slice del buffer devono essere della stessa lunghezza" diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 23a504f954e4..9b2b1c2655d6 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-12 22:32-0500\n" +"POT-Creation-Date: 2019-02-14 15:42+0100\n" "PO-Revision-Date: 2018-10-02 21:14-0000\n" "Last-Translator: \n" "Language-Team: \n" @@ -103,11 +103,11 @@ msgstr "heap vazia" msgid "syntax error in JSON" msgstr "erro de sintaxe no JSON" -#: extmod/modure.c:161 +#: extmod/modure.c:265 msgid "Splitting with sub-captures" msgstr "" -#: extmod/modure.c:207 +#: extmod/modure.c:428 msgid "Error in regex" msgstr "Erro no regex" @@ -155,7 +155,7 @@ msgstr "compilação de script não suportada" msgid " output:\n" msgstr " saída:\n" -#: main.c:166 main.c:247 +#: main.c:166 main.c:248 msgid "" "Auto-reload is on. Simply save files over USB to run them or enter REPL to " "disable.\n" @@ -165,7 +165,7 @@ msgstr "" msgid "Running in safe mode! Auto-reload is off.\n" msgstr "Rodando em modo seguro! Atualização automática está desligada.\n" -#: main.c:170 main.c:249 +#: main.c:170 main.c:250 msgid "Auto-reload is off.\n" msgstr "A atualização automática está desligada.\n" @@ -183,11 +183,11 @@ msgid "" "Code done running. Waiting for reload.\n" msgstr "" -#: main.c:254 +#: main.c:255 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" -#: main.c:419 +#: main.c:420 msgid "soft reboot\n" msgstr "" @@ -353,12 +353,12 @@ msgstr "Falha ao alocar buffer RX" msgid "Could not initialize UART" msgstr "Não foi possível inicializar o UART" -#: ports/atmel-samd/common-hal/busio/UART.c:241 +#: ports/atmel-samd/common-hal/busio/UART.c:252 #: ports/nrf/common-hal/busio/UART.c:230 msgid "No RX pin" msgstr "Nenhum pino RX" -#: ports/atmel-samd/common-hal/busio/UART.c:300 +#: ports/atmel-samd/common-hal/busio/UART.c:311 #: ports/nrf/common-hal/busio/UART.c:265 msgid "No TX pin" msgstr "Nenhum pino TX" @@ -1492,7 +1492,7 @@ msgstr "" msgid "object with buffer protocol required" msgstr "" -#: py/objarray.c:413 py/objstr.c:428 py/objstrunicode.c:191 py/objtuple.c:188 +#: py/objarray.c:413 py/objstr.c:437 py/objstrunicode.c:211 py/objtuple.c:188 #: shared-bindings/nvm/ByteArray.c:85 msgid "only slices with step=1 (aka None) are supported" msgstr "" @@ -1642,152 +1642,156 @@ msgstr "" msgid "wrong number of arguments" msgstr "" -#: py/objstr.c:468 +#: py/objstr.c:414 py/objstrunicode.c:118 +msgid "offset out of bounds" +msgstr "" + +#: py/objstr.c:477 msgid "join expects a list of str/bytes objects consistent with self object" msgstr "" -#: py/objstr.c:543 py/objstr.c:648 py/objstr.c:1745 +#: py/objstr.c:552 py/objstr.c:657 py/objstr.c:1754 msgid "empty separator" msgstr "" -#: py/objstr.c:642 +#: py/objstr.c:651 msgid "rsplit(None,n)" msgstr "" -#: py/objstr.c:714 +#: py/objstr.c:723 msgid "substring not found" msgstr "" -#: py/objstr.c:771 +#: py/objstr.c:780 msgid "start/end indices" msgstr "" -#: py/objstr.c:932 +#: py/objstr.c:941 msgid "bad format string" msgstr "" -#: py/objstr.c:954 +#: py/objstr.c:963 msgid "single '}' encountered in format string" msgstr "" -#: py/objstr.c:993 +#: py/objstr.c:1002 msgid "bad conversion specifier" msgstr "" -#: py/objstr.c:997 +#: py/objstr.c:1006 msgid "end of format while looking for conversion specifier" msgstr "" -#: py/objstr.c:999 +#: py/objstr.c:1008 #, c-format msgid "unknown conversion specifier %c" msgstr "" -#: py/objstr.c:1030 +#: py/objstr.c:1039 msgid "unmatched '{' in format" msgstr "" -#: py/objstr.c:1037 +#: py/objstr.c:1046 msgid "expected ':' after format specifier" msgstr "" -#: py/objstr.c:1051 +#: py/objstr.c:1060 msgid "" "can't switch from automatic field numbering to manual field specification" msgstr "" -#: py/objstr.c:1056 py/objstr.c:1084 +#: py/objstr.c:1065 py/objstr.c:1093 msgid "tuple index out of range" msgstr "" -#: py/objstr.c:1072 +#: py/objstr.c:1081 msgid "attributes not supported yet" msgstr "atributos ainda não suportados" -#: py/objstr.c:1080 +#: py/objstr.c:1089 msgid "" "can't switch from manual field specification to automatic field numbering" msgstr "" -#: py/objstr.c:1172 +#: py/objstr.c:1181 msgid "invalid format specifier" msgstr "" -#: py/objstr.c:1193 +#: py/objstr.c:1202 msgid "sign not allowed in string format specifier" msgstr "" -#: py/objstr.c:1201 +#: py/objstr.c:1210 msgid "sign not allowed with integer format specifier 'c'" msgstr "" -#: py/objstr.c:1260 +#: py/objstr.c:1269 #, c-format msgid "unknown format code '%c' for object of type '%s'" msgstr "" -#: py/objstr.c:1332 +#: py/objstr.c:1341 #, c-format msgid "unknown format code '%c' for object of type 'float'" msgstr "" -#: py/objstr.c:1344 +#: py/objstr.c:1353 msgid "'=' alignment not allowed in string format specifier" msgstr "" -#: py/objstr.c:1368 +#: py/objstr.c:1377 #, c-format msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: py/objstr.c:1416 +#: py/objstr.c:1425 msgid "format requires a dict" msgstr "" -#: py/objstr.c:1425 +#: py/objstr.c:1434 msgid "incomplete format key" msgstr "" -#: py/objstr.c:1483 +#: py/objstr.c:1492 msgid "incomplete format" msgstr "formato incompleto" -#: py/objstr.c:1491 +#: py/objstr.c:1500 msgid "not enough arguments for format string" msgstr "" -#: py/objstr.c:1501 +#: py/objstr.c:1510 #, c-format msgid "%%c requires int or char" msgstr "%%c requer int ou char" -#: py/objstr.c:1508 +#: py/objstr.c:1517 msgid "integer required" msgstr "inteiro requerido" -#: py/objstr.c:1571 +#: py/objstr.c:1580 #, c-format msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" -#: py/objstr.c:1578 +#: py/objstr.c:1587 msgid "not all arguments converted during string formatting" msgstr "" -#: py/objstr.c:2103 +#: py/objstr.c:2112 msgid "can't convert to str implicitly" msgstr "" -#: py/objstr.c:2107 +#: py/objstr.c:2116 msgid "can't convert '%q' object to %q implicitly" msgstr "" -#: py/objstrunicode.c:134 +#: py/objstrunicode.c:154 #, c-format msgid "string indices must be integers, not %s" msgstr "" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 +#: py/objstrunicode.c:165 py/objstrunicode.c:184 msgid "string index out of range" msgstr "" @@ -2222,8 +2226,11 @@ msgid "timeout must be >= 0.0" msgstr "bits devem ser 8" #: shared-bindings/bleio/CharacteristicBuffer.c:79 +#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 +#: shared-bindings/displayio/Group.c:100 shared-bindings/displayio/Shape.c:69 +#: shared-bindings/displayio/Shape.c:73 #, fuzzy -msgid "buffer_size must be >= 1" +msgid "%q must be >= 1" msgstr "buffers devem ser o mesmo tamanho" #: shared-bindings/bleio/CharacteristicBuffer.c:83 @@ -2385,12 +2392,6 @@ msgstr "" msgid "Command must be an int between 0 and 255" msgstr "Os bytes devem estar entre 0 e 255." -#: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68 -#: shared-bindings/displayio/Group.c:100 -#, fuzzy -msgid "%q must be >= 1" -msgstr "buffers devem ser o mesmo tamanho" - #: shared-bindings/displayio/Palette.c:91 msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgstr "" @@ -2412,16 +2413,16 @@ msgstr "" msgid "palette_index should be an int" msgstr "" -#: shared-bindings/displayio/Shape.c:88 +#: shared-bindings/displayio/Shape.c:97 msgid "y should be an int" msgstr "y deve ser um int" -#: shared-bindings/displayio/Shape.c:92 +#: shared-bindings/displayio/Shape.c:101 #, fuzzy msgid "start_x should be an int" msgstr "y deve ser um int" -#: shared-bindings/displayio/Shape.c:96 +#: shared-bindings/displayio/Shape.c:105 #, fuzzy msgid "end_x should be an int" msgstr "y deve ser um int" @@ -2834,57 +2835,61 @@ msgid "" "exit safe mode.\n" msgstr "" -#~ msgid "index must be int" -#~ msgstr "index deve ser int" +#~ msgid "busio.UART not available" +#~ msgstr "busio.UART não disponível" #, fuzzy -#~ msgid "Group must have %q at least 1" -#~ msgstr "Grupo deve ter tamanho pelo menos 1" +#~ msgid "All PWM peripherals are in use" +#~ msgstr "Todos os temporizadores em uso" -#~ msgid "Group empty" -#~ msgstr "Grupo vazio" +#~ msgid "Can not add Characteristic." +#~ msgstr "Não é possível adicionar Característica." -#, fuzzy -#~ msgid "unicode_characters must be a string" -#~ msgstr "heap deve ser uma lista" +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "Não é possível aplicar dados de anúncio. status: 0x%02x" -#~ msgid "Invalid UUID parameter" -#~ msgstr "Parâmetro UUID inválido" +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Não é possível aplicar parâmetros GAP." -#~ msgid "Baud rate too high for this SPI peripheral" -#~ msgstr "Taxa de transmissão muito alta para esse periférico SPI" +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Não é possível aplicar o nome do dispositivo na pilha." -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "Pode codificar o UUID no pacote de anúncios." +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Não é possível definir parâmetros PPCP." -#, fuzzy -#~ msgid "unpack requires a buffer of %d bytes" -#~ msgstr "Falha ao alocar buffer RX de %d bytes" +#~ msgid "Invalid Service type" +#~ msgstr "Tipo de serviço inválido" #~ msgid "Can not query for the device address." #~ msgstr "Não é possível consultar o endereço do dispositivo." -#~ msgid "Invalid Service type" -#~ msgstr "Tipo de serviço inválido" +#, fuzzy +#~ msgid "unpack requires a buffer of %d bytes" +#~ msgstr "Falha ao alocar buffer RX de %d bytes" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Não é possível definir parâmetros PPCP." +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "Pode codificar o UUID no pacote de anúncios." -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Não é possível aplicar o nome do dispositivo na pilha." +#~ msgid "Baud rate too high for this SPI peripheral" +#~ msgstr "Taxa de transmissão muito alta para esse periférico SPI" -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Não é possível aplicar parâmetros GAP." +#~ msgid "Invalid UUID parameter" +#~ msgstr "Parâmetro UUID inválido" -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "Não é possível aplicar dados de anúncio. status: 0x%02x" +#, fuzzy +#~ msgid "unicode_characters must be a string" +#~ msgstr "heap deve ser uma lista" -#~ msgid "Can not add Characteristic." -#~ msgstr "Não é possível adicionar Característica." +#~ msgid "Group empty" +#~ msgstr "Grupo vazio" #, fuzzy -#~ msgid "All PWM peripherals are in use" -#~ msgstr "Todos os temporizadores em uso" +#~ msgid "Group must have %q at least 1" +#~ msgstr "Grupo deve ter tamanho pelo menos 1" -#~ msgid "busio.UART not available" -#~ msgstr "busio.UART não disponível" +#~ msgid "index must be int" +#~ msgstr "index deve ser int" + +#, fuzzy +#~ msgid "buffer_size must be >= 1" +#~ msgstr "buffers devem ser o mesmo tamanho"