diff options
| author | Jeff Epler <jepler@gmail.com> | 2020-08-12 13:26:12 -0500 |
|---|---|---|
| committer | Jeff Epler <jepler@gmail.com> | 2020-08-12 13:26:12 -0500 |
| commit | 58a1361d3e36f080c6128542223202d6fcbf7845 (patch) | |
| tree | b7bdc0ac77008659deb0082b9690e7ec6ececeb1 | |
| parent | 813dcd1b732443a54cdfc8ab1b9503e4e72dac5d (diff) | |
| parent | bbac68e77c8dac0b8b20825bbf83a09a3eaf2559 (diff) | |
Merge remote-tracking branch 'origin/main' into ja-firmware-size
51 files changed, 2846 insertions, 2320 deletions
diff --git a/lib/mp-readline/readline.c b/lib/mp-readline/readline.c index 432413d50..464916ca4 100644 --- a/lib/mp-readline/readline.c +++ b/lib/mp-readline/readline.c @@ -58,6 +58,16 @@ STATIC char *str_dup_maybe(const char *str) { return s2; } +STATIC size_t count_cont_bytes(char *start, char *end) { + int count = 0; + for (char *pos = start; pos < end; pos++) { + if(UTF8_IS_CONT(*pos)) { + count++; + } + } + return count; +} + // By default assume terminal which implements VT100 commands... #ifndef MICROPY_HAL_HAS_VT100 #define MICROPY_HAL_HAS_VT100 (1) @@ -92,6 +102,7 @@ typedef struct _readline_t { int escape_seq; int hist_cur; size_t cursor_pos; + uint8_t utf8_cont_chars; char escape_seq_buf[1]; const char *prompt; } readline_t; @@ -99,7 +110,8 @@ typedef struct _readline_t { STATIC readline_t rl; int readline_process_char(int c) { - size_t last_line_len = rl.line->len; + size_t last_line_len = utf8_charlen((byte *)rl.line->buf, rl.line->len); + int cont_chars = 0; int redraw_step_back = 0; bool redraw_from_cursor = false; int redraw_step_forward = 0; @@ -178,6 +190,12 @@ int readline_process_char(int c) { int nspace = 1; #endif + // Check if we have moved into a UTF-8 continuation byte + while (UTF8_IS_CONT(rl.line->buf[rl.cursor_pos-nspace])) { + nspace++; + cont_chars++; + } + // do the backspace vstr_cut_out_bytes(rl.line, rl.cursor_pos - nspace, nspace); // set redraw parameters @@ -206,12 +224,27 @@ int readline_process_char(int c) { redraw_step_forward = compl_len; } #endif - } else if (32 <= c ) { + } else if (32 <= c) { // printable character - vstr_ins_char(rl.line, rl.cursor_pos, c); - // set redraw parameters - redraw_from_cursor = true; - redraw_step_forward = 1; + char lcp = rl.line->buf[rl.cursor_pos]; + uint8_t cont_need = 0; + if (!UTF8_IS_CONT(c)) { + // ASCII or Lead code point + rl.utf8_cont_chars = 0; + lcp = c; + }else { + rl.utf8_cont_chars += 1; + } + if (lcp >= 0xc0 && lcp < 0xf8) { + cont_need = (0xe5 >> ((lcp >> 3) & 0x6)) & 3; // From unicode.c L195 + } + vstr_ins_char(rl.line, rl.cursor_pos+rl.utf8_cont_chars, c); + // set redraw parameters if we have the entire character + if (rl.utf8_cont_chars == cont_need) { + redraw_from_cursor = true; + redraw_step_forward = rl.utf8_cont_chars+1; + cont_chars = rl.utf8_cont_chars; + } } } else if (rl.escape_seq == ESEQ_ESC) { switch (c) { @@ -237,6 +270,8 @@ up_arrow_key: #endif // up arrow if (rl.hist_cur + 1 < (int)READLINE_HIST_SIZE && MP_STATE_PORT(readline_hist)[rl.hist_cur + 1] != NULL) { + // Check for continuation characters + cont_chars = count_cont_bytes(rl.line->buf+rl.orig_line_len, rl.line->buf+rl.cursor_pos); // increase hist num rl.hist_cur += 1; // set line to history @@ -253,6 +288,8 @@ down_arrow_key: #endif // down arrow if (rl.hist_cur >= 0) { + // Check for continuation characters + cont_chars = count_cont_bytes(rl.line->buf+rl.orig_line_len, rl.line->buf+rl.cursor_pos); // decrease hist num rl.hist_cur -= 1; // set line to history @@ -272,6 +309,11 @@ right_arrow_key: // right arrow if (rl.cursor_pos < rl.line->len) { redraw_step_forward = 1; + // Check if we have moved into a UTF-8 continuation byte + while (UTF8_IS_CONT(rl.line->buf[rl.cursor_pos+redraw_step_forward]) && + rl.cursor_pos+redraw_step_forward < rl.line->len) { + redraw_step_forward++; + } } } else if (c == 'D') { #if MICROPY_REPL_EMACS_KEYS @@ -280,6 +322,11 @@ left_arrow_key: // left arrow if (rl.cursor_pos > rl.orig_line_len) { redraw_step_back = 1; + // Check if we have moved into a UTF-8 continuation byte + while (UTF8_IS_CONT(rl.line->buf[rl.cursor_pos-redraw_step_back])) { + redraw_step_back++; + cont_chars++; + } } } else if (c == 'H') { // home @@ -331,18 +378,20 @@ delete_key: // redraw command prompt, efficiently if (redraw_step_back > 0) { - mp_hal_move_cursor_back(redraw_step_back); + mp_hal_move_cursor_back(redraw_step_back-cont_chars); rl.cursor_pos -= redraw_step_back; } if (redraw_from_cursor) { - if (rl.line->len < last_line_len) { + if (utf8_charlen((byte *)rl.line->buf, rl.line->len) < last_line_len) { // erase old chars mp_hal_erase_line_from_cursor(last_line_len - rl.cursor_pos); } + // Check for continuation characters + cont_chars = count_cont_bytes(rl.line->buf+rl.cursor_pos+redraw_step_forward, rl.line->buf+rl.line->len); // draw new chars mp_hal_stdout_tx_strn(rl.line->buf + rl.cursor_pos, rl.line->len - rl.cursor_pos); // move cursor forward if needed (already moved forward by length of line, so move it back) - mp_hal_move_cursor_back(rl.line->len - (rl.cursor_pos + redraw_step_forward)); + mp_hal_move_cursor_back(rl.line->len - (rl.cursor_pos + redraw_step_forward) - cont_chars); rl.cursor_pos += redraw_step_forward; } else if (redraw_step_forward > 0) { // draw over old chars to move cursor forwards diff --git a/locale/ID.po b/locale/ID.po index d39cc055d..9a1d86d26 100644 --- a/locale/ID.po +++ b/locale/ID.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" "PO-Revision-Date: 2020-07-06 18:10+0000\n" "Last-Translator: oon arfiandwi <oon.arfiandwi@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -72,17 +72,13 @@ msgstr "" msgid "%q in use" msgstr "%q sedang digunakan" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "%q indeks di luar batas" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "indeks %q harus bilangan bulat, bukan %s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -120,42 +116,6 @@ msgstr "%q() mengambil posisi argumen %d tapi %d yang diberikan" msgid "'%q' argument required" msgstr "'%q' argumen dibutuhkan" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -206,6 +166,48 @@ msgstr "'%s' integer %d tidak dalam kisaran %d..%d" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "'%s' integer 0x%x tidak cukup didalam mask 0x%x" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "Objek '%s' tidak dapat menetapkan atribut '%q'" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "Objek '%s' tidak mendukung '%q'" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "Objek '%s' tidak mendukung penetapan item" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "Objek '%s' tidak mendukung penghapusan item" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "Objek '%s' tidak memiliki atribut '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "Objek '%s' bukan iterator" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "Objek '%s' tidak dapat dipanggil" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "'%s' objek tidak dapat diulang" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "Objek '%s' tidak dapat disubkripsikan" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "'=' perataan tidak diizinkan dalam penentu format string" @@ -880,10 +882,6 @@ msgstr "operasi I/O pada file tertutup" msgid "I2C Init Error" msgstr "Gagal Inisialisasi I2C" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1257,10 +1255,6 @@ msgstr "Tidak dapat menyambungkan ke AP" msgid "Not playing" msgstr "" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1346,6 +1340,10 @@ msgstr "Tambahkan module apapun pada filesystem\n" msgid "Polygon needs at least 3 points" msgstr "" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "" @@ -1421,8 +1419,13 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "" #: main.c -msgid "Running in safe mode! " +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Berjalan di mode aman(safe mode)! Auto-reload tidak aktif.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" msgstr "" +"Berjalan di mode aman(safe mode)! tidak menjalankan kode yang tersimpan.\n" #: shared-module/sdcardio/SDCard.c msgid "SD card CSD format not supported" @@ -1789,7 +1792,8 @@ msgid "__init__() should return None" msgstr "" #: py/objtype.c -msgid "__init__() should return None, not '%q'" +#, c-format +msgid "__init__() should return None, not '%s'" msgstr "" #: py/objobject.c @@ -1944,7 +1948,7 @@ msgstr "byte > 8 bit tidak didukung" msgid "bytes value out of range" msgstr "" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "kalibrasi keluar dari jangkauan" @@ -1976,16 +1980,47 @@ msgstr "" msgid "can't assign to expression" msgstr "tidak dapat menetapkan ke ekspresi" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" msgstr "" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "" + +#: py/obj.c +msgid "can't convert to complex" +msgstr "" + #: py/obj.c -msgid "can't convert to %q" +msgid "can't convert to float" +msgstr "" + +#: py/obj.c +msgid "can't convert to int" msgstr "" #: py/objstr.c @@ -2393,7 +2428,7 @@ msgstr "fungsi kehilangan argumen keyword '%q' yang dibutuhkan" msgid "function missing required positional argument #%d" msgstr "fungsi kehilangan argumen posisi #%d yang dibutuhkan" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "fungsi mengambil posisi argumen %d tapi %d yang diberikan" @@ -2442,7 +2477,10 @@ msgstr "lapisan (padding) tidak benar" msgid "index is out of bounds" msgstr "" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index keluar dari jangkauan" @@ -2798,7 +2836,8 @@ msgid "number of points must be at least 2" msgstr "" #: py/obj.c -msgid "object '%q' is not a tuple or list" +#, c-format +msgid "object '%s' is not a tuple or list" msgstr "" #: py/obj.c @@ -2834,7 +2873,8 @@ msgid "object not iterable" msgstr "" #: py/obj.c -msgid "object of type '%q' has no len()" +#, c-format +msgid "object of type '%s' has no len()" msgstr "" #: py/obj.c @@ -2928,9 +2968,20 @@ msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "Muncul dari PulseIn yang kosong" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" msgstr "" #: py/objint_mpz.c @@ -3087,7 +3138,12 @@ msgid "stream operation not supported" msgstr "" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" +msgid "string index out of range" +msgstr "" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" msgstr "" #: py/stream.c @@ -3099,6 +3155,10 @@ msgid "struct: cannot index" msgstr "struct: tidak bisa melakukan index" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "struct: index keluar dari jangkauan" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "struct: tidak ada fields" @@ -3168,7 +3228,7 @@ msgstr "" msgid "trapz is defined for 1D arrays of equal length" msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "" @@ -3235,7 +3295,8 @@ msgid "unknown conversion specifier %c" msgstr "" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" +#, c-format +msgid "unknown format code '%c' for object of type '%s'" msgstr "" #: py/compile.c @@ -3275,7 +3336,7 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" #: py/runtime.c -msgid "unsupported type for %q: '%q'" +msgid "unsupported type for %q: '%s'" msgstr "" #: py/runtime.c @@ -3283,7 +3344,7 @@ msgid "unsupported type for operator" msgstr "" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" +msgid "unsupported types for %q: '%s', '%s'" msgstr "" #: py/objint.c @@ -3363,49 +3424,6 @@ msgstr "" msgid "zi must be of shape (n_section, 2)" msgstr "" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "indeks %q harus bilangan bulat, bukan %s" - -#~ msgid "'%s' object cannot assign attribute '%q'" -#~ msgstr "Objek '%s' tidak dapat menetapkan atribut '%q'" - -#~ msgid "'%s' object does not support '%q'" -#~ msgstr "Objek '%s' tidak mendukung '%q'" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "Objek '%s' tidak mendukung penetapan item" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "Objek '%s' tidak mendukung penghapusan item" - -#~ msgid "'%s' object has no attribute '%q'" -#~ msgstr "Objek '%s' tidak memiliki atribut '%q'" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "Objek '%s' bukan iterator" - -#~ msgid "'%s' object is not callable" -#~ msgstr "Objek '%s' tidak dapat dipanggil" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "'%s' objek tidak dapat diulang" - -#~ msgid "'%s' object is not subscriptable" -#~ msgstr "Objek '%s' tidak dapat disubkripsikan" - -#~ msgid "Running in safe mode! Auto-reload is off.\n" -#~ msgstr "Berjalan di mode aman(safe mode)! Auto-reload tidak aktif.\n" - -#~ msgid "Running in safe mode! Not running saved code.\n" -#~ msgstr "" -#~ "Berjalan di mode aman(safe mode)! tidak menjalankan kode yang tersimpan.\n" - -#~ msgid "pop from an empty PulseIn" -#~ msgstr "Muncul dari PulseIn yang kosong" - -#~ msgid "struct: index out of range" -#~ msgstr "struct: index keluar dari jangkauan" - #~ msgid "'async for' or 'async with' outside async function" #~ msgstr "'async for' atau 'async with' di luar fungsi async" diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot index fb9869bd4..510facece 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: 2020-08-04 18:42-0500\n" +"POT-Creation-Date: 2020-08-10 12:54-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -447,6 +447,10 @@ msgstr "" msgid "Buffer length must be a multiple of 512" msgstr "" +#: ports/stm/common-hal/sdioio/SDCard.c +msgid "Buffer must be a multiple of 512 bytes" +msgstr "" + #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c msgid "Buffer must be at least length 1" msgstr "" @@ -843,7 +847,7 @@ msgid "Group full" msgstr "" #: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c -#: ports/stm/common-hal/busio/SPI.c +#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c msgid "Hardware busy, try alternative pins" msgstr "" @@ -908,6 +912,11 @@ msgstr "" msgid "Invalid %q pin" msgstr "" +#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c +#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c +msgid "Invalid %q pin selection" +msgstr "" + #: ports/stm/common-hal/analogio/AnalogIn.c msgid "Invalid ADC Unit value" msgstr "" @@ -920,24 +929,12 @@ msgstr "" msgid "Invalid DAC pin supplied" msgstr "" -#: ports/stm/common-hal/busio/I2C.c -msgid "Invalid I2C pin selection" -msgstr "" - #: ports/atmel-samd/common-hal/pulseio/PWMOut.c #: ports/cxd56/common-hal/pulseio/PWMOut.c #: ports/nrf/common-hal/pulseio/PWMOut.c shared-bindings/pulseio/PWMOut.c msgid "Invalid PWM frequency" msgstr "" -#: ports/stm/common-hal/busio/SPI.c -msgid "Invalid SPI pin selection" -msgstr "" - -#: ports/stm/common-hal/busio/UART.c -msgid "Invalid UART pin selection" -msgstr "" - #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c msgid "Invalid argument" msgstr "" @@ -1406,6 +1403,16 @@ msgstr "" msgid "SDA or SCL needs a pull up" msgstr "" +#: ports/stm/common-hal/sdioio/SDCard.c +#, c-format +msgid "SDIO GetCardInfo Error %d" +msgstr "" + +#: ports/stm/common-hal/sdioio/SDCard.c +#, c-format +msgid "SDIO Init Error %d" +msgstr "" + #: ports/stm/common-hal/busio/SPI.c msgid "SPI Init Error" msgstr "" diff --git a/locale/cs.po b/locale/cs.po index 9af10ce95..195968e20 100644 --- a/locale/cs.po +++ b/locale/cs.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" "PO-Revision-Date: 2020-05-24 03:22+0000\n" "Last-Translator: dronecz <mzuzelka@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -44,11 +44,11 @@ msgstr "" #: py/obj.c msgid " File \"%q\"" -msgstr " Soubor \"%q\"" +msgstr " Soubor \"% q\"" #: py/obj.c msgid " File \"%q\", line %d" -msgstr " Soubor \"%q\", řádek %d" +msgstr " Soubor \"% q\", řádek% d" #: main.c msgid " output:\n" @@ -57,7 +57,7 @@ msgstr " výstup:\n" #: py/objstr.c #, c-format msgid "%%c requires int or char" -msgstr "%%c vyžaduje int nebo char" +msgstr "%% c vyžaduje int nebo char" #: shared-bindings/rgbmatrix/RGBMatrix.c #, c-format @@ -72,21 +72,17 @@ msgstr "" msgid "%q in use" msgstr "%q se nyní používá" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "%q index je mimo rozsah" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "Indexy% q musí být celá čísla, nikoli% s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" -msgstr "Seznam %q musí být seznam" +msgstr "Seznam% q musí být seznam" #: shared-bindings/memorymonitor/AllocationAlarm.c msgid "%q must be >= 0" @@ -98,11 +94,11 @@ msgstr "" #: shared-bindings/memorymonitor/AllocationAlarm.c #: shared-bindings/vectorio/Circle.c shared-bindings/vectorio/Rectangle.c msgid "%q must be >= 1" -msgstr " %q musí být > = 1" +msgstr "% q musí být > = 1" #: shared-module/vectorio/Polygon.c msgid "%q must be a tuple of length 2" -msgstr " %q musí být n-tice délky 2" +msgstr "% q musí být n-tice délky 2" #: ports/atmel-samd/common-hal/sdioio/SDCard.c msgid "%q pin invalid" @@ -110,7 +106,7 @@ msgstr "" #: shared-bindings/fontio/BuiltinFont.c msgid "%q should be an int" -msgstr " %q by měl být int" +msgstr "% q by měl být int" #: py/bc.c py/objnamedtuple.c msgid "%q() takes %d positional arguments but %d were given" @@ -120,42 +116,6 @@ msgstr "" msgid "'%q' argument required" msgstr "" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -206,6 +166,48 @@ msgstr "" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "" @@ -865,10 +867,6 @@ msgstr "" msgid "I2C Init Error" msgstr "" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1239,10 +1237,6 @@ msgstr "" msgid "Not playing" msgstr "" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1328,6 +1322,10 @@ msgstr "" msgid "Polygon needs at least 3 points" msgstr "" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "" @@ -1400,7 +1398,11 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "" #: main.c -msgid "Running in safe mode! " +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" msgstr "" #: shared-module/sdcardio/SDCard.c @@ -1761,7 +1763,8 @@ msgid "__init__() should return None" msgstr "" #: py/objtype.c -msgid "__init__() should return None, not '%q'" +#, c-format +msgid "__init__() should return None, not '%s'" msgstr "" #: py/objobject.c @@ -1915,7 +1918,7 @@ msgstr "" msgid "bytes value out of range" msgstr "" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "" @@ -1947,16 +1950,47 @@ msgstr "" msgid "can't assign to expression" msgstr "" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" msgstr "" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "" + +#: py/obj.c +msgid "can't convert to complex" +msgstr "" + #: py/obj.c -msgid "can't convert to %q" +msgid "can't convert to float" +msgstr "" + +#: py/obj.c +msgid "can't convert to int" msgstr "" #: py/objstr.c @@ -2364,7 +2398,7 @@ msgstr "" msgid "function missing required positional argument #%d" msgstr "" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "" @@ -2413,7 +2447,10 @@ msgstr "" msgid "index is out of bounds" msgstr "" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "" @@ -2769,7 +2806,8 @@ msgid "number of points must be at least 2" msgstr "" #: py/obj.c -msgid "object '%q' is not a tuple or list" +#, c-format +msgid "object '%s' is not a tuple or list" msgstr "" #: py/obj.c @@ -2805,7 +2843,8 @@ msgid "object not iterable" msgstr "" #: py/obj.c -msgid "object of type '%q' has no len()" +#, c-format +msgid "object of type '%s' has no len()" msgstr "" #: py/obj.c @@ -2898,9 +2937,20 @@ msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" msgstr "" #: py/objint_mpz.c @@ -3057,7 +3107,12 @@ msgid "stream operation not supported" msgstr "" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" +msgid "string index out of range" +msgstr "" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" msgstr "" #: py/stream.c @@ -3069,6 +3124,10 @@ msgid "struct: cannot index" msgstr "" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "" @@ -3137,7 +3196,7 @@ msgstr "" msgid "trapz is defined for 1D arrays of equal length" msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "" @@ -3204,7 +3263,8 @@ msgid "unknown conversion specifier %c" msgstr "" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" +#, c-format +msgid "unknown format code '%c' for object of type '%s'" msgstr "" #: py/compile.c @@ -3244,7 +3304,7 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" #: py/runtime.c -msgid "unsupported type for %q: '%q'" +msgid "unsupported type for %q: '%s'" msgstr "" #: py/runtime.c @@ -3252,7 +3312,7 @@ msgid "unsupported type for operator" msgstr "" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" +msgid "unsupported types for %q: '%s', '%s'" msgstr "" #: py/objint.c @@ -3331,6 +3391,3 @@ msgstr "" #: extmod/ulab/code/filter/filter.c msgid "zi must be of shape (n_section, 2)" msgstr "" - -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "Indexy %q musí být celá čísla, nikoli %s" diff --git a/locale/de_DE.po b/locale/de_DE.po index 9472d3f0f..8ba5e4bd3 100644 --- a/locale/de_DE.po +++ b/locale/de_DE.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" "PO-Revision-Date: 2020-06-16 18:24+0000\n" "Last-Translator: Andreas Buchen <andreas.buchen@gmail.com>\n" "Language: de_DE\n" @@ -71,17 +71,13 @@ msgstr "" msgid "%q in use" msgstr "%q in Benutzung" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "Der Index %q befindet sich außerhalb des Bereiches" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "%q Indizes müssen Integer sein, nicht %s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -119,42 +115,6 @@ msgstr "%q() nimmt %d Argumente ohne Keyword an, aber es wurden %d angegeben" msgid "'%q' argument required" msgstr "'%q' Argument erforderlich" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -205,6 +165,48 @@ msgstr "'%s' integer %d ist nicht im Bereich %d..%d" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "'%s' Integer 0x%x passt nicht in Maske 0x%x" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "Das Objekt '%s' kann das Attribut '%q' nicht zuweisen" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "Das Objekt '%s' unterstützt '%q' nicht" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "'%s' Objekt unterstützt keine Zuweisung von Elementen" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "'%s' Objekt unterstützt das Löschen von Elementen nicht" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "'%s' Objekt hat kein Attribut '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "'%s' Objekt ist kein Iterator" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "'%s' object ist nicht aufrufbar" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "'%s' Objekt nicht iterierbar" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "'%s' Objekt hat keine '__getitem__'-Methode (not subscriptable)" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "'='-Ausrichtung ist im String-Formatbezeichner nicht zulässig" @@ -880,10 +882,6 @@ msgstr "Lese/Schreibe-operation an geschlossener Datei" msgid "I2C Init Error" msgstr "I2C-Init-Fehler" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1258,10 +1256,6 @@ msgstr "Nicht verbunden" msgid "Not playing" msgstr "Spielt nicht ab" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1356,6 +1350,10 @@ msgstr "und alle Module im Dateisystem \n" msgid "Polygon needs at least 3 points" msgstr "Polygone brauchen mindestens 3 Punkte" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "Pop aus einem leeren Ps2-Puffer" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "Der Präfixbuffer muss sich auf dem Heap befinden" @@ -1430,8 +1428,12 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "Zeileneintrag muss ein digitalio.DigitalInOut sein" #: main.c -msgid "Running in safe mode! " -msgstr "" +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Sicherheitsmodus aktiv! Automatisches Neuladen ist deaktiviert.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Sicherheitsmodus aktiv! Gespeicherter Code wird nicht ausgeführt\n" #: shared-module/sdcardio/SDCard.c msgid "SD card CSD format not supported" @@ -1818,8 +1820,9 @@ msgid "__init__() should return None" msgstr "__init__() sollte None zurückgeben" #: py/objtype.c -msgid "__init__() should return None, not '%q'" -msgstr "" +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__init__() sollte None zurückgeben, nicht '%s'" #: py/objobject.c msgid "__new__ arg must be a user-type" @@ -1972,7 +1975,7 @@ msgstr "bytes mit mehr als 8 bits werden nicht unterstützt" msgid "bytes value out of range" msgstr "Byte-Wert außerhalb des Bereichs" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "Kalibrierung ist außerhalb der Reichweite" @@ -2006,17 +2009,48 @@ msgstr "" msgid "can't assign to expression" msgstr "kann keinem Ausdruck zuweisen" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" -msgstr "" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "kann %s nicht nach complex konvertieren" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "kann %s nicht nach float konvertieren" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "kann %s nicht nach int konvertieren" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "Kann '%q' Objekt nicht implizit nach %q konvertieren" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "kann NaN nicht nach int konvertieren" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "kann Adresse nicht in int konvertieren" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "kann inf nicht nach int konvertieren" + #: py/obj.c -msgid "can't convert to %q" -msgstr "" +msgid "can't convert to complex" +msgstr "kann nicht nach complex konvertieren" + +#: py/obj.c +msgid "can't convert to float" +msgstr "kann nicht nach float konvertieren" + +#: py/obj.c +msgid "can't convert to int" +msgstr "kann nicht nach int konvertieren" #: py/objstr.c msgid "can't convert to str implicitly" @@ -2434,7 +2468,7 @@ msgstr "Funktion vermisst benötigtes Keyword-Argumente '%q'" msgid "function missing required positional argument #%d" msgstr "Funktion vermisst benötigtes Argumente ohne Keyword #%d" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "" @@ -2484,7 +2518,10 @@ msgstr "padding ist inkorrekt" msgid "index is out of bounds" msgstr "Index ist außerhalb der Grenzen" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index außerhalb der Reichweite" @@ -2847,8 +2884,9 @@ msgid "number of points must be at least 2" msgstr "Die Anzahl der Punkte muss mindestens 2 betragen" #: py/obj.c -msgid "object '%q' is not a tuple or list" -msgstr "" +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "Objekt '%s' ist weder tupel noch list" #: py/obj.c msgid "object does not support item assignment" @@ -2883,8 +2921,9 @@ msgid "object not iterable" msgstr "Objekt nicht iterierbar" #: py/obj.c -msgid "object of type '%q' has no len()" -msgstr "" +#, c-format +msgid "object of type '%s' has no len()" +msgstr "Objekt vom Typ '%s' hat keine len()" #: py/obj.c msgid "object with buffer protocol required" @@ -2979,10 +3018,21 @@ msgstr "Polygon kann nur in einem übergeordneten Element registriert werden" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" -msgstr "" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "pop von einem leeren PulseIn" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "pop von einer leeren Menge (set)" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "pop von einer leeren Liste" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "popitem(): dictionary ist leer" #: py/objint_mpz.c msgid "pow() 3rd argument cannot be 0" @@ -3140,8 +3190,13 @@ msgid "stream operation not supported" msgstr "stream operation ist nicht unterstützt" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" -msgstr "" +msgid "string index out of range" +msgstr "String index außerhalb des Bereiches" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "String indizes müssen Integer sein, nicht %s" #: py/stream.c msgid "string not supported; use bytes or bytearray" @@ -3153,6 +3208,10 @@ msgid "struct: cannot index" msgstr "struct: kann nicht indexieren" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "struct: index außerhalb gültigen Bereichs" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "struct: keine Felder" @@ -3221,7 +3280,7 @@ msgstr "zu viele Werte zum Auspacken (erwartet %d)" msgid "trapz is defined for 1D arrays of equal length" msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "Tupelindex außerhalb des Bereichs" @@ -3292,8 +3351,9 @@ msgid "unknown conversion specifier %c" msgstr "unbekannter Konvertierungs specifier %c" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" -msgstr "" +#, c-format +msgid "unknown format code '%c' for object of type '%s'" +msgstr "unbekannter Formatcode '%c' für Objekt vom Typ '%s'" #: py/compile.c msgid "unknown type" @@ -3332,16 +3392,16 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "nicht unterstütztes Formatzeichen '%c' (0x%x) bei Index %d" #: py/runtime.c -msgid "unsupported type for %q: '%q'" -msgstr "" +msgid "unsupported type for %q: '%s'" +msgstr "nicht unterstützter Type für %q: '%s'" #: py/runtime.c msgid "unsupported type for operator" msgstr "nicht unterstützter Typ für Operator" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" -msgstr "" +msgid "unsupported types for %q: '%s', '%s'" +msgstr "nicht unterstützte Typen für %q: '%s', '%s'" #: py/objint.c #, c-format @@ -3420,120 +3480,15 @@ msgstr "" msgid "zi must be of shape (n_section, 2)" msgstr "" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "%q Indizes müssen Integer sein, nicht %s" - -#~ msgid "'%s' object cannot assign attribute '%q'" -#~ msgstr "Das Objekt '%s' kann das Attribut '%q' nicht zuweisen" - -#~ msgid "'%s' object does not support '%q'" -#~ msgstr "Das Objekt '%s' unterstützt '%q' nicht" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "'%s' Objekt unterstützt keine Zuweisung von Elementen" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "'%s' Objekt unterstützt das Löschen von Elementen nicht" - -#~ msgid "'%s' object has no attribute '%q'" -#~ msgstr "'%s' Objekt hat kein Attribut '%q'" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "'%s' Objekt ist kein Iterator" - -#~ msgid "'%s' object is not callable" -#~ msgstr "'%s' object ist nicht aufrufbar" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "'%s' Objekt nicht iterierbar" - -#~ msgid "'%s' object is not subscriptable" -#~ msgstr "'%s' Objekt hat keine '__getitem__'-Methode (not subscriptable)" - -#~ msgid "Pop from an empty Ps2 buffer" -#~ msgstr "Pop aus einem leeren Ps2-Puffer" - -#~ msgid "Running in safe mode! Auto-reload is off.\n" -#~ msgstr "Sicherheitsmodus aktiv! Automatisches Neuladen ist deaktiviert.\n" - -#~ msgid "Running in safe mode! Not running saved code.\n" -#~ msgstr "Sicherheitsmodus aktiv! Gespeicherter Code wird nicht ausgeführt\n" - -#~ msgid "__init__() should return None, not '%s'" -#~ msgstr "__init__() sollte None zurückgeben, nicht '%s'" - -#~ msgid "can't convert %s to complex" -#~ msgstr "kann %s nicht nach complex konvertieren" - -#~ msgid "can't convert %s to float" -#~ msgstr "kann %s nicht nach float konvertieren" - -#~ msgid "can't convert %s to int" -#~ msgstr "kann %s nicht nach int konvertieren" - -#~ msgid "can't convert NaN to int" -#~ msgstr "kann NaN nicht nach int konvertieren" - -#~ msgid "can't convert address to int" -#~ msgstr "kann Adresse nicht in int konvertieren" - -#~ msgid "can't convert inf to int" -#~ msgstr "kann inf nicht nach int konvertieren" - -#~ msgid "can't convert to complex" -#~ msgstr "kann nicht nach complex konvertieren" - -#~ msgid "can't convert to float" -#~ msgstr "kann nicht nach float konvertieren" - -#~ msgid "can't convert to int" -#~ msgstr "kann nicht nach int konvertieren" - -#~ msgid "object '%s' is not a tuple or list" -#~ msgstr "Objekt '%s' ist weder tupel noch list" - -#~ msgid "object of type '%s' has no len()" -#~ msgstr "Objekt vom Typ '%s' hat keine len()" - -#~ msgid "pop from an empty PulseIn" -#~ msgstr "pop von einem leeren PulseIn" - -#~ msgid "pop from an empty set" -#~ msgstr "pop von einer leeren Menge (set)" - -#~ msgid "pop from empty list" -#~ msgstr "pop von einer leeren Liste" - -#~ msgid "popitem(): dictionary is empty" -#~ msgstr "popitem(): dictionary ist leer" - -#~ msgid "string index out of range" -#~ msgstr "String index außerhalb des Bereiches" - -#~ msgid "string indices must be integers, not %s" -#~ msgstr "String indizes müssen Integer sein, nicht %s" - -#~ msgid "struct: index out of range" -#~ msgstr "struct: index außerhalb gültigen Bereichs" - -#~ msgid "unknown format code '%c' for object of type '%s'" -#~ msgstr "unbekannter Formatcode '%c' für Objekt vom Typ '%s'" - -#~ msgid "unsupported type for %q: '%s'" -#~ msgstr "nicht unterstützter Type für %q: '%s'" - -#~ msgid "unsupported types for %q: '%s', '%s'" -#~ msgstr "nicht unterstützte Typen für %q: '%s', '%s'" - #~ msgid "'async for' or 'async with' outside async function" #~ msgstr "'async for' oder 'async with' außerhalb der asynchronen Funktion" -#~ msgid "PulseIn not supported on this chip" -#~ msgstr "PulseIn wird auf diesem Chip nicht unterstützt" - #~ msgid "PulseOut not supported on this chip" #~ msgstr "PulseOut wird auf diesem Chip nicht unterstützt" +#~ msgid "PulseIn not supported on this chip" +#~ msgstr "PulseIn wird auf diesem Chip nicht unterstützt" + #~ msgid "AP required" #~ msgstr "AP erforderlich" diff --git a/locale/es.po b/locale/es.po index 23aa0c932..1294473af 100644 --- a/locale/es.po +++ b/locale/es.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" -"PO-Revision-Date: 2020-08-07 15:06+0000\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" +"PO-Revision-Date: 2020-07-24 21:12+0000\n" "Last-Translator: Alvaro Figueroa <alvaro@greencore.co.cr>\n" "Language-Team: \n" "Language: es\n" @@ -75,17 +75,13 @@ msgstr "%q fallo: %d" msgid "%q in use" msgstr "%q está siendo utilizado" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "%q indice fuera de rango" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "%q indices deben ser enteros, no %s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -123,42 +119,6 @@ msgstr "%q() toma %d argumentos posicionales pero %d fueron dados" msgid "'%q' argument required" msgstr "argumento '%q' requerido" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -209,6 +169,48 @@ msgstr "'%s' entero %d no esta dentro del rango %d..%d" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "'%s' entero 0x%x no cabe en la máscara 0x%x" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "El objeto '%s' no puede asignar al atributo '%q'" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "El objeto '%s' no admite '%q'" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "el objeto '%s' no soporta la asignación de elementos" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "objeto '%s' no soporta la eliminación de elementos" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "objeto '%s' no tiene atributo '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "objeto '%s' no es un iterator" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "objeto '%s' no puede ser llamado" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "objeto '%s' no es iterable" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "el objeto '%s' no es suscriptable" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "'=' alineación no permitida en el especificador string format" @@ -227,7 +229,7 @@ msgstr "'await' fuera de la función" #: py/compile.c msgid "'await', 'async for' or 'async with' outside async function" -msgstr "'await', 'async for' o 'async with' fuera de la función async" +msgstr "" #: py/compile.c msgid "'break' outside loop" @@ -336,7 +338,7 @@ msgstr "Ya se encuentra publicando." #: shared-module/memorymonitor/AllocationAlarm.c #: shared-module/memorymonitor/AllocationSize.c msgid "Already running" -msgstr "Ya está ejecutando" +msgstr "Ya está en ejecución" #: ports/cxd56/common-hal/analogio/AnalogIn.c msgid "AnalogIn not supported on given pin" @@ -376,7 +378,7 @@ msgstr "Como máximo %d %q se puede especificar (no %d)" #: shared-module/memorymonitor/AllocationAlarm.c #, c-format msgid "Attempt to allocate %d blocks" -msgstr "Tratando de soliciar %d bloques" +msgstr "Tratando de localizar %d bloques" #: supervisor/shared/safe_mode.c msgid "Attempted heap allocation when MicroPython VM not running." @@ -881,10 +883,6 @@ msgstr "Operación I/O en archivo cerrado" msgid "I2C Init Error" msgstr "Error de inicio de I2C" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "I2SOut no disponible" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1257,10 +1255,6 @@ msgstr "No conectado" msgid "Not playing" msgstr "No reproduciendo" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1356,6 +1350,10 @@ msgstr "Además de cualquier módulo en el sistema de archivos\n" msgid "Polygon needs at least 3 points" msgstr "El polígono necesita al menos 3 puntos" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "Pop de un buffer Ps2 vacio" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "El búfer de prefijo debe estar en el montículo" @@ -1429,8 +1427,12 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "La entrada de la fila debe ser digitalio.DigitalInOut" #: main.c -msgid "Running in safe mode! " -msgstr "" +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Ejecutando en modo seguro! La auto-recarga esta deshabilitada.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Ejecutando en modo seguro! No se esta ejecutando el código guardado.\n" #: shared-module/sdcardio/SDCard.c msgid "SD card CSD format not supported" @@ -1585,8 +1587,8 @@ msgstr "" msgid "" "Timer was reserved for internal use - declare PWM pins earlier in the program" msgstr "" -"Temporizador declarado para uso interno - declare los pines de PWM más " -"temprano en el programa" +"El temporizador es utilizado para uso interno - declare los pines para PWM " +"más temprano en el programa" #: ports/atmel-samd/common-hal/audiobusio/I2SOut.c msgid "Too many channels in sample." @@ -1815,8 +1817,9 @@ msgid "__init__() should return None" msgstr "__init__() deberia devolver None" #: py/objtype.c -msgid "__init__() should return None, not '%q'" -msgstr "" +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__init__() deberia devolver None, no '%s'" #: py/objobject.c msgid "__new__ arg must be a user-type" @@ -1861,7 +1864,7 @@ msgstr "el argumento tiene un tipo erroneo" #: extmod/ulab/code/linalg/linalg.c msgid "argument must be ndarray" -msgstr "el argumento debe ser ndarray" +msgstr "" #: py/argcheck.c shared-bindings/_stage/__init__.c #: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c @@ -1969,7 +1972,7 @@ msgstr "bytes > 8 bits no soportados" msgid "bytes value out of range" msgstr "valor de bytes fuera de rango" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "calibration esta fuera de rango" @@ -2001,17 +2004,48 @@ msgstr "no se puede agregar un método a una clase ya subclasificada" msgid "can't assign to expression" msgstr "no se puede asignar a la expresión" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" -msgstr "" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "no se puede convertir %s a complejo" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "no se puede convertir %s a float" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "no se puede convertir %s a int" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "no se puede convertir el objeto '%q' a %q implícitamente" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "no se puede convertir Nan a int" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "no se puede convertir address a int" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "no se puede convertir inf en int" + #: py/obj.c -msgid "can't convert to %q" -msgstr "" +msgid "can't convert to complex" +msgstr "no se puede convertir a complejo" + +#: py/obj.c +msgid "can't convert to float" +msgstr "no se puede convertir a float" + +#: py/obj.c +msgid "can't convert to int" +msgstr "no se puede convertir a int" #: py/objstr.c msgid "can't convert to str implicitly" @@ -2425,7 +2459,7 @@ msgstr "la función requiere del argumento por palabra clave '%q'" msgid "function missing required positional argument #%d" msgstr "la función requiere del argumento posicional #%d" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "la función toma %d argumentos posicionales pero le fueron dados %d" @@ -2474,7 +2508,10 @@ msgstr "relleno (padding) incorrecto" msgid "index is out of bounds" msgstr "el índice está fuera de límites" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index fuera de rango" @@ -2836,8 +2873,9 @@ msgid "number of points must be at least 2" msgstr "el número de puntos debe ser al menos 2" #: py/obj.c -msgid "object '%q' is not a tuple or list" -msgstr "" +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "el objeto '%s' no es una tupla o lista" #: py/obj.c msgid "object does not support item assignment" @@ -2872,8 +2910,9 @@ msgid "object not iterable" msgstr "objeto no iterable" #: py/obj.c -msgid "object of type '%q' has no len()" -msgstr "" +#, c-format +msgid "object of type '%s' has no len()" +msgstr "el objeto de tipo '%s' no tiene len()" #: py/obj.c msgid "object with buffer protocol required" @@ -2965,10 +3004,21 @@ msgstr "el polígono solo se puede registrar en uno de los padres" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" -msgstr "" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "pop de un PulseIn vacío" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "pop desde un set vacío" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "pop desde una lista vacía" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "popitem(): diccionario vacío" #: py/objint_mpz.c msgid "pow() 3rd argument cannot be 0" @@ -3126,8 +3176,13 @@ msgid "stream operation not supported" msgstr "operación stream no soportada" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" -msgstr "" +msgid "string index out of range" +msgstr "string index fuera de rango" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "índices de string deben ser enteros, no %s" #: py/stream.c msgid "string not supported; use bytes or bytearray" @@ -3138,6 +3193,10 @@ msgid "struct: cannot index" msgstr "struct: no se puede indexar" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "struct: index fuera de rango" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "struct: sin campos" @@ -3205,9 +3264,9 @@ msgstr "demasiados valores para descomprimir (%d esperado)" #: extmod/ulab/code/approx/approx.c msgid "trapz is defined for 1D arrays of equal length" -msgstr "trapz está definido para arreglos 1D de tamaño igual" +msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "tuple index fuera de rango" @@ -3274,8 +3333,9 @@ msgid "unknown conversion specifier %c" msgstr "especificador de conversión %c desconocido" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" -msgstr "" +#, c-format +msgid "unknown format code '%c' for object of type '%s'" +msgstr "codigo format desconocido '%c' para el typo de objeto '%s'" #: py/compile.c msgid "unknown type" @@ -3314,16 +3374,16 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "carácter no soportado '%c' (0x%x) en índice %d" #: py/runtime.c -msgid "unsupported type for %q: '%q'" -msgstr "" +msgid "unsupported type for %q: '%s'" +msgstr "tipo no soportado para %q: '%s'" #: py/runtime.c msgid "unsupported type for operator" msgstr "tipo de operador no soportado" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" -msgstr "" +msgid "unsupported types for %q: '%s', '%s'" +msgstr "tipos no soportados para %q: '%s', '%s'" #: py/objint.c #, c-format @@ -3336,7 +3396,7 @@ msgstr "value_count debe ser > 0" #: extmod/ulab/code/linalg/linalg.c msgid "vectors must have same lengths" -msgstr "los vectores deben tener el mismo tamaño" +msgstr "" #: shared-bindings/watchdog/WatchDogTimer.c msgid "watchdog timeout must be greater than 0" @@ -3402,124 +3462,18 @@ msgstr "zi debe ser de tipo flotante" msgid "zi must be of shape (n_section, 2)" msgstr "zi debe ser una forma (n_section,2)" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "%q indices deben ser enteros, no %s" - -#~ msgid "'%s' object cannot assign attribute '%q'" -#~ msgstr "El objeto '%s' no puede asignar al atributo '%q'" - -#~ msgid "'%s' object does not support '%q'" -#~ msgstr "El objeto '%s' no admite '%q'" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "el objeto '%s' no soporta la asignación de elementos" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "objeto '%s' no soporta la eliminación de elementos" - -#~ msgid "'%s' object has no attribute '%q'" -#~ msgstr "objeto '%s' no tiene atributo '%q'" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "objeto '%s' no es un iterator" - -#~ msgid "'%s' object is not callable" -#~ msgstr "objeto '%s' no puede ser llamado" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "objeto '%s' no es iterable" - -#~ msgid "'%s' object is not subscriptable" -#~ msgstr "el objeto '%s' no es suscriptable" - -#~ msgid "Pop from an empty Ps2 buffer" -#~ msgstr "Pop de un buffer Ps2 vacio" - -#~ msgid "Running in safe mode! Auto-reload is off.\n" -#~ msgstr "Ejecutando en modo seguro! La auto-recarga esta deshabilitada.\n" - -#~ msgid "Running in safe mode! Not running saved code.\n" -#~ msgstr "" -#~ "Ejecutando en modo seguro! No se esta ejecutando el código guardado.\n" - -#~ msgid "__init__() should return None, not '%s'" -#~ msgstr "__init__() deberia devolver None, no '%s'" - -#~ msgid "can't convert %s to complex" -#~ msgstr "no se puede convertir %s a complejo" - -#~ msgid "can't convert %s to float" -#~ msgstr "no se puede convertir %s a float" - -#~ msgid "can't convert %s to int" -#~ msgstr "no se puede convertir %s a int" - -#~ msgid "can't convert NaN to int" -#~ msgstr "no se puede convertir Nan a int" - -#~ msgid "can't convert address to int" -#~ msgstr "no se puede convertir address a int" - -#~ msgid "can't convert inf to int" -#~ msgstr "no se puede convertir inf en int" - -#~ msgid "can't convert to complex" -#~ msgstr "no se puede convertir a complejo" - -#~ msgid "can't convert to float" -#~ msgstr "no se puede convertir a float" - -#~ msgid "can't convert to int" -#~ msgstr "no se puede convertir a int" - -#~ msgid "object '%s' is not a tuple or list" -#~ msgstr "el objeto '%s' no es una tupla o lista" - -#~ msgid "object of type '%s' has no len()" -#~ msgstr "el objeto de tipo '%s' no tiene len()" - -#~ msgid "pop from an empty PulseIn" -#~ msgstr "pop de un PulseIn vacío" - -#~ msgid "pop from an empty set" -#~ msgstr "pop desde un set vacío" - -#~ msgid "pop from empty list" -#~ msgstr "pop desde una lista vacía" - -#~ msgid "popitem(): dictionary is empty" -#~ msgstr "popitem(): diccionario vacío" - -#~ msgid "string index out of range" -#~ msgstr "string index fuera de rango" - -#~ msgid "string indices must be integers, not %s" -#~ msgstr "índices de string deben ser enteros, no %s" - -#~ msgid "struct: index out of range" -#~ msgstr "struct: index fuera de rango" - -#~ msgid "unknown format code '%c' for object of type '%s'" -#~ msgstr "codigo format desconocido '%c' para el typo de objeto '%s'" - -#~ msgid "unsupported type for %q: '%s'" -#~ msgstr "tipo no soportado para %q: '%s'" - -#~ msgid "unsupported types for %q: '%s', '%s'" -#~ msgstr "tipos no soportados para %q: '%s', '%s'" - #~ msgid "'%q' object is not bytes-like" #~ msgstr "el objeto '%q' no es similar a bytes" #~ msgid "'async for' or 'async with' outside async function" #~ msgstr "'async for' o 'async with' fuera de la función async" -#~ msgid "PulseIn not supported on this chip" -#~ msgstr "PulseIn no es compatible con este chip" - #~ msgid "PulseOut not supported on this chip" #~ msgstr "PulseOut no es compatible con este chip" +#~ msgid "PulseIn not supported on this chip" +#~ msgstr "PulseIn no es compatible con este chip" + #~ msgid "AP required" #~ msgstr "AP requerido" @@ -3763,8 +3717,8 @@ msgstr "zi debe ser una forma (n_section,2)" #~ "Only monochrome, indexed 8bpp, and 16bpp or greater BMPs supported: %d " #~ "bpp given" #~ msgstr "" -#~ "Solo se admiten BMP monocromos, indexados de 8bpp y 16bpp o superiores:%d " -#~ "bppdado" +#~ "Solo se admiten BMP monocromos, indexados de 8bpp y 16bpp o superiores:% " +#~ "d bppdado" #, fuzzy #~ msgid "Only slices with step=1 (aka None) are supported" diff --git a/locale/fil.po b/locale/fil.po index 619fefc9e..07c8d270e 100644 --- a/locale/fil.po +++ b/locale/fil.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" "PO-Revision-Date: 2018-12-20 22:15-0800\n" "Last-Translator: Timothy <me@timothygarcia.ca>\n" "Language-Team: fil\n" @@ -64,17 +64,13 @@ msgstr "" msgid "%q in use" msgstr "%q ay ginagamit" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "%q indeks wala sa sakop" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "%q indeks ay dapat integers, hindi %s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -115,42 +111,6 @@ msgstr "" msgid "'%q' argument required" msgstr "'%q' argument kailangan" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -201,6 +161,48 @@ msgstr "'%s' integer %d ay wala sa sakop ng %d..%d" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "'%s' integer 0x%x ay wala sa mask na sakop ng 0x%x" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "'%s' object hindi sumusuporta ng item assignment" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "'%s' object ay hindi sumusuporta sa pagtanggal ng item" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "'%s' object ay walang attribute '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "'%s' object ay hindi iterator" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "'%s' object hindi matatawag" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "'%s' object ay hindi ma i-iterable" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "'%s' object ay hindi maaaring i-subscript" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "'=' Gindi pinapayagan ang alignment sa pag specify ng string format" @@ -871,10 +873,6 @@ msgstr "I/O operasyon sa saradong file" msgid "I2C Init Error" msgstr "" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1248,10 +1246,6 @@ msgstr "Hindi maka connect sa AP" msgid "Not playing" msgstr "Hindi playing" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1340,6 +1334,10 @@ msgstr "Kasama ang kung ano pang modules na sa filesystem\n" msgid "Polygon needs at least 3 points" msgstr "" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "" @@ -1415,8 +1413,12 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "" #: main.c -msgid "Running in safe mode! " -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 +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Tumatakbo sa safe mode! Hindi tumatakbo ang nai-save na code.\n" #: shared-module/sdcardio/SDCard.c msgid "SD card CSD format not supported" @@ -1786,8 +1788,9 @@ msgid "__init__() should return None" msgstr "__init __ () dapat magbalik na None" #: py/objtype.c -msgid "__init__() should return None, not '%q'" -msgstr "" +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__init__() dapat magbalink na None, hindi '%s'" #: py/objobject.c msgid "__new__ arg must be a user-type" @@ -1941,7 +1944,7 @@ msgstr "hindi sinusuportahan ang bytes > 8 bits" msgid "bytes value out of range" msgstr "bytes value wala sa sakop" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "kalibrasion ay wala sa sakop" @@ -1974,17 +1977,48 @@ msgstr "" msgid "can't assign to expression" msgstr "hindi ma i-assign sa expression" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" -msgstr "" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "hindi ma-convert %s sa complex" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "hindi ma-convert %s sa int" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "hindi ma-convert %s sa int" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "hindi maaaring i-convert ang '%q' na bagay sa %q nang walang pahiwatig" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "hindi ma i-convert NaN sa int" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "hindi ma i-convert ang address sa INT" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "hindi ma i-convert inf sa int" + #: py/obj.c -msgid "can't convert to %q" -msgstr "" +msgid "can't convert to complex" +msgstr "hindi ma-convert sa complex" + +#: py/obj.c +msgid "can't convert to float" +msgstr "hindi ma-convert sa float" + +#: py/obj.c +msgid "can't convert to int" +msgstr "hindi ma-convert sa int" #: py/objstr.c msgid "can't convert to str implicitly" @@ -2017,7 +2051,7 @@ msgstr "hindi puede ang maraming *x" #: py/emitnative.c msgid "can't implicitly convert '%q' to 'bool'" -msgstr "hindi maaaring ma-convert ang ' %q' sa 'bool'" +msgstr "hindi maaaring ma-convert ang '% qt' sa 'bool'" #: py/emitnative.c msgid "can't load from '%q'" @@ -2401,7 +2435,7 @@ msgstr "function nangangailangan ng keyword argument '%q'" msgid "function missing required positional argument #%d" msgstr "function nangangailangan ng positional argument #%d" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "" @@ -2451,7 +2485,10 @@ msgstr "mali ang padding" msgid "index is out of bounds" msgstr "" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index wala sa sakop" @@ -2811,8 +2848,9 @@ msgid "number of points must be at least 2" msgstr "" #: py/obj.c -msgid "object '%q' is not a tuple or list" -msgstr "" +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "object '%s' ay hindi tuple o list" #: py/obj.c msgid "object does not support item assignment" @@ -2847,8 +2885,9 @@ msgid "object not iterable" msgstr "object hindi ma i-iterable" #: py/obj.c -msgid "object of type '%q' has no len()" -msgstr "" +#, c-format +msgid "object of type '%s' has no len()" +msgstr "object na type '%s' walang len()" #: py/obj.c msgid "object with buffer protocol required" @@ -2942,10 +2981,21 @@ msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" -msgstr "" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "pop mula sa walang laman na PulseIn" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "pop sa walang laman na set" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "pop galing sa walang laman na list" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "popitem(): dictionary ay walang laman" #: py/objint_mpz.c msgid "pow() 3rd argument cannot be 0" @@ -3104,8 +3154,13 @@ msgid "stream operation not supported" msgstr "stream operation hindi sinusuportahan" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" -msgstr "" +msgid "string index out of range" +msgstr "indeks ng string wala sa sakop" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "ang indeks ng string ay dapat na integer, hindi %s" #: py/stream.c msgid "string not supported; use bytes or bytearray" @@ -3116,6 +3171,10 @@ msgid "struct: cannot index" msgstr "struct: hindi ma-index" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "struct: index hindi maabot" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "struct: walang fields" @@ -3185,7 +3244,7 @@ msgstr "masyadong maraming values para i-unpact (umaasa ng %d)" msgid "trapz is defined for 1D arrays of equal length" msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "indeks ng tuple wala sa sakop" @@ -3252,8 +3311,9 @@ msgid "unknown conversion specifier %c" msgstr "hindi alam ang conversion specifier na %c" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" -msgstr "" +#, 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/compile.c msgid "unknown type" @@ -3292,16 +3352,16 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "hindi sinusuportahan ang format character na '%c' (0x%x) sa index %d" #: py/runtime.c -msgid "unsupported type for %q: '%q'" -msgstr "" +msgid "unsupported type for %q: '%s'" +msgstr "hindi sinusuportahang type para sa %q: '%s'" #: py/runtime.c msgid "unsupported type for operator" msgstr "hindi sinusuportahang type para sa operator" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" -msgstr "" +msgid "unsupported types for %q: '%s', '%s'" +msgstr "hindi sinusuportahang type para sa %q: '%s', '%s'" #: py/objint.c #, c-format @@ -3382,102 +3442,6 @@ msgstr "" msgid "zi must be of shape (n_section, 2)" msgstr "" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "%q indeks ay dapat integers, hindi %s" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "'%s' object hindi sumusuporta ng item assignment" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "'%s' object ay hindi sumusuporta sa pagtanggal ng item" - -#~ msgid "'%s' object has no attribute '%q'" -#~ msgstr "'%s' object ay walang attribute '%q'" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "'%s' object ay hindi iterator" - -#~ msgid "'%s' object is not callable" -#~ msgstr "'%s' object hindi matatawag" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "'%s' object ay hindi ma i-iterable" - -#~ msgid "'%s' object is not subscriptable" -#~ msgstr "'%s' object ay hindi maaaring i-subscript" - -#~ msgid "Running in safe mode! Auto-reload is off.\n" -#~ msgstr "Tumatakbo sa safe mode! Awtomatikong pag re-reload ay OFF.\n" - -#~ msgid "Running in safe mode! Not running saved code.\n" -#~ msgstr "Tumatakbo sa safe mode! Hindi tumatakbo ang nai-save na code.\n" - -#~ msgid "__init__() should return None, not '%s'" -#~ msgstr "__init__() dapat magbalink na None, hindi '%s'" - -#~ msgid "can't convert %s to complex" -#~ msgstr "hindi ma-convert %s sa complex" - -#~ msgid "can't convert %s to float" -#~ msgstr "hindi ma-convert %s sa int" - -#~ msgid "can't convert %s to int" -#~ msgstr "hindi ma-convert %s sa int" - -#~ msgid "can't convert NaN to int" -#~ msgstr "hindi ma i-convert NaN sa int" - -#~ msgid "can't convert address to int" -#~ msgstr "hindi ma i-convert ang address sa INT" - -#~ msgid "can't convert inf to int" -#~ msgstr "hindi ma i-convert inf sa int" - -#~ msgid "can't convert to complex" -#~ msgstr "hindi ma-convert sa complex" - -#~ msgid "can't convert to float" -#~ msgstr "hindi ma-convert sa float" - -#~ msgid "can't convert to int" -#~ msgstr "hindi ma-convert sa int" - -#~ msgid "object '%s' is not a tuple or list" -#~ msgstr "object '%s' ay hindi tuple o list" - -#~ msgid "object of type '%s' has no len()" -#~ msgstr "object na type '%s' walang len()" - -#~ msgid "pop from an empty PulseIn" -#~ msgstr "pop mula sa walang laman na PulseIn" - -#~ msgid "pop from an empty set" -#~ msgstr "pop sa walang laman na set" - -#~ msgid "pop from empty list" -#~ msgstr "pop galing sa walang laman na list" - -#~ msgid "popitem(): dictionary is empty" -#~ msgstr "popitem(): dictionary ay walang laman" - -#~ msgid "string index out of range" -#~ msgstr "indeks ng string wala sa sakop" - -#~ msgid "string indices must be integers, not %s" -#~ msgstr "ang indeks ng string ay dapat na integer, hindi %s" - -#~ msgid "struct: index out of range" -#~ msgstr "struct: index hindi maabot" - -#~ 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'" - -#~ msgid "unsupported type for %q: '%s'" -#~ msgstr "hindi sinusuportahang type para sa %q: '%s'" - -#~ msgid "unsupported types for %q: '%s', '%s'" -#~ msgstr "hindi sinusuportahang type para sa %q: '%s', '%s'" - #~ msgid "AP required" #~ msgstr "AP kailangan" diff --git a/locale/fr.po b/locale/fr.po index 08a47bb9b..f16450105 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" -"PO-Revision-Date: 2020-06-05 17:29+0000\n" -"Last-Translator: aberwag <aberwag@gmail.com>\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" +"PO-Revision-Date: 2020-07-27 21:27+0000\n" +"Last-Translator: Nathan <bonnemainsnathan@gmail.com>\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.2-dev\n" #: main.c msgid "" @@ -70,23 +70,19 @@ msgstr "" #: ports/atmel-samd/common-hal/sdioio/SDCard.c msgid "%q failure: %d" -msgstr "" +msgstr "Échec de %q : %d" #: shared-bindings/microcontroller/Pin.c msgid "%q in use" msgstr "%q utilisé" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "index %q hors gamme" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "les indices %q doivent être des entiers, pas %s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -94,7 +90,7 @@ msgstr "La liste %q doit être une liste" #: shared-bindings/memorymonitor/AllocationAlarm.c msgid "%q must be >= 0" -msgstr "" +msgstr "%q doit être >= 0" #: shared-bindings/_bleio/CharacteristicBuffer.c #: shared-bindings/_bleio/PacketBuffer.c shared-bindings/displayio/Group.c @@ -110,7 +106,7 @@ msgstr "%q doit être un tuple de longueur 2" #: ports/atmel-samd/common-hal/sdioio/SDCard.c msgid "%q pin invalid" -msgstr "" +msgstr "PIN %q invalide" #: shared-bindings/fontio/BuiltinFont.c msgid "%q should be an int" @@ -124,42 +120,6 @@ msgstr "%q() prend %d arguments positionnels mais %d ont été donnés" msgid "'%q' argument required" msgstr "'%q' argument requis" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -210,6 +170,48 @@ msgstr "'%s' l'entier %d n'est pas dans la gamme %d..%d" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "'%s' l'entier 0x%x ne correspond pas au masque 0x%x" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "L'objet '%s' ne peut pas attribuer '%q'" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "L'objet '%s' ne prend pas en charge '%q'" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "l'objet '%s' ne supporte pas l'assignation d'éléments" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "l'objet '%s' ne supporte pas la suppression d'éléments" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "l'objet '%s' n'a pas d'attribut '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "l'objet '%s' n'est pas un itérateur" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "l'objet '%s' n'est pas appelable" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "l'objet '%s' n'est pas itérable" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "l'objet '%s' n'est pas sous-scriptable" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "'=' alignement non autorisé dans la spéc. de format de chaîne" @@ -240,7 +242,7 @@ msgstr "'continue' en dehors d'une boucle" #: py/objgenerator.c msgid "'coroutine' object is not an iterator" -msgstr "" +msgstr "L'objet « coroutine » n'est pas un itérateur" #: py/compile.c msgid "'data' requires at least 2 arguments" @@ -335,7 +337,7 @@ msgstr "S'annonce déjà." #: shared-module/memorymonitor/AllocationAlarm.c #: shared-module/memorymonitor/AllocationSize.c msgid "Already running" -msgstr "" +msgstr "Déjà en cours d'exécution" #: ports/cxd56/common-hal/analogio/AnalogIn.c msgid "AnalogIn not supported on given pin" @@ -376,7 +378,7 @@ msgstr "Au plus %d %q peut être spécifié (pas %d)" #: shared-module/memorymonitor/AllocationAlarm.c #, c-format msgid "Attempt to allocate %d blocks" -msgstr "" +msgstr "Tentative d'allocation de %d blocs" #: supervisor/shared/safe_mode.c msgid "Attempted heap allocation when MicroPython VM not running." @@ -460,7 +462,7 @@ msgstr "La longueur du tampon %d est trop grande. Il doit être inférieur à %d #: ports/atmel-samd/common-hal/sdioio/SDCard.c #: ports/cxd56/common-hal/sdioio/SDCard.c shared-module/sdcardio/SDCard.c msgid "Buffer length must be a multiple of 512" -msgstr "" +msgstr "La longueur de la mémoire tampon doit être un multiple de 512" #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c msgid "Buffer must be at least length 1" @@ -631,11 +633,11 @@ msgstr "Code brut corrompu" #: ports/cxd56/common-hal/gnss/GNSS.c msgid "Could not initialize GNSS" -msgstr "" +msgstr "Impossible d'initialiser GNSS" #: ports/cxd56/common-hal/sdioio/SDCard.c msgid "Could not initialize SDCard" -msgstr "" +msgstr "Impossible d'initialiser la carte SD" #: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c msgid "Could not initialize UART" @@ -885,10 +887,6 @@ msgstr "opération d'E/S sur un fichier fermé" msgid "I2C Init Error" msgstr "Erreur d'initialisation I2C" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -929,7 +927,7 @@ msgstr "Erreur interne #%d" #: shared-bindings/sdioio/SDCard.c msgid "Invalid %q" -msgstr "" +msgstr "%q invalide" #: ports/atmel-samd/common-hal/audiobusio/I2SOut.c #: ports/atmel-samd/common-hal/audiobusio/PDMIn.c @@ -1145,7 +1143,7 @@ msgstr "Doit fournir une broche MISO ou MOSI" #: ports/stm/common-hal/busio/SPI.c msgid "Must provide SCK pin" -msgstr "" +msgstr "Vous devez fournir un code PIN SCK" #: shared-bindings/rgbmatrix/RGBMatrix.c #, c-format @@ -1261,10 +1259,6 @@ msgstr "Non connecté" msgid "Not playing" msgstr "Ne joue pas" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1363,6 +1357,10 @@ msgstr "Ainsi que tout autre module présent sur le système de fichiers\n" msgid "Polygon needs at least 3 points" msgstr "Polygone a besoin d’au moins 3 points" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "Pop à partir d'un tampon Ps2 vide" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "Le tampon de préfixe doit être sur le tas" @@ -1435,12 +1433,16 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "L'entrée de ligne 'Row' doit être un digitalio.DigitalInOut" #: main.c -msgid "Running in safe mode! " -msgstr "" +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Mode sans-échec ! Auto-chargement désactivé.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Mode sans-échec ! Le code sauvegardé n'est pas éxecuté.\n" #: shared-module/sdcardio/SDCard.c msgid "SD card CSD format not supported" -msgstr "" +msgstr "Le format de carte SD CSD n'est pas pris en charge" #: ports/atmel-samd/common-hal/busio/I2C.c #: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c @@ -1514,7 +1516,7 @@ msgstr "Fournissez au moins une broche UART" #: shared-bindings/gnss/GNSS.c msgid "System entry must be gnss.SatelliteSystem" -msgstr "" +msgstr "L'entrée du système doit être gnss.SatelliteSystem" #: ports/stm/common-hal/microcontroller/Processor.c msgid "Temperature read timed out" @@ -1822,8 +1824,9 @@ msgid "__init__() should return None" msgstr "__init__() doit retourner None" #: py/objtype.c -msgid "__init__() should return None, not '%q'" -msgstr "" +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__init__() doit retourner None, pas '%s'" #: py/objobject.c msgid "__new__ arg must be a user-type" @@ -1976,7 +1979,7 @@ msgstr "octets > 8 bits non supporté" msgid "bytes value out of range" msgstr "valeur des octets hors bornes" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "étalonnage hors bornes" @@ -2009,17 +2012,48 @@ msgstr "" msgid "can't assign to expression" msgstr "ne peut pas assigner à une expression" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" -msgstr "" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "ne peut convertir %s en nombre complexe" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "ne peut convertir %s en nombre à virgule flottante 'float'" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "ne peut convertir %s en entier 'int'" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "impossible de convertir l'objet '%q' en '%q' implicitement" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "on ne peut convertir NaN en entier 'int'" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "ne peut convertir l'adresse en entier 'int'" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "on ne peut convertir l'infini 'inf' en entier 'int'" + #: py/obj.c -msgid "can't convert to %q" -msgstr "" +msgid "can't convert to complex" +msgstr "ne peut convertir en nombre complexe" + +#: py/obj.c +msgid "can't convert to float" +msgstr "ne peut convertir en nombre à virgule flottante 'float'" + +#: py/obj.c +msgid "can't convert to int" +msgstr "ne peut convertir en entier 'int'" #: py/objstr.c msgid "can't convert to str implicitly" @@ -2075,7 +2109,7 @@ msgstr "" #: shared-module/sdcardio/SDCard.c msgid "can't set 512 block size" -msgstr "" +msgstr "impossible de définir une taille de bloc de 512" #: py/objnamedtuple.c msgid "can't set attribute" @@ -2212,7 +2246,7 @@ msgstr "n'a pas pu inverser la matrice Vandermonde" #: shared-module/sdcardio/SDCard.c msgid "couldn't determine SD card version" -msgstr "" +msgstr "impossible de déterminer la version de la carte SD" #: extmod/ulab/code/approx/approx.c msgid "data must be iterable" @@ -2442,7 +2476,7 @@ msgstr "il manque l'argument nommé obligatoire '%q'" msgid "function missing required positional argument #%d" msgstr "il manque l'argument positionnel obligatoire #%d" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "la fonction prend %d argument(s) positionnels mais %d ont été donné(s)" @@ -2491,7 +2525,10 @@ msgstr "espacement incorrect" msgid "index is out of bounds" msgstr "l'index est hors limites" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index hors gamme" @@ -2780,7 +2817,7 @@ msgstr "compte de décalage négatif" #: shared-module/sdcardio/SDCard.c msgid "no SD card" -msgstr "" +msgstr "pas de carte SD" #: py/vm.c msgid "no active exception to reraise" @@ -2805,7 +2842,7 @@ msgstr "pas de broche de réinitialisation disponible" #: shared-module/sdcardio/SDCard.c msgid "no response from SD card" -msgstr "" +msgstr "pas de réponse de la carte SD" #: py/runtime.c msgid "no such attribute" @@ -2854,8 +2891,9 @@ msgid "number of points must be at least 2" msgstr "le nombre de points doit être d'au moins 2" #: py/obj.c -msgid "object '%q' is not a tuple or list" -msgstr "" +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "l'objet '%s' n'est pas un tuple ou une liste" #: py/obj.c msgid "object does not support item assignment" @@ -2890,8 +2928,9 @@ msgid "object not iterable" msgstr "objet non itérable" #: py/obj.c -msgid "object of type '%q' has no len()" -msgstr "" +#, c-format +msgid "object of type '%s' has no len()" +msgstr "l'objet de type '%s' n'a pas de len()" #: py/obj.c msgid "object with buffer protocol required" @@ -2986,10 +3025,21 @@ msgstr "le polygone ne peut être enregistré que dans un parent" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" -msgstr "" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "'pop' d'une entrée PulseIn vide" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "'pop' d'un ensemble set vide" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "'pop' d'une liste vide" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "popitem() : dictionnaire vide" #: py/objint_mpz.c msgid "pow() 3rd argument cannot be 0" @@ -3147,8 +3197,13 @@ msgid "stream operation not supported" msgstr "opération de flux non supportée" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" -msgstr "" +msgid "string index out of range" +msgstr "index de chaîne hors gamme" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "les indices de chaîne de caractères doivent être des entiers, pas %s" #: py/stream.c msgid "string not supported; use bytes or bytearray" @@ -3160,6 +3215,10 @@ msgid "struct: cannot index" msgstr "struct : indexage impossible" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "struct : index hors limites" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "struct : aucun champs" @@ -3228,7 +3287,7 @@ msgstr "trop de valeur à dégrouper (%d attendues)" msgid "trapz is defined for 1D arrays of equal length" msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "index du tuple hors gamme" @@ -3295,8 +3354,9 @@ msgid "unknown conversion specifier %c" msgstr "spécification %c de conversion inconnue" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" -msgstr "" +#, 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/compile.c msgid "unknown type" @@ -3335,16 +3395,16 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "caractère de format '%c' (0x%x) non supporté à l'index %d" #: py/runtime.c -msgid "unsupported type for %q: '%q'" -msgstr "" +msgid "unsupported type for %q: '%s'" +msgstr "type non supporté pour %q : '%s'" #: py/runtime.c msgid "unsupported type for operator" msgstr "type non supporté pour l'opérateur" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" -msgstr "" +msgid "unsupported types for %q: '%s', '%s'" +msgstr "type non supporté pour %q : '%s', '%s'" #: py/objint.c #, c-format @@ -3423,121 +3483,15 @@ msgstr "" msgid "zi must be of shape (n_section, 2)" msgstr "" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "les indices %q doivent être des entiers, pas %s" - -#~ msgid "'%s' object cannot assign attribute '%q'" -#~ msgstr "L'objet '%s' ne peut pas attribuer '%q'" - -#~ msgid "'%s' object does not support '%q'" -#~ msgstr "L'objet '%s' ne prend pas en charge '%q'" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "l'objet '%s' ne supporte pas l'assignation d'éléments" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "l'objet '%s' ne supporte pas la suppression d'éléments" - -#~ msgid "'%s' object has no attribute '%q'" -#~ msgstr "l'objet '%s' n'a pas d'attribut '%q'" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "l'objet '%s' n'est pas un itérateur" - -#~ msgid "'%s' object is not callable" -#~ msgstr "l'objet '%s' n'est pas appelable" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "l'objet '%s' n'est pas itérable" - -#~ msgid "'%s' object is not subscriptable" -#~ msgstr "l'objet '%s' n'est pas sous-scriptable" - -#~ msgid "Pop from an empty Ps2 buffer" -#~ msgstr "Pop à partir d'un tampon Ps2 vide" - -#~ msgid "Running in safe mode! Auto-reload is off.\n" -#~ msgstr "Mode sans-échec ! Auto-chargement désactivé.\n" - -#~ msgid "Running in safe mode! Not running saved code.\n" -#~ msgstr "Mode sans-échec ! Le code sauvegardé n'est pas éxecuté.\n" - -#~ msgid "__init__() should return None, not '%s'" -#~ msgstr "__init__() doit retourner None, pas '%s'" - -#~ msgid "can't convert %s to complex" -#~ msgstr "ne peut convertir %s en nombre complexe" - -#~ msgid "can't convert %s to float" -#~ msgstr "ne peut convertir %s en nombre à virgule flottante 'float'" - -#~ msgid "can't convert %s to int" -#~ msgstr "ne peut convertir %s en entier 'int'" - -#~ msgid "can't convert NaN to int" -#~ msgstr "on ne peut convertir NaN en entier 'int'" - -#~ msgid "can't convert address to int" -#~ msgstr "ne peut convertir l'adresse en entier 'int'" - -#~ msgid "can't convert inf to int" -#~ msgstr "on ne peut convertir l'infini 'inf' en entier 'int'" - -#~ msgid "can't convert to complex" -#~ msgstr "ne peut convertir en nombre complexe" - -#~ msgid "can't convert to float" -#~ msgstr "ne peut convertir en nombre à virgule flottante 'float'" - -#~ msgid "can't convert to int" -#~ msgstr "ne peut convertir en entier 'int'" - -#~ msgid "object '%s' is not a tuple or list" -#~ msgstr "l'objet '%s' n'est pas un tuple ou une liste" - -#~ msgid "object of type '%s' has no len()" -#~ msgstr "l'objet de type '%s' n'a pas de len()" - -#~ msgid "pop from an empty PulseIn" -#~ msgstr "'pop' d'une entrée PulseIn vide" - -#~ msgid "pop from an empty set" -#~ msgstr "'pop' d'un ensemble set vide" - -#~ msgid "pop from empty list" -#~ msgstr "'pop' d'une liste vide" - -#~ msgid "popitem(): dictionary is empty" -#~ msgstr "popitem() : dictionnaire vide" - -#~ msgid "string index out of range" -#~ msgstr "index de chaîne hors gamme" - -#~ msgid "string indices must be integers, not %s" -#~ msgstr "" -#~ "les indices de chaîne de caractères doivent être des entiers, pas %s" - -#~ msgid "struct: index out of range" -#~ msgstr "struct : index hors limites" - -#~ msgid "unknown format code '%c' for object of type '%s'" -#~ msgstr "code de format '%c' inconnu pour un objet de type '%s'" - -#~ msgid "unsupported type for %q: '%s'" -#~ msgstr "type non supporté pour %q : '%s'" - -#~ msgid "unsupported types for %q: '%s', '%s'" -#~ msgstr "type non supporté pour %q : '%s', '%s'" - #~ msgid "'async for' or 'async with' outside async function" #~ msgstr "'async for' ou 'async with' sans fonction asynchrone extérieure" -#~ msgid "PulseIn not supported on this chip" -#~ msgstr "PulseIn non pris en charge sur cette puce" - #~ msgid "PulseOut not supported on this chip" #~ msgstr "PulseOut non pris en charge sur cette puce" +#~ msgid "PulseIn not supported on this chip" +#~ msgstr "PulseIn non pris en charge sur cette puce" + #~ msgid "AP required" #~ msgstr "'AP' requis" diff --git a/locale/hi.po b/locale/hi.po index 956248fd3..79b974803 100644 --- a/locale/hi.po +++ b/locale/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -65,16 +65,12 @@ msgstr "" msgid "%q in use" msgstr "" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "" #: py/obj.c -msgid "%q indices must be integers, not %q" +msgid "%q indices must be integers, not %s" msgstr "" #: shared-bindings/vectorio/Polygon.c @@ -113,42 +109,6 @@ msgstr "" msgid "'%q' argument required" msgstr "" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -199,6 +159,48 @@ msgstr "" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "" @@ -858,10 +860,6 @@ msgstr "" msgid "I2C Init Error" msgstr "" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1232,10 +1230,6 @@ msgstr "" msgid "Not playing" msgstr "" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1321,6 +1315,10 @@ msgstr "" msgid "Polygon needs at least 3 points" msgstr "" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "" @@ -1393,7 +1391,11 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "" #: main.c -msgid "Running in safe mode! " +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" msgstr "" #: shared-module/sdcardio/SDCard.c @@ -1754,7 +1756,8 @@ msgid "__init__() should return None" msgstr "" #: py/objtype.c -msgid "__init__() should return None, not '%q'" +#, c-format +msgid "__init__() should return None, not '%s'" msgstr "" #: py/objobject.c @@ -1908,7 +1911,7 @@ msgstr "" msgid "bytes value out of range" msgstr "" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "" @@ -1940,16 +1943,47 @@ msgstr "" msgid "can't assign to expression" msgstr "" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" msgstr "" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "" + +#: py/obj.c +msgid "can't convert to complex" +msgstr "" + #: py/obj.c -msgid "can't convert to %q" +msgid "can't convert to float" +msgstr "" + +#: py/obj.c +msgid "can't convert to int" msgstr "" #: py/objstr.c @@ -2357,7 +2391,7 @@ msgstr "" msgid "function missing required positional argument #%d" msgstr "" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "" @@ -2406,7 +2440,10 @@ msgstr "" msgid "index is out of bounds" msgstr "" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "" @@ -2762,7 +2799,8 @@ msgid "number of points must be at least 2" msgstr "" #: py/obj.c -msgid "object '%q' is not a tuple or list" +#, c-format +msgid "object '%s' is not a tuple or list" msgstr "" #: py/obj.c @@ -2798,7 +2836,8 @@ msgid "object not iterable" msgstr "" #: py/obj.c -msgid "object of type '%q' has no len()" +#, c-format +msgid "object of type '%s' has no len()" msgstr "" #: py/obj.c @@ -2891,9 +2930,20 @@ msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" msgstr "" #: py/objint_mpz.c @@ -3050,7 +3100,12 @@ msgid "stream operation not supported" msgstr "" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" +msgid "string index out of range" +msgstr "" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" msgstr "" #: py/stream.c @@ -3062,6 +3117,10 @@ msgid "struct: cannot index" msgstr "" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "" @@ -3130,7 +3189,7 @@ msgstr "" msgid "trapz is defined for 1D arrays of equal length" msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "" @@ -3197,7 +3256,8 @@ msgid "unknown conversion specifier %c" msgstr "" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" +#, c-format +msgid "unknown format code '%c' for object of type '%s'" msgstr "" #: py/compile.c @@ -3237,7 +3297,7 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" #: py/runtime.c -msgid "unsupported type for %q: '%q'" +msgid "unsupported type for %q: '%s'" msgstr "" #: py/runtime.c @@ -3245,7 +3305,7 @@ msgid "unsupported type for operator" msgstr "" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" +msgid "unsupported types for %q: '%s', '%s'" msgstr "" #: py/objint.c diff --git a/locale/it_IT.po b/locale/it_IT.po index 8f6c006aa..3862d382f 100644 --- a/locale/it_IT.po +++ b/locale/it_IT.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" "PO-Revision-Date: 2018-10-02 16:27+0200\n" "Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n" "Language-Team: \n" @@ -64,17 +64,13 @@ msgstr "" msgid "%q in use" msgstr "%q in uso" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "indice %q fuori intervallo" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "gli indici %q devono essere interi, non %s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -114,42 +110,6 @@ msgstr "%q() prende %d argomenti posizionali ma ne sono stati forniti %d" msgid "'%q' argument required" msgstr "'%q' argomento richiesto" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -200,6 +160,48 @@ msgstr "intero '%s' non è nell'intervallo %d..%d" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "intero '%s' non è nell'intervallo %d..%d" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "oggeto '%s' non supporta assengnamento di item" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "oggeto '%s' non supporta eliminamento di item" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "l'oggetto '%s' non ha l'attributo '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "l'oggetto '%s' non è un iteratore" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "oggeto '%s' non è chiamabile" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "l'oggetto '%s' non è iterabile" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "oggeto '%s' non è " + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "aligniamento '=' non è permesso per il specificatore formato string" @@ -871,10 +873,6 @@ msgstr "operazione I/O su file chiuso" msgid "I2C Init Error" msgstr "" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1252,10 +1250,6 @@ msgstr "Impossible connettersi all'AP" msgid "Not playing" msgstr "In pausa" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1350,6 +1344,10 @@ msgstr "Imposssibile rimontare il filesystem" msgid "Polygon needs at least 3 points" msgstr "" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "" @@ -1424,8 +1422,12 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "" #: main.c -msgid "Running in safe mode! " -msgstr "" +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Modalità sicura in esecuzione! Auto-reload disattivato.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Modalità sicura in esecuzione! Codice salvato non in esecuzione.\n" #: shared-module/sdcardio/SDCard.c msgid "SD card CSD format not supported" @@ -1789,8 +1791,9 @@ msgid "__init__() should return None" msgstr "__init__() deve ritornare None" #: py/objtype.c -msgid "__init__() should return None, not '%q'" -msgstr "" +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__init__() deve ritornare None, non '%s'" #: py/objobject.c msgid "__new__ arg must be a user-type" @@ -1946,7 +1949,7 @@ msgstr "byte > 8 bit non supportati" msgid "bytes value out of range" msgstr "valore byte fuori intervallo" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "la calibrazione è fuori intervallo" @@ -1979,17 +1982,48 @@ msgstr "" msgid "can't assign to expression" msgstr "impossibile assegnare all'espressione" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" -msgstr "" +#: py/obj.c +#, fuzzy, c-format +msgid "can't convert %s to complex" +msgstr "non è possibile convertire a complex" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "non è possibile convertire %s a float" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "non è possibile convertire %s a int" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "impossibile convertire l'oggetto '%q' implicitamente in %q" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "impossibile convertire NaN in int" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "impossible convertire indirizzo in int" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "impossibile convertire inf in int" + #: py/obj.c -msgid "can't convert to %q" -msgstr "" +msgid "can't convert to complex" +msgstr "non è possibile convertire a complex" + +#: py/obj.c +msgid "can't convert to float" +msgstr "non è possibile convertire a float" + +#: py/obj.c +msgid "can't convert to int" +msgstr "non è possibile convertire a int" #: py/objstr.c msgid "can't convert to str implicitly" @@ -2402,7 +2436,7 @@ msgstr "argomento nominato '%q' mancante alla funzione" msgid "function missing required positional argument #%d" msgstr "mancante il #%d argomento posizonale obbligatorio della funzione" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "" @@ -2452,7 +2486,10 @@ msgstr "padding incorretto" msgid "index is out of bounds" msgstr "" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "indice fuori intervallo" @@ -2816,8 +2853,9 @@ msgid "number of points must be at least 2" msgstr "" #: py/obj.c -msgid "object '%q' is not a tuple or list" -msgstr "" +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "oggetto '%s' non è una tupla o una lista" #: py/obj.c msgid "object does not support item assignment" @@ -2852,8 +2890,9 @@ msgid "object not iterable" msgstr "oggetto non iterabile" #: py/obj.c -msgid "object of type '%q' has no len()" -msgstr "" +#, c-format +msgid "object of type '%s' has no len()" +msgstr "l'oggetto di tipo '%s' non implementa len()" #: py/obj.c msgid "object with buffer protocol required" @@ -2949,10 +2988,21 @@ msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" -msgstr "" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "pop sun un PulseIn vuoto" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "pop da un set vuoto" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "pop da una lista vuota" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "popitem(): il dizionario è vuoto" #: py/objint_mpz.c msgid "pow() 3rd argument cannot be 0" @@ -3111,8 +3161,13 @@ msgid "stream operation not supported" msgstr "operazione di stream non supportata" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" -msgstr "" +msgid "string index out of range" +msgstr "indice della stringa fuori intervallo" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "indici della stringa devono essere interi, non %s" #: py/stream.c msgid "string not supported; use bytes or bytearray" @@ -3123,6 +3178,10 @@ msgid "struct: cannot index" msgstr "struct: impossibile indicizzare" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "struct: indice fuori intervallo" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "struct: nessun campo" @@ -3192,7 +3251,7 @@ msgstr "troppi valori da scompattare (%d attesi)" msgid "trapz is defined for 1D arrays of equal length" msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "indice della tupla fuori intervallo" @@ -3259,8 +3318,9 @@ msgid "unknown conversion specifier %c" msgstr "specificatore di conversione %s sconosciuto" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" -msgstr "" +#, c-format +msgid "unknown format code '%c' for object of type '%s'" +msgstr "codice di formattaione '%c' sconosciuto per oggetto di tipo '%s'" #: py/compile.c msgid "unknown type" @@ -3299,16 +3359,16 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "carattere di formattazione '%c' (0x%x) non supportato all indice %d" #: py/runtime.c -msgid "unsupported type for %q: '%q'" -msgstr "" +msgid "unsupported type for %q: '%s'" +msgstr "tipo non supportato per %q: '%s'" #: py/runtime.c msgid "unsupported type for operator" msgstr "tipo non supportato per l'operando" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" -msgstr "" +msgid "unsupported types for %q: '%s', '%s'" +msgstr "tipi non supportati per %q: '%s', '%s'" #: py/objint.c #, c-format @@ -3389,103 +3449,6 @@ msgstr "" msgid "zi must be of shape (n_section, 2)" msgstr "" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "gli indici %q devono essere interi, non %s" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "oggeto '%s' non supporta assengnamento di item" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "oggeto '%s' non supporta eliminamento di item" - -#~ msgid "'%s' object has no attribute '%q'" -#~ msgstr "l'oggetto '%s' non ha l'attributo '%q'" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "l'oggetto '%s' non è un iteratore" - -#~ msgid "'%s' object is not callable" -#~ msgstr "oggeto '%s' non è chiamabile" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "l'oggetto '%s' non è iterabile" - -#~ msgid "'%s' object is not subscriptable" -#~ msgstr "oggeto '%s' non è " - -#~ msgid "Running in safe mode! Auto-reload is off.\n" -#~ msgstr "Modalità sicura in esecuzione! Auto-reload disattivato.\n" - -#~ msgid "Running in safe mode! Not running saved code.\n" -#~ msgstr "Modalità sicura in esecuzione! Codice salvato non in esecuzione.\n" - -#~ msgid "__init__() should return None, not '%s'" -#~ msgstr "__init__() deve ritornare None, non '%s'" - -#, fuzzy -#~ msgid "can't convert %s to complex" -#~ msgstr "non è possibile convertire a complex" - -#~ msgid "can't convert %s to float" -#~ msgstr "non è possibile convertire %s a float" - -#~ msgid "can't convert %s to int" -#~ msgstr "non è possibile convertire %s a int" - -#~ msgid "can't convert NaN to int" -#~ msgstr "impossibile convertire NaN in int" - -#~ msgid "can't convert address to int" -#~ msgstr "impossible convertire indirizzo in int" - -#~ msgid "can't convert inf to int" -#~ msgstr "impossibile convertire inf in int" - -#~ msgid "can't convert to complex" -#~ msgstr "non è possibile convertire a complex" - -#~ msgid "can't convert to float" -#~ msgstr "non è possibile convertire a float" - -#~ msgid "can't convert to int" -#~ msgstr "non è possibile convertire a int" - -#~ msgid "object '%s' is not a tuple or list" -#~ msgstr "oggetto '%s' non è una tupla o una lista" - -#~ msgid "object of type '%s' has no len()" -#~ msgstr "l'oggetto di tipo '%s' non implementa len()" - -#~ msgid "pop from an empty PulseIn" -#~ msgstr "pop sun un PulseIn vuoto" - -#~ msgid "pop from an empty set" -#~ msgstr "pop da un set vuoto" - -#~ msgid "pop from empty list" -#~ msgstr "pop da una lista vuota" - -#~ msgid "popitem(): dictionary is empty" -#~ msgstr "popitem(): il dizionario è vuoto" - -#~ msgid "string index out of range" -#~ msgstr "indice della stringa fuori intervallo" - -#~ msgid "string indices must be integers, not %s" -#~ msgstr "indici della stringa devono essere interi, non %s" - -#~ msgid "struct: index out of range" -#~ msgstr "struct: indice fuori intervallo" - -#~ msgid "unknown format code '%c' for object of type '%s'" -#~ msgstr "codice di formattaione '%c' sconosciuto per oggetto di tipo '%s'" - -#~ msgid "unsupported type for %q: '%s'" -#~ msgstr "tipo non supportato per %q: '%s'" - -#~ msgid "unsupported types for %q: '%s', '%s'" -#~ msgstr "tipi non supportati per %q: '%s', '%s'" - #~ msgid "AP required" #~ msgstr "AP richiesto" diff --git a/locale/ko.po b/locale/ko.po index 6884b97fd..51a523786 100644 --- a/locale/ko.po +++ b/locale/ko.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" "PO-Revision-Date: 2019-05-06 14:22-0700\n" "Last-Translator: \n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -66,17 +66,13 @@ msgstr "" msgid "%q in use" msgstr "%q 사용 중입니다" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "%q 인덱스 범위를 벗어났습니다" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "%q 인덱스는 %s 가 아닌 정수 여야합니다" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -114,42 +110,6 @@ msgstr "" msgid "'%q' argument required" msgstr "" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -200,6 +160,48 @@ msgstr "" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "'%s' 을 지정할 수 없습니다" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "'%s' 은 삭제할 수 없습니다" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "'%s' 은 수정할 수 없습니다" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "'%s' 을 검색 할 수 없습니다" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "'%s' 은 변경할 수 없습니다" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "" @@ -861,10 +863,6 @@ msgstr "" msgid "I2C Init Error" msgstr "" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1235,10 +1233,6 @@ msgstr "" msgid "Not playing" msgstr "" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1324,6 +1318,10 @@ msgstr "" msgid "Polygon needs at least 3 points" msgstr "" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "" @@ -1396,7 +1394,11 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "" #: main.c -msgid "Running in safe mode! " +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" msgstr "" #: shared-module/sdcardio/SDCard.c @@ -1758,7 +1760,8 @@ msgid "__init__() should return None" msgstr "" #: py/objtype.c -msgid "__init__() should return None, not '%q'" +#, c-format +msgid "__init__() should return None, not '%s'" msgstr "" #: py/objobject.c @@ -1912,7 +1915,7 @@ msgstr "" msgid "bytes value out of range" msgstr "" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "" @@ -1944,16 +1947,47 @@ msgstr "" msgid "can't assign to expression" msgstr "" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" msgstr "" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "" + +#: py/obj.c +msgid "can't convert to complex" +msgstr "" + +#: py/obj.c +msgid "can't convert to float" +msgstr "" + #: py/obj.c -msgid "can't convert to %q" +msgid "can't convert to int" msgstr "" #: py/objstr.c @@ -2361,7 +2395,7 @@ msgstr "" msgid "function missing required positional argument #%d" msgstr "" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "" @@ -2410,7 +2444,10 @@ msgstr "" msgid "index is out of bounds" msgstr "" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "" @@ -2766,7 +2803,8 @@ msgid "number of points must be at least 2" msgstr "" #: py/obj.c -msgid "object '%q' is not a tuple or list" +#, c-format +msgid "object '%s' is not a tuple or list" msgstr "" #: py/obj.c @@ -2802,7 +2840,8 @@ msgid "object not iterable" msgstr "" #: py/obj.c -msgid "object of type '%q' has no len()" +#, c-format +msgid "object of type '%s' has no len()" msgstr "" #: py/obj.c @@ -2895,9 +2934,20 @@ msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" msgstr "" #: py/objint_mpz.c @@ -3054,7 +3104,12 @@ msgid "stream operation not supported" msgstr "" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" +msgid "string index out of range" +msgstr "" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" msgstr "" #: py/stream.c @@ -3066,6 +3121,10 @@ msgid "struct: cannot index" msgstr "" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "" @@ -3134,7 +3193,7 @@ msgstr "" msgid "trapz is defined for 1D arrays of equal length" msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "" @@ -3201,7 +3260,8 @@ msgid "unknown conversion specifier %c" msgstr "" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" +#, c-format +msgid "unknown format code '%c' for object of type '%s'" msgstr "" #: py/compile.c @@ -3241,7 +3301,7 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" #: py/runtime.c -msgid "unsupported type for %q: '%q'" +msgid "unsupported type for %q: '%s'" msgstr "" #: py/runtime.c @@ -3249,7 +3309,7 @@ msgid "unsupported type for operator" msgstr "" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" +msgid "unsupported types for %q: '%s', '%s'" msgstr "" #: py/objint.c @@ -3329,24 +3389,6 @@ msgstr "" msgid "zi must be of shape (n_section, 2)" msgstr "" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "%q 인덱스는 %s 가 아닌 정수 여야합니다" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "'%s' 을 지정할 수 없습니다" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "'%s' 은 삭제할 수 없습니다" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "'%s' 은 수정할 수 없습니다" - -#~ msgid "'%s' object is not callable" -#~ msgstr "'%s' 을 검색 할 수 없습니다" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "'%s' 은 변경할 수 없습니다" - #~ msgid "Can't add services in Central mode" #~ msgstr "센트랄(중앙) 모드에서는 서비스를 추가 할 수 없습니다" diff --git a/locale/nl.po b/locale/nl.po index f9f0ddf89..6240fce1b 100644 --- a/locale/nl.po +++ b/locale/nl.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" -"PO-Revision-Date: 2020-08-02 20:41+0000\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" +"PO-Revision-Date: 2020-07-27 21:27+0000\n" "Last-Translator: _fonzlate <vooralfred@gmail.com>\n" "Language-Team: none\n" "Language: nl\n" @@ -72,17 +72,13 @@ msgstr "%q fout: %d" msgid "%q in use" msgstr "%q in gebruik" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "%q index buiten bereik" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "%q indexen moeten integers zijn, niet %s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -120,42 +116,6 @@ msgstr "%q() verwacht %d positionele argumenten maar kreeg %d" msgid "'%q' argument required" msgstr "'%q' argument vereist" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -206,6 +166,48 @@ msgstr "'%s' integer %d is niet in bereik %d..%d" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "'%s' integer 0x%x past niet in mask 0x%x" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "'%s' object kan niet aan attribuut '%q' toewijzen" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "'%s' object ondersteunt '%q' niet" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "'%s' object ondersteunt item toewijzing niet" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "'%s' object ondersteunt item verwijdering niet" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "'%s' object heeft geen attribuut '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "'%s' object is geen iterator" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "'%s' object is niet aanroepbaar" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "'%s' object is niet itereerbaar" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "'%s' object is niet onderschrijfbaar" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "'=' uitlijning niet toegestaan in string format specifier" @@ -224,7 +226,7 @@ msgstr "'await' buiten de functie" #: py/compile.c msgid "'await', 'async for' or 'async with' outside async function" -msgstr "'await', 'async for' of 'async with' buiten async functie" +msgstr "" #: py/compile.c msgid "'break' outside loop" @@ -875,10 +877,6 @@ msgstr "I/O actie op gesloten bestand" msgid "I2C Init Error" msgstr "I2C Init Fout" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "I2SOut is niet beschikbaar" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1251,10 +1249,6 @@ msgstr "Niet verbonden" msgid "Not playing" msgstr "Wordt niet afgespeeld" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1352,6 +1346,10 @@ msgstr "En iedere module in het bestandssysteem\n" msgid "Polygon needs at least 3 points" msgstr "Polygon heeft op zijn minst 3 punten nodig" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "Pop van een lege Ps2 buffer" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "Prefix buffer moet op de heap zijn" @@ -1426,8 +1424,12 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "Rij invoeging moet digitalio.DigitalInOut zijn" #: main.c -msgid "Running in safe mode! " -msgstr "" +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Draaiende in veilige modus! Auto-herlaad is uit.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Draaiende in veilige modus! Opgeslagen code wordt niet uitgevoerd.\n" #: shared-module/sdcardio/SDCard.c msgid "SD card CSD format not supported" @@ -1808,8 +1810,9 @@ msgid "__init__() should return None" msgstr "__init __ () zou None moeten retourneren" #: py/objtype.c -msgid "__init__() should return None, not '%q'" -msgstr "" +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__init __ () zou None moeten retouneren, niet '%s'" #: py/objobject.c msgid "__new__ arg must be a user-type" @@ -1854,7 +1857,7 @@ msgstr "argument heeft onjuist type" #: extmod/ulab/code/linalg/linalg.c msgid "argument must be ndarray" -msgstr "argument moet ndarray zijn" +msgstr "" #: py/argcheck.c shared-bindings/_stage/__init__.c #: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c @@ -1962,7 +1965,7 @@ msgstr "butes > 8 niet ondersteund" msgid "bytes value out of range" msgstr "bytes waarde buiten bereik" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "calibration is buiten bereik" @@ -1995,17 +1998,48 @@ msgstr "" msgid "can't assign to expression" msgstr "kan niet toewijzen aan expressie" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" -msgstr "" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "kan %s niet converteren naar een complex" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "kan %s niet omzetten naar een float" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "kan %s niet omzetten naar een int" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "kan '%q' object niet omzetten naar %q impliciet" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "kan NaN niet omzetten naar int" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "kan adres niet omzetten naar int" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "kan inf niet omzetten naar int" + #: py/obj.c -msgid "can't convert to %q" -msgstr "" +msgid "can't convert to complex" +msgstr "kan niet omzetten naar complex" + +#: py/obj.c +msgid "can't convert to float" +msgstr "kan niet omzetten naar float" + +#: py/obj.c +msgid "can't convert to int" +msgstr "kan niet omzetten naar int" #: py/objstr.c msgid "can't convert to str implicitly" @@ -2415,7 +2449,7 @@ msgstr "functie mist vereist sleutelwoord argument \"%q" msgid "function missing required positional argument #%d" msgstr "functie mist vereist positie-argument #%d" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "" @@ -2465,7 +2499,10 @@ msgstr "vulling (padding) is onjuist" msgid "index is out of bounds" msgstr "index is buiten bereik" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index is buiten bereik" @@ -2527,7 +2564,7 @@ msgstr "integer vereist" #: extmod/ulab/code/approx/approx.c msgid "interp is defined for 1D arrays of equal length" -msgstr "interp is gedefinieerd voor eendimensionale arrays van gelijke lengte" +msgstr "interp is gedefinieerd for eendimensionale arrays van gelijke lengte" #: shared-bindings/_bleio/Adapter.c #, c-format @@ -2824,8 +2861,9 @@ msgid "number of points must be at least 2" msgstr "aantal punten moet minimaal 2 zijn" #: py/obj.c -msgid "object '%q' is not a tuple or list" -msgstr "" +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "object '%s' is geen tuple of lijst" #: py/obj.c msgid "object does not support item assignment" @@ -2860,8 +2898,9 @@ msgid "object not iterable" msgstr "object niet itereerbaar" #: py/obj.c -msgid "object of type '%q' has no len()" -msgstr "" +#, c-format +msgid "object of type '%s' has no len()" +msgstr "object van type '%s' heeft geen len()" #: py/obj.c msgid "object with buffer protocol required" @@ -2954,10 +2993,21 @@ msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" -msgstr "" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "pop van een lege PulseIn" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "pop van een lege set" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "pop van een lege lijst" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "popitem(): dictionary is leeg" #: py/objint_mpz.c msgid "pow() 3rd argument cannot be 0" @@ -3115,8 +3165,13 @@ msgid "stream operation not supported" msgstr "stream operatie niet ondersteund" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" -msgstr "" +msgid "string index out of range" +msgstr "string index buiten bereik" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "string indices moeten integer zijn, niet %s" #: py/stream.c msgid "string not supported; use bytes or bytearray" @@ -3127,6 +3182,10 @@ msgid "struct: cannot index" msgstr "struct: kan niet indexeren" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "struct: index buiten bereik" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "struct: geen velden" @@ -3193,9 +3252,9 @@ msgstr "te veel waarden om uit te pakken (%d verwacht)" #: extmod/ulab/code/approx/approx.c msgid "trapz is defined for 1D arrays of equal length" -msgstr "trapz is gedefinieerd voor eendimensionale arrays van gelijke lengte" +msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "tuple index buiten bereik" @@ -3262,8 +3321,9 @@ msgid "unknown conversion specifier %c" msgstr "onbekende conversiespecificatie %c" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" -msgstr "" +#, c-format +msgid "unknown format code '%c' for object of type '%s'" +msgstr "onbekende formaatcode '%c' voor object van type '%s'" #: py/compile.c msgid "unknown type" @@ -3302,16 +3362,16 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "niet ondersteund formaatkarakter '%c' (0x%x) op index %d" #: py/runtime.c -msgid "unsupported type for %q: '%q'" -msgstr "" +msgid "unsupported type for %q: '%s'" +msgstr "niet ondersteund type voor %q: '%s'" #: py/runtime.c msgid "unsupported type for operator" msgstr "niet ondersteund type voor operator" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" -msgstr "" +msgid "unsupported types for %q: '%s', '%s'" +msgstr "niet ondersteunde types voor %q: '%s', '%s'" #: py/objint.c #, c-format @@ -3324,7 +3384,7 @@ msgstr "value_count moet groter dan 0 zijn" #: extmod/ulab/code/linalg/linalg.c msgid "vectors must have same lengths" -msgstr "vectoren moeten van gelijke lengte zijn" +msgstr "" #: shared-bindings/watchdog/WatchDogTimer.c msgid "watchdog timeout must be greater than 0" @@ -3390,121 +3450,18 @@ msgstr "zi moet van type float zijn" msgid "zi must be of shape (n_section, 2)" msgstr "zi moet vorm (n_section, 2) hebben" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "%q indexen moeten integers zijn, niet %s" - -#~ msgid "'%s' object cannot assign attribute '%q'" -#~ msgstr "'%s' object kan niet aan attribuut '%q' toewijzen" - -#~ msgid "'%s' object does not support '%q'" -#~ msgstr "'%s' object ondersteunt '%q' niet" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "'%s' object ondersteunt item toewijzing niet" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "'%s' object ondersteunt item verwijdering niet" - -#~ msgid "'%s' object has no attribute '%q'" -#~ msgstr "'%s' object heeft geen attribuut '%q'" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "'%s' object is geen iterator" - -#~ msgid "'%s' object is not callable" -#~ msgstr "'%s' object is niet aanroepbaar" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "'%s' object is niet itereerbaar" - -#~ msgid "'%s' object is not subscriptable" -#~ msgstr "'%s' object is niet onderschrijfbaar" - -#~ msgid "Pop from an empty Ps2 buffer" -#~ msgstr "Pop van een lege Ps2 buffer" - -#~ msgid "Running in safe mode! Auto-reload is off.\n" -#~ msgstr "Draaiende in veilige modus! Auto-herlaad is uit.\n" - -#~ msgid "Running in safe mode! Not running saved code.\n" -#~ msgstr "" -#~ "Draaiende in veilige modus! Opgeslagen code wordt niet uitgevoerd.\n" - -#~ msgid "__init__() should return None, not '%s'" -#~ msgstr "__init __ () zou None moeten retouneren, niet '%s'" - -#~ msgid "can't convert %s to complex" -#~ msgstr "kan %s niet converteren naar een complex" - -#~ msgid "can't convert %s to float" -#~ msgstr "kan %s niet omzetten naar een float" - -#~ msgid "can't convert %s to int" -#~ msgstr "kan %s niet omzetten naar een int" - -#~ msgid "can't convert NaN to int" -#~ msgstr "kan NaN niet omzetten naar int" - -#~ msgid "can't convert address to int" -#~ msgstr "kan adres niet omzetten naar int" - -#~ msgid "can't convert inf to int" -#~ msgstr "kan inf niet omzetten naar int" - -#~ msgid "can't convert to complex" -#~ msgstr "kan niet omzetten naar complex" - -#~ msgid "can't convert to float" -#~ msgstr "kan niet omzetten naar float" - -#~ msgid "can't convert to int" -#~ msgstr "kan niet omzetten naar int" - -#~ msgid "object '%s' is not a tuple or list" -#~ msgstr "object '%s' is geen tuple of lijst" - -#~ msgid "object of type '%s' has no len()" -#~ msgstr "object van type '%s' heeft geen len()" - -#~ msgid "pop from an empty PulseIn" -#~ msgstr "pop van een lege PulseIn" - -#~ msgid "pop from an empty set" -#~ msgstr "pop van een lege set" - -#~ msgid "pop from empty list" -#~ msgstr "pop van een lege lijst" - -#~ msgid "popitem(): dictionary is empty" -#~ msgstr "popitem(): dictionary is leeg" - -#~ msgid "string index out of range" -#~ msgstr "string index buiten bereik" - -#~ msgid "string indices must be integers, not %s" -#~ msgstr "string indices moeten integer zijn, niet %s" - -#~ msgid "struct: index out of range" -#~ msgstr "struct: index buiten bereik" - -#~ msgid "unknown format code '%c' for object of type '%s'" -#~ msgstr "onbekende formaatcode '%c' voor object van type '%s'" - -#~ msgid "unsupported type for %q: '%s'" -#~ msgstr "niet ondersteund type voor %q: '%s'" - -#~ msgid "unsupported types for %q: '%s', '%s'" -#~ msgstr "niet ondersteunde types voor %q: '%s', '%s'" +#~ msgid "'%q' object is not bytes-like" +#~ msgstr "'%q' object is niet bytes-achtig" #~ msgid "'async for' or 'async with' outside async function" #~ msgstr "'async for' of 'async with' buiten async functie" -#~ msgid "PulseIn not supported on this chip" -#~ msgstr "PusleIn niet ondersteund door deze chip" - #~ msgid "PulseOut not supported on this chip" #~ msgstr "PulseOut niet ondersteund door deze chip" +#~ msgid "PulseIn not supported on this chip" +#~ msgstr "PusleIn niet ondersteund door deze chip" + #~ msgid "I2C operation not supported" #~ msgstr "I2C actie niet ondersteund" diff --git a/locale/pl.po b/locale/pl.po index 325de7b87..fdb374918 100644 --- a/locale/pl.po +++ b/locale/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" "PO-Revision-Date: 2019-03-19 18:37-0700\n" "Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n" "Language-Team: pl\n" @@ -66,17 +66,13 @@ msgstr "" msgid "%q in use" msgstr "%q w użyciu" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "%q poza zakresem" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "%q indeks musi być liczbą całkowitą, a nie %s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -114,42 +110,6 @@ msgstr "%q() bierze %d argumentów pozycyjnych, lecz podano %d" msgid "'%q' argument required" msgstr "'%q' wymaga argumentu" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -200,6 +160,48 @@ msgstr "'%s' liczba %d poza zakresem %d..%d" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "'%s' liczba 0x%x nie pasuje do maski 0x%x" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "'%s' obiekt nie wspiera przypisania do elementów" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "'%s' obiekt nie wspiera usuwania elementów" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "'%s' obiekt nie ma atrybutu '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "'%s' obiekt nie jest iteratorem" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "'%s' nie można wywoływać obiektu" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "'%s' nie można iterować po obiekcie" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "'%s' nie można indeksować obiektu" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "wyrównanie '=' niedozwolone w specyfikacji formatu" @@ -861,10 +863,6 @@ msgstr "Operacja I/O na zamkniętym pliku" msgid "I2C Init Error" msgstr "" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1237,10 +1235,6 @@ msgstr "Nie podłączono" msgid "Not playing" msgstr "Nic nie jest odtwarzane" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1326,6 +1320,10 @@ msgstr "Oraz moduły w systemie plików\n" msgid "Polygon needs at least 3 points" msgstr "" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "" @@ -1398,8 +1396,12 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "Rzędy muszą być digitalio.DigitalInOut" #: main.c -msgid "Running in safe mode! " -msgstr "" +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Uruchomiony tryb bezpieczeństwa! Samo-przeładowanie wyłączone.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Uruchomiony tryb bezpieczeństwa! Zapisany kod nie jest uruchamiany.\n" #: shared-module/sdcardio/SDCard.c msgid "SD card CSD format not supported" @@ -1762,8 +1764,9 @@ msgid "__init__() should return None" msgstr "__init__() powinien zwracać None" #: py/objtype.c -msgid "__init__() should return None, not '%q'" -msgstr "" +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__init__() powinien zwracać None, nie '%s'" #: py/objobject.c msgid "__new__ arg must be a user-type" @@ -1916,7 +1919,7 @@ msgstr "bajty większe od 8 bitów są niewspierane" msgid "bytes value out of range" msgstr "wartość bytes poza zakresem" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "kalibracja poza zakresem" @@ -1948,17 +1951,48 @@ msgstr "nie można dodać specjalnej metody do podklasy" msgid "can't assign to expression" msgstr "przypisanie do wyrażenia" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" -msgstr "" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "nie można skonwertować %s do complex" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "nie można skonwertować %s do float" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "nie można skonwertować %s do int" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "nie można automatycznie skonwertować '%q' do '%q'" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "nie można skonwertować NaN do int" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "nie można skonwertować adresu do int" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "nie można skonwertować inf do int" + #: py/obj.c -msgid "can't convert to %q" -msgstr "" +msgid "can't convert to complex" +msgstr "nie można skonwertować do complex" + +#: py/obj.c +msgid "can't convert to float" +msgstr "nie można skonwertować do float" + +#: py/obj.c +msgid "can't convert to int" +msgstr "nie można skonwertować do int" #: py/objstr.c msgid "can't convert to str implicitly" @@ -2366,7 +2400,7 @@ msgstr "brak wymaganego argumentu nazwanego '%q' funkcji" msgid "function missing required positional argument #%d" msgstr "brak wymaganego argumentu pozycyjnego #%d funkcji" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "funkcja wymaga %d argumentów pozycyjnych, ale jest %d" @@ -2415,7 +2449,10 @@ msgstr "złe wypełnienie" msgid "index is out of bounds" msgstr "" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "indeks poza zakresem" @@ -2771,8 +2808,9 @@ msgid "number of points must be at least 2" msgstr "" #: py/obj.c -msgid "object '%q' is not a tuple or list" -msgstr "" +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "obiekt '%s' nie jest krotką ani listą" #: py/obj.c msgid "object does not support item assignment" @@ -2807,8 +2845,9 @@ msgid "object not iterable" msgstr "obiekt nie jest iterowalny" #: py/obj.c -msgid "object of type '%q' has no len()" -msgstr "" +#, c-format +msgid "object of type '%s' has no len()" +msgstr "obiekt typu '%s' nie ma len()" #: py/obj.c msgid "object with buffer protocol required" @@ -2901,10 +2940,21 @@ msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" -msgstr "" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "pop z pustego PulseIn" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "pop z pustego zbioru" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "pop z pustej listy" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "popitem(): słownik jest pusty" #: py/objint_mpz.c msgid "pow() 3rd argument cannot be 0" @@ -3061,8 +3111,13 @@ msgid "stream operation not supported" msgstr "operacja na strumieniu nieobsługiwana" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" -msgstr "" +msgid "string index out of range" +msgstr "indeks łańcucha poza zakresem" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "indeksy łańcucha muszą być całkowite, nie %s" #: py/stream.c msgid "string not supported; use bytes or bytearray" @@ -3073,6 +3128,10 @@ msgid "struct: cannot index" msgstr "struct: nie można indeksować" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "struct: indeks poza zakresem" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "struct: brak pól" @@ -3141,7 +3200,7 @@ msgstr "zbyt wiele wartości do rozpakowania (oczekiwano %d)" msgid "trapz is defined for 1D arrays of equal length" msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "indeks krotki poza zakresem" @@ -3208,8 +3267,9 @@ msgid "unknown conversion specifier %c" msgstr "zła specyfikacja konwersji %c" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" -msgstr "" +#, c-format +msgid "unknown format code '%c' for object of type '%s'" +msgstr "zły kod formatowania '%c' dla obiektu typu '%s'" #: py/compile.c msgid "unknown type" @@ -3248,16 +3308,16 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "zły znak formatowania '%c' (0x%x) na pozycji %d" #: py/runtime.c -msgid "unsupported type for %q: '%q'" -msgstr "" +msgid "unsupported type for %q: '%s'" +msgstr "zły typ dla %q: '%s'" #: py/runtime.c msgid "unsupported type for operator" msgstr "zły typ dla operatora" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" -msgstr "" +msgid "unsupported types for %q: '%s', '%s'" +msgstr "złe typy dla %q: '%s', '%s'" #: py/objint.c #, c-format @@ -3336,103 +3396,6 @@ msgstr "" msgid "zi must be of shape (n_section, 2)" msgstr "" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "%q indeks musi być liczbą całkowitą, a nie %s" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "'%s' obiekt nie wspiera przypisania do elementów" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "'%s' obiekt nie wspiera usuwania elementów" - -#~ msgid "'%s' object has no attribute '%q'" -#~ msgstr "'%s' obiekt nie ma atrybutu '%q'" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "'%s' obiekt nie jest iteratorem" - -#~ msgid "'%s' object is not callable" -#~ msgstr "'%s' nie można wywoływać obiektu" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "'%s' nie można iterować po obiekcie" - -#~ msgid "'%s' object is not subscriptable" -#~ msgstr "'%s' nie można indeksować obiektu" - -#~ msgid "Running in safe mode! Auto-reload is off.\n" -#~ msgstr "Uruchomiony tryb bezpieczeństwa! Samo-przeładowanie wyłączone.\n" - -#~ msgid "Running in safe mode! Not running saved code.\n" -#~ msgstr "" -#~ "Uruchomiony tryb bezpieczeństwa! Zapisany kod nie jest uruchamiany.\n" - -#~ msgid "__init__() should return None, not '%s'" -#~ msgstr "__init__() powinien zwracać None, nie '%s'" - -#~ msgid "can't convert %s to complex" -#~ msgstr "nie można skonwertować %s do complex" - -#~ msgid "can't convert %s to float" -#~ msgstr "nie można skonwertować %s do float" - -#~ msgid "can't convert %s to int" -#~ msgstr "nie można skonwertować %s do int" - -#~ msgid "can't convert NaN to int" -#~ msgstr "nie można skonwertować NaN do int" - -#~ msgid "can't convert address to int" -#~ msgstr "nie można skonwertować adresu do int" - -#~ msgid "can't convert inf to int" -#~ msgstr "nie można skonwertować inf do int" - -#~ msgid "can't convert to complex" -#~ msgstr "nie można skonwertować do complex" - -#~ msgid "can't convert to float" -#~ msgstr "nie można skonwertować do float" - -#~ msgid "can't convert to int" -#~ msgstr "nie można skonwertować do int" - -#~ msgid "object '%s' is not a tuple or list" -#~ msgstr "obiekt '%s' nie jest krotką ani listą" - -#~ msgid "object of type '%s' has no len()" -#~ msgstr "obiekt typu '%s' nie ma len()" - -#~ msgid "pop from an empty PulseIn" -#~ msgstr "pop z pustego PulseIn" - -#~ msgid "pop from an empty set" -#~ msgstr "pop z pustego zbioru" - -#~ msgid "pop from empty list" -#~ msgstr "pop z pustej listy" - -#~ msgid "popitem(): dictionary is empty" -#~ msgstr "popitem(): słownik jest pusty" - -#~ msgid "string index out of range" -#~ msgstr "indeks łańcucha poza zakresem" - -#~ msgid "string indices must be integers, not %s" -#~ msgstr "indeksy łańcucha muszą być całkowite, nie %s" - -#~ msgid "struct: index out of range" -#~ msgstr "struct: indeks poza zakresem" - -#~ msgid "unknown format code '%c' for object of type '%s'" -#~ msgstr "zły kod formatowania '%c' dla obiektu typu '%s'" - -#~ msgid "unsupported type for %q: '%s'" -#~ msgstr "zły typ dla %q: '%s'" - -#~ msgid "unsupported types for %q: '%s', '%s'" -#~ msgstr "złe typy dla %q: '%s', '%s'" - #~ msgid "Address is not %d bytes long or is in wrong format" #~ msgstr "Adres nie ma długości %d bajtów lub zły format" diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 02d4a5d89..3ecca12df 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" -"PO-Revision-Date: 2020-08-09 11:32+0000\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" +"PO-Revision-Date: 2020-07-28 15:41+0000\n" "Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n" "Language-Team: \n" "Language: pt_BR\n" @@ -72,17 +72,13 @@ msgstr "%q falha: %d" msgid "%q in use" msgstr "%q em uso" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "O índice %q está fora do intervalo" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "Os indicadores %q devem ser inteiros, não %q" +msgid "%q indices must be integers, not %s" +msgstr "Os índices %q devem ser inteiros, e não %s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -120,42 +116,6 @@ msgstr "%q() recebe %d argumentos posicionais, porém %d foram informados" msgid "'%q' argument required" msgstr "'%q' argumento(s) requerido(s)" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "O objeto '%q' não pode definir o atributo '%q'" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "O objeto '%q' não suporta '%q'" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "O objeto '%q' não suporta a atribuição do item" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "O objeto '%q' não suporta exclusão dos itens" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "Objeto '%q' não possui qualquer atributo '%q'" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "O objeto '%q' não é um iterador" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "O objeto '%s' não é invocável" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "O objeto '%q' não é iterável" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "O objeto '%q' não é subscritível" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -206,6 +166,48 @@ msgstr "O número inteiro '%s' %d não está dentro do intervalo %d..%d" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "O número inteiro '%s' 0x%x não cabe na máscara 0x%x" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "O objeto '%s' não pode definir o atributo '%q'" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "O objeto '%s' não é compatível com '%q'" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "O objeto '%s' não compatível com a atribuição dos itens" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "O objeto '%s' não é compatível com exclusão do item" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "O objeto '%s' não possui o atributo '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "O objeto '%s' não é um iterador" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "O objeto '%s' não é invocável" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "O objeto '%s' não é iterável" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "O objeto '%s' não é subroteirizável" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "" @@ -884,10 +886,6 @@ msgstr "Operação I/O no arquivo fechado" msgid "I2C Init Error" msgstr "Erro de inicialização do I2C" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "O I2SOut não está disponível" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1260,10 +1258,6 @@ msgstr "Não Conectado" msgid "Not playing" msgstr "Não está jogando" -#: main.c -msgid "Not running saved code.\n" -msgstr "O código salvo não está em execução.\n" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1361,6 +1355,10 @@ msgstr "Além de quaisquer módulos no sistema de arquivos\n" msgid "Polygon needs at least 3 points" msgstr "O Polígono precisa de pelo menos 3 pontos" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "Buffer Ps2 vazio" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "" @@ -1436,8 +1434,12 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "A entrada da linha deve ser digitalio.DigitalInOut" #: main.c -msgid "Running in safe mode! " -msgstr "Executando no modo de segurança! " +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Rodando em modo seguro! Atualização automática está desligada.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Rodando em modo seguro! Não está executando o código salvo.\n" #: shared-module/sdcardio/SDCard.c msgid "SD card CSD format not supported" @@ -1823,8 +1825,9 @@ msgid "__init__() should return None" msgstr "O __init__() deve retornar Nenhum" #: py/objtype.c -msgid "__init__() should return None, not '%q'" -msgstr "O __init__() deve retornar Nenhum, não '%q'" +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "O __init__() deve retornar Nenhum, não '%s'" #: py/objobject.c msgid "__new__ arg must be a user-type" @@ -1869,7 +1872,7 @@ msgstr "argumento tem tipo errado" #: extmod/ulab/code/linalg/linalg.c msgid "argument must be ndarray" -msgstr "o argumento deve ser um ndarray" +msgstr "" #: py/argcheck.c shared-bindings/_stage/__init__.c #: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c @@ -1977,7 +1980,7 @@ msgstr "bytes > 8 bits não suportado" msgid "bytes value out of range" msgstr "o valor dos bytes estão fora do alcance" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "Calibração está fora do intervalo" @@ -2009,17 +2012,48 @@ msgstr "não é possível adicionar o método especial à classe já subclassifi msgid "can't assign to expression" msgstr "a expressão não pode ser atribuída" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" -msgstr "não é possível converter %q para %q" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "Não é possível converter %s para complex" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "Não é possível converter %s para float" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "Não é possível converter %s para int" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "não é possível converter implicitamente o objeto '%q' para %q" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "Não é possível converter NaN para int" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "não é possível converter o endereço para int" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "não é possível converter inf para int" + +#: py/obj.c +msgid "can't convert to complex" +msgstr "não é possível converter para complex" + #: py/obj.c -msgid "can't convert to %q" -msgstr "não é possível converter para %q" +msgid "can't convert to float" +msgstr "não é possível converter para float" + +#: py/obj.c +msgid "can't convert to int" +msgstr "não é possível converter para int" #: py/objstr.c msgid "can't convert to str implicitly" @@ -2436,7 +2470,7 @@ msgstr "falta apenas a palavra chave do argumento '%q' da função" msgid "function missing required positional argument #%d" msgstr "falta o argumento #%d da posição necessária da função" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "função leva %d argumentos posicionais, mas apenas %d foram passadas" @@ -2485,7 +2519,10 @@ msgstr "preenchimento incorreto" msgid "index is out of bounds" msgstr "o índice está fora dos limites" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "Índice fora do intervalo" @@ -2846,8 +2883,9 @@ msgid "number of points must be at least 2" msgstr "a quantidade dos pontos deve ser pelo menos 2" #: py/obj.c -msgid "object '%q' is not a tuple or list" -msgstr "o objeto '%q' não é uma tupla ou uma lista" +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "o objeto '%s' não é uma tupla ou uma lista" #: py/obj.c msgid "object does not support item assignment" @@ -2882,8 +2920,9 @@ msgid "object not iterable" msgstr "objeto não iterável" #: py/obj.c -msgid "object of type '%q' has no len()" -msgstr "o objeto do tipo '%q' não tem len()" +#, c-format +msgid "object of type '%s' has no len()" +msgstr "O objeto do tipo '%s' não possui len()" #: py/obj.c msgid "object with buffer protocol required" @@ -2980,10 +3019,21 @@ msgstr "o polígono só pode ser registrado em um pai" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" -msgstr "pop a partir do %q vazio" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "pop a partir de um PulseIn vazio" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "pop a partir de um conjunto vazio" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "pop a partir da lista vazia" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "popitem(): o dicionário está vazio" #: py/objint_mpz.c msgid "pow() 3rd argument cannot be 0" @@ -3020,7 +3070,7 @@ msgstr "a anotação do retorno deve ser um identificador" #: py/emitnative.c msgid "return expected '%q' but got '%q'" -msgstr "o retorno esperado era '%q', porém obteve '%q'" +msgstr "o retorno esperado era '%q', porém obteve '% q'" #: shared-bindings/rgbmatrix/RGBMatrix.c #, c-format @@ -3141,8 +3191,13 @@ msgid "stream operation not supported" msgstr "a operação do fluxo não é compatível" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" -msgstr "a sequência dos índices devem ser inteiros, não %q" +msgid "string index out of range" +msgstr "o índice da string está fora do intervalo" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "o índices das string devem ser números inteiros, não %s" #: py/stream.c msgid "string not supported; use bytes or bytearray" @@ -3153,6 +3208,10 @@ msgid "struct: cannot index" msgstr "struct: não pode indexar" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "struct: índice fora do intervalo" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "struct: sem campos" @@ -3219,9 +3278,9 @@ msgstr "valores demais para descompactar (esperado %d)" #: extmod/ulab/code/approx/approx.c msgid "trapz is defined for 1D arrays of equal length" -msgstr "o trapz está definido para 1D arrays de igual tamanho" +msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "o índice da tupla está fora do intervalo" @@ -3288,8 +3347,9 @@ msgid "unknown conversion specifier %c" msgstr "especificador de conversão desconhecido %c" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" -msgstr "o formato do código '%c' é desconhecido para o objeto do tipo '%q'" +#, c-format +msgid "unknown format code '%c' for object of type '%s'" +msgstr "código de formato desconhecido '%c' para o objeto do tipo '%s'" #: py/compile.c msgid "unknown type" @@ -3328,16 +3388,16 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "o caractere do formato não é compatível '%c' (0x%x) no índice %d" #: py/runtime.c -msgid "unsupported type for %q: '%q'" -msgstr "tipo sem suporte para %q: '%q'" +msgid "unsupported type for %q: '%s'" +msgstr "tipo não compatível para %q: '%s'" #: py/runtime.c msgid "unsupported type for operator" msgstr "tipo não compatível para o operador" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" -msgstr "tipo sem suporte para %q: '%q', '%q'" +msgid "unsupported types for %q: '%s', '%s'" +msgstr "tipos não compatíveis para %q: '%s', '%s'" #: py/objint.c #, c-format @@ -3350,7 +3410,7 @@ msgstr "o value_count deve ser > 0" #: extmod/ulab/code/linalg/linalg.c msgid "vectors must have same lengths" -msgstr "os vetores devem ter os mesmos comprimentos" +msgstr "" #: shared-bindings/watchdog/WatchDogTimer.c msgid "watchdog timeout must be greater than 0" @@ -3416,123 +3476,18 @@ msgstr "zi deve ser de um tipo float" msgid "zi must be of shape (n_section, 2)" msgstr "zi deve estar na forma (n_section, 2)" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "Os índices %q devem ser inteiros, e não %s" - -#~ msgid "'%s' object cannot assign attribute '%q'" -#~ msgstr "O objeto '%s' não pode definir o atributo '%q'" - -#~ msgid "'%s' object does not support '%q'" -#~ msgstr "O objeto '%s' não é compatível com '%q'" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "O objeto '%s' não compatível com a atribuição dos itens" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "O objeto '%s' não é compatível com exclusão do item" - -#~ msgid "'%s' object has no attribute '%q'" -#~ msgstr "O objeto '%s' não possui o atributo '%q'" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "O objeto '%s' não é um iterador" - -#~ msgid "'%s' object is not callable" -#~ msgstr "O objeto '%s' não é invocável" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "O objeto '%s' não é iterável" - -#~ msgid "'%s' object is not subscriptable" -#~ msgstr "O objeto '%s' não é subroteirizável" - -#~ msgid "Pop from an empty Ps2 buffer" -#~ msgstr "Buffer Ps2 vazio" - -#~ msgid "Running in safe mode! Auto-reload is off.\n" -#~ msgstr "Rodando em modo seguro! Atualização automática está desligada.\n" - -#~ msgid "Running in safe mode! Not running saved code.\n" -#~ msgstr "Rodando em modo seguro! Não está executando o código salvo.\n" - -#~ msgid "__init__() should return None, not '%s'" -#~ msgstr "O __init__() deve retornar Nenhum, não '%s'" - -#~ msgid "can't convert %s to complex" -#~ msgstr "Não é possível converter %s para complex" - -#~ msgid "can't convert %s to float" -#~ msgstr "Não é possível converter %s para float" - -#~ msgid "can't convert %s to int" -#~ msgstr "Não é possível converter %s para int" - -#~ msgid "can't convert NaN to int" -#~ msgstr "Não é possível converter NaN para int" - -#~ msgid "can't convert address to int" -#~ msgstr "não é possível converter o endereço para int" - -#~ msgid "can't convert inf to int" -#~ msgstr "não é possível converter inf para int" - -#~ msgid "can't convert to complex" -#~ msgstr "não é possível converter para complex" - -#~ msgid "can't convert to float" -#~ msgstr "não é possível converter para float" - -#~ msgid "can't convert to int" -#~ msgstr "não é possível converter para int" - -#~ msgid "object '%s' is not a tuple or list" -#~ msgstr "o objeto '%s' não é uma tupla ou uma lista" - -#~ msgid "object of type '%s' has no len()" -#~ msgstr "O objeto do tipo '%s' não possui len()" - -#~ msgid "pop from an empty PulseIn" -#~ msgstr "pop a partir de um PulseIn vazio" - -#~ msgid "pop from an empty set" -#~ msgstr "pop a partir de um conjunto vazio" - -#~ msgid "pop from empty list" -#~ msgstr "pop a partir da lista vazia" - -#~ msgid "popitem(): dictionary is empty" -#~ msgstr "popitem(): o dicionário está vazio" - -#~ msgid "string index out of range" -#~ msgstr "o índice da string está fora do intervalo" - -#~ msgid "string indices must be integers, not %s" -#~ msgstr "o índices das string devem ser números inteiros, não %s" - -#~ msgid "struct: index out of range" -#~ msgstr "struct: índice fora do intervalo" - -#~ msgid "unknown format code '%c' for object of type '%s'" -#~ msgstr "código de formato desconhecido '%c' para o objeto do tipo '%s'" - -#~ msgid "unsupported type for %q: '%s'" -#~ msgstr "tipo não compatível para %q: '%s'" - -#~ msgid "unsupported types for %q: '%s', '%s'" -#~ msgstr "tipos não compatíveis para %q: '%s', '%s'" - #~ msgid "'%q' object is not bytes-like" #~ msgstr "objetos '%q' não são bytes-like" #~ msgid "'async for' or 'async with' outside async function" #~ msgstr "'assíncrono para' ou 'assíncrono com' função assíncrona externa" -#~ msgid "PulseIn not supported on this chip" -#~ msgstr "O PulseIn não é compatível neste CI" - #~ msgid "PulseOut not supported on this chip" #~ msgstr "O PulseOut não é compatível neste CI" +#~ msgid "PulseIn not supported on this chip" +#~ msgstr "O PulseIn não é compatível neste CI" + #~ msgid "AP required" #~ msgstr "AP requerido" diff --git a/locale/sv.po b/locale/sv.po index 01a095b2d..0210094a9 100644 --- a/locale/sv.po +++ b/locale/sv.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" -"PO-Revision-Date: 2020-08-05 20:32+0000\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" +"PO-Revision-Date: 2020-07-25 20:58+0000\n" "Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "Language: sv\n" @@ -72,17 +72,13 @@ msgstr "%q-fel: %d" msgid "%q in use" msgstr "%q används redan" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "Index %q ligger utanför intervallet" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "Indexet %q måste vara ett heltal, inte %s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -120,42 +116,6 @@ msgstr "%q() kräver %d positionsargument men %d gavs" msgid "'%q' argument required" msgstr "'%q' argument krävs" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -206,6 +166,48 @@ msgstr "'%s' heltal %d ligger inte inom intervallet %d..%d" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "'%s' heltal 0x%x ryms inte i mask 0x%x" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "Objektet '%s' kan inte tilldela attributet '%q'" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "Objektet '%s' har inte stöd för '%q'" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "Objektet '%s' stöder inte tilldelningen" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "Objektet '%s' stöder inte borttagning av objekt" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "Objektet '%s' har inget attribut '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "Objektet '%s' är inte en iterator" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "Objektet '%s' kan inte anropas" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "Objektet '%s' är inte itererable" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "Objektet '%s' är inte indexbar" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "'='-justering tillåts inte i strängformatspecifikation" @@ -224,7 +226,7 @@ msgstr "'await' utanför funktion" #: py/compile.c msgid "'await', 'async for' or 'async with' outside async function" -msgstr "'await', 'async for' eller 'async with' utanför async-funktion" +msgstr "" #: py/compile.c msgid "'break' outside loop" @@ -873,10 +875,6 @@ msgstr "I/O-operation på stängd fil" msgid "I2C Init Error" msgstr "I2C init-fel" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "I2SOut är inte tillgängligt" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1250,10 +1248,6 @@ msgstr "Inte ansluten" msgid "Not playing" msgstr "Ingen uppspelning" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1349,6 +1343,10 @@ msgstr "Plus eventuella moduler i filsystemet\n" msgid "Polygon needs at least 3 points" msgstr "Polygonen behöver minst 3 punkter" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "Pop från en tom Ps2-buffert" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "Prefixbufferten måste finnas på heap" @@ -1422,8 +1420,12 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "Radvärdet måste vara digitalio.DigitalInOut" #: main.c -msgid "Running in safe mode! " -msgstr "" +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Kör i säkert läge! Autoladdning är avstängd.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Kör i säkert läge! Sparad kod körs inte.\n" #: shared-module/sdcardio/SDCard.c msgid "SD card CSD format not supported" @@ -1801,8 +1803,9 @@ msgid "__init__() should return None" msgstr "__init __ () ska returnera None" #: py/objtype.c -msgid "__init__() should return None, not '%q'" -msgstr "" +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__init __ () ska returnera None, inte '%s'" #: py/objobject.c msgid "__new__ arg must be a user-type" @@ -1847,7 +1850,7 @@ msgstr "argumentet har fel typ" #: extmod/ulab/code/linalg/linalg.c msgid "argument must be ndarray" -msgstr "argumentet måste vara ndarray" +msgstr "" #: py/argcheck.c shared-bindings/_stage/__init__.c #: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c @@ -1955,7 +1958,7 @@ msgstr "bytes> 8 bitar stöds inte" msgid "bytes value out of range" msgstr "bytevärde utanför intervallet" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "kalibrering är utanför intervallet" @@ -1987,17 +1990,48 @@ msgstr "kan inte lägga till särskild metod för redan subklassad klass" msgid "can't assign to expression" msgstr "kan inte tilldela uttryck" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" -msgstr "" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "kan inte konvertera %s till komplex" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "kan inte konvertera %s till float" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "kan inte konvertera %s till int" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "kan inte konvertera '%q' objekt implicit till %q" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "kan inte konvertera NaN till int" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "kan inte konvertera address till int" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "kan inte konvertera inf till int" + #: py/obj.c -msgid "can't convert to %q" -msgstr "" +msgid "can't convert to complex" +msgstr "kan inte konvertera till komplex" + +#: py/obj.c +msgid "can't convert to float" +msgstr "kan inte konvertera till float" + +#: py/obj.c +msgid "can't convert to int" +msgstr "kan inte konvertera till int" #: py/objstr.c msgid "can't convert to str implicitly" @@ -2081,7 +2115,7 @@ msgstr "" #: py/objtype.c msgid "cannot create '%q' instances" -msgstr "kan inte skapa instanser av '%q'" +msgstr "kan inte skapa instanser av '% q'" #: py/objtype.c msgid "cannot create instance" @@ -2409,7 +2443,7 @@ msgstr "funktionen saknar det obligatoriska nyckelordsargumentet '%q'" msgid "function missing required positional argument #%d" msgstr "funktionen saknar det obligatoriska positionsargumentet #%d" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "funktionen kräver %d positionsargument men %d angavs" @@ -2458,7 +2492,10 @@ msgstr "felaktig utfyllnad" msgid "index is out of bounds" msgstr "index är utanför gränserna" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "index utanför intervallet" @@ -2817,8 +2854,9 @@ msgid "number of points must be at least 2" msgstr "antal punkter måste vara minst 2" #: py/obj.c -msgid "object '%q' is not a tuple or list" -msgstr "" +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "objektet '%s' är inte en tupel eller lista" #: py/obj.c msgid "object does not support item assignment" @@ -2853,8 +2891,9 @@ msgid "object not iterable" msgstr "objektet är inte iterable" #: py/obj.c -msgid "object of type '%q' has no len()" -msgstr "" +#, c-format +msgid "object of type '%s' has no len()" +msgstr "objekt av typen '%s' har ingen len()" #: py/obj.c msgid "object with buffer protocol required" @@ -2947,10 +2986,21 @@ msgstr "polygon kan endast registreras i en förälder" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" -msgstr "" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "pop från en tom PulseIn" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "pop från en tom uppsättning" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "pop från tom lista" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "popitem(): ordlistan är tom" #: py/objint_mpz.c msgid "pow() 3rd argument cannot be 0" @@ -3108,8 +3158,13 @@ msgid "stream operation not supported" msgstr "stream-åtgärd stöds inte" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" -msgstr "" +msgid "string index out of range" +msgstr "strängindex utanför intervallet" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "strängindex måste vara heltal, inte %s" #: py/stream.c msgid "string not supported; use bytes or bytearray" @@ -3120,6 +3175,10 @@ msgid "struct: cannot index" msgstr "struct: kan inte indexera" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "struct: index utanför intervallet" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "struct: inga fält" @@ -3186,9 +3245,9 @@ msgstr "för många värden att packa upp (förväntat %d)" #: extmod/ulab/code/approx/approx.c msgid "trapz is defined for 1D arrays of equal length" -msgstr "interp är definierad för 1D-matriser med samma längd" +msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "tupelindex utanför intervallet" @@ -3255,8 +3314,9 @@ msgid "unknown conversion specifier %c" msgstr "okänd konverteringsspecificerare %c" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" -msgstr "" +#, c-format +msgid "unknown format code '%c' for object of type '%s'" +msgstr "okänt format '%c' för objekt av typ '%s'" #: py/compile.c msgid "unknown type" @@ -3295,16 +3355,16 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "Formattecknet '%c' (0x%x) stöds inte vid index %d" #: py/runtime.c -msgid "unsupported type for %q: '%q'" -msgstr "" +msgid "unsupported type for %q: '%s'" +msgstr "typ som inte stöds för %q: '%s'" #: py/runtime.c msgid "unsupported type for operator" msgstr "typ stöds inte för operatören" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" -msgstr "" +msgid "unsupported types for %q: '%s', '%s'" +msgstr "typ som inte stöds för %q: '%s', '%s'" #: py/objint.c #, c-format @@ -3317,7 +3377,7 @@ msgstr "value_count måste vara > 0" #: extmod/ulab/code/linalg/linalg.c msgid "vectors must have same lengths" -msgstr "vektorer måste ha samma längd" +msgstr "" #: shared-bindings/watchdog/WatchDogTimer.c msgid "watchdog timeout must be greater than 0" @@ -3383,118 +3443,16 @@ msgstr "zi måste vara av typ float" msgid "zi must be of shape (n_section, 2)" msgstr "zi måste vara i formen (n_section, 2)" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "Indexet %q måste vara ett heltal, inte %s" - -#~ msgid "'%s' object cannot assign attribute '%q'" -#~ msgstr "Objektet '%s' kan inte tilldela attributet '%q'" - -#~ msgid "'%s' object does not support '%q'" -#~ msgstr "Objektet '%s' har inte stöd för '%q'" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "Objektet '%s' stöder inte tilldelningen" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "Objektet '%s' stöder inte borttagning av objekt" - -#~ msgid "'%s' object has no attribute '%q'" -#~ msgstr "Objektet '%s' har inget attribut '%q'" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "Objektet '%s' är inte en iterator" - -#~ msgid "'%s' object is not callable" -#~ msgstr "Objektet '%s' kan inte anropas" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "Objektet '%s' är inte itererable" - -#~ msgid "'%s' object is not subscriptable" -#~ msgstr "Objektet '%s' är inte indexbar" - -#~ msgid "Pop from an empty Ps2 buffer" -#~ msgstr "Pop från en tom Ps2-buffert" - -#~ msgid "Running in safe mode! Auto-reload is off.\n" -#~ msgstr "Kör i säkert läge! Autoladdning är avstängd.\n" - -#~ msgid "Running in safe mode! Not running saved code.\n" -#~ msgstr "Kör i säkert läge! Sparad kod körs inte.\n" - -#~ msgid "__init__() should return None, not '%s'" -#~ msgstr "__init __ () ska returnera None, inte '%s'" - -#~ msgid "can't convert %s to complex" -#~ msgstr "kan inte konvertera %s till komplex" - -#~ msgid "can't convert %s to float" -#~ msgstr "kan inte konvertera %s till float" - -#~ msgid "can't convert %s to int" -#~ msgstr "kan inte konvertera %s till int" - -#~ msgid "can't convert NaN to int" -#~ msgstr "kan inte konvertera NaN till int" - -#~ msgid "can't convert address to int" -#~ msgstr "kan inte konvertera address till int" - -#~ msgid "can't convert inf to int" -#~ msgstr "kan inte konvertera inf till int" - -#~ msgid "can't convert to complex" -#~ msgstr "kan inte konvertera till komplex" - -#~ msgid "can't convert to float" -#~ msgstr "kan inte konvertera till float" - -#~ msgid "can't convert to int" -#~ msgstr "kan inte konvertera till int" - -#~ msgid "object '%s' is not a tuple or list" -#~ msgstr "objektet '%s' är inte en tupel eller lista" - -#~ msgid "object of type '%s' has no len()" -#~ msgstr "objekt av typen '%s' har ingen len()" - -#~ msgid "pop from an empty PulseIn" -#~ msgstr "pop från en tom PulseIn" - -#~ msgid "pop from an empty set" -#~ msgstr "pop från en tom uppsättning" - -#~ msgid "pop from empty list" -#~ msgstr "pop från tom lista" - -#~ msgid "popitem(): dictionary is empty" -#~ msgstr "popitem(): ordlistan är tom" - -#~ msgid "string index out of range" -#~ msgstr "strängindex utanför intervallet" - -#~ msgid "string indices must be integers, not %s" -#~ msgstr "strängindex måste vara heltal, inte %s" - -#~ msgid "struct: index out of range" -#~ msgstr "struct: index utanför intervallet" - -#~ msgid "unknown format code '%c' for object of type '%s'" -#~ msgstr "okänt format '%c' för objekt av typ '%s'" - -#~ msgid "unsupported type for %q: '%s'" -#~ msgstr "typ som inte stöds för %q: '%s'" - -#~ msgid "unsupported types for %q: '%s', '%s'" -#~ msgstr "typ som inte stöds för %q: '%s', '%s'" +#~ msgid "'%q' object is not bytes-like" +#~ msgstr "%q-objektet är inte byte-lik" #~ msgid "'async for' or 'async with' outside async function" #~ msgstr "'async for' eller 'async with' utanför async-funktion" -#~ msgid "PulseIn not supported on this chip" +#~ msgid "PulseOut not supported on this chip" #~ msgstr "PulseIn stöds inte av detta chip" -#~ msgid "PulseOut not supported on this chip" +#~ msgid "PulseIn not supported on this chip" #~ msgstr "PulseIn stöds inte av detta chip" #~ msgid "I2C operation not supported" diff --git a/locale/zh_Latn_pinyin.po b/locale/zh_Latn_pinyin.po index c2856ace2..32928976d 100644 --- a/locale/zh_Latn_pinyin.po +++ b/locale/zh_Latn_pinyin.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: circuitpython-cn\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-04 18:42-0500\n" +"POT-Creation-Date: 2020-07-28 16:57-0500\n" "PO-Revision-Date: 2019-04-13 10:10-0700\n" "Last-Translator: hexthat\n" "Language-Team: Chinese Hanyu Pinyin\n" @@ -72,17 +72,13 @@ msgstr "" msgid "%q in use" msgstr "%q zhèngzài shǐyòng" -#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c -#: ports/cxd56/common-hal/pulseio/PulseIn.c -#: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c -#: py/objstrunicode.c +#: py/obj.c msgid "%q index out of range" msgstr "%q suǒyǐn chāochū fànwéi" #: py/obj.c -msgid "%q indices must be integers, not %q" -msgstr "" +msgid "%q indices must be integers, not %s" +msgstr "%q suǒyǐn bìxū shì zhěngshù, ér bùshì %s" #: shared-bindings/vectorio/Polygon.c msgid "%q list must be a list" @@ -120,42 +116,6 @@ msgstr "%q() cǎiyòng %d wèizhì cānshù, dàn gěi chū %d" msgid "'%q' argument required" msgstr "xūyào '%q' cānshù" -#: py/runtime.c -msgid "'%q' object cannot assign attribute '%q'" -msgstr "" - -#: py/proto.c -msgid "'%q' object does not support '%q'" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item assignment" -msgstr "" - -#: py/obj.c -msgid "'%q' object does not support item deletion" -msgstr "" - -#: py/runtime.c -msgid "'%q' object has no attribute '%q'" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not an iterator" -msgstr "" - -#: py/objtype.c py/runtime.c -msgid "'%q' object is not callable" -msgstr "" - -#: py/runtime.c -msgid "'%q' object is not iterable" -msgstr "" - -#: py/obj.c -msgid "'%q' object is not subscriptable" -msgstr "" - #: py/emitinlinethumb.c py/emitinlinextensa.c #, c-format msgid "'%s' expects a label" @@ -206,6 +166,48 @@ msgstr "'%s' zhěngshù %d bùzài fànwéi nèi %d.%d" msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgstr "'%s' zhěngshù 0x%x bù shìyòng yú yǎn mǎ 0x%x" +#: py/runtime.c +msgid "'%s' object cannot assign attribute '%q'" +msgstr "" + +#: py/proto.c +msgid "'%s' object does not support '%q'" +msgstr "'%s' duì xiàng bù zhīchí '%q'" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "'%s' duìxiàng bù zhīchí xiàngmù fēnpèi" + +#: py/obj.c +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "'%s' duìxiàng bù zhīchí shānchú xiàngmù" + +#: py/runtime.c +msgid "'%s' object has no attribute '%q'" +msgstr "'%s' duìxiàng méiyǒu shǔxìng '%q'" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not an iterator" +msgstr "'%s' duìxiàng bùshì yīgè diédài qì" + +#: py/objtype.c py/runtime.c +#, c-format +msgid "'%s' object is not callable" +msgstr "'%s' duìxiàng wúfǎ diàoyòng" + +#: py/runtime.c +#, c-format +msgid "'%s' object is not iterable" +msgstr "'%s' duìxiàng bùnéng diédài" + +#: py/obj.c +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "'%s' duìxiàng bùnéng fēnshù" + #: py/objstr.c msgid "'=' alignment not allowed in string format specifier" msgstr "zìfú chuàn géshì shuōmíng fú zhōng bù yǔnxǔ '=' duìqí" @@ -869,10 +871,6 @@ msgstr "Wénjiàn shàng de I/ O cāozuò" msgid "I2C Init Error" msgstr "I2C chūshǐhuà cuòwù" -#: shared-bindings/audiobusio/I2SOut.c -msgid "I2SOut not available" -msgstr "" - #: shared-bindings/aesio/aes.c #, c-format msgid "IV must be %d bytes long" @@ -1245,10 +1243,6 @@ msgstr "Wèi liánjiē" msgid "Not playing" msgstr "Wèi bòfàng" -#: main.c -msgid "Not running saved code.\n" -msgstr "" - #: shared-bindings/util.c msgid "" "Object has been deinitialized and can no longer be used. Create a new object." @@ -1340,6 +1334,10 @@ msgstr "Zài wénjiàn xìtǒng shàng tiānjiā rènhé mókuài\n" msgid "Polygon needs at least 3 points" msgstr "" +#: shared-bindings/ps2io/Ps2.c +msgid "Pop from an empty Ps2 buffer" +msgstr "Cóng kōng de Ps2 huǎnchōng qū dànchū" + #: shared-bindings/_bleio/Adapter.c msgid "Prefix buffer must be on the heap" msgstr "Qiánzhuì huǎnchōng qū bìxū zài duī shàng" @@ -1412,8 +1410,12 @@ msgid "Row entry must be digitalio.DigitalInOut" msgstr "Xíng xiàng bìxū shì digitalio.DigitalInOut" #: main.c -msgid "Running in safe mode! " -msgstr "" +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Zài ānquán móshì xià yùnxíng! Zìdòng chóngxīn jiāzài yǐ guānbì.\n" + +#: main.c +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Zài ānquán móshì xià yùnxíng! Bù yùnxíng yǐ bǎocún de dàimǎ.\n" #: shared-module/sdcardio/SDCard.c msgid "SD card CSD format not supported" @@ -1787,8 +1789,9 @@ msgid "__init__() should return None" msgstr "__init__() fǎnhuí not" #: py/objtype.c -msgid "__init__() should return None, not '%q'" -msgstr "" +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__Init__() yīnggāi fǎnhuí not, ér bùshì '%s'" #: py/objobject.c msgid "__new__ arg must be a user-type" @@ -1941,7 +1944,7 @@ msgstr "zì jié > 8 wèi" msgid "bytes value out of range" msgstr "zì jié zhí chāochū fànwéi" -#: ports/atmel-samd/bindings/samd/Clock.c ports/atmel-samd/common-hal/rtc/RTC.c +#: ports/atmel-samd/bindings/samd/Clock.c msgid "calibration is out of range" msgstr "jiàozhǔn fànwéi chāochū fànwéi" @@ -1973,17 +1976,48 @@ msgstr "wúfǎ tiānjiā tèshū fāngfǎ dào zi fēnlèi lèi" msgid "can't assign to expression" msgstr "bùnéng fēnpèi dào biǎodá shì" -#: py/obj.c py/objint.c shared-bindings/i2cperipheral/I2CPeripheral.c -msgid "can't convert %q to %q" -msgstr "" +#: py/obj.c +#, c-format +msgid "can't convert %s to complex" +msgstr "wúfǎ zhuǎnhuàn%s dào fùzá" + +#: py/obj.c +#, c-format +msgid "can't convert %s to float" +msgstr "wúfǎ zhuǎnhuàn %s dào fú diǎn xíng biànliàng" + +#: py/obj.c +#, c-format +msgid "can't convert %s to int" +msgstr "wúfǎ zhuǎnhuàn%s dào int" #: py/objstr.c msgid "can't convert '%q' object to %q implicitly" msgstr "wúfǎ jiāng '%q' duìxiàng zhuǎnhuàn wèi %q yǐn hán" +#: py/objint.c +msgid "can't convert NaN to int" +msgstr "wúfǎ jiāng dǎoháng zhuǎnhuàn wèi int" + +#: shared-bindings/i2cperipheral/I2CPeripheral.c +msgid "can't convert address to int" +msgstr "wúfǎ jiāng dìzhǐ zhuǎnhuàn wèi int" + +#: py/objint.c +msgid "can't convert inf to int" +msgstr "bùnéng jiāng inf zhuǎnhuàn wèi int" + #: py/obj.c -msgid "can't convert to %q" -msgstr "" +msgid "can't convert to complex" +msgstr "bùnéng zhuǎnhuàn wèi fùzá" + +#: py/obj.c +msgid "can't convert to float" +msgstr "bùnéng zhuǎnhuàn wèi fú diǎn" + +#: py/obj.c +msgid "can't convert to int" +msgstr "bùnéng zhuǎnhuàn wèi int" #: py/objstr.c msgid "can't convert to str implicitly" @@ -2394,7 +2428,7 @@ msgstr "hánshù quēshǎo suǒ xū guānjiàn zì cānshù '%q'" msgid "function missing required positional argument #%d" msgstr "hánshù quēshǎo suǒ xū de wèizhì cānshù #%d" -#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c +#: py/argcheck.c py/bc.c py/objnamedtuple.c #, c-format msgid "function takes %d positional arguments but %d were given" msgstr "hánshù xūyào %d gè wèizhì cānshù, dàn %d bèi gěi chū" @@ -2443,7 +2477,10 @@ msgstr "bù zhèngquè de tiánchōng" msgid "index is out of bounds" msgstr "" -#: py/obj.c +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c +#: ports/cxd56/common-hal/pulseio/PulseIn.c +#: ports/nrf/common-hal/pulseio/PulseIn.c +#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c msgid "index out of range" msgstr "suǒyǐn chāochū fànwéi" @@ -2801,8 +2838,9 @@ msgid "number of points must be at least 2" msgstr "" #: py/obj.c -msgid "object '%q' is not a tuple or list" -msgstr "" +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "duìxiàng '%s' bùshì yuán zǔ huò lièbiǎo" #: py/obj.c msgid "object does not support item assignment" @@ -2837,8 +2875,9 @@ msgid "object not iterable" msgstr "duìxiàng bùnéng diédài" #: py/obj.c -msgid "object of type '%q' has no len()" -msgstr "" +#, c-format +msgid "object of type '%s' has no len()" +msgstr "lèixíng '%s' de duìxiàng méiyǒu chángdù" #: py/obj.c msgid "object with buffer protocol required" @@ -2930,10 +2969,21 @@ msgstr "" #: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/nrf/common-hal/pulseio/PulseIn.c -#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c -#: shared-bindings/ps2io/Ps2.c -msgid "pop from empty %q" -msgstr "" +#: ports/stm/common-hal/pulseio/PulseIn.c +msgid "pop from an empty PulseIn" +msgstr "cóng kōng de PulseIn dànchū dànchū" + +#: py/objset.c +msgid "pop from an empty set" +msgstr "cóng kōng jí dànchū" + +#: py/objlist.c +msgid "pop from empty list" +msgstr "cóng kōng lièbiǎo zhòng dànchū" + +#: py/objdict.c +msgid "popitem(): dictionary is empty" +msgstr "dànchū xiàngmù (): Zìdiǎn wèi kōng" #: py/objint_mpz.c msgid "pow() 3rd argument cannot be 0" @@ -3091,8 +3141,13 @@ msgid "stream operation not supported" msgstr "bù zhīchí liú cāozuò" #: py/objstrunicode.c -msgid "string indices must be integers, not %q" -msgstr "" +msgid "string index out of range" +msgstr "zìfú chuàn suǒyǐn chāochū fànwéi" + +#: py/objstrunicode.c +#, c-format +msgid "string indices must be integers, not %s" +msgstr "zìfú chuàn zhǐshù bìxū shì zhěngshù, ér bùshì %s" #: py/stream.c msgid "string not supported; use bytes or bytearray" @@ -3103,6 +3158,10 @@ msgid "struct: cannot index" msgstr "jiégòu: bùnéng suǒyǐn" #: extmod/moductypes.c +msgid "struct: index out of range" +msgstr "jiégòu: suǒyǐn chāochū fànwéi" + +#: extmod/moductypes.c msgid "struct: no fields" msgstr "jiégòu: méiyǒu zìduàn" @@ -3171,7 +3230,7 @@ msgstr "dǎkāi tài duō zhí (yùqí %d)" msgid "trapz is defined for 1D arrays of equal length" msgstr "" -#: extmod/ulab/code/linalg/linalg.c +#: extmod/ulab/code/linalg/linalg.c py/objstr.c msgid "tuple index out of range" msgstr "yuán zǔ suǒyǐn chāochū fànwéi" @@ -3238,8 +3297,9 @@ msgid "unknown conversion specifier %c" msgstr "wèizhī de zhuǎnhuàn biāozhù %c" #: py/objstr.c -msgid "unknown format code '%c' for object of type '%q'" -msgstr "" +#, fuzzy, c-format +msgid "unknown format code '%c' for object of type '%s'" +msgstr "lèixíng '%s' duìxiàng wèizhī de géshì dàimǎ '%c'" #: py/compile.c msgid "unknown type" @@ -3278,16 +3338,16 @@ msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "bù zhīchí de géshì zìfú '%c' (0x%x) suǒyǐn %d" #: py/runtime.c -msgid "unsupported type for %q: '%q'" -msgstr "" +msgid "unsupported type for %q: '%s'" +msgstr "bù zhīchí de lèixíng %q: '%s'" #: py/runtime.c msgid "unsupported type for operator" msgstr "bù zhīchí de cāozuò zhě lèixíng" #: py/runtime.c -msgid "unsupported types for %q: '%q', '%q'" -msgstr "" +msgid "unsupported types for %q: '%s', '%s'" +msgstr "bù zhīchí de lèixíng wèi %q: '%s', '%s'" #: py/objint.c #, c-format @@ -3366,109 +3426,6 @@ msgstr "" msgid "zi must be of shape (n_section, 2)" msgstr "" -#~ msgid "%q indices must be integers, not %s" -#~ msgstr "%q suǒyǐn bìxū shì zhěngshù, ér bùshì %s" - -#~ msgid "'%s' object does not support '%q'" -#~ msgstr "'%s' duì xiàng bù zhīchí '%q'" - -#~ msgid "'%s' object does not support item assignment" -#~ msgstr "'%s' duìxiàng bù zhīchí xiàngmù fēnpèi" - -#~ msgid "'%s' object does not support item deletion" -#~ msgstr "'%s' duìxiàng bù zhīchí shānchú xiàngmù" - -#~ msgid "'%s' object has no attribute '%q'" -#~ msgstr "'%s' duìxiàng méiyǒu shǔxìng '%q'" - -#~ msgid "'%s' object is not an iterator" -#~ msgstr "'%s' duìxiàng bùshì yīgè diédài qì" - -#~ msgid "'%s' object is not callable" -#~ msgstr "'%s' duìxiàng wúfǎ diàoyòng" - -#~ msgid "'%s' object is not iterable" -#~ msgstr "'%s' duìxiàng bùnéng diédài" - -#~ msgid "'%s' object is not subscriptable" -#~ msgstr "'%s' duìxiàng bùnéng fēnshù" - -#~ msgid "Pop from an empty Ps2 buffer" -#~ msgstr "Cóng kōng de Ps2 huǎnchōng qū dànchū" - -#~ msgid "Running in safe mode! Auto-reload is off.\n" -#~ msgstr "Zài ānquán móshì xià yùnxíng! Zìdòng chóngxīn jiāzài yǐ guānbì.\n" - -#~ msgid "Running in safe mode! Not running saved code.\n" -#~ msgstr "Zài ānquán móshì xià yùnxíng! Bù yùnxíng yǐ bǎocún de dàimǎ.\n" - -#~ msgid "__init__() should return None, not '%s'" -#~ msgstr "__Init__() yīnggāi fǎnhuí not, ér bùshì '%s'" - -#~ msgid "can't convert %s to complex" -#~ msgstr "wúfǎ zhuǎnhuàn%s dào fùzá" - -#~ msgid "can't convert %s to float" -#~ msgstr "wúfǎ zhuǎnhuàn %s dào fú diǎn xíng biànliàng" - -#~ msgid "can't convert %s to int" -#~ msgstr "wúfǎ zhuǎnhuàn%s dào int" - -#~ msgid "can't convert NaN to int" -#~ msgstr "wúfǎ jiāng dǎoháng zhuǎnhuàn wèi int" - -#~ msgid "can't convert address to int" -#~ msgstr "wúfǎ jiāng dìzhǐ zhuǎnhuàn wèi int" - -#~ msgid "can't convert inf to int" -#~ msgstr "bùnéng jiāng inf zhuǎnhuàn wèi int" - -#~ msgid "can't convert to complex" -#~ msgstr "bùnéng zhuǎnhuàn wèi fùzá" - -#~ msgid "can't convert to float" -#~ msgstr "bùnéng zhuǎnhuàn wèi fú diǎn" - -#~ msgid "can't convert to int" -#~ msgstr "bùnéng zhuǎnhuàn wèi int" - -#~ msgid "object '%s' is not a tuple or list" -#~ msgstr "duìxiàng '%s' bùshì yuán zǔ huò lièbiǎo" - -#~ msgid "object of type '%s' has no len()" -#~ msgstr "lèixíng '%s' de duìxiàng méiyǒu chángdù" - -#~ msgid "pop from an empty PulseIn" -#~ msgstr "cóng kōng de PulseIn dànchū dànchū" - -#~ msgid "pop from an empty set" -#~ msgstr "cóng kōng jí dànchū" - -#~ msgid "pop from empty list" -#~ msgstr "cóng kōng lièbiǎo zhòng dànchū" - -#~ msgid "popitem(): dictionary is empty" -#~ msgstr "dànchū xiàngmù (): Zìdiǎn wèi kōng" - -#~ msgid "string index out of range" -#~ msgstr "zìfú chuàn suǒyǐn chāochū fànwéi" - -#~ msgid "string indices must be integers, not %s" -#~ msgstr "zìfú chuàn zhǐshù bìxū shì zhěngshù, ér bùshì %s" - -#~ msgid "struct: index out of range" -#~ msgstr "jiégòu: suǒyǐn chāochū fànwéi" - -#, fuzzy -#~ msgid "unknown format code '%c' for object of type '%s'" -#~ msgstr "lèixíng '%s' duìxiàng wèizhī de géshì dàimǎ '%c'" - -#~ msgid "unsupported type for %q: '%s'" -#~ msgstr "bù zhīchí de lèixíng %q: '%s'" - -#~ msgid "unsupported types for %q: '%s', '%s'" -#~ msgstr "bù zhīchí de lèixíng wèi %q: '%s', '%s'" - #~ msgid "Address is not %d bytes long or is in wrong format" #~ msgstr "Dìzhǐ bùshì %d zì jié zhǎng, huòzhě géshì cuòwù" @@ -282,7 +282,7 @@ bool run_code_py(safe_mode_t safe_mode) { } } - // Wait for connection or character. + // Display a different completion message if the user has no USB attached (cannot save files) if (!serial_connected_at_start) { serial_write_compressed(translate("\nCode done running. Waiting for reload.\n")); } diff --git a/ports/atmel-samd/Makefile b/ports/atmel-samd/Makefile index 25ab2c4aa..65542354e 100644 --- a/ports/atmel-samd/Makefile +++ b/ports/atmel-samd/Makefile @@ -361,7 +361,7 @@ OBJ += $(addprefix $(BUILD)/, $(SRC_S:.s=.o)) OBJ += $(addprefix $(BUILD)/, $(SRC_MOD:.c=.o)) SRC_QSTR += $(HEADER_BUILD)/sdiodata.h -$(HEADER_BUILD)/sdiodata.h: $(TOP)/tools/mksdiodata.py | $(HEADER_BUILD) +$(HEADER_BUILD)/sdiodata.h: tools/mksdiodata.py | $(HEADER_BUILD) $(Q)$(PYTHON3) $< > $@ SRC_QSTR += $(SRC_C) $(SRC_SUPERVISOR) $(SRC_COMMON_HAL_EXPANDED) $(SRC_SHARED_MODULE_EXPANDED) diff --git a/tools/mksdiodata.py b/ports/atmel-samd/tools/mksdiodata.py index 0cce3819f..0cce3819f 100755 --- a/tools/mksdiodata.py +++ b/ports/atmel-samd/tools/mksdiodata.py diff --git a/ports/esp32s2/Makefile b/ports/esp32s2/Makefile index 55db73604..19b89a13a 100644 --- a/ports/esp32s2/Makefile +++ b/ports/esp32s2/Makefile @@ -171,6 +171,7 @@ SRC_C += \ lib/utils/stdout_helpers.c \ lib/utils/sys_stdio_mphal.c \ peripherals/pins.c \ + peripherals/rmt.c \ supervisor/shared/memory.c ifneq ($(USB),FALSE) diff --git a/ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h b/ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h index 78652e215..a94f10ea4 100644 --- a/ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h +++ b/ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h @@ -29,4 +29,6 @@ #define MICROPY_HW_BOARD_NAME "Saola 1 w/Wroom" #define MICROPY_HW_MCU_NAME "ESP32S2" +#define MICROPY_HW_NEOPIXEL (&pin_GPIO18) + #define AUTORESET_DELAY_MS 500 diff --git a/ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.mk b/ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.mk index 6e7627265..9c9ca6169 100644 --- a/ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.mk +++ b/ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.mk @@ -10,8 +10,6 @@ LONGINT_IMPL = MPZ # so increase it to 32. CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32 -CIRCUITPY_NEOPIXEL_WRITE = 0 - CIRCUITPY_ESP_FLASH_MODE=dio CIRCUITPY_ESP_FLASH_FREQ=40m CIRCUITPY_ESP_FLASH_SIZE=4MB diff --git a/ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h b/ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h index 7d08ccf7f..338186dc5 100644 --- a/ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h +++ b/ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h @@ -29,4 +29,6 @@ #define MICROPY_HW_BOARD_NAME "Saola 1 w/Wrover" #define MICROPY_HW_MCU_NAME "ESP32S2" +#define MICROPY_HW_NEOPIXEL (&pin_GPIO18) + #define AUTORESET_DELAY_MS 500 diff --git a/ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.mk b/ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.mk index 1437df7f4..d5ff1c5ac 100644 --- a/ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.mk +++ b/ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.mk @@ -10,8 +10,6 @@ LONGINT_IMPL = MPZ # so increase it to 32. CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32 -CIRCUITPY_NEOPIXEL_WRITE = 0 - CIRCUITPY_ESP_FLASH_MODE=dio CIRCUITPY_ESP_FLASH_FREQ=40m CIRCUITPY_ESP_FLASH_SIZE=4MB diff --git a/ports/esp32s2/boards/espressif_saola_1_wrover/pins.c b/ports/esp32s2/boards/espressif_saola_1_wrover/pins.c index 1d4e2c4eb..0562d9331 100644 --- a/ports/esp32s2/boards/espressif_saola_1_wrover/pins.c +++ b/ports/esp32s2/boards/espressif_saola_1_wrover/pins.c @@ -42,5 +42,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_IO44), MP_ROM_PTR(&pin_GPIO44) }, { MP_ROM_QSTR(MP_QSTR_IO45), MP_ROM_PTR(&pin_GPIO45) }, { MP_ROM_QSTR(MP_QSTR_IO46), MP_ROM_PTR(&pin_GPIO46) }, + + { MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO18) }, }; MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); diff --git a/ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.mk b/ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.mk index ea3484d2f..294736d17 100644 --- a/ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.mk +++ b/ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.mk @@ -4,7 +4,6 @@ USB_PRODUCT = "FeatherS2" USB_MANUFACTURER = "UnexpectedMaker" USB_DEVICES = "CDC,MSC,HID" - INTERNAL_FLASH_FILESYSTEM = 1 LONGINT_IMPL = MPZ @@ -12,8 +11,6 @@ LONGINT_IMPL = MPZ # so increase it to 32. CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32 -CIRCUITPY_NEOPIXEL_WRITE = 0 - CIRCUITPY_ESP_FLASH_MODE=qio CIRCUITPY_ESP_FLASH_FREQ=40m CIRCUITPY_ESP_FLASH_SIZE=16MB diff --git a/ports/esp32s2/common-hal/microcontroller/Pin.c b/ports/esp32s2/common-hal/microcontroller/Pin.c index 5a059f0bb..03a83cfe6 100644 --- a/ports/esp32s2/common-hal/microcontroller/Pin.c +++ b/ports/esp32s2/common-hal/microcontroller/Pin.c @@ -26,12 +26,18 @@ */ #include "shared-bindings/microcontroller/Pin.h" +#include "shared-bindings/digitalio/DigitalInOut.h" +#include "supervisor/shared/rgb_led_status.h" #include "py/mphal.h" #include "esp-idf/components/driver/include/driver/gpio.h" #include "esp-idf/components/soc/include/hal/gpio_hal.h" +#ifdef MICROPY_HW_NEOPIXEL +bool neopixel_in_use; +#endif + STATIC uint32_t never_reset_pins[2]; STATIC uint32_t in_use[2]; @@ -50,6 +56,14 @@ void common_hal_never_reset_pin(const mcu_pin_obj_t* pin) { void reset_pin_number(gpio_num_t pin_number) { never_reset_pins[pin_number / 32] &= ~(1 << pin_number % 32); in_use[pin_number / 32] &= ~(1 << pin_number % 32); + + #ifdef MICROPY_HW_NEOPIXEL + if (pin_number == MICROPY_HW_NEOPIXEL->number) { + neopixel_in_use = false; + rgb_led_status_init(); + return; + } + #endif } void common_hal_reset_pin(const mcu_pin_obj_t* pin) { @@ -69,13 +83,32 @@ void reset_all_pins(void) { } in_use[0] = 0; in_use[1] = 0; + + #ifdef MICROPY_HW_NEOPIXEL + neopixel_in_use = false; + #endif } void claim_pin(const mcu_pin_obj_t* pin) { in_use[pin->number / 32] |= (1 << pin->number % 32); + #ifdef MICROPY_HW_NEOPIXEL + if (pin == MICROPY_HW_NEOPIXEL) { + neopixel_in_use = true; + } + #endif +} + +void common_hal_mcu_pin_claim(const mcu_pin_obj_t* pin) { + claim_pin(pin); } bool pin_number_is_free(gpio_num_t pin_number) { + #ifdef MICROPY_HW_NEOPIXEL + if (pin_number == MICROPY_HW_NEOPIXEL->number) { + return !neopixel_in_use; + } + #endif + uint8_t offset = pin_number / 32; uint8_t mask = 1 << pin_number % 32; return (never_reset_pins[offset] & mask) == 0 && (in_use[offset] & mask) == 0; diff --git a/ports/esp32s2/common-hal/microcontroller/Pin.h b/ports/esp32s2/common-hal/microcontroller/Pin.h index 19985bda6..f6c008703 100644 --- a/ports/esp32s2/common-hal/microcontroller/Pin.h +++ b/ports/esp32s2/common-hal/microcontroller/Pin.h @@ -34,6 +34,10 @@ extern bool apa102_mosi_in_use; extern bool apa102_sck_in_use; +#ifdef MICROPY_HW_NEOPIXEL +extern bool neopixel_in_use; +#endif + void reset_all_pins(void); // reset_pin_number takes the pin number instead of the pointer so that objects don't // need to store a full pointer. diff --git a/ports/esp32s2/common-hal/neopixel_write/__init__.c b/ports/esp32s2/common-hal/neopixel_write/__init__.c index a9b42fc96..1fc976ec3 100644 --- a/ports/esp32s2/common-hal/neopixel_write/__init__.c +++ b/ports/esp32s2/common-hal/neopixel_write/__init__.c @@ -3,7 +3,7 @@ * * The MIT License (MIT) * - * Copyright (c) 2018 hathach for Adafruit Industries + * Copyright (c) 2020 Lucian Copeland for Adafruit Industries * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,10 +24,102 @@ * THE SOFTWARE. */ +/* Uses code from Espressif RGB LED Strip demo and drivers + * Copyright 2015-2020 Espressif Systems (Shanghai) PTE LTD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include "py/mphal.h" +#include "py/runtime.h" #include "shared-bindings/neopixel_write/__init__.h" +#include "driver/rmt.h" +#include "rmt.h" + +#define WS2812_T0H_NS (350) +#define WS2812_T0L_NS (1000) +#define WS2812_T1H_NS (1000) +#define WS2812_T1L_NS (350) +#define WS2812_RESET_US (280) + +static uint32_t ws2812_t0h_ticks = 0; +static uint32_t ws2812_t1h_ticks = 0; +static uint32_t ws2812_t0l_ticks = 0; +static uint32_t ws2812_t1l_ticks = 0; + +static void IRAM_ATTR ws2812_rmt_adapter(const void *src, rmt_item32_t *dest, size_t src_size, + size_t wanted_num, size_t *translated_size, size_t *item_num) +{ + if (src == NULL || dest == NULL) { + *translated_size = 0; + *item_num = 0; + return; + } + const rmt_item32_t bit0 = {{{ ws2812_t0h_ticks, 1, ws2812_t0l_ticks, 0 }}}; //Logical 0 + const rmt_item32_t bit1 = {{{ ws2812_t1h_ticks, 1, ws2812_t1l_ticks, 0 }}}; //Logical 1 + size_t size = 0; + size_t num = 0; + uint8_t *psrc = (uint8_t *)src; + rmt_item32_t *pdest = dest; + while (size < src_size && num < wanted_num) { + for (int i = 0; i < 8; i++) { + // MSB first + if (*psrc & (1 << (7 - i))) { + pdest->val = bit1.val; + } else { + pdest->val = bit0.val; + } + num++; + pdest++; + } + size++; + psrc++; + } + *translated_size = size; + *item_num = num; +} void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout, uint8_t *pixels, uint32_t numBytes) { - (void)digitalinout; - (void)numBytes; + // Reserve channel + uint8_t number = digitalinout->pin->number; + rmt_channel_t channel = esp32s2_peripherals_find_and_reserve_rmt(); + + // Configure Channel + rmt_config_t config = RMT_DEFAULT_CONFIG_TX(number, channel); + config.clk_div = 2; // set counter clock to 40MHz + rmt_config(&config); + rmt_driver_install(config.channel, 0, 0); + + // Convert NS timings to ticks + uint32_t counter_clk_hz = 0; + if (rmt_get_counter_clock(config.channel, &counter_clk_hz) != ESP_OK) { + mp_raise_RuntimeError(translate("Could not retrieve clock")); + } + float ratio = (float)counter_clk_hz / 1e9; + ws2812_t0h_ticks = (uint32_t)(ratio * WS2812_T0H_NS); + ws2812_t0l_ticks = (uint32_t)(ratio * WS2812_T0L_NS); + ws2812_t1h_ticks = (uint32_t)(ratio * WS2812_T1H_NS); + ws2812_t1l_ticks = (uint32_t)(ratio * WS2812_T1L_NS); + + // Initialize automatic timing translator + rmt_translator_init(config.channel, ws2812_rmt_adapter); + + // Write and wait to finish + if(rmt_write_sample(config.channel, pixels, (size_t)numBytes, true) != ESP_OK) { + mp_raise_RuntimeError(translate("Input/output error")); + } + rmt_wait_tx_done(config.channel, pdMS_TO_TICKS(100)); + + // Free channel again + esp32s2_peripherals_free_rmt(config.channel); } diff --git a/ports/esp32s2/common-hal/pulseio/PWMOut.c b/ports/esp32s2/common-hal/pulseio/PWMOut.c index c4f5e18dd..0ac42852a 100644 --- a/ports/esp32s2/common-hal/pulseio/PWMOut.c +++ b/ports/esp32s2/common-hal/pulseio/PWMOut.c @@ -3,8 +3,7 @@ * * The MIT License (MIT) * - * Copyright (c) 2019 Lucian Copeland for Adafruit Industries - * Uses code from Micropython, Copyright (c) 2013-2016 Damien P. George + * Copyright (c) 2020 Lucian Copeland for Adafruit Industries * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,6 +32,7 @@ #define INDEX_EMPTY 0xFF +STATIC bool not_first_reset = false; STATIC uint32_t reserved_timer_freq[LEDC_TIMER_MAX]; STATIC uint8_t reserved_channels[LEDC_CHANNEL_MAX]; STATIC bool never_reset_tim[LEDC_TIMER_MAX]; @@ -40,17 +40,22 @@ STATIC bool never_reset_chan[LEDC_CHANNEL_MAX]; void pwmout_reset(void) { for (size_t i = 0; i < LEDC_CHANNEL_MAX; i++ ) { - ledc_stop(LEDC_LOW_SPEED_MODE, i, 0); + if (reserved_channels[i] != INDEX_EMPTY && not_first_reset) { + ledc_stop(LEDC_LOW_SPEED_MODE, i, 0); + } if (!never_reset_chan[i]) { reserved_channels[i] = INDEX_EMPTY; } } for (size_t i = 0; i < LEDC_TIMER_MAX; i++ ) { - ledc_timer_rst(LEDC_LOW_SPEED_MODE, i); + if (reserved_timer_freq[i]) { + ledc_timer_rst(LEDC_LOW_SPEED_MODE, i); + } if (!never_reset_tim[i]) { reserved_timer_freq[i] = 0; } } + not_first_reset = true; } pwmout_result_t common_hal_pulseio_pwmout_construct(pulseio_pwmout_obj_t* self, @@ -158,7 +163,10 @@ void common_hal_pulseio_pwmout_deinit(pulseio_pwmout_obj_t* self) { if (common_hal_pulseio_pwmout_deinited(self)) { return; } - ledc_stop(LEDC_LOW_SPEED_MODE, self->chan_handle.channel, 0); + + if (reserved_channels[self->chan_handle.channel] != INDEX_EMPTY) { + ledc_stop(LEDC_LOW_SPEED_MODE, self->chan_handle.channel, 0); + } // Search if any other channel is using the timer bool taken = false; for (size_t i =0; i < LEDC_CHANNEL_MAX; i++) { @@ -168,7 +176,9 @@ void common_hal_pulseio_pwmout_deinit(pulseio_pwmout_obj_t* self) { } // Variable frequency means there's only one channel on the timer if (!taken || self->variable_frequency) { - ledc_timer_rst(LEDC_LOW_SPEED_MODE, self->tim_handle.timer_num); + if (reserved_timer_freq[self->tim_handle.timer_num] != 0) { + ledc_timer_rst(LEDC_LOW_SPEED_MODE, self->tim_handle.timer_num); + } reserved_timer_freq[self->tim_handle.timer_num] = 0; } reset_pin_number(self->pin_number); diff --git a/ports/esp32s2/mpconfigport.mk b/ports/esp32s2/mpconfigport.mk index c2d21e084..a7873aa46 100644 --- a/ports/esp32s2/mpconfigport.mk +++ b/ports/esp32s2/mpconfigport.mk @@ -12,26 +12,21 @@ USB_SERIAL_NUMBER_LENGTH = 12 # Longints can be implemented as mpz, as longlong, or not LONGINT_IMPL = MPZ -CIRCUITPY_FULL_BUILD = 0 +# These modules are implemented in ports/<port>/common-hal: CIRCUITPY_ANALOGIO = 0 +CIRCUITPY_NVM = 0 CIRCUITPY_AUDIOBUSIO = 0 CIRCUITPY_AUDIOIO = 0 -CIRCUITPY_BITBANGIO = 1 -CIRCUITPY_BOARD = 1 -CIRCUITPY_DIGITALIO = 1 -CIRCUITPY_BUSIO = 1 -CIRCUITPY_DISPLAYIO = 1 -CIRCUITPY_FREQUENCYIO = 0 -CIRCUITPY_I2CPERIPHERAL = 0 -CIRCUITPY_MICROCONTROLLER = 1 -CIRCUITPY_NVM = 0 -CIRCUITPY_PULSEIO = 1 CIRCUITPY_ROTARYIO = 0 CIRCUITPY_RTC = 0 -CIRCUITPY_TOUCHIO = 0 +CIRCUITPY_FREQUENCYIO = 0 +CIRCUITPY_I2CPERIPHERAL = 0 +CIRCUITPY_COUNTIO = 0 -# Enable USB HID support -CIRCUITPY_USB_HID = 1 -CIRCUITPY_USB_MIDI = 0 +# These modules are implemented in shared-module/ - they can be included in +# any port once their prerequisites in common-hal are complete. +CIRCUITPY_RANDOM = 0 # Requires OS +CIRCUITPY_USB_MIDI = 0 # Requires USB +CIRCUITPY_ULAB = 0 # No requirements, but takes extra flash CIRCUITPY_MODULE ?= none diff --git a/ports/esp32s2/peripherals/rmt.c b/ports/esp32s2/peripherals/rmt.c new file mode 100644 index 000000000..f17957c1c --- /dev/null +++ b/ports/esp32s2/peripherals/rmt.c @@ -0,0 +1,46 @@ +/* + * This file is part of the Micro Python project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2020 Lucian Copeland for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "rmt.h" +#include "py/runtime.h" + +bool rmt_reserved_channels[RMT_CHANNEL_MAX]; + +rmt_channel_t esp32s2_peripherals_find_and_reserve_rmt(void) { + for (size_t i = 0; i < RMT_CHANNEL_MAX; i++) { + if (!rmt_reserved_channels[i]) { + rmt_reserved_channels[i] = true; + return i; + } + } + mp_raise_RuntimeError(translate("All timers in use")); + return false; +} + +void esp32s2_peripherals_free_rmt(rmt_channel_t chan) { + rmt_reserved_channels[chan] = false; + rmt_driver_uninstall(chan); +} diff --git a/ports/esp32s2/peripherals/rmt.h b/ports/esp32s2/peripherals/rmt.h new file mode 100644 index 000000000..4741a5bc5 --- /dev/null +++ b/ports/esp32s2/peripherals/rmt.h @@ -0,0 +1,37 @@ +/* + * This file is part of the Micro Python project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2020 Lucian Copeland for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef MICROPY_INCLUDED_ESP32S2_PERIPHERALS_RMT_H +#define MICROPY_INCLUDED_ESP32S2_PERIPHERALS_RMT_H + +#include "py/mphal.h" +#include "driver/rmt.h" +#include <stdint.h> + +rmt_channel_t esp32s2_peripherals_find_and_reserve_rmt(void); +void esp32s2_peripherals_free_rmt(rmt_channel_t chan); + +#endif diff --git a/ports/nrf/boards/makerdiary_m60_keyboard/mpconfigboard.h b/ports/nrf/boards/makerdiary_m60_keyboard/mpconfigboard.h index 086718089..4fb6049c5 100644 --- a/ports/nrf/boards/makerdiary_m60_keyboard/mpconfigboard.h +++ b/ports/nrf/boards/makerdiary_m60_keyboard/mpconfigboard.h @@ -30,9 +30,10 @@ #define MICROPY_HW_BOARD_NAME "Makerdiary M60 Keyboard" #define MICROPY_HW_MCU_NAME "nRF52840" -#define CP_RGB_STATUS_R (&pin_P0_30) -#define CP_RGB_STATUS_G (&pin_P0_29) -#define CP_RGB_STATUS_B (&pin_P0_31) +// RGB LEDs use PWM peripheral, avoid using them to save energy +// #define CP_RGB_STATUS_R (&pin_P0_30) +// #define CP_RGB_STATUS_G (&pin_P0_29) +// #define CP_RGB_STATUS_B (&pin_P0_31) #define MICROPY_QSPI_DATA0 NRF_GPIO_PIN_MAP(1, 10) #define MICROPY_QSPI_DATA1 NRF_GPIO_PIN_MAP(1, 14) diff --git a/ports/nrf/supervisor/port.c b/ports/nrf/supervisor/port.c index e681e6825..87a4d7396 100644 --- a/ports/nrf/supervisor/port.c +++ b/ports/nrf/supervisor/port.c @@ -65,6 +65,10 @@ #include "common-hal/audiopwmio/PWMAudioOut.h" #endif +#if defined(MICROPY_QSPI_CS) +extern void qspi_disable(void); +#endif + static void power_warning_handler(void) { reset_into_safe_mode(BROWNOUT); } @@ -295,6 +299,10 @@ void port_interrupt_after_ticks(uint32_t ticks) { } void port_sleep_until_interrupt(void) { +#if defined(MICROPY_QSPI_CS) + qspi_disable(); +#endif + // Clear the FPU interrupt because it can prevent us from sleeping. if (NVIC_GetPendingIRQ(FPU_IRQn)) { __set_FPSCR(__get_FPSCR() & ~(0x9f)); diff --git a/ports/nrf/supervisor/qspi_flash.c b/ports/nrf/supervisor/qspi_flash.c index 90260b091..5ab56c6bc 100644 --- a/ports/nrf/supervisor/qspi_flash.c +++ b/ports/nrf/supervisor/qspi_flash.c @@ -38,7 +38,44 @@ #include "supervisor/shared/external_flash/common_commands.h" #include "supervisor/shared/external_flash/qspi_flash.h" +// When USB is disconnected, disable QSPI in sleep mode to save energy +void qspi_disable(void) +{ + // If VBUS is detected, no need to disable QSPI + if (NRF_QSPI->ENABLE && !(NRF_POWER->USBREGSTATUS & POWER_USBREGSTATUS_VBUSDETECT_Msk)) { + // Keep CS high when QSPI is diabled + nrf_gpio_cfg_output(MICROPY_QSPI_CS); + nrf_gpio_pin_write(MICROPY_QSPI_CS, 1); + + // Workaround to disable QSPI according to nRF52840 Revision 1 Errata V1.4 - 3.8 + NRF_QSPI->TASKS_DEACTIVATE = 1; + *(volatile uint32_t *)0x40029054 = 1; + NRF_QSPI->ENABLE = 0; + } +} + +void qspi_enable(void) +{ + if (NRF_QSPI->ENABLE) { + return; + } + + nrf_qspi_enable(NRF_QSPI); + + nrf_qspi_event_clear(NRF_QSPI, NRF_QSPI_EVENT_READY); + nrf_qspi_task_trigger(NRF_QSPI, NRF_QSPI_TASK_ACTIVATE); + + uint32_t remaining_attempts = 100; + do { + if (nrf_qspi_event_check(NRF_QSPI, NRF_QSPI_EVENT_READY)) { + break; + } + NRFX_DELAY_US(10); + } while (--remaining_attempts); +} + bool spi_flash_command(uint8_t command) { + qspi_enable(); nrf_qspi_cinstr_conf_t cinstr_cfg = { .opcode = command, .length = 1, @@ -51,6 +88,7 @@ bool spi_flash_command(uint8_t command) { } bool spi_flash_read_command(uint8_t command, uint8_t* response, uint32_t length) { + qspi_enable(); nrf_qspi_cinstr_conf_t cinstr_cfg = { .opcode = command, .length = length + 1, @@ -64,6 +102,7 @@ bool spi_flash_read_command(uint8_t command, uint8_t* response, uint32_t length) } bool spi_flash_write_command(uint8_t command, uint8_t* data, uint32_t length) { + qspi_enable(); nrf_qspi_cinstr_conf_t cinstr_cfg = { .opcode = command, .length = length + 1, @@ -76,6 +115,7 @@ bool spi_flash_write_command(uint8_t command, uint8_t* data, uint32_t length) { } bool spi_flash_sector_command(uint8_t command, uint32_t address) { + qspi_enable(); if (command != CMD_SECTOR_ERASE) { return false; } @@ -83,6 +123,7 @@ bool spi_flash_sector_command(uint8_t command, uint32_t address) { } bool spi_flash_write_data(uint32_t address, uint8_t* data, uint32_t length) { + qspi_enable(); // TODO: In theory, this also needs to handle unaligned data and // non-multiple-of-4 length. (in practice, I don't think the fat layer // generates such writes) @@ -90,6 +131,7 @@ bool spi_flash_write_data(uint32_t address, uint8_t* data, uint32_t length) { } bool spi_flash_read_data(uint32_t address, uint8_t* data, uint32_t length) { + qspi_enable(); int misaligned = ((intptr_t)data) & 3; // If the data is misaligned, we need to read 4 bytes // into an aligned buffer, and then copy 1, 2, or 3 bytes from the aligned diff --git a/ports/stm/boards/feather_stm32f405_express/pins.c b/ports/stm/boards/feather_stm32f405_express/pins.c index ebc8fa337..571076c33 100644 --- a/ports/stm/boards/feather_stm32f405_express/pins.c +++ b/ports/stm/boards/feather_stm32f405_express/pins.c @@ -1,5 +1,17 @@ +#include "py/objtuple.h" #include "shared-bindings/board/__init__.h" +STATIC const mp_rom_obj_tuple_t sdio_data_tuple = { + {&mp_type_tuple}, + 4, + { + MP_ROM_PTR(&pin_PC08), + MP_ROM_PTR(&pin_PC09), + MP_ROM_PTR(&pin_PC10), + MP_ROM_PTR(&pin_PC11), + } +}; + STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA04) }, { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA05) }, @@ -31,5 +43,9 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, + + { MP_ROM_QSTR(MP_QSTR_SDIO_CLOCK), MP_ROM_PTR(&pin_PC12) }, + { MP_ROM_QSTR(MP_QSTR_SDIO_COMMAND), MP_ROM_PTR(&pin_PD02) }, + { MP_ROM_QSTR(MP_QSTR_SDIO_DATA), MP_ROM_PTR(&sdio_data_tuple) }, }; MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); diff --git a/ports/stm/common-hal/busio/I2C.c b/ports/stm/common-hal/busio/I2C.c index b05d28c85..de69da211 100644 --- a/ports/stm/common-hal/busio/I2C.c +++ b/ports/stm/common-hal/busio/I2C.c @@ -112,7 +112,7 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self, if (i2c_taken) { mp_raise_ValueError(translate("Hardware busy, try alternative pins")); } else { - mp_raise_ValueError(translate("Invalid I2C pin selection")); + mp_raise_ValueError_varg(translate("Invalid %q pin selection"), MP_QSTR_I2C); } } diff --git a/ports/stm/common-hal/busio/SPI.c b/ports/stm/common-hal/busio/SPI.c index 15c746b62..0354d64ad 100644 --- a/ports/stm/common-hal/busio/SPI.c +++ b/ports/stm/common-hal/busio/SPI.c @@ -169,7 +169,7 @@ STATIC int check_pins(busio_spi_obj_t *self, if (spi_taken) { mp_raise_ValueError(translate("Hardware busy, try alternative pins")); } else { - mp_raise_ValueError(translate("Invalid SPI pin selection")); + mp_raise_ValueError_varg(translate("Invalid %q pin selection"), MP_QSTR_SPI); } } diff --git a/ports/stm/common-hal/busio/UART.c b/ports/stm/common-hal/busio/UART.c index 08dae7e42..0cd906181 100644 --- a/ports/stm/common-hal/busio/UART.c +++ b/ports/stm/common-hal/busio/UART.c @@ -58,7 +58,7 @@ STATIC USART_TypeDef * assign_uart_or_throw(busio_uart_obj_t* self, bool pin_eva if (uart_taken) { mp_raise_ValueError(translate("Hardware in use, try alternative pins")); } else { - mp_raise_ValueError(translate("Invalid UART pin selection")); + mp_raise_ValueError_varg(translate("Invalid %q pin selection"), MP_QSTR_UART); } } } diff --git a/ports/stm/common-hal/sdioio/SDCard.c b/ports/stm/common-hal/sdioio/SDCard.c new file mode 100644 index 000000000..5f6010f01 --- /dev/null +++ b/ports/stm/common-hal/sdioio/SDCard.c @@ -0,0 +1,327 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2020 Jeff Epler for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#include <stdbool.h> + +#include "shared-bindings/sdioio/SDCard.h" +#include "py/mperrno.h" +#include "py/runtime.h" + +#include "shared-bindings/microcontroller/__init__.h" +#include "shared-bindings/util.h" +#include "boards/board.h" +#include "supervisor/shared/translate.h" +#include "common-hal/microcontroller/Pin.h" +#include "shared-bindings/microcontroller/Pin.h" + +STATIC bool reserved_sdio[MP_ARRAY_SIZE(mcu_sdio_banks)]; +STATIC bool never_reset_sdio[MP_ARRAY_SIZE(mcu_sdio_banks)]; + +STATIC const mcu_periph_obj_t *find_pin_function(const mcu_periph_obj_t *table, size_t sz, const mcu_pin_obj_t *pin, int periph_index) { + for(size_t i = 0; i<sz; i++, table++) { + if(periph_index == table->periph_index && pin == table->pin ) { + return table; + } + } + return NULL; +} + +//match pins to SDIO objects +STATIC int check_pins(sdioio_sdcard_obj_t *self, + const mcu_pin_obj_t * clock, const mcu_pin_obj_t * command, + uint8_t num_data, mcu_pin_obj_t ** data) { + bool sdio_taken = false; + + const uint8_t sdio_clock_len = MP_ARRAY_SIZE(mcu_sdio_clock_list); + const uint8_t sdio_command_len = MP_ARRAY_SIZE(mcu_sdio_command_list); + const uint8_t sdio_data0_len = MP_ARRAY_SIZE(mcu_sdio_data0_list); + const uint8_t sdio_data1_len = MP_ARRAY_SIZE(mcu_sdio_data1_list); + const uint8_t sdio_data2_len = MP_ARRAY_SIZE(mcu_sdio_data2_list); + const uint8_t sdio_data3_len = MP_ARRAY_SIZE(mcu_sdio_data3_list); + + + // Loop over each possibility for clock. Check whether all other pins can + // be used on the same peripheral + for (uint i = 0; i < sdio_clock_len; i++) { + const mcu_periph_obj_t *mcu_sdio_clock = &mcu_sdio_clock_list[i]; + if (mcu_sdio_clock->pin != clock) { + continue; + } + + int periph_index = mcu_sdio_clock->periph_index; + + const mcu_periph_obj_t *mcu_sdio_command = NULL; + if (!(mcu_sdio_command = find_pin_function(mcu_sdio_command_list, sdio_command_len, command, periph_index))) { + continue; + } + + const mcu_periph_obj_t *mcu_sdio_data0 = NULL; + if(!(mcu_sdio_data0 = find_pin_function(mcu_sdio_data0_list, sdio_data0_len, data[0], periph_index))) { + continue; + } + + const mcu_periph_obj_t *mcu_sdio_data1 = NULL; + if(num_data > 1 && !(mcu_sdio_data1 = find_pin_function(mcu_sdio_data1_list, sdio_data1_len, data[1], periph_index))) { + continue; + } + + const mcu_periph_obj_t *mcu_sdio_data2 = NULL; + if(num_data > 2 && !(mcu_sdio_data2 = find_pin_function(mcu_sdio_data2_list, sdio_data2_len, data[2], periph_index))) { + continue; + } + + const mcu_periph_obj_t *mcu_sdio_data3 = NULL; + if(num_data > 3 && !(mcu_sdio_data3 = find_pin_function(mcu_sdio_data3_list, sdio_data3_len, data[3], periph_index))) { + continue; + } + + if (reserved_sdio[periph_index-1]) { + sdio_taken = true; + continue; + } + + self->clock = mcu_sdio_clock; + self->command = mcu_sdio_command; + self->data[0] = mcu_sdio_data0; + self->data[1] = mcu_sdio_data1; + self->data[2] = mcu_sdio_data2; + self->data[3] = mcu_sdio_data3; + + return periph_index; + } + + if (sdio_taken) { + mp_raise_ValueError(translate("Hardware busy, try alternative pins")); + } else { + mp_raise_ValueError_varg(translate("Invalid %q pin selection"), MP_QSTR_SDIO); + } +} + + +void common_hal_sdioio_sdcard_construct(sdioio_sdcard_obj_t *self, + const mcu_pin_obj_t * clock, const mcu_pin_obj_t * command, + uint8_t num_data, mcu_pin_obj_t ** data, uint32_t frequency) { + + int periph_index = check_pins(self, clock, command, num_data, data); + SDIO_TypeDef * SDIOx = mcu_sdio_banks[periph_index - 1]; + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + + /* Configure data pins */ + for (int i=0; i<num_data; i++) { + GPIO_InitStruct.Pin = pin_mask(data[i]->number); + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Alternate = self->data[i]->altfn_index; + HAL_GPIO_Init(pin_port(data[i]->port), &GPIO_InitStruct); + } + + /* Configure command pin */ + GPIO_InitStruct.Alternate = self->command->altfn_index; + GPIO_InitStruct.Pin = pin_mask(command->number); + HAL_GPIO_Init(pin_port(command->port), &GPIO_InitStruct); + + /* Configure clock */ + GPIO_InitStruct.Alternate = self->clock->altfn_index; + GPIO_InitStruct.Pin = pin_mask(clock->number); + HAL_GPIO_Init(pin_port(clock->port), &GPIO_InitStruct); + + __HAL_RCC_SDIO_CLK_ENABLE(); + + self->handle.Init.ClockDiv = SDIO_TRANSFER_CLK_DIV; + self->handle.Init.ClockEdge = SDIO_CLOCK_EDGE_RISING; + self->handle.Init.ClockBypass = SDIO_CLOCK_BYPASS_DISABLE; + self->handle.Init.ClockPowerSave = SDIO_CLOCK_POWER_SAVE_DISABLE; + self->handle.Init.BusWide = SDIO_BUS_WIDE_1B; + self->handle.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_DISABLE; + self->handle.Instance = SDIOx; + + HAL_StatusTypeDef r = HAL_SD_Init(&self->handle); + if (r != HAL_OK) { + mp_raise_ValueError_varg(translate("SDIO Init Error %d"), (int)r); + } + + HAL_SD_CardInfoTypeDef info; + r = HAL_SD_GetCardInfo(&self->handle, &info); + if (r != HAL_OK) { + mp_raise_ValueError_varg(translate("SDIO GetCardInfo Error %d"), (int)r); + } + + self->num_data = 1; + if (num_data == 4) { + if ((r = HAL_SD_ConfigWideBusOperation(&self->handle, SDIO_BUS_WIDE_4B)) == HAL_SD_ERROR_NONE) { + self->handle.Init.BusWide = SDIO_BUS_WIDE_4B; + self->num_data = 4; + } else { + } + } + + self->capacity = info.BlockNbr * (info.BlockSize / 512); + self->frequency = 25000000; + + reserved_sdio[periph_index - 1] = true; + + common_hal_mcu_pin_claim(clock); + common_hal_mcu_pin_claim(command); + for (int i=0; i<num_data; i++) { + common_hal_mcu_pin_claim(data[i]); + } + + return; +} + +uint32_t common_hal_sdioio_sdcard_get_count(sdioio_sdcard_obj_t *self) { + return self->capacity; +} + +uint32_t common_hal_sdioio_sdcard_get_frequency(sdioio_sdcard_obj_t *self) { + return self->frequency; +} + +uint8_t common_hal_sdioio_sdcard_get_width(sdioio_sdcard_obj_t *self) { + return self->num_data; +} + +STATIC void check_whole_block(mp_buffer_info_t *bufinfo) { + if (bufinfo->len % 512) { + mp_raise_ValueError(translate("Buffer must be a multiple of 512 bytes")); + } +} + +STATIC void wait_write_complete(sdioio_sdcard_obj_t *self) { + if (self->state_programming) { + HAL_SD_CardStateTypedef st = HAL_SD_CARD_PROGRAMMING; + // This waits up to 60s for programming to complete. This seems like + // an extremely long time, but this is the timeout that micropython's + // implementation uses + for (int i=0; i < 60000 && st == HAL_SD_CARD_PROGRAMMING; i++) { + st = HAL_SD_GetCardState(&self->handle); + HAL_Delay(1); + }; + self->state_programming = false; + } +} + +STATIC void check_for_deinit(sdioio_sdcard_obj_t *self) { + if (common_hal_sdioio_sdcard_deinited(self)) { + raise_deinited_error(); + } +} + +int common_hal_sdioio_sdcard_writeblocks(sdioio_sdcard_obj_t *self, uint32_t start_block, mp_buffer_info_t *bufinfo) { + check_for_deinit(self); + check_whole_block(bufinfo); + wait_write_complete(self); + self->state_programming = true; + common_hal_mcu_disable_interrupts(); + HAL_StatusTypeDef r = HAL_SD_WriteBlocks(&self->handle, bufinfo->buf, start_block, bufinfo->len / 512, 1000); + common_hal_mcu_enable_interrupts(); + if (r != HAL_OK) { + return -EIO; + } + return 0; +} + +int common_hal_sdioio_sdcard_readblocks(sdioio_sdcard_obj_t *self, uint32_t start_block, mp_buffer_info_t *bufinfo) { + check_for_deinit(self); + check_whole_block(bufinfo); + wait_write_complete(self); + common_hal_mcu_disable_interrupts(); + HAL_StatusTypeDef r = HAL_SD_ReadBlocks(&self->handle, bufinfo->buf, start_block, bufinfo->len / 512, 1000); + common_hal_mcu_enable_interrupts(); + if (r != HAL_OK) { + return -EIO; + } + return 0; +} + +bool common_hal_sdioio_sdcard_configure(sdioio_sdcard_obj_t *self, uint32_t frequency, uint8_t bits) { + check_for_deinit(self); + return true; +} + +bool common_hal_sdioio_sdcard_deinited(sdioio_sdcard_obj_t *self) { + return self->command == NULL; +} + +STATIC void never_reset_mcu_periph(const mcu_periph_obj_t *periph) { + if (periph) { + never_reset_pin_number(periph->pin->port,periph->pin->number); + } +} + +STATIC void reset_mcu_periph(const mcu_periph_obj_t *periph) { + if (periph) { + reset_pin_number(periph->pin->port,periph->pin->number); + } +} + +void common_hal_sdioio_sdcard_deinit(sdioio_sdcard_obj_t *self) { + if (common_hal_sdioio_sdcard_deinited(self)) { + return; + } + + reserved_sdio[self->command->periph_index - 1] = false; + never_reset_sdio[self->command->periph_index - 1] = false; + + reset_mcu_periph(self->command); + self->command = NULL; + + reset_mcu_periph(self->clock); + self->command = NULL; + + for (size_t i=0; i<MP_ARRAY_SIZE(self->data); i++) { + reset_mcu_periph(self->data[i]); + self->data[i] = NULL; + } +} + +void common_hal_sdioio_sdcard_never_reset(sdioio_sdcard_obj_t *self) { + if (common_hal_sdioio_sdcard_deinited(self)) { + return; + } + + if (never_reset_sdio[self->command->periph_index] - 1) { + return; + } + + never_reset_sdio[self->command->periph_index - 1] = true; + + never_reset_mcu_periph(self->command); + never_reset_mcu_periph(self->clock); + + for (size_t i=0; i<MP_ARRAY_SIZE(self->data); i++) { + never_reset_mcu_periph(self->data[i]); + } +} + +void sdioio_reset() { + for (size_t i=0; i<MP_ARRAY_SIZE(reserved_sdio); i++) { + if (!never_reset_sdio[i]) { + reserved_sdio[i] = false; + } + } +} diff --git a/ports/stm/common-hal/sdioio/SDCard.h b/ports/stm/common-hal/sdioio/SDCard.h new file mode 100644 index 000000000..b737b6939 --- /dev/null +++ b/ports/stm/common-hal/sdioio/SDCard.h @@ -0,0 +1,50 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2020 Jeff Epler for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef MICROPY_INCLUDED_STM32_COMMON_HAL_BUSIO_SDIO_H +#define MICROPY_INCLUDED_STM32_COMMON_HAL_BUSIO_SDIO_H + +#include "common-hal/microcontroller/Pin.h" + +#include "peripherals/periph.h" + +#include "py/obj.h" + +typedef struct { + mp_obj_base_t base; + SD_HandleTypeDef handle; + uint8_t num_data:3, state_programming:1; + bool has_lock; + const mcu_periph_obj_t *command; + const mcu_periph_obj_t *clock; + const mcu_periph_obj_t *data[4]; + uint32_t frequency; + uint32_t capacity; +} sdioio_sdcard_obj_t; + +void sdioio_reset(void); + +#endif // MICROPY_INCLUDED_STM32_COMMON_HAL_BUSIO_SDIO_H diff --git a/ports/stm/common-hal/sdioio/__init__.c b/ports/stm/common-hal/sdioio/__init__.c new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ports/stm/common-hal/sdioio/__init__.c diff --git a/ports/stm/common-hal/sdioio/__init__.h b/ports/stm/common-hal/sdioio/__init__.h new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/ports/stm/common-hal/sdioio/__init__.h diff --git a/ports/stm/hal_conf/stm32_hal_conf.h b/ports/stm/hal_conf/stm32_hal_conf.h index b78afc64b..c91be86fd 100644 --- a/ports/stm/hal_conf/stm32_hal_conf.h +++ b/ports/stm/hal_conf/stm32_hal_conf.h @@ -61,7 +61,7 @@ #define HAL_RTC_MODULE_ENABLED // #define HAL_SAI_MODULE_ENABLED // #define HAL_SDRAM_MODULE_ENABLED -// #define HAL_SD_MODULE_ENABLED +#define HAL_SD_MODULE_ENABLED // #define HAL_SMARTCARD_MODULE_ENABLED // #define HAL_SMBUS_MODULE_ENABLED // #define HAL_SPDIFRX_MODULE_ENABLED diff --git a/ports/stm/mpconfigport.mk b/ports/stm/mpconfigport.mk index 896d78bba..19f9ffa44 100644 --- a/ports/stm/mpconfigport.mk +++ b/ports/stm/mpconfigport.mk @@ -6,6 +6,7 @@ USB_SERIAL_NUMBER_LENGTH ?= 24 ifeq ($(MCU_VARIANT),STM32F405xx) CIRCUITPY_FRAMEBUFFERIO ?= 1 CIRCUITPY_RGBMATRIX ?= 1 + CIRCUITPY_SDIOIO ?= 1 endif ifeq ($(MCU_SERIES),F4) diff --git a/ports/stm/peripherals/stm32f4/stm32f405xx/periph.c b/ports/stm/peripherals/stm32f4/stm32f405xx/periph.c index e2124bc30..c58234671 100644 --- a/ports/stm/peripherals/stm32f4/stm32f405xx/periph.c +++ b/ports/stm/peripherals/stm32f4/stm32f405xx/periph.c @@ -194,3 +194,25 @@ const mcu_tim_pin_obj_t mcu_tim_pin_list[TIM_PIN_ARRAY_LEN] = { TIM(8, 3, 2, &pin_PI06), TIM(8, 3, 3, &pin_PI07), }; + +//SDIO +SDIO_TypeDef * mcu_sdio_banks[1] = {SDIO}; + +const mcu_periph_obj_t mcu_sdio_clock_list[1] = { + PERIPH(1, 12, &pin_PC12), +}; +const mcu_periph_obj_t mcu_sdio_command_list[1] = { + PERIPH(1, 12, &pin_PD02), +}; +const mcu_periph_obj_t mcu_sdio_data0_list[1] = { + PERIPH(1, 12, &pin_PC08), +}; +const mcu_periph_obj_t mcu_sdio_data1_list[1] = { + PERIPH(1, 12, &pin_PC09), +}; +const mcu_periph_obj_t mcu_sdio_data2_list[1] = { + PERIPH(1, 12, &pin_PC10), +}; +const mcu_periph_obj_t mcu_sdio_data3_list[1] = { + PERIPH(1, 12, &pin_PC11), +}; diff --git a/ports/stm/peripherals/stm32f4/stm32f405xx/periph.h b/ports/stm/peripherals/stm32f4/stm32f405xx/periph.h index e52568c85..020bff370 100644 --- a/ports/stm/peripherals/stm32f4/stm32f405xx/periph.h +++ b/ports/stm/peripherals/stm32f4/stm32f405xx/periph.h @@ -61,4 +61,15 @@ extern const mcu_periph_obj_t mcu_uart_rx_list[UART_RX_ARRAY_LEN]; TIM_TypeDef * mcu_tim_banks[TIM_BANK_ARRAY_LEN]; const mcu_tim_pin_obj_t mcu_tim_pin_list[TIM_PIN_ARRAY_LEN]; +//SDIO +extern SDIO_TypeDef * mcu_sdio_banks[1]; + +extern const mcu_periph_obj_t mcu_sdio_clock_list[1]; +extern const mcu_periph_obj_t mcu_sdio_command_list[1]; +extern const mcu_periph_obj_t mcu_sdio_data0_list[1]; +extern const mcu_periph_obj_t mcu_sdio_data1_list[1]; +extern const mcu_periph_obj_t mcu_sdio_data2_list[1]; +extern const mcu_periph_obj_t mcu_sdio_data3_list[1]; + + #endif // MICROPY_INCLUDED_STM32_PERIPHERALS_STM32F405XX_PERIPH_H diff --git a/ports/stm/supervisor/port.c b/ports/stm/supervisor/port.c index 7c9fcf750..5ce92f70a 100644 --- a/ports/stm/supervisor/port.c +++ b/ports/stm/supervisor/port.c @@ -43,6 +43,9 @@ #include "common-hal/pulseio/PulseIn.h" #include "timers.h" #endif +#if CIRCUITPY_SDIOIO +#include "common-hal/sdioio/SDCard.h" +#endif #include "clocks.h" #include "gpio.h" @@ -224,6 +227,9 @@ void reset_port(void) { spi_reset(); uart_reset(); #endif +#if CIRCUITPY_SDIOIO + sdioio_reset(); +#endif #if CIRCUITPY_PULSEIO timers_reset(); pwmout_reset(); diff --git a/shared-bindings/support_matrix.rst b/shared-bindings/support_matrix.rst index 124f3a810..1b75e0256 100644 --- a/shared-bindings/support_matrix.rst +++ b/shared-bindings/support_matrix.rst @@ -6,11 +6,16 @@ Support Matrix The following table lists the available built-in modules for each CircuitPython capable board. -.. csv-table:: +.. list-table:: :header-rows: 1 :widths: 7, 50 - "Board", "Modules Available" - {% for key, value in support_matrix|dictsort -%} - "{{ key }}", "{{ '`' ~ value|join("`, `") ~ '`' }}" - {% endfor -%} + * - Board + - Modules Available + + {% for key, value in support_matrix|dictsort %} + {{ '.. _' ~ key|replace(" ", "-") ~ ':' }} + * - {{ key }} + - {{ '`' ~ value|join("`, `") ~ '`' }} + + {% endfor %} diff --git a/supervisor/shared/rgb_led_status.c b/supervisor/shared/rgb_led_status.c index f3c210647..2f23e3125 100644 --- a/supervisor/shared/rgb_led_status.c +++ b/supervisor/shared/rgb_led_status.c @@ -28,6 +28,7 @@ #include "shared-bindings/microcontroller/Pin.h" #include "rgb_led_status.h" #include "supervisor/shared/tick.h" +#include "py/obj.h" #ifdef MICROPY_HW_NEOPIXEL uint8_t rgb_status_brightness = 63; @@ -365,6 +366,11 @@ void prep_rgb_status_animation(const pyexec_result_t* result, status->safe_mode = safe_mode; status->found_main = found_main; status->total_exception_cycle = 0; + status->ok = result->return_code != PYEXEC_EXCEPTION; + if (status->ok) { + // If this isn't an exception, skip exception sorting and handling + return; + } status->ones = result->exception_line % 10; status->ones += status->ones > 0 ? 1 : 0; status->tens = (result->exception_line / 10) % 10; @@ -382,11 +388,12 @@ void prep_rgb_status_animation(const pyexec_result_t* result, } line /= 10; } - status->ok = result->return_code != PYEXEC_EXCEPTION; if (!status->ok) { status->total_exception_cycle = EXCEPTION_TYPE_LENGTH_MS * 3 + LINE_NUMBER_TOGGLE_LENGTH * status->digit_sum + LINE_NUMBER_TOGGLE_LENGTH * num_places; } - if (mp_obj_is_subclass_fast(result->exception_type, &mp_type_IndentationError)) { + if (!result->exception_type) { + status->exception_color = OTHER_ERROR; + } else if (mp_obj_is_subclass_fast(result->exception_type, &mp_type_IndentationError)) { status->exception_color = INDENTATION_ERROR; } else if (mp_obj_is_subclass_fast(result->exception_type, &mp_type_SyntaxError)) { status->exception_color = SYNTAX_ERROR; |
