From 5f3a259827a1c6d1e4292aa5a6198305e88abfef Mon Sep 17 00:00:00 2001 From: Carl Karsten Date: Thu, 20 Dec 2018 18:44:39 -0600 Subject: [PATCH 01/13] Sync with micropython. closes #1414 --- tools/tinytest-codegen.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/tinytest-codegen.py b/tools/tinytest-codegen.py index 7f14db4ba6..7a48f8a9a7 100755 --- a/tools/tinytest-codegen.py +++ b/tools/tinytest-codegen.py @@ -23,7 +23,7 @@ def chew_filename(t): def script_to_map(test_file): r = {"name": chew_filename(test_file)["func"]} - with open(t) as test: + with open(test_file, "rb") as test: script = test.readlines() # Test for import skip_if and inject it into the test as needed. @@ -39,7 +39,11 @@ def script_to_map(test_file): continue script.insert(index + total_lines, "\t" + line) total_lines += 1 - r['script'] = escape(''.join(script)) + r['script'] = escape(b''.join(script)) + + with open(test_file + ".exp", "rb") as f: + r["output"] = escape(f.read()) + return r test_function = ( From e312b93cb07becba7fd36c54fb7321efed684046 Mon Sep 17 00:00:00 2001 From: eighthree Date: Thu, 20 Dec 2018 22:12:38 -0800 Subject: [PATCH 02/13] Update Tagalog translations - Modified changed strings - Added new translations --- locale/fil.po | 264 +++++++++++++++++++++++--------------------------- 1 file changed, 123 insertions(+), 141 deletions(-) diff --git a/locale/fil.po b/locale/fil.po index c171975b69..c1a564cdf5 100644 --- a/locale/fil.po +++ b/locale/fil.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-06 17:04-0800\n" -"PO-Revision-Date: 2018-08-30 23:04-0700\n" +"PO-Revision-Date: 2018-12-19 01:30-0800\n" "Last-Translator: Timothy \n" "Language-Team: fil\n" "Language: fil\n" @@ -323,7 +323,7 @@ msgstr "Lahat ng event channels ginagamit" #: ports/atmel-samd/common-hal/audioio/AudioOut.c:375 #, c-format msgid "Sample rate too high. It must be less than %d" -msgstr "" +msgstr "Sample rate ay masyadong mataas. Ito ay dapat hindi hiigit sa %d" #: ports/atmel-samd/common-hal/busio/I2C.c:71 msgid "Not enough pins available" @@ -653,49 +653,49 @@ msgstr "Hindi supportado ang AnalogOut" #: ports/nrf/common-hal/bleio/Adapter.c:41 #, c-format msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX" -msgstr "" +msgstr "Soft device assert, id: 0x%08lX, pc: 0x%08lX" #: ports/nrf/common-hal/bleio/Adapter.c:125 #, c-format msgid "Failed to change softdevice state, error: 0x%08lX" -msgstr "" +msgstr "Nabigo sa pagbago ng softdevice state, error: 0x%08lX" #: ports/nrf/common-hal/bleio/Adapter.c:135 #, c-format msgid "Failed to get softdevice state, error: 0x%08lX" -msgstr "" +msgstr "Nabigo sa pagkuha ng softdevice state, error: 0x%08lX" #: ports/nrf/common-hal/bleio/Adapter.c:155 #, c-format msgid "Failed to get local address, error: 0x%08lX" -msgstr "" +msgstr "Nabigo sa pagkuha ng local na address, , error: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:52 -#, fuzzy, c-format +#, c-format msgid "Failed to write gatts value, status: 0x%08lX" -msgstr "Hindi maisulat ang attribute value. status: 0x%02x" +msgstr "Hindi maisulat ang gatts value, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:76 -#, fuzzy, c-format +#, c-format msgid "Failed to notify attribute value, status: 0x%08lX" -msgstr "Hindi mabalitaan ang attribute value. status: 0x%02x" +msgstr "Hindi mabalitaan ang attribute value, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:91 -#, fuzzy, c-format +#, c-format msgid "Failed to read attribute value, status: 0x%08lX" -msgstr "Hindi mabasa ang value ng attribute. status: 0x%02x" +msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:119 #: ports/nrf/common-hal/bleio/Device.c:272 #: ports/nrf/common-hal/bleio/Device.c:307 #, c-format msgid "Failed to acquire mutex, status: 0x%08lX" -msgstr "" +msgstr "Nabigo sa pag kuha ng mutex, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:126 -#, fuzzy, c-format +#, c-format msgid "Failed to write attribute value, status: 0x%08lX" -msgstr "Hindi maisulat ang attribute value. status: 0x%02x" +msgstr "Hindi maisulat ang attribute value, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:138 #: ports/nrf/common-hal/bleio/Device.c:284 @@ -704,65 +704,64 @@ msgstr "Hindi maisulat ang attribute value. status: 0x%02x" #: ports/nrf/common-hal/bleio/Device.c:391 #, c-format msgid "Failed to release mutex, status: 0x%08lX" -msgstr "" +msgstr "Nabigo sa pagrelease ng mutex, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:81 #: ports/nrf/common-hal/bleio/Device.c:114 -#, fuzzy msgid "Can not fit data into the advertisment packet" -msgstr "Hindi makasya ang data sa loob ng advertisement packet." +msgstr "Hindi makasya ang data sa loob ng advertisement packet" #: ports/nrf/common-hal/bleio/Device.c:266 #, c-format msgid "Failed to discover serivices, status: 0x%08lX" -msgstr "" +msgstr "Nabigo sa pagdiscover ng services, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:403 #: ports/nrf/common-hal/bleio/Scanner.c:76 -#, fuzzy, c-format +#, c-format msgid "Failed to continue scanning, status: 0x%0xlX" -msgstr "Hindi masimulaan mag i-scan. status: 0x%02x" +msgstr "Hindi maituloy ang pag scan, status: 0x%0xlX" #: ports/nrf/common-hal/bleio/Device.c:436 -#, fuzzy, c-format +#, c-format msgid "Failed to connect, status: 0x%08lX" -msgstr "Hindi makaconnect. status: 0x%02x" +msgstr "Hindi makaconnect, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:513 -#, fuzzy, c-format +#, c-format msgid "Failed to add service, status: 0x%08lX" -msgstr "Hindi mahinto ang advertisement. status: 0x%02x" +msgstr "Hindi matagumpay ang paglagay ng service, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:531 -#, fuzzy, c-format +#, c-format msgid "Failed to start advertisment, status: 0x%08lX" -msgstr "Hindi masimulaan ang advertisement. status 0x%02x" +msgstr "Hindi masimulaan ang advertisement, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:549 -#, fuzzy, c-format +#, c-format msgid "Failed to stop advertisment, status: 0x%08lX" -msgstr "Hindi mahinto ang advertisement. status: 0x%02x" +msgstr "Hindi mahinto ang advertisement, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:575 #: ports/nrf/common-hal/bleio/Scanner.c:103 -#, fuzzy, c-format +#, c-format msgid "Failed to start scanning, status: 0x%0xlX" -msgstr "Hindi masimulaan mag i-scan. status: 0x%02x" +msgstr "Hindi masimulaan mag i-scan, status: 0x%0xlX" #: ports/nrf/common-hal/bleio/Device.c:592 -#, fuzzy, c-format +#, c-format msgid "Failed to create mutex, status: 0x%0xlX" -msgstr "Hindi mabasa ang value ng attribute. status: 0x%02x" +msgstr "Hindi matagumpay ang pagbuo ng mutex, status: 0x%0xlX" #: ports/nrf/common-hal/bleio/Service.c:83 #, c-format msgid "Failed to add characteristic, status: 0x%08lX" -msgstr "" +msgstr "Nabigo sa paglagay ng characteristic, status: 0x%08lX" #: ports/nrf/common-hal/bleio/UUID.c:97 -#, fuzzy, c-format +#, c-format msgid "Failed to add Vendor Specific UUID, status: 0x%08lX" -msgstr "Hindi maaaring magdagdag ng Vendor Specific na 128-bit UUID." +msgstr "Hindi matagumpay ang paglagay ng Vender Specific UUID, status: 0x%08lX" #: ports/nrf/common-hal/bleio/UUID.c:102 msgid "Invalid UUID string length" @@ -775,29 +774,25 @@ msgid "Invalid UUID parameter" msgstr "Mali ang UUID parameter" #: ports/nrf/common-hal/busio/I2C.c:96 -#, fuzzy msgid "All I2C peripherals are in use" -msgstr "Lahat ng timer ginagamit" +msgstr "Lahat ng I2C peripherals ginagamit" #: ports/nrf/common-hal/busio/SPI.c:133 -#, fuzzy msgid "All SPI peripherals are in use" -msgstr "Lahat ng timer ginagamit" +msgstr "Lahat ng SPI peripherals ay ginagamit" #: ports/nrf/common-hal/busio/UART.c:49 #, c-format msgid "error = 0x%08lX" -msgstr "" +msgstr "error = 0x%08lX" #: ports/nrf/common-hal/busio/UART.c:87 -#, fuzzy msgid "Invalid buffer size" -msgstr "mali ang buffer length" +msgstr "Mali ang buffer size" #: ports/nrf/common-hal/busio/UART.c:91 -#, fuzzy msgid "Odd parity is not supported" -msgstr "hindi sinusuportahan ang bytes > 8 bits" +msgstr "Odd na parity ay hindi supportado" #: ports/nrf/common-hal/busio/UART.c:334 ports/nrf/common-hal/busio/UART.c:338 #: ports/nrf/common-hal/busio/UART.c:343 ports/nrf/common-hal/busio/UART.c:348 @@ -805,7 +800,7 @@ msgstr "hindi sinusuportahan ang bytes > 8 bits" #: ports/nrf/common-hal/busio/UART.c:364 ports/nrf/common-hal/busio/UART.c:368 #: ports/nrf/common-hal/busio/UART.c:376 msgid "busio.UART not available" -msgstr "" +msgstr "busio.UART hindi available" #: ports/nrf/common-hal/microcontroller/Processor.c:49 #, c-format @@ -813,9 +808,8 @@ msgid "Can not get temperature. status: 0x%02x" msgstr "Hindi makuha ang temperatura. status 0x%02x" #: ports/nrf/common-hal/pulseio/PWMOut.c:161 -#, fuzzy msgid "All PWM peripherals are in use" -msgstr "Lahat ng timer ginagamit" +msgstr "Lahat ng PWM peripherals ay ginagamit" #: ports/unix/modffi.c:138 msgid "Unknown type" @@ -923,9 +917,8 @@ msgid "bad compile mode" msgstr "masamang mode ng compile" #: py/builtinhelp.c:137 -#, fuzzy msgid "Plus any modules on the filesystem\n" -msgstr "Hindi ma-remount ang filesystem" +msgstr "Kasama ang kung ano pang modules na sa filesystem\n" #: py/builtinhelp.c:183 #, c-format @@ -936,6 +929,12 @@ msgid "" "\n" "To list built-in modules please do `help(\"modules\")`.\n" msgstr "" +"Mabuhay sa Adafruit CircuitPython %s!\n" +"\n" +"Mangyaring bisitahin ang learn.adafruit.com/category/circuitpython para sa " +"project guides.\n" +"\n" +"Para makita ang listahan ng modules, `help(“modules”)`.\n" #: py/builtinimport.c:336 msgid "cannot perform relative import" @@ -1099,19 +1098,17 @@ msgid "'data' requires integer arguments" msgstr "'data' kailangan ng integer arguments" #: py/emitinlinethumb.c:102 -#, fuzzy msgid "can only have up to 4 parameters to Thumb assembly" -msgstr "maaari lamang magkaroon ng hanggang 4 na parameter sa Xtensa assembly" +msgstr "maaari lamang magkaroon ng hanggang 4 na parameter sa Thumb assembly" #: py/emitinlinethumb.c:107 py/emitinlinethumb.c:112 -#, fuzzy msgid "parameters must be registers in sequence r0 to r3" -msgstr "ang mga parameter ay dapat na nagrerehistro sa sequence a2 hanggang a5" +msgstr "ang mga parameter ay dapat na nagrerehistro sa sequence r0 hanggang r3" #: py/emitinlinethumb.c:188 py/emitinlinethumb.c:230 -#, fuzzy, c-format +#, c-format msgid "'%s' expects at most r%d" -msgstr "Inaasahan ng '%s' ang isang rehistro" +msgstr "Inaasahan ng '%s' ang hangang r%d" #: py/emitinlinethumb.c:197 py/emitinlinextensa.c:162 #, c-format @@ -1119,19 +1116,19 @@ msgid "'%s' expects a register" msgstr "Inaasahan ng '%s' ang isang rehistro" #: py/emitinlinethumb.c:211 -#, fuzzy, c-format +#, c-format msgid "'%s' expects a special register" -msgstr "Inaasahan ng '%s' ang isang rehistro" +msgstr "Inaasahan ng '%s' ang isang espesyal na register" #: py/emitinlinethumb.c:239 -#, fuzzy, c-format +#, c-format msgid "'%s' expects an FPU register" -msgstr "Inaasahan ng '%s' ang isang rehistro" +msgstr "Inaasahan ng '%s' ang isang FPU register" #: py/emitinlinethumb.c:292 -#, fuzzy, c-format +#, c-format msgid "'%s' expects {r0, r1, ...}" -msgstr "Inaasahan ng '%s' ang isang rehistro" +msgstr "Inaasahan ng '%s' ay {r0, r1, …}" #: py/emitinlinethumb.c:299 py/emitinlinextensa.c:169 #, c-format @@ -1139,14 +1136,14 @@ msgid "'%s' expects an integer" msgstr "Inaasahan ng '%s' ang isang integer" #: py/emitinlinethumb.c:304 -#, fuzzy, c-format +#, c-format msgid "'%s' integer 0x%x does not fit in mask 0x%x" -msgstr "'%s' integer %d ay wala sa sakop ng %d..%d" +msgstr "'%s' integer 0x%x ay wala sa mask na sakop ng 0x%x" #: py/emitinlinethumb.c:328 -#, fuzzy, c-format +#, c-format msgid "'%s' expects an address of the form [a, b]" -msgstr "Inaasahan ng '%s' ang isang rehistro" +msgstr "Inaasahan ng '%s' ang isang address sa [a, b]" #: py/emitinlinethumb.c:334 py/emitinlinextensa.c:182 #, c-format @@ -1158,14 +1155,13 @@ msgid "label '%q' not defined" msgstr "label '%d' kailangan na i-define" #: py/emitinlinethumb.c:806 -#, fuzzy, c-format +#, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" -msgstr "hindi sinusuportahan ang instruction ng Xtensa '%s' sa %d argumento" +msgstr "hindi sinusuportahan ang thumb instruktion '%s' sa %d argumento" #: py/emitinlinethumb.c:810 -#, fuzzy msgid "branch not in range" -msgstr "chr() arg wala sa sakop ng range(256)" +msgstr "branch wala sa range" #: py/emitinlinextensa.c:86 msgid "can only have up to 4 parameters to Xtensa assembly" @@ -1976,11 +1972,11 @@ msgstr "stream operation hindi sinusuportahan" #: py/stream.c:254 msgid "string not supported; use bytes or bytearray" -msgstr "" +msgstr "string hindi supportado; gumamit ng bytes o kaya bytearray" #: py/stream.c:289 msgid "length argument not allowed for this type" -msgstr "" +msgstr "length argument ay walang pahintulot sa ganitong type" #: py/vm.c:255 msgid "local variable referenced before assignment" @@ -2062,24 +2058,20 @@ msgstr "" "para sa bit_depth = 8" #: shared-bindings/audioio/Mixer.c:94 -#, fuzzy msgid "Invalid voice count" -msgstr "Mali ang tipo ng serbisyo" +msgstr "Maling bilang ng voice" #: shared-bindings/audioio/Mixer.c:99 -#, fuzzy msgid "Invalid channel count" -msgstr "Maling argumento" +msgstr "Maling bilang ng channel" #: shared-bindings/audioio/Mixer.c:103 -#, fuzzy msgid "Sample rate must be positive" -msgstr "Dapat aktibo ang STA" +msgstr "Sample rate ay dapat positibo" #: shared-bindings/audioio/Mixer.c:107 -#, fuzzy msgid "bits_per_sample must be 8 or 16" -msgstr "bits ay dapat 7, 8 o 9" +msgstr "bits_per_sample ay dapat 8 o 16" #: shared-bindings/audioio/RawSample.c:98 msgid "" @@ -2125,28 +2117,27 @@ msgstr "aarehas na haba dapat ang buffer slices" #: shared-bindings/bleio/Address.c:101 msgid "Wrong address length" -msgstr "" +msgstr "Mali ang address length" #: shared-bindings/bleio/Address.c:107 -#, fuzzy msgid "Wrong number of bytes provided" -msgstr "mali ang bilang ng argumento" +msgstr "Mali ang bilang ng bytes" #: shared-bindings/bleio/Device.c:210 msgid "Can't add services in Central mode" -msgstr "" +msgstr "Hindi maarang maglagay ng service sa Central mode" #: shared-bindings/bleio/Device.c:226 msgid "Can't connect in Peripheral mode" -msgstr "" +msgstr "Hindi maconnect sa Peripheral mode" #: shared-bindings/bleio/Device.c:256 msgid "Can't change the name in Central mode" -msgstr "" +msgstr "Hindi mapalitan ang pangalan sa Central mode" #: shared-bindings/bleio/Device.c:277 shared-bindings/bleio/Device.c:313 msgid "Can't advertise in Central mode" -msgstr "" +msgstr "Hindi ma advertise habang nasa Central mode" #: shared-bindings/busio/I2C.c:120 msgid "Function requires lock." @@ -2162,7 +2153,7 @@ msgstr "stop dapat 1 o 2" #: shared-bindings/busio/UART.c:123 msgid "timeout >100 (units are now seconds, not msecs)" -msgstr "" +msgstr "timeout >100 (units ay seconds, hindi na msecs)" #: shared-bindings/digitalio/DigitalInOut.c:211 msgid "Invalid direction." @@ -2187,76 +2178,62 @@ msgid "Unsupported pull value." msgstr "Hindi suportado ang pull value." #: shared-bindings/displayio/Bitmap.c:84 -#, fuzzy msgid "y should be an int" -msgstr "Haba ay dapat int" +msgstr "y ay dapat int" #: shared-bindings/displayio/Bitmap.c:89 -#, fuzzy msgid "row buffer must be a bytearray or array of type 'b' or 'B'" -msgstr "" -"ang sample_source buffer ay dapat na isang bytearray o array ng uri na 'h', " -"'H', 'b' o'B'" +msgstr "ang row buffer ay dapat bytearray o array na type ‘b’ or ‘B’" #: shared-bindings/displayio/Bitmap.c:94 -#, fuzzy msgid "row data must be a buffer" -msgstr "constant ay dapat na integer" +msgstr "row data ay dapat na buffer" #: shared-bindings/displayio/ColorConverter.c:72 -#, fuzzy msgid "color should be an int" -msgstr "Haba ay dapat int" +msgstr "color ay dapat na int" #: shared-bindings/displayio/FourWire.c:55 #: shared-bindings/displayio/FourWire.c:64 msgid "displayio is a work in progress" -msgstr "" +msgstr "displayio ay nasa gitna ng konstruksiyon" #: shared-bindings/displayio/Group.c:65 -#, fuzzy msgid "Group must have size at least 1" -msgstr "Buffer dapat ay hindi baba sa 1 na haba" +msgstr "Group dapat ay hindi baba sa 1 na haba" #: shared-bindings/displayio/Palette.c:96 -#, fuzzy msgid "color buffer must be a bytearray or array of type 'b' or 'B'" -msgstr "" -"ang sample_source buffer ay dapat na isang bytearray o array ng uri na 'h', " -"'H', 'b' o'B'" +msgstr "ang color buffer ay dapat bytearray o array na type ‘b’ or ‘B’" #: shared-bindings/displayio/Palette.c:102 msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" -msgstr "" +msgstr "color buffer ay dapat na 3 bytes (RGB) o 4 bytes (RGB + pad byte)" #: shared-bindings/displayio/Palette.c:106 -#, fuzzy msgid "color must be between 0x000000 and 0xffffff" -msgstr "Sa gitna ng 0 o 255 dapat ang bytes." +msgstr "color ay dapat mula sa 0x000000 hangang 0xffffff" #: shared-bindings/displayio/Palette.c:110 -#, fuzzy msgid "color buffer must be a buffer or int" -msgstr "buffer ay dapat bytes-like object" +msgstr "color buffer ay dapat buffer or int" #: shared-bindings/displayio/Palette.c:123 #: shared-bindings/displayio/Palette.c:137 msgid "palette_index should be an int" -msgstr "" +msgstr "palette_index ay dapat na int" #: shared-bindings/displayio/Sprite.c:48 -#, fuzzy msgid "position must be 2-tuple" -msgstr "stop dapat 1 o 2" +msgstr "position ay dapat 2-tuple" #: shared-bindings/displayio/Sprite.c:97 -#, fuzzy msgid "unsupported bitmap type" -msgstr "Hindi supportadong baudrate" +msgstr "Hindi supportadong tipo ng bitmap" #: shared-bindings/displayio/Sprite.c:162 msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" -msgstr "" +msgstr "pixel_shader ay dapat displayio.Palette o displayio.ColorConverter" #: shared-bindings/gamepad/GamePad.c:100 msgid "too many arguments" @@ -2322,11 +2299,10 @@ msgid "" msgstr "PWM duty_cycle ay dapat sa loob ng 0 at 65535 (16 bit resolution)" #: shared-bindings/pulseio/PWMOut.c:195 -#, fuzzy msgid "" "PWM frequency not writable when variable_frequency is False on construction." msgstr "" -"PWM frequency hindi maisulat kapag variable_frequency ay False sa pag buo." +"PWM frequency hindi writable kapag variable_frequency ay False sa pag buo." #: shared-bindings/pulseio/PulseIn.c:275 msgid "Cannot delete values" @@ -2375,7 +2351,7 @@ msgstr "RTC calibration ay hindi supportado ng board na ito" #: shared-bindings/socket/__init__.c:516 shared-module/network/__init__.c:81 msgid "no available NIC" -msgstr "" +msgstr "walang magagamit na NIC" #: shared-bindings/storage/__init__.c:77 msgid "filesystem must provide mount method" @@ -2434,23 +2410,23 @@ msgstr "Hindi ma-iallocate ang second buffer" #: shared-module/audioio/Mixer.c:82 msgid "Voice index too high" -msgstr "" +msgstr "Index ng Voice ay masyadong mataas" #: shared-module/audioio/Mixer.c:85 msgid "The sample's sample rate does not match the mixer's" -msgstr "" +msgstr "Ang sample rate ng sample ay hindi tugma sa mixer" #: shared-module/audioio/Mixer.c:88 msgid "The sample's channel count does not match the mixer's" -msgstr "" +msgstr "Ang channel count ng sample ay hindi tugma sa mixer" #: shared-module/audioio/Mixer.c:91 msgid "The sample's bits_per_sample does not match the mixer's" -msgstr "" +msgstr "Ang bits_per_sample ng sample ay hindi tugma sa mixer" #: shared-module/audioio/Mixer.c:100 msgid "The sample's signedness does not match the mixer's" -msgstr "" +msgstr "Ang signedness ng sample hindi tugma sa mixer" #: shared-module/audioio/WaveFile.c:61 msgid "Invalid wave file" @@ -2502,35 +2478,33 @@ msgstr "Hindi maaaring ilipat kapag walang MOSI at MISO pin." #: shared-module/displayio/Bitmap.c:49 msgid "Only bit maps of 8 bit color or less are supported" -msgstr "" +msgstr "Tanging bit maps na may 8 bit color o mas mababa ang supportado" #: shared-module/displayio/Bitmap.c:69 msgid "row must be packed and word aligned" -msgstr "" +msgstr "row ay dapat packed at ang word nakahanay" #: shared-module/displayio/Group.c:39 msgid "Group full" -msgstr "" +msgstr "Puno ang group" #: shared-module/displayio/Group.c:48 -#, fuzzy msgid "Group empty" -msgstr "walang laman" +msgstr "Walang laman ang group" #: shared-module/displayio/OnDiskBitmap.c:49 -#, fuzzy msgid "Invalid BMP file" -msgstr "Mali ang file" +msgstr "Mali ang BMP file" #: shared-module/displayio/OnDiskBitmap.c:59 #, c-format msgid "Only Windows format, uncompressed BMP supported %d" -msgstr "" +msgstr "Tanging Windows format, uncompressed BMP lamang ang supportado %d" #: shared-module/displayio/OnDiskBitmap.c:64 #, c-format msgid "Only true color (24 bpp or higher) BMP supported %x" -msgstr "" +msgstr "Dapat true color (24 bpp o mas mataas) BMP lamang ang supportado %x" #: shared-module/storage/__init__.c:155 msgid "Cannot remount '/' when USB is active." @@ -2566,12 +2540,9 @@ msgid "To exit, please reset the board without " msgstr "Para lumabas, paki-reset ang board na wala ang " #: supervisor/shared/safe_mode.c:107 -#, fuzzy msgid "" "You are running in safe mode which means something unanticipated happened.\n" -msgstr "" -"Ikaw ay tumatakbo sa safe mode, ang ibig sabihin nito ay may masamang " -"nangyari.\n" +msgstr "Ikaw ay tumatakbo sa safe mode dahil may masamang nangyari.\n" #: supervisor/shared/safe_mode.c:109 msgid "" @@ -2579,21 +2550,24 @@ msgid "" "Please file an issue at https://github.com/adafruit/circuitpython/issues\n" " with the contents of your CIRCUITPY drive and this message:\n" msgstr "" +"Mukhang ang core CircuitPython code nag crash. Ay!\n" +"Maaring mag file ng issue sa https://github.com/adafruit/circuitpython/" +"issues\n" +"kasama ng laman ng iyong CIRCUITPY drive at ang message na ito:\n" #: supervisor/shared/safe_mode.c:111 msgid "Crash into the HardFault_Handler.\n" -msgstr "" +msgstr "Nagcrash sa HardFault_Handler.\n" #: supervisor/shared/safe_mode.c:113 msgid "MicroPython NLR jump failed. Likely memory corruption.\n" -msgstr "" +msgstr "CircuitPython NLR jump nabigo. Maaring memory corruption.\n" #: supervisor/shared/safe_mode.c:115 msgid "MicroPython fatal error.\n" -msgstr "" +msgstr "CircuitPython fatal na pagkakamali.\n" #: supervisor/shared/safe_mode.c:118 -#, fuzzy msgid "" "The microcontroller's power dipped. Please make sure your power supply " "provides\n" @@ -2602,6 +2576,7 @@ msgid "" msgstr "" "Ang kapangyarihan ng mikrokontroller ay bumaba. Mangyaring suriin ang power " "supply \n" +"pindutin ang reset (pagkatapos i-eject ang CIRCUITPY).\n" #: supervisor/shared/safe_mode.c:120 msgid "" @@ -2611,12 +2586,19 @@ msgid "" "If you didn't change the stack, then file an issue here with the contents of " "your CIRCUITPY drive:\n" msgstr "" +"Ang CircuitPython heap ay na corrupt dahil ang stack ay maliit.\n" +"Maaring i-increase ang stack size limit at i-press ang reset (pagkatapos i-" +"eject ang CIRCUITPY.\n" +"Kung hindi mo pinalitan ang stack, mag file ng issue dito kasama ng laman ng " +"CIRCUITPY drive:\n" #: supervisor/shared/safe_mode.c:123 msgid "" "The reset button was pressed while booting CircuitPython. Press again to " "exit safe mode.\n" msgstr "" +"Ang reset button ay pinindot habang nag boot ang CircuitPython. Pindutin " +"ulit para lumabas sa safe mode.\n" #~ msgid "" #~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" From 9c26c5829e13483a17593cbf2d10ce7a04ef9658 Mon Sep 17 00:00:00 2001 From: eighthree Date: Thu, 20 Dec 2018 22:16:42 -0800 Subject: [PATCH 03/13] Update fil.po Minor word change --- locale/fil.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locale/fil.po b/locale/fil.po index c1a564cdf5..4c5598978f 100644 --- a/locale/fil.po +++ b/locale/fil.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-06 17:04-0800\n" -"PO-Revision-Date: 2018-12-19 01:30-0800\n" +"PO-Revision-Date: 2018-12-20 22:15-0800\n" "Last-Translator: Timothy \n" "Language-Team: fil\n" "Language: fil\n" @@ -182,7 +182,7 @@ msgstr "BABALA: Ang pangalan ng file ay may dalawang extension\n" #: main.c:244 msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" -"Pindutin ang anumang key upang ipasok ang REPL. Gamitin ang CTRL-D upang i-" +"Pindutin ang anumang key upang pumasok sa REPL. Gamitin ang CTRL-D upang i-" "reload." #: main.c:407 From 0b35227bf5d7cd51de8fd141b06e6e16c1fac1b4 Mon Sep 17 00:00:00 2001 From: Pierrick C Date: Wed, 26 Dec 2018 18:54:37 +0100 Subject: [PATCH 04/13] Updated fr.po --- locale/fr.po | 364 ++++++++++++++++++++++++++------------------------- 1 file changed, 189 insertions(+), 175 deletions(-) diff --git a/locale/fr.po b/locale/fr.po index badf45555d..9236fb8aa1 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-06 17:04-0800\n" -"PO-Revision-Date: 2018-08-14 11:01+0200\n" +"POT-Creation-Date: 2018-12-26 17:29+0100\n" +"PO-Revision-Date: 2018-12-23 20:05+0100\n" "Last-Translator: Pierrick Couturier \n" "Language-Team: fr\n" "Language: fr\n" @@ -100,7 +100,7 @@ msgstr "'heap' vide" #: extmod/modujson.c:281 msgid "syntax error in JSON" -msgstr "erreur de syntaxe dans le JSON" +msgstr "erreur de syntaxe JSON" #: extmod/modure.c:161 msgid "Splitting with sub-captures" @@ -148,7 +148,7 @@ msgstr "arguments invalides" #: lib/utils/pyexec.c:97 py/builtinimport.c:251 msgid "script compilation not supported" -msgstr "compilation du script non supporté" +msgstr "compilation de script non supporté" #: main.c:150 msgid " output:\n" @@ -193,11 +193,11 @@ msgstr "Tous les canaux d'événements de synchro sont utilisés" #: ports/atmel-samd/bindings/samd/Clock.c:135 msgid "calibration is read only" -msgstr "la calibration est en lecture seule" +msgstr "calibration en lecture seule" #: ports/atmel-samd/bindings/samd/Clock.c:137 msgid "calibration is out of range" -msgstr "la calibration est hors gamme" +msgstr "calibration hors gamme" #: ports/atmel-samd/board_busses.c:59 ports/nrf/board_busses.c:39 msgid "No default I2C bus" @@ -222,7 +222,7 @@ msgstr "Pas de DAC sur la puce" #: ports/atmel-samd/common-hal/analogio/AnalogOut.c:56 msgid "AnalogOut not supported on given pin" -msgstr "AnalogOut n'est pas supporté sur cette broche" +msgstr "AnalogOut n'est pas supporté sur la broche indiquée" #: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:147 #: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:150 @@ -231,7 +231,7 @@ msgstr "Broche invalide pour 'bit clock'" #: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:153 msgid "Bit clock and word select must share a clock unit" -msgstr "'bit clock' et 'word select' doivent partagé une horloge" +msgstr "'bit clock' et 'word select' doivent partager une horloge" #: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:156 #: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:130 @@ -304,7 +304,7 @@ msgstr "Broche invalide pour le canal droit" #: ports/atmel-samd/common-hal/audioio/AudioOut.c:154 msgid "Cannot output both channels on the same pin" -msgstr "On ne peut mettre les deux canaux sur la même broche" +msgstr "Les 2 canaux de sortie ne peuvent être sur la même broche" #: ports/atmel-samd/common-hal/audioio/AudioOut.c:243 #: ports/atmel-samd/common-hal/pulseio/PWMOut.c:189 @@ -320,7 +320,7 @@ msgstr "Tous les canaux d'événements sont utilisés" #: ports/atmel-samd/common-hal/audioio/AudioOut.c:375 #, c-format msgid "Sample rate too high. It must be less than %d" -msgstr "" +msgstr "Taux d'échantillonage trop élevé. Doit être inf. à %d" #: ports/atmel-samd/common-hal/busio/I2C.c:71 msgid "Not enough pins available" @@ -332,7 +332,7 @@ msgstr "Pas assez de broches disponibles" #: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c:45 #: ports/nrf/common-hal/busio/I2C.c:82 msgid "Invalid pins" -msgstr "Broche invalide" +msgstr "Broches invalides" #: ports/atmel-samd/common-hal/busio/I2C.c:101 msgid "SDA or SCL needs a pull up" @@ -347,12 +347,12 @@ msgid "bytes > 8 bits not supported" msgstr "octets > 8 bits non supporté" #: ports/atmel-samd/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:106 msgid "tx and rx cannot both be None" -msgstr "TX et RX ne peuvent être None tous les deux" +msgstr "tx et rx ne peuvent être None tous les deux" #: ports/atmel-samd/common-hal/busio/UART.c:146 -#: ports/nrf/common-hal/busio/UART.c:116 +#: ports/nrf/common-hal/busio/UART.c:140 msgid "Failed to allocate RX buffer" msgstr "Echec de l'allocation du tampon RX" @@ -361,19 +361,19 @@ msgid "Could not initialize UART" msgstr "L'UART n'a pu être initialisé" #: ports/atmel-samd/common-hal/busio/UART.c:241 -#: ports/nrf/common-hal/busio/UART.c:157 +#: ports/nrf/common-hal/busio/UART.c:185 msgid "No RX pin" msgstr "Pas de broche RX" #: ports/atmel-samd/common-hal/busio/UART.c:300 -#: ports/nrf/common-hal/busio/UART.c:207 +#: ports/nrf/common-hal/busio/UART.c:220 msgid "No TX pin" msgstr "Pas de broche TX" #: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c:170 #: ports/nrf/common-hal/digitalio/DigitalInOut.c:147 msgid "Cannot get pull while in output mode" -msgstr "Ne peux être tirer ('pull') en mode 'output'" +msgstr "Ne peux être tiré ('pull') en mode 'output'" #: ports/atmel-samd/common-hal/microcontroller/__init__.c:74 #: ports/esp8266/common-hal/microcontroller/__init__.c:64 @@ -450,7 +450,7 @@ msgstr "Broche invalide pour le SPI" #: ports/esp8266/common-hal/busio/UART.c:45 msgid "Only tx supported on UART1 (GPIO2)." -msgstr "Seul le TX est supporté sur l'UART1 (GPIO2)." +msgstr "Seul le tx est supporté sur l'UART1 (GPIO2)." #: ports/esp8266/common-hal/busio/UART.c:67 ports/esp8266/machine_uart.c:108 msgid "invalid data bits" @@ -487,7 +487,7 @@ msgstr "La fréquence de PWM minimale est 1Hz" #, c-format msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." msgstr "" -"Les fréquences multiples de PWM ne sont pas supportées. Déjà réglé à %dHz" +"Les fréquences de PWM multiples ne sont pas supportées. PWM réglé à %dHz" #: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70 #, c-format @@ -534,7 +534,7 @@ msgstr "broche invalide" #: ports/esp8266/machine_pin.c:389 msgid "pin does not have IRQ capabilities" -msgstr "la broche n'a pas de capacité d'interruption (IRQ)" +msgstr "la broche ne supporte pas les interruptions (IRQ)" #: ports/esp8266/machine_rtc.c:185 msgid "buffer too long" @@ -614,15 +614,15 @@ msgstr "wifi_set_ip_info() a échoué" #: ports/esp8266/modnetwork.c:319 msgid "either pos or kw args are allowed" -msgstr "seuls les arguments 'pos' ou 'kw' sont autorisés" +msgstr "soit 'pos', soit 'kw' est permis en argument" #: ports/esp8266/modnetwork.c:329 msgid "can't get STA config" -msgstr "impossible de récupérer de la config de 'STA'" +msgstr "impossible de récupérer la config de 'STA'" #: ports/esp8266/modnetwork.c:331 msgid "can't get AP config" -msgstr "impossible de récupérer de la config de 'AP'" +msgstr "impossible de récupérer la config de 'AP'" #: ports/esp8266/modnetwork.c:346 msgid "invalid buffer length" @@ -656,44 +656,44 @@ msgstr "" #: ports/nrf/common-hal/bleio/Adapter.c:125 #, c-format msgid "Failed to change softdevice state, error: 0x%08lX" -msgstr "" +msgstr "Echec de la modification de l'état du périph., erreur: 0x%08lX" #: ports/nrf/common-hal/bleio/Adapter.c:135 #, c-format msgid "Failed to get softdevice state, error: 0x%08lX" -msgstr "" +msgstr "Echec de l'obtention de l'état du périph., erreur: 0x%08lX" #: ports/nrf/common-hal/bleio/Adapter.c:155 #, c-format msgid "Failed to get local address, error: 0x%08lX" -msgstr "" +msgstr "Echec de l'obtention de l'adresse locale, erreur: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:52 #, fuzzy, c-format msgid "Failed to write gatts value, status: 0x%08lX" -msgstr "Impossible d'écrire la valeur de l'attribut. status: 0x%02x" +msgstr "Impossible d'écrire la valeur de gatts. status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:76 #, fuzzy, c-format msgid "Failed to notify attribute value, status: 0x%08lX" -msgstr "Impossible de notifier la valeur de l'attribut. status: 0x%02x" +msgstr "Impossible de notifier la valeur de l'attribut. status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:91 #, fuzzy, c-format msgid "Failed to read attribute value, status: 0x%08lX" -msgstr "Impossible de lire la valeur de l'attribut. status: 0x%02x" +msgstr "Impossible de lire la valeur de l'attribut. status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:119 #: ports/nrf/common-hal/bleio/Device.c:272 #: ports/nrf/common-hal/bleio/Device.c:307 #, c-format msgid "Failed to acquire mutex, status: 0x%08lX" -msgstr "" +msgstr "Echec de l'obtention de mutex, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:126 #, fuzzy, c-format msgid "Failed to write attribute value, status: 0x%08lX" -msgstr "Impossible d'écrire la valeur de l'attribut. status: 0x%02x" +msgstr "Impossible d'écrire la valeur de l'attribut. status: 0x%08lX" #: ports/nrf/common-hal/bleio/Characteristic.c:138 #: ports/nrf/common-hal/bleio/Device.c:284 @@ -702,7 +702,7 @@ msgstr "Impossible d'écrire la valeur de l'attribut. status: 0x%02x" #: ports/nrf/common-hal/bleio/Device.c:391 #, c-format msgid "Failed to release mutex, status: 0x%08lX" -msgstr "" +msgstr "Impossible de libérer mutex, status: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:81 #: ports/nrf/common-hal/bleio/Device.c:114 @@ -711,55 +711,55 @@ msgstr "" #: ports/nrf/common-hal/bleio/Device.c:266 #, c-format -msgid "Failed to discover serivices, status: 0x%08lX" -msgstr "" +msgid "Failed to discover services, status: 0x%08lX" +msgstr "Echec de la découverte de services, statut: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:403 #: ports/nrf/common-hal/bleio/Scanner.c:76 #, fuzzy, c-format msgid "Failed to continue scanning, status: 0x%0xlX" -msgstr "Impossible de commencer à scanner. status: 0x%02x" +msgstr "Impossible de commencer à scanner. statut: 0x%0xlX" #: ports/nrf/common-hal/bleio/Device.c:436 #, fuzzy, c-format msgid "Failed to connect, status: 0x%08lX" -msgstr "Connection impossible. status: 0x%02x" +msgstr "Connection impossible. statut: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:513 #, c-format msgid "Failed to add service, status: 0x%08lX" -msgstr "" +msgstr "Echec de l'ajout de service, statut: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:531 -#, fuzzy, c-format +#, c-format msgid "Failed to start advertisment, status: 0x%08lX" -msgstr "Impossible de commencer à scanner. status: 0x%02x" +msgstr "" #: ports/nrf/common-hal/bleio/Device.c:549 -#, c-format +#, fuzzy, c-format msgid "Failed to stop advertisment, status: 0x%08lX" -msgstr "" +msgstr "Echec de l'ajout de service, statut: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:575 #: ports/nrf/common-hal/bleio/Scanner.c:103 #, fuzzy, c-format msgid "Failed to start scanning, status: 0x%0xlX" -msgstr "Impossible de commencer à scanner. status: 0x%02x" +msgstr "Impossible de commencer à scanner, statut: 0x%0xlX" #: ports/nrf/common-hal/bleio/Device.c:592 #, fuzzy, c-format msgid "Failed to create mutex, status: 0x%0xlX" -msgstr "Impossible de lire la valeur de l'attribut. status: 0x%02x" +msgstr "Echec de la création de mutex, statut: 0x%0xlX" #: ports/nrf/common-hal/bleio/Service.c:83 #, c-format msgid "Failed to add characteristic, status: 0x%08lX" -msgstr "" +msgstr "Echec de l'ajout de caractéristique, statut: 0x%08lX" #: ports/nrf/common-hal/bleio/UUID.c:97 #, fuzzy, c-format msgid "Failed to add Vendor Specific UUID, status: 0x%08lX" -msgstr "Impossible d'ajouter l'UUID 128bits Vendor Specific" +msgstr "Echec de l'ajout de l'UUID Vendor Specific, , statut: 0x%08lX" #: ports/nrf/common-hal/bleio/UUID.c:102 msgid "Invalid UUID string length" @@ -774,33 +774,33 @@ msgstr "Paramètre UUID invalide" #: ports/nrf/common-hal/busio/I2C.c:96 #, fuzzy msgid "All I2C peripherals are in use" -msgstr "Tous les timers sont utilisés" +msgstr "Tous les périphériques I2C sont utilisés" #: ports/nrf/common-hal/busio/SPI.c:133 #, fuzzy msgid "All SPI peripherals are in use" -msgstr "Tous les timers sont utilisés" +msgstr "Tous les périphériques SPI sont utilisés" #: ports/nrf/common-hal/busio/UART.c:49 #, c-format msgid "error = 0x%08lX" -msgstr "" +msgstr "erreur = 0x%08lX" -#: ports/nrf/common-hal/busio/UART.c:87 +#: ports/nrf/common-hal/busio/UART.c:110 #, fuzzy msgid "Invalid buffer size" msgstr "longueur de tampon invalide" -#: ports/nrf/common-hal/busio/UART.c:91 +#: ports/nrf/common-hal/busio/UART.c:114 #, fuzzy msgid "Odd parity is not supported" -msgstr "octets > 8 bits non supporté" +msgstr "parité impaire non supportée" -#: ports/nrf/common-hal/busio/UART.c:334 ports/nrf/common-hal/busio/UART.c:338 -#: ports/nrf/common-hal/busio/UART.c:343 ports/nrf/common-hal/busio/UART.c:348 -#: ports/nrf/common-hal/busio/UART.c:354 ports/nrf/common-hal/busio/UART.c:359 -#: ports/nrf/common-hal/busio/UART.c:364 ports/nrf/common-hal/busio/UART.c:368 -#: ports/nrf/common-hal/busio/UART.c:376 +#: ports/nrf/common-hal/busio/UART.c:346 ports/nrf/common-hal/busio/UART.c:350 +#: ports/nrf/common-hal/busio/UART.c:355 ports/nrf/common-hal/busio/UART.c:360 +#: ports/nrf/common-hal/busio/UART.c:366 ports/nrf/common-hal/busio/UART.c:371 +#: ports/nrf/common-hal/busio/UART.c:376 ports/nrf/common-hal/busio/UART.c:380 +#: ports/nrf/common-hal/busio/UART.c:388 #, fuzzy msgid "busio.UART not available" msgstr "busio.UART n'est pas disponible" @@ -813,7 +813,7 @@ msgstr "Impossible de lire la température. status: 0x%02x" #: ports/nrf/common-hal/pulseio/PWMOut.c:161 #, fuzzy msgid "All PWM peripherals are in use" -msgstr "Tous les timers sont utilisés" +msgstr "Tous les périphériques PWM sont utilisés" #: ports/unix/modffi.c:138 msgid "Unknown type" @@ -829,7 +829,7 @@ msgstr "" #: ports/unix/modffi.c:413 msgid "Don't know how to pass object to native function" -msgstr "Ne sais pas comment passer un objet à une fonction native" +msgstr "Ne sais pas comment passer l'objet à une fonction native" #: ports/unix/modusocket.c:474 #, c-format @@ -918,9 +918,8 @@ msgid "bad compile mode" msgstr "mauvais mode de compilation" #: py/builtinhelp.c:137 -#, fuzzy msgid "Plus any modules on the filesystem\n" -msgstr "Impossible de remonter le système de fichiers" +msgstr "" #: py/builtinhelp.c:183 #, c-format @@ -931,6 +930,11 @@ msgid "" "\n" "To list built-in modules please do `help(\"modules\")`.\n" msgstr "" +"Bienvenue sur Adafruit CircuitPython %s!\n" +"\n" +"Vistez learn.adafruit.com/category/circuitpython pour des guides.\n" +"\n" +"Pour lister les modules inclus, tapez `help(\"modules\")`.\n" #: py/builtinimport.c:336 msgid "cannot perform relative import" @@ -958,7 +962,8 @@ msgstr "*x multiple dans l'assignement" #: py/compile.c:642 msgid "non-default argument follows default argument" -msgstr "un argument sans valeur par défaut suit un argument avec défaut" +msgstr "" +"un argument sans valeur par défaut suit un argument avec valeur par défaut" #: py/compile.c:771 py/compile.c:789 msgid "invalid micropython decorator" @@ -998,7 +1003,7 @@ msgstr "ne peut déclarer de nonlocal dans un code externe" #: py/compile.c:1542 msgid "default 'except' must be last" -msgstr "l''except' par défaut doit être le dernier" +msgstr "l''except' par défaut doit être en dernier" #: py/compile.c:2095 msgid "*x must be assignment target" @@ -1039,7 +1044,7 @@ msgstr "couple clef:valeur attendu pour un objet dict" #: py/compile.c:2475 msgid "expecting just a value for set" -msgstr "une simple valeur est attendu pour set" +msgstr "une simple valeur est attendue pour set" #: py/compile.c:2600 msgid "'yield' outside function" @@ -1063,7 +1068,7 @@ msgstr "l'annotation de return doit être un identifiant" #: py/compile.c:3097 msgid "inline assembler must be a function" -msgstr "l'assembleur en ligne doit être une fonction" +msgstr "l'assembleur doit être une fonction" #: py/compile.c:3134 msgid "unknown type" @@ -1095,12 +1100,12 @@ msgstr "'data' nécessite des arguments entiers" #: py/emitinlinethumb.c:102 msgid "can only have up to 4 parameters to Thumb assembly" -msgstr "" +msgstr "il peut y avoir jusqu'à 4 paramètres pour Thumb assembly" #: py/emitinlinethumb.c:107 py/emitinlinethumb.c:112 #, fuzzy msgid "parameters must be registers in sequence r0 to r3" -msgstr "les paramètres doivent être des registres dans la séquence a2 à a5" +msgstr "les paramètres doivent être des registres dans la séquence r0 à r3" #: py/emitinlinethumb.c:188 py/emitinlinethumb.c:230 #, fuzzy, c-format @@ -1115,17 +1120,17 @@ msgstr "'%s' attend un registre" #: py/emitinlinethumb.c:211 #, fuzzy, c-format msgid "'%s' expects a special register" -msgstr "'%s' attend un registre" +msgstr "'%s' attend un registre special" #: py/emitinlinethumb.c:239 #, fuzzy, c-format msgid "'%s' expects an FPU register" -msgstr "'%s' attend un registre" +msgstr "'%s' attend un registre FPU" #: py/emitinlinethumb.c:292 #, fuzzy, c-format msgid "'%s' expects {r0, r1, ...}" -msgstr "'%s' attend un registre" +msgstr "'%s' attend {r0, r1, ...}" #: py/emitinlinethumb.c:299 py/emitinlinextensa.c:169 #, c-format @@ -1135,12 +1140,12 @@ msgstr "'%s' attend un entier" #: py/emitinlinethumb.c:304 #, fuzzy, c-format msgid "'%s' integer 0x%x does not fit in mask 0x%x" -msgstr "'%s' l'entier %d n'est pas dans la gamme %d..%d" +msgstr "'%s' l'entier 0x%x ne correspond pas au masque 0x%x" #: py/emitinlinethumb.c:328 #, fuzzy, c-format msgid "'%s' expects an address of the form [a, b]" -msgstr "'%s' attend un registre" +msgstr "'%s' attend une adresse de la forme [a, b]" #: py/emitinlinethumb.c:334 py/emitinlinextensa.c:182 #, c-format @@ -1154,7 +1159,7 @@ msgstr "label '%q' non supporté" #: py/emitinlinethumb.c:806 #, fuzzy, c-format msgid "unsupported Thumb instruction '%s' with %d arguments" -msgstr "instruction Xtensa '%s' non supportée avec %d arguments" +msgstr "instruction Thumb '%s' non supportée avec %d arguments" #: py/emitinlinethumb.c:810 #, fuzzy @@ -1163,7 +1168,7 @@ msgstr "argument de chr() hors de la gamme range(256)" #: py/emitinlinextensa.c:86 msgid "can only have up to 4 parameters to Xtensa assembly" -msgstr "" +msgstr "Maximum 4 paramètres pour l'assembleur Xtensa" #: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96 msgid "parameters must be registers in sequence a2 to a5" @@ -1193,7 +1198,7 @@ msgstr "conversion en objet" #: py/emitnative.c:921 msgid "local '%q' used before type known" -msgstr "'%q' local utilisé avant d'en connaitre le type" +msgstr "variable locale '%q' utilisée avant d'en connaitre le type" #: py/emitnative.c:1118 py/emitnative.c:1156 msgid "can't load from '%q'" @@ -1213,7 +1218,7 @@ msgstr "impossible de stocker '%q'" #: py/emitnative.c:1358 py/emitnative.c:1419 msgid "can't store to '%q'" -msgstr "imposible de stocker vers '%q'" +msgstr "impossible de stocker vers '%q'" #: py/emitnative.c:1369 msgid "can't store with '%q' index" @@ -1253,7 +1258,7 @@ msgstr "native yield" #: py/lexer.c:345 msgid "unicode name escapes" -msgstr "échappement pour nom unicode" +msgstr "échappements de nom unicode" #: py/modbuiltins.c:162 msgid "chr() arg not in range(0x110000)" @@ -1349,12 +1354,12 @@ msgstr ", dans %q\n" #: py/obj.c:259 msgid "can't convert to int" -msgstr "ne peut convertir en entier int" +msgstr "ne peut convertir en entier (int)" #: py/obj.c:262 #, c-format msgid "can't convert %s to int" -msgstr "ne peut convertir %s en entier int" +msgstr "ne peut convertir %s en entier (int)" #: py/obj.c:322 msgid "can't convert to float" @@ -1459,7 +1464,7 @@ msgstr "tableau/octets requis à droite" #: py/objcomplex.c:203 msgid "can't do truncated division of a complex number" -msgstr "on ne peut pas faire de division tronquée d'un nombre complexe" +msgstr "on ne peut pas faire de division tronquée de nombres complexes" #: py/objcomplex.c:209 msgid "complex division by zero" @@ -1492,7 +1497,7 @@ msgstr "valeurs complexes non supportées" #: py/objgenerator.c:108 msgid "can't send non-None value to a just-started generator" msgstr "" -"on ne peut envoyer une valeur différente de None à un générateur fraîchement " +"on ne peut envoyer une valeur autre que None à un générateur fraîchement " "démarré" #: py/objgenerator.c:126 @@ -1521,7 +1526,7 @@ msgstr "nombre flottant trop grand" #: py/objint.c:328 msgid "long int not supported in this build" -msgstr "entier long non supporté dans cette build" +msgstr "entiers longs non supportés dans cette build" #: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358 msgid "small int overflow" @@ -1601,7 +1606,7 @@ msgstr "join attend une liste d'objets str/bytes cohérent avec l'objet self" #: py/objstr.c:542 py/objstr.c:647 py/objstr.c:1744 msgid "empty separator" -msgstr "separateur vide" +msgstr "séparateur vide" #: py/objstr.c:641 msgid "rsplit(None,n)" @@ -1668,7 +1673,7 @@ msgstr "" #: py/objstr.c:1171 msgid "invalid format specifier" -msgstr "spécificationde format invalide" +msgstr "spécification de format invalide" #: py/objstr.c:1192 msgid "sign not allowed in string format specifier" @@ -1711,7 +1716,7 @@ msgstr "format incomplet" #: py/objstr.c:1490 msgid "not enough arguments for format string" -msgstr "pas assez d'argument pour la chaîne de format" +msgstr "pas assez d'arguments pour la chaîne de format" #: py/objstr.c:1500 #, c-format @@ -1819,7 +1824,7 @@ msgstr "l'argument 1 de issubclass() doit être une classe" #: py/parse.c:726 msgid "constant must be an integer" -msgstr "les constantes doivent être des entiers" +msgstr "une constante doit être un entier" #: py/parse.c:868 msgid "Unable to init parser" @@ -1835,7 +1840,7 @@ msgstr "la désindentation ne correspond à aucune indentation" #: py/parsenum.c:60 msgid "int() arg 2 must be >= 2 and <= 36" -msgstr "l'argument 2 de int() doit être >=2 et <=32" +msgstr "l'argument 2 de int() doit être >=2 et <=36" #: py/parsenum.c:151 msgid "invalid syntax for integer" @@ -1859,7 +1864,7 @@ msgid "" "Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" "mpy-update for more info." msgstr "" -"Fichier .mpy incompatible. Merci de mettre à jour tous les .mpy. Voir http://" +"Fichier .mpy incompatible. Merci de mettre à jour tous les .mpy. Voirhttp://" "adafru.it/mpy-update pour plus d'informations." #: py/persistentcode.c:326 @@ -1940,7 +1945,7 @@ msgstr "l'objet '%s' n'est pas un itérateur" #: py/runtime.c:1401 msgid "exceptions must derive from BaseException" -msgstr "les exception doivent dériver de BaseException" +msgstr "les exceptions doivent dériver de BaseException" #: py/runtime.c:1430 msgid "cannot import name %q" @@ -1970,10 +1975,11 @@ msgstr "opération de flux non supportée" #: py/stream.c:254 msgid "string not supported; use bytes or bytearray" msgstr "" +"chaîne de carac. non supportée; utilisez des bytes ou un tableau de bytes" #: py/stream.c:289 msgid "length argument not allowed for this type" -msgstr "" +msgstr "argument lenght non permis pour ce type" #: py/vm.c:255 msgid "local variable referenced before assignment" @@ -1981,7 +1987,7 @@ msgstr "variable locale référencée avant d'être assignée" #: py/vm.c:1142 msgid "no active exception to reraise" -msgstr "aucune exception active a relevé" +msgstr "aucune exception active à relever" #: py/vm.c:1284 msgid "byte code not implemented" @@ -2010,13 +2016,12 @@ msgstr "tampon de caractères trop petit" #: shared-bindings/analogio/AnalogOut.c:118 msgid "AnalogOut is only 16 bits. Value must be less than 65536." msgstr "" -"AnalogOut est seulement 16 bits. Les valeurs doivent être inférieures à " -"65536." +"AnalogOut est seulement 16 bits. Les valeurs doivent être inf. à 65536." #: shared-bindings/audiobusio/I2SOut.c:225 #: shared-bindings/audioio/AudioOut.c:226 msgid "Not playing" -msgstr "En pause" +msgstr "Ne joue pas" #: shared-bindings/audiobusio/PDMIn.c:124 msgid "Bit depth must be multiple of 8." @@ -2032,11 +2037,11 @@ msgstr "Le délais au démarrage du micro doit être entre 0.0 et 1.0" #: shared-bindings/audiobusio/PDMIn.c:193 msgid "destination_length must be an int >= 0" -msgstr "destination_length doit être un int >= 0" +msgstr "destination_length doit être un entier >= 0" #: shared-bindings/audiobusio/PDMIn.c:199 msgid "Cannot record to a file" -msgstr "impossible d'enregistrer vers un fichier" +msgstr "Impossible d'enregistrer vers un fichier" #: shared-bindings/audiobusio/PDMIn.c:202 msgid "Destination capacity is smaller than destination_length." @@ -2059,19 +2064,18 @@ msgid "Invalid voice count" msgstr "Type de service invalide" #: shared-bindings/audioio/Mixer.c:99 -#, fuzzy msgid "Invalid channel count" -msgstr "Argument invalide" +msgstr "" #: shared-bindings/audioio/Mixer.c:103 #, fuzzy msgid "Sample rate must be positive" -msgstr "'STA' doit être actif" +msgstr "le taux d'échantillonage doit être positif" #: shared-bindings/audioio/Mixer.c:107 #, fuzzy msgid "bits_per_sample must be 8 or 16" -msgstr "bits doivent être 7, 8 ou 9" +msgstr "bits doivent être 8 ou 16" #: shared-bindings/audioio/RawSample.c:98 msgid "" @@ -2088,7 +2092,7 @@ msgstr "le tampon doit être un objet bytes-like" #: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/displayio/OnDiskBitmap.c:85 msgid "file must be a file opened in byte mode" -msgstr "le fichier doit être un fichier ouvert en mode byte" +msgstr "le fichier doit être un fichier ouvert en mode 'byte'" #: shared-bindings/bitbangio/I2C.c:111 shared-bindings/bitbangio/SPI.c:121 #: shared-bindings/busio/SPI.c:133 @@ -2117,24 +2121,24 @@ msgstr "les slices de tampon doivent être de longueurs égales" #: shared-bindings/bleio/Address.c:101 msgid "Wrong address length" -msgstr "" +msgstr "Mauvaise longueur d'adresse" #: shared-bindings/bleio/Address.c:107 #, fuzzy msgid "Wrong number of bytes provided" -msgstr "mauvais nombres d'arguments" +msgstr "mauvais nombre d'octets fourni'" #: shared-bindings/bleio/Device.c:210 msgid "Can't add services in Central mode" -msgstr "" +msgstr "Impossible d'ajouter des service en mode Central" #: shared-bindings/bleio/Device.c:226 msgid "Can't connect in Peripheral mode" -msgstr "" +msgstr "Impossible de se connecter en mode Peripheral" #: shared-bindings/bleio/Device.c:256 msgid "Can't change the name in Central mode" -msgstr "" +msgstr "Modification du nom impossible en mode Central" #: shared-bindings/bleio/Device.c:277 shared-bindings/bleio/Device.c:313 msgid "Can't advertise in Central mode" @@ -2154,7 +2158,7 @@ msgstr "stop doit être 1 ou 2" #: shared-bindings/busio/UART.c:123 msgid "timeout >100 (units are now seconds, not msecs)" -msgstr "" +msgstr "timeout >100 (exprimé en secondes, pas en ms)" #: shared-bindings/digitalio/DigitalInOut.c:211 msgid "Invalid direction." @@ -2162,43 +2166,42 @@ msgstr "Direction invalide" #: shared-bindings/digitalio/DigitalInOut.c:240 msgid "Cannot set value when direction is input." -msgstr "Impossible d'affecter une valeur quand la direction est input." +msgstr "Impossible d'affecter une valeur quand la direction est 'input'." #: shared-bindings/digitalio/DigitalInOut.c:266 #: shared-bindings/digitalio/DigitalInOut.c:281 msgid "Drive mode not used when direction is input." -msgstr "Le mode Drive n'est pas utilisé quand la direction est 'input'" +msgstr "Le mode Drive n'est pas utilisé quand la direction est 'input'." #: shared-bindings/digitalio/DigitalInOut.c:314 #: shared-bindings/digitalio/DigitalInOut.c:331 msgid "Pull not used when direction is output." -msgstr "Le tirage 'pull' n'est pas utilisé quand la direction est 'output'" +msgstr "Le tirage 'pull' n'est pas utilisé quand la direction est 'output'." #: shared-bindings/digitalio/DigitalInOut.c:340 msgid "Unsupported pull value." -msgstr "Valeur de 'pull' non supportée" +msgstr "Valeur de tirage 'pull' non supportée." #: shared-bindings/displayio/Bitmap.c:84 #, fuzzy msgid "y should be an int" -msgstr "La longueur doit être entière" +msgstr "y doit être un entier (int)" #: shared-bindings/displayio/Bitmap.c:89 #, fuzzy msgid "row buffer must be a bytearray or array of type 'b' or 'B'" msgstr "" -"le tampon de sample_source doit être un bytearray ou un tableau de type " -"'h','H', 'b' ou 'B'" +"le tampon de ligne doit être un bytearray ou un tableau de type 'b' ou 'B'" #: shared-bindings/displayio/Bitmap.c:94 #, fuzzy msgid "row data must be a buffer" -msgstr "les constantes doivent être des entiers" +msgstr "les données de ligne doivent être un tampon" #: shared-bindings/displayio/ColorConverter.c:72 #, fuzzy msgid "color should be an int" -msgstr "La longueur doit être entière" +msgstr "la couleur doit être un entier (int)" #: shared-bindings/displayio/FourWire.c:55 #: shared-bindings/displayio/FourWire.c:64 @@ -2214,44 +2217,42 @@ msgstr "Le tampon doit être de longueur au moins 1" #, fuzzy msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgstr "" -"le tampon de sample_source doit être un bytearray ou un tableau de type " -"'h','H', 'b' ou 'B'" +"le tampon de couleur doit être un bytearray ou un tableau de type 'b' ou 'B'" #: shared-bindings/displayio/Palette.c:102 msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" -msgstr "" -"Le tampon couleur doit avoir 3 octets (RVB) ou 4 octets (RVB + octet de " -"padding)" +msgstr "le tampon de couleur doit faire 3 octets (RVB) ou 4 (RVB + pad byte)" #: shared-bindings/displayio/Palette.c:106 #, fuzzy msgid "color must be between 0x000000 and 0xffffff" -msgstr "Les octets 'bytes' doivent être entre 0 et 255" +msgstr "la couleur doit être entre 0x000000 et 0xffffff" #: shared-bindings/displayio/Palette.c:110 #, fuzzy msgid "color buffer must be a buffer or int" -msgstr "le tampon doit être un objet bytes-like" +msgstr "le tampon de couleur doit être un tampon ou un entier" #: shared-bindings/displayio/Palette.c:123 #: shared-bindings/displayio/Palette.c:137 #, fuzzy msgid "palette_index should be an int" -msgstr "Les valeurs du tableau doivent être des octets simples 'bytes'" +msgstr "palette_index devrait être un entier (int)'" #: shared-bindings/displayio/Sprite.c:48 #, fuzzy msgid "position must be 2-tuple" -msgstr "stop doit être 1 ou 2" +msgstr "position doit être un 2-tuple" #: shared-bindings/displayio/Sprite.c:97 #, fuzzy msgid "unsupported bitmap type" -msgstr "Débit non supporté" +msgstr "type de bitmap non supporté" #: shared-bindings/displayio/Sprite.c:162 msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgstr "" +"pixel_shader doit être un objet displayio.Palette ou displayio.ColorConverter" #: shared-bindings/gamepad/GamePad.c:100 msgid "too many arguments" @@ -2259,7 +2260,7 @@ msgstr "trop d'arguments" #: shared-bindings/gamepad/GamePad.c:104 msgid "expected a DigitalInOut" -msgstr "un objet DigitalInOut attendu" +msgstr "objet DigitalInOut attendu" #: shared-bindings/i2cslave/I2CSlave.c:98 #, fuzzy @@ -2268,11 +2269,11 @@ msgstr "ne peut convertir %s en entier int" #: shared-bindings/i2cslave/I2CSlave.c:101 msgid "address out of bounds" -msgstr "Adresse hors limite" +msgstr "adresse hors limites" #: shared-bindings/i2cslave/I2CSlave.c:107 msgid "addresses is empty" -msgstr "Adresses est vide" +msgstr "adresses vides" #: shared-bindings/microcontroller/Pin.c:89 #: shared-bindings/neopixel_write/__init__.c:67 @@ -2298,11 +2299,11 @@ msgstr "Slice et valeur de tailles différentes" #: shared-bindings/nvm/ByteArray.c:104 msgid "Array values should be single bytes." -msgstr "Les valeurs du tableau doivent être des octets simples 'bytes'" +msgstr "Les valeurs du tableau doivent être des octets simples 'bytes'." #: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141 msgid "Unable to write to nvm." -msgstr "Impossible d'écrire sur la nvm" +msgstr "Impossible d'écrire sur la nvm." #: shared-bindings/nvm/ByteArray.c:137 msgid "Bytes must be between 0 and 255." @@ -2325,7 +2326,7 @@ msgid "" "PWM frequency not writable when variable_frequency is False on construction." msgstr "" "La fréquence de PWM n'est pas modifiable quand variable_frequency est False " -"à laconstruction." +"à la construction." #: shared-bindings/pulseio/PulseIn.c:275 msgid "Cannot delete values" @@ -2349,7 +2350,7 @@ msgstr "Le tableau doit contenir des halfwords (type 'H')" #: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100 msgid "stop not reachable from start" -msgstr "stop n'est pas accessible de start" +msgstr "stop n'est pas accessible au démarrage" #: shared-bindings/random/__init__.c:111 msgid "step must be non-zero" @@ -2411,7 +2412,7 @@ msgstr "la fonction prend exactement 9 arguments" #: shared-bindings/time/__init__.c:239 shared-bindings/time/__init__.c:272 msgid "timestamp out of range for platform time_t" -msgstr "timestamp hors gamme pour la plateforme time_t" +msgstr "timestamp hors gamme pour time_t de la plateforme" #: shared-bindings/touchio/TouchIn.c:173 msgid "threshold must be in the range 0-65536" @@ -2438,19 +2439,19 @@ msgstr "Index de la voix trop grand" #: shared-module/audioio/Mixer.c:85 msgid "The sample's sample rate does not match the mixer's" -msgstr "" +msgstr "L'échantillonage de l'échantillon ne correspond pas à celui du mixer" #: shared-module/audioio/Mixer.c:88 msgid "The sample's channel count does not match the mixer's" -msgstr "" +msgstr "Le canal de l'échantillon ne correspond pas à celui du mixer" #: shared-module/audioio/Mixer.c:91 msgid "The sample's bits_per_sample does not match the mixer's" -msgstr "Le bits_per_sample de l'échantillon ne correspond pas au mixer" +msgstr "Le bits_per_sample de l'échantillon ne correspond pas à celui du mixer" #: shared-module/audioio/Mixer.c:100 msgid "The sample's signedness does not match the mixer's" -msgstr "L'échantillon non signé ne correspond pas au mixer" +msgstr "Le signe de l'échantillon ne correspond pas au mixer" #: shared-module/audioio/WaveFile.c:61 msgid "Invalid wave file" @@ -2502,7 +2503,7 @@ msgstr "Pas de transfert sans broches MOSI et MISO" #: shared-module/displayio/Bitmap.c:49 msgid "Only bit maps of 8 bit color or less are supported" -msgstr "Seul les mappings en couleur 8 bits (ou moins) sont supportés" +msgstr "Seules les bitmaps de 8bits par couleur ou moins sont supportées" #: shared-module/displayio/Bitmap.c:69 msgid "row must be packed and word aligned" @@ -2510,7 +2511,7 @@ msgstr "" #: shared-module/displayio/Group.c:39 msgid "Group full" -msgstr "Group complet" +msgstr "Groupe plein" #: shared-module/displayio/Group.c:48 #, fuzzy @@ -2525,12 +2526,12 @@ msgstr "Fichier invalide" #: shared-module/displayio/OnDiskBitmap.c:59 #, c-format msgid "Only Windows format, uncompressed BMP supported %d" -msgstr "Seul le format Windows, BMP non compressé, est supporté %d" +msgstr "Seul les BMP non-compressé au format Windows sont supportés %d" #: shared-module/displayio/OnDiskBitmap.c:64 #, c-format msgid "Only true color (24 bpp or higher) BMP supported %x" -msgstr "Seul les BMP 'true color' (24 bpp ou plus) sont supportés %x" +msgstr "Seul les BMP 24bits ou plus sont supportés %x" #: shared-module/storage/__init__.c:155 msgid "Cannot remount '/' when USB is active." @@ -2570,8 +2571,7 @@ msgstr "Pour quitter, redémarrez la carte SVP sans " msgid "" "You are running in safe mode which means something unanticipated happened.\n" msgstr "" -"Vous êtes en mode sans-échec ce qui signifie que quelque chose demauvais est " -"arrivé.\n" +"Vous êtes en mode sans-échec ce qui signifie qu'un imprévu est survenu.\n" #: supervisor/shared/safe_mode.c:109 msgid "" @@ -2579,6 +2579,10 @@ msgid "" "Please file an issue at https://github.com/adafruit/circuitpython/issues\n" " with the contents of your CIRCUITPY drive and this message:\n" msgstr "" +"On dirait que notre code CircuitPython a durement planté. Oups !\n" +"Merci de remplir un ticket sur https://github.com/adafruit/circuitpython/" +"issues\n" +"avec le contenu de votre lecteur CIRCUITPY et ce message:\n" #: supervisor/shared/safe_mode.c:111 msgid "Crash into the HardFault_Handler.\n" @@ -2590,7 +2594,7 @@ msgstr "" #: supervisor/shared/safe_mode.c:115 msgid "MicroPython fatal error.\n" -msgstr "" +msgstr "Erreur fatale de MicroPython.\n" #: supervisor/shared/safe_mode.c:118 #, fuzzy @@ -2602,6 +2606,8 @@ msgid "" msgstr "" "L'alimentation du microcontroleur a chuté. Merci de vérifier que votre " "alimentation fournit\n" +"suffisamment de puissance pour l'ensemble du circuit et appuyez sur " +"'reset' (après avoir éjecter CIRCUITPY).\n" #: supervisor/shared/safe_mode.c:120 msgid "" @@ -2611,36 +2617,37 @@ msgid "" "If you didn't change the stack, then file an issue here with the contents of " "your CIRCUITPY drive:\n" msgstr "" +"La pile de CircuitPython a été corrompue parce que la pile était trop " +"petite.\n" +"Augmentez la limite de taille de la pile et appuyez sur 'reset' (après avoir " +"éjecter CIRCUITPY).\n" +"Si vous n'avez pas modifié la pile, merci de remplir un ticket avec le " +"contenu de votre lecteur CIRCUITPY :\n" #: supervisor/shared/safe_mode.c:123 msgid "" "The reset button was pressed while booting CircuitPython. Press again to " "exit safe mode.\n" msgstr "" +"Le bouton 'reset' a été appuyé pendant le démarrage de CircuitPython. " +"Appuyer denouveau pour quitter de le mode sans-échec.\n" -#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -#~ msgstr "" -#~ "Il semblerait que votre code CircuitPython a durement planté. Oups!\n" +#, fuzzy +#~ msgid "palette must be displayio.Palette" +#~ msgstr "la palette doit être une displayio.Palette" -#~ msgid "" -#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" -#~ msgstr "" -#~ "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n" +#, fuzzy +#~ msgid "value_size must be power of two" +#~ msgstr "value_size doit être une puissance de 2" -#~ msgid "Can not add Service." -#~ msgstr "Impossible d'ajouter le Service" +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Impossible d'appliquer les paramètres GAP" -#~ msgid "Invalid Service type" -#~ msgstr "Type de service invalide" +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Impossible d'appliquer le nom de périphérique dans la pile" -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur." - -#~ msgid "Can not add Characteristic." -#~ msgstr "Impossible d'ajouter la Characteristic." - -#~ msgid "Can not query for the device address." -#~ msgstr "Impossible d'obtenir l'adresse du périphérique" +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Impossible d'appliquer les paramètres PPCP" #~ msgid "" #~ "enough power for the whole circuit and press reset (after ejecting " @@ -2649,19 +2656,26 @@ msgstr "" #~ "assez de puissance pour l'ensemble du circuit et appuyez sur " #~ "'reset' (après avoir éjecter CIRCUITPY).\n" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Impossible d'appliquer les paramètres PPCP" +#~ msgid "Can not query for the device address." +#~ msgstr "Impossible d'obtenir l'adresse du périphérique" -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Impossible d'appliquer le nom de périphérique dans la pile" +#~ msgid "Can not add Characteristic." +#~ msgstr "Impossible d'ajouter la Characteristic." -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Impossible d'appliquer les paramètres GAP" +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur." -#, fuzzy -#~ msgid "value_size must be power of two" -#~ msgstr "value_size est une puissance de deux" +#~ msgid "Invalid Service type" +#~ msgstr "Type de service invalide" -#, fuzzy -#~ msgid "palette must be displayio.Palette" -#~ msgstr "palettre doit être displayio.Palette" +#~ msgid "Can not add Service." +#~ msgstr "Impossible d'ajouter le Service" + +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n" + +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "" +#~ "Il semblerait que votre code CircuitPython a durement planté. Oups!\n" From 5c776db9b113d5a0a70f8e8458c11d22772f9e3a Mon Sep 17 00:00:00 2001 From: Pierrick C Date: Wed, 26 Dec 2018 20:50:24 +0100 Subject: [PATCH 05/13] make translate --- locale/circuitpython.pot | 24 ++++----- locale/de_DE.po | 80 +++++++++++++++--------------- locale/en_US.po | 24 ++++----- locale/es.po | 104 +++++++++++++++++++-------------------- locale/fil.po | 104 +++++++++++++++++++-------------------- locale/fr.po | 68 ++++++++++++------------- locale/it_IT.po | 86 ++++++++++++++++---------------- locale/pt_BR.po | 74 ++++++++++++++-------------- 8 files changed, 282 insertions(+), 282 deletions(-) diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot index a8883c8d77..92e1813025 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: 2018-12-06 17:04-0800\n" +"POT-Creation-Date: 2018-12-26 20:49+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -346,12 +346,12 @@ msgid "bytes > 8 bits not supported" msgstr "" #: ports/atmel-samd/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:106 msgid "tx and rx cannot both be None" msgstr "" #: ports/atmel-samd/common-hal/busio/UART.c:146 -#: ports/nrf/common-hal/busio/UART.c:116 +#: ports/nrf/common-hal/busio/UART.c:140 msgid "Failed to allocate RX buffer" msgstr "" @@ -360,12 +360,12 @@ msgid "Could not initialize UART" msgstr "" #: ports/atmel-samd/common-hal/busio/UART.c:241 -#: ports/nrf/common-hal/busio/UART.c:157 +#: ports/nrf/common-hal/busio/UART.c:185 msgid "No RX pin" msgstr "" #: ports/atmel-samd/common-hal/busio/UART.c:300 -#: ports/nrf/common-hal/busio/UART.c:207 +#: ports/nrf/common-hal/busio/UART.c:220 msgid "No TX pin" msgstr "" @@ -779,19 +779,19 @@ msgstr "" msgid "error = 0x%08lX" msgstr "" -#: ports/nrf/common-hal/busio/UART.c:87 +#: ports/nrf/common-hal/busio/UART.c:110 msgid "Invalid buffer size" msgstr "" -#: ports/nrf/common-hal/busio/UART.c:91 +#: ports/nrf/common-hal/busio/UART.c:114 msgid "Odd parity is not supported" msgstr "" -#: ports/nrf/common-hal/busio/UART.c:334 ports/nrf/common-hal/busio/UART.c:338 -#: ports/nrf/common-hal/busio/UART.c:343 ports/nrf/common-hal/busio/UART.c:348 -#: ports/nrf/common-hal/busio/UART.c:354 ports/nrf/common-hal/busio/UART.c:359 -#: ports/nrf/common-hal/busio/UART.c:364 ports/nrf/common-hal/busio/UART.c:368 -#: ports/nrf/common-hal/busio/UART.c:376 +#: ports/nrf/common-hal/busio/UART.c:346 ports/nrf/common-hal/busio/UART.c:350 +#: ports/nrf/common-hal/busio/UART.c:355 ports/nrf/common-hal/busio/UART.c:360 +#: ports/nrf/common-hal/busio/UART.c:366 ports/nrf/common-hal/busio/UART.c:371 +#: ports/nrf/common-hal/busio/UART.c:376 ports/nrf/common-hal/busio/UART.c:380 +#: ports/nrf/common-hal/busio/UART.c:388 msgid "busio.UART not available" msgstr "" diff --git a/locale/de_DE.po b/locale/de_DE.po index 05c5ae72d0..e9f81e0b13 100644 --- a/locale/de_DE.po +++ b/locale/de_DE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-06 17:04-0800\n" +"POT-Creation-Date: 2018-12-26 20:49+0100\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n" "Last-Translator: Sebastian Plamauer\n" "Language-Team: \n" @@ -350,12 +350,12 @@ msgid "bytes > 8 bits not supported" msgstr "bytes mit merh als 8 bits werden nicht unterstützt" #: ports/atmel-samd/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:106 msgid "tx and rx cannot both be None" msgstr "tx und rx können nicht beide None sein" #: ports/atmel-samd/common-hal/busio/UART.c:146 -#: ports/nrf/common-hal/busio/UART.c:116 +#: ports/nrf/common-hal/busio/UART.c:140 msgid "Failed to allocate RX buffer" msgstr "Konnte keinen RX Buffer allozieren" @@ -364,12 +364,12 @@ msgid "Could not initialize UART" msgstr "Konnte UART nicht initialisieren" #: ports/atmel-samd/common-hal/busio/UART.c:241 -#: ports/nrf/common-hal/busio/UART.c:157 +#: ports/nrf/common-hal/busio/UART.c:185 msgid "No RX pin" msgstr "Kein RX Pin" #: ports/atmel-samd/common-hal/busio/UART.c:300 -#: ports/nrf/common-hal/busio/UART.c:207 +#: ports/nrf/common-hal/busio/UART.c:220 msgid "No TX pin" msgstr "Kein TX Pin" @@ -789,21 +789,21 @@ msgstr "Alle timer werden benutzt" msgid "error = 0x%08lX" msgstr "" -#: ports/nrf/common-hal/busio/UART.c:87 +#: ports/nrf/common-hal/busio/UART.c:110 #, fuzzy msgid "Invalid buffer size" msgstr "ungültiger dupterm index" -#: ports/nrf/common-hal/busio/UART.c:91 +#: ports/nrf/common-hal/busio/UART.c:114 #, fuzzy msgid "Odd parity is not supported" msgstr "bytes mit merh als 8 bits werden nicht unterstützt" -#: ports/nrf/common-hal/busio/UART.c:334 ports/nrf/common-hal/busio/UART.c:338 -#: ports/nrf/common-hal/busio/UART.c:343 ports/nrf/common-hal/busio/UART.c:348 -#: ports/nrf/common-hal/busio/UART.c:354 ports/nrf/common-hal/busio/UART.c:359 -#: ports/nrf/common-hal/busio/UART.c:364 ports/nrf/common-hal/busio/UART.c:368 -#: ports/nrf/common-hal/busio/UART.c:376 +#: ports/nrf/common-hal/busio/UART.c:346 ports/nrf/common-hal/busio/UART.c:350 +#: ports/nrf/common-hal/busio/UART.c:355 ports/nrf/common-hal/busio/UART.c:360 +#: ports/nrf/common-hal/busio/UART.c:366 ports/nrf/common-hal/busio/UART.c:371 +#: ports/nrf/common-hal/busio/UART.c:376 ports/nrf/common-hal/busio/UART.c:380 +#: ports/nrf/common-hal/busio/UART.c:388 msgid "busio.UART not available" msgstr "" @@ -2571,28 +2571,20 @@ msgid "" "exit safe mode.\n" msgstr "" -#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -#~ msgstr "CircuitPython ist abgestürzt. Ups!\n" +#~ msgid "Invalid Service type" +#~ msgstr "Ungültiger Diensttyp" -#~ msgid "" -#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" -#~ msgstr "" -#~ "Bitte erstelle ein issue hier mit dem Inhalt deines CIRCUITPY-speichers:\n" +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "Kann advertisement data nicht anwenden. Status: 0x%02x" -#~ msgid "Can not add Service." -#~ msgstr "Kann den Dienst nicht hinzufügen." +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Kann GAP Parameter nicht anwenden." -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "Kann UUID in das advertisement packet kodieren." +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Der Gerätename kann nicht im Stack verwendet werden." -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "Kann UUID nicht kodieren, um die Länge zu überprüfen." - -#~ msgid "Can not add Characteristic." -#~ msgstr "Kann das Merkmal nicht hinzufügen." - -#~ msgid "Can not query for the device address." -#~ msgstr "Kann nicht nach der Geräteadresse suchen." +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Kann PPCP Parameter nicht setzen." #~ msgid "" #~ "enough power for the whole circuit and press reset (after ejecting " @@ -2601,17 +2593,25 @@ msgstr "" #~ "genug Strom für den ganzen Schaltkreis liefert und drücke reset (nach dem " #~ "sicheren Auswerfen von CIRCUITPY.)\n" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Kann PPCP Parameter nicht setzen." +#~ msgid "Can not query for the device address." +#~ msgstr "Kann nicht nach der Geräteadresse suchen." -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Der Gerätename kann nicht im Stack verwendet werden." +#~ msgid "Can not add Characteristic." +#~ msgstr "Kann das Merkmal nicht hinzufügen." -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Kann GAP Parameter nicht anwenden." +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "Kann UUID nicht kodieren, um die Länge zu überprüfen." -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "Kann advertisement data nicht anwenden. Status: 0x%02x" +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "Kann UUID in das advertisement packet kodieren." -#~ msgid "Invalid Service type" -#~ msgstr "Ungültiger Diensttyp" +#~ msgid "Can not add Service." +#~ msgstr "Kann den Dienst nicht hinzufügen." + +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "Bitte erstelle ein issue hier mit dem Inhalt deines CIRCUITPY-speichers:\n" + +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "CircuitPython ist abgestürzt. Ups!\n" diff --git a/locale/en_US.po b/locale/en_US.po index c780871389..119dde3d68 100644 --- a/locale/en_US.po +++ b/locale/en_US.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-06 17:04-0800\n" +"POT-Creation-Date: 2018-12-26 20:49+0100\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n" "Last-Translator: \n" "Language-Team: \n" @@ -346,12 +346,12 @@ msgid "bytes > 8 bits not supported" msgstr "" #: ports/atmel-samd/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:106 msgid "tx and rx cannot both be None" msgstr "" #: ports/atmel-samd/common-hal/busio/UART.c:146 -#: ports/nrf/common-hal/busio/UART.c:116 +#: ports/nrf/common-hal/busio/UART.c:140 msgid "Failed to allocate RX buffer" msgstr "" @@ -360,12 +360,12 @@ msgid "Could not initialize UART" msgstr "" #: ports/atmel-samd/common-hal/busio/UART.c:241 -#: ports/nrf/common-hal/busio/UART.c:157 +#: ports/nrf/common-hal/busio/UART.c:185 msgid "No RX pin" msgstr "" #: ports/atmel-samd/common-hal/busio/UART.c:300 -#: ports/nrf/common-hal/busio/UART.c:207 +#: ports/nrf/common-hal/busio/UART.c:220 msgid "No TX pin" msgstr "" @@ -779,19 +779,19 @@ msgstr "" msgid "error = 0x%08lX" msgstr "" -#: ports/nrf/common-hal/busio/UART.c:87 +#: ports/nrf/common-hal/busio/UART.c:110 msgid "Invalid buffer size" msgstr "" -#: ports/nrf/common-hal/busio/UART.c:91 +#: ports/nrf/common-hal/busio/UART.c:114 msgid "Odd parity is not supported" msgstr "" -#: ports/nrf/common-hal/busio/UART.c:334 ports/nrf/common-hal/busio/UART.c:338 -#: ports/nrf/common-hal/busio/UART.c:343 ports/nrf/common-hal/busio/UART.c:348 -#: ports/nrf/common-hal/busio/UART.c:354 ports/nrf/common-hal/busio/UART.c:359 -#: ports/nrf/common-hal/busio/UART.c:364 ports/nrf/common-hal/busio/UART.c:368 -#: ports/nrf/common-hal/busio/UART.c:376 +#: ports/nrf/common-hal/busio/UART.c:346 ports/nrf/common-hal/busio/UART.c:350 +#: ports/nrf/common-hal/busio/UART.c:355 ports/nrf/common-hal/busio/UART.c:360 +#: ports/nrf/common-hal/busio/UART.c:366 ports/nrf/common-hal/busio/UART.c:371 +#: ports/nrf/common-hal/busio/UART.c:376 ports/nrf/common-hal/busio/UART.c:380 +#: ports/nrf/common-hal/busio/UART.c:388 msgid "busio.UART not available" msgstr "" diff --git a/locale/es.po b/locale/es.po index 0251a9d83a..29c69d49c2 100644 --- a/locale/es.po +++ b/locale/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-06 17:04-0800\n" +"POT-Creation-Date: 2018-12-26 20:49+0100\n" "PO-Revision-Date: 2018-08-24 22:56-0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -352,12 +352,12 @@ msgid "bytes > 8 bits not supported" msgstr "bytes > 8 bits no soportados" #: ports/atmel-samd/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:106 msgid "tx and rx cannot both be None" msgstr "Ambos tx y rx no pueden ser None" #: ports/atmel-samd/common-hal/busio/UART.c:146 -#: ports/nrf/common-hal/busio/UART.c:116 +#: ports/nrf/common-hal/busio/UART.c:140 msgid "Failed to allocate RX buffer" msgstr "Ha fallado la asignación del buffer RX" @@ -366,12 +366,12 @@ msgid "Could not initialize UART" msgstr "No se puede inicializar la UART" #: ports/atmel-samd/common-hal/busio/UART.c:241 -#: ports/nrf/common-hal/busio/UART.c:157 +#: ports/nrf/common-hal/busio/UART.c:185 msgid "No RX pin" msgstr "Sin pin RX" #: ports/atmel-samd/common-hal/busio/UART.c:300 -#: ports/nrf/common-hal/busio/UART.c:207 +#: ports/nrf/common-hal/busio/UART.c:220 msgid "No TX pin" msgstr "Sin pin TX" @@ -787,19 +787,19 @@ msgstr "Todos los timers están siendo usados" msgid "error = 0x%08lX" msgstr "error = 0x%08lx" -#: ports/nrf/common-hal/busio/UART.c:87 +#: ports/nrf/common-hal/busio/UART.c:110 msgid "Invalid buffer size" msgstr "Tamaño de buffer inválido" -#: ports/nrf/common-hal/busio/UART.c:91 +#: ports/nrf/common-hal/busio/UART.c:114 msgid "Odd parity is not supported" msgstr "Paridad impar no soportada" -#: ports/nrf/common-hal/busio/UART.c:334 ports/nrf/common-hal/busio/UART.c:338 -#: ports/nrf/common-hal/busio/UART.c:343 ports/nrf/common-hal/busio/UART.c:348 -#: ports/nrf/common-hal/busio/UART.c:354 ports/nrf/common-hal/busio/UART.c:359 -#: ports/nrf/common-hal/busio/UART.c:364 ports/nrf/common-hal/busio/UART.c:368 -#: ports/nrf/common-hal/busio/UART.c:376 +#: ports/nrf/common-hal/busio/UART.c:346 ports/nrf/common-hal/busio/UART.c:350 +#: ports/nrf/common-hal/busio/UART.c:355 ports/nrf/common-hal/busio/UART.c:360 +#: ports/nrf/common-hal/busio/UART.c:366 ports/nrf/common-hal/busio/UART.c:371 +#: ports/nrf/common-hal/busio/UART.c:376 ports/nrf/common-hal/busio/UART.c:380 +#: ports/nrf/common-hal/busio/UART.c:388 msgid "busio.UART not available" msgstr "busio.UART no disponible" @@ -2585,16 +2585,38 @@ msgid "" "exit safe mode.\n" msgstr "" -#, fuzzy -#~ msgid "" -#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" -#~ msgstr "" -#~ "Por favor registra un issue en la siguiente URL con el contenidos de tu " -#~ "unidad de almacenamiento CIRCUITPY:\n" +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "No se pueden aplicar los parámetros GAP." -#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -#~ msgstr "" -#~ "Parece que nuestro código CircuitPython dejó de funcionar. Whoops!\n" +#~ msgid "Can not add Characteristic." +#~ msgstr "No se puede agregar la Característica." + +#~ msgid "Can not apply device name in the stack." +#~ msgstr "No se puede aplicar el nombre del dispositivo en el stack." + +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "No se puede codificar el UUID, para revisar la longitud." + +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "Se puede codificar el UUID en el paquete de anuncio." + +#~ msgid "Invalid Service type" +#~ msgstr "Tipo de Servicio inválido" + +#~ msgid "Can not add Service." +#~ msgstr "No se puede agregar el Servicio." + +#~ msgid "Can not query for the device address." +#~ msgstr "No se puede consultar la dirección del dispositivo." + +#~ msgid "Baud rate too high for this SPI peripheral" +#~ msgstr "Baud rate demasiado alto para este periférico SPI" + +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "No se puede aplicar los datos de anuncio. status: 0x%02x" + +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "No se pueden establecer los parámetros PPCP." #~ msgid "" #~ "enough power for the whole circuit and press reset (after ejecting " @@ -2603,35 +2625,13 @@ msgstr "" #~ "suficiente poder para todo el circuito y presiona reset (después de " #~ "expulsar CIRCUITPY).\n" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "No se pueden establecer los parámetros PPCP." +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "" +#~ "Parece que nuestro código CircuitPython dejó de funcionar. Whoops!\n" -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "No se puede aplicar los datos de anuncio. status: 0x%02x" - -#~ msgid "Baud rate too high for this SPI peripheral" -#~ msgstr "Baud rate demasiado alto para este periférico SPI" - -#~ msgid "Can not query for the device address." -#~ msgstr "No se puede consultar la dirección del dispositivo." - -#~ msgid "Can not add Service." -#~ msgstr "No se puede agregar el Servicio." - -#~ msgid "Invalid Service type" -#~ msgstr "Tipo de Servicio inválido" - -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "Se puede codificar el UUID en el paquete de anuncio." - -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "No se puede codificar el UUID, para revisar la longitud." - -#~ msgid "Can not apply device name in the stack." -#~ msgstr "No se puede aplicar el nombre del dispositivo en el stack." - -#~ msgid "Can not add Characteristic." -#~ msgstr "No se puede agregar la Característica." - -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "No se pueden aplicar los parámetros GAP." +#, fuzzy +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "Por favor registra un issue en la siguiente URL con el contenidos de tu " +#~ "unidad de almacenamiento CIRCUITPY:\n" diff --git a/locale/fil.po b/locale/fil.po index 4c5598978f..53ca5d22a9 100644 --- a/locale/fil.po +++ b/locale/fil.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-06 17:04-0800\n" +"POT-Creation-Date: 2018-12-26 20:49+0100\n" "PO-Revision-Date: 2018-12-20 22:15-0800\n" "Last-Translator: Timothy \n" "Language-Team: fil\n" @@ -350,12 +350,12 @@ msgid "bytes > 8 bits not supported" msgstr "hindi sinusuportahan ang bytes > 8 bits" #: ports/atmel-samd/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:106 msgid "tx and rx cannot both be None" msgstr "tx at rx hindi pwedeng parehas na None" #: ports/atmel-samd/common-hal/busio/UART.c:146 -#: ports/nrf/common-hal/busio/UART.c:116 +#: ports/nrf/common-hal/busio/UART.c:140 msgid "Failed to allocate RX buffer" msgstr "Nabigong ilaan ang RX buffer" @@ -364,12 +364,12 @@ msgid "Could not initialize UART" msgstr "Hindi ma-initialize ang UART" #: ports/atmel-samd/common-hal/busio/UART.c:241 -#: ports/nrf/common-hal/busio/UART.c:157 +#: ports/nrf/common-hal/busio/UART.c:185 msgid "No RX pin" msgstr "Walang RX pin" #: ports/atmel-samd/common-hal/busio/UART.c:300 -#: ports/nrf/common-hal/busio/UART.c:207 +#: ports/nrf/common-hal/busio/UART.c:220 msgid "No TX pin" msgstr "Walang TX pin" @@ -786,19 +786,19 @@ msgstr "Lahat ng SPI peripherals ay ginagamit" msgid "error = 0x%08lX" msgstr "error = 0x%08lX" -#: ports/nrf/common-hal/busio/UART.c:87 +#: ports/nrf/common-hal/busio/UART.c:110 msgid "Invalid buffer size" msgstr "Mali ang buffer size" -#: ports/nrf/common-hal/busio/UART.c:91 +#: ports/nrf/common-hal/busio/UART.c:114 msgid "Odd parity is not supported" msgstr "Odd na parity ay hindi supportado" -#: ports/nrf/common-hal/busio/UART.c:334 ports/nrf/common-hal/busio/UART.c:338 -#: ports/nrf/common-hal/busio/UART.c:343 ports/nrf/common-hal/busio/UART.c:348 -#: ports/nrf/common-hal/busio/UART.c:354 ports/nrf/common-hal/busio/UART.c:359 -#: ports/nrf/common-hal/busio/UART.c:364 ports/nrf/common-hal/busio/UART.c:368 -#: ports/nrf/common-hal/busio/UART.c:376 +#: ports/nrf/common-hal/busio/UART.c:346 ports/nrf/common-hal/busio/UART.c:350 +#: ports/nrf/common-hal/busio/UART.c:355 ports/nrf/common-hal/busio/UART.c:360 +#: ports/nrf/common-hal/busio/UART.c:366 ports/nrf/common-hal/busio/UART.c:371 +#: ports/nrf/common-hal/busio/UART.c:376 ports/nrf/common-hal/busio/UART.c:380 +#: ports/nrf/common-hal/busio/UART.c:388 msgid "busio.UART not available" msgstr "busio.UART hindi available" @@ -2600,15 +2600,39 @@ msgstr "" "Ang reset button ay pinindot habang nag boot ang CircuitPython. Pindutin " "ulit para lumabas sa safe mode.\n" -#~ msgid "" -#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" -#~ msgstr "" -#~ "Mag-file ng isang isyu dito gamit ang mga nilalaman ng iyong CIRCUITPY " -#~ "drive:\n" +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Hindi ma-apply ang GAP parameters." -#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -#~ msgstr "" -#~ "Mukhang ang core CircuitPython code ay nag-crash ng malakas. Aray!\n" +#~ msgid "Can not add Characteristic." +#~ msgstr "Hindi mabasa and Characteristic." + +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Hindi maaaring ma-aplay ang device name sa stack." + +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "Hindi ma-encode UUID, para suriin ang haba." + +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "Maaring i-encode ang UUID sa advertisement packet." + +#~ msgid "Invalid Service type" +#~ msgstr "Mali ang tipo ng serbisyo" + +#~ msgid "Can not add Service." +#~ msgstr "Hindi maidaragdag ang serbisyo." + +#~ msgid "Can not query for the device address." +#~ msgstr "Hindi maaaring mag-query para sa address ng device." + +#, fuzzy +#~ msgid "palette must be displayio.Palette" +#~ msgstr "ang palette ay dapat 32 bytes ang haba" + +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "Hindi ma i-apply ang advertisement data. status: 0x%02x" + +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Hindi ma-set ang PPCP parameters." #~ msgid "" #~ "enough power for the whole circuit and press reset (after ejecting " @@ -2617,36 +2641,12 @@ msgstr "" #~ "ay nagbibigay ng sapat na power para sa buong circuit at i-press ang " #~ "reset (pagkatapos i-eject ang CIRCUITPY).\n" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Hindi ma-set ang PPCP parameters." +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "" +#~ "Mukhang ang core CircuitPython code ay nag-crash ng malakas. Aray!\n" -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "Hindi ma i-apply ang advertisement data. status: 0x%02x" - -#, fuzzy -#~ msgid "palette must be displayio.Palette" -#~ msgstr "ang palette ay dapat 32 bytes ang haba" - -#~ msgid "Can not query for the device address." -#~ msgstr "Hindi maaaring mag-query para sa address ng device." - -#~ msgid "Can not add Service." -#~ msgstr "Hindi maidaragdag ang serbisyo." - -#~ msgid "Invalid Service type" -#~ msgstr "Mali ang tipo ng serbisyo" - -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "Maaring i-encode ang UUID sa advertisement packet." - -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "Hindi ma-encode UUID, para suriin ang haba." - -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Hindi maaaring ma-aplay ang device name sa stack." - -#~ msgid "Can not add Characteristic." -#~ msgstr "Hindi mabasa and Characteristic." - -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Hindi ma-apply ang GAP parameters." +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "Mag-file ng isang isyu dito gamit ang mga nilalaman ng iyong CIRCUITPY " +#~ "drive:\n" diff --git a/locale/fr.po b/locale/fr.po index 9236fb8aa1..61781fe5bd 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-26 17:29+0100\n" +"POT-Creation-Date: 2018-12-26 20:49+0100\n" "PO-Revision-Date: 2018-12-23 20:05+0100\n" "Last-Translator: Pierrick Couturier \n" "Language-Team: fr\n" @@ -710,8 +710,8 @@ msgid "Can not fit data into the advertisment packet" msgstr "" #: ports/nrf/common-hal/bleio/Device.c:266 -#, c-format -msgid "Failed to discover services, status: 0x%08lX" +#, fuzzy, c-format +msgid "Failed to discover serivices, status: 0x%08lX" msgstr "Echec de la découverte de services, statut: 0x%08lX" #: ports/nrf/common-hal/bleio/Device.c:403 @@ -2632,22 +2632,29 @@ msgstr "" "Le bouton 'reset' a été appuyé pendant le démarrage de CircuitPython. " "Appuyer denouveau pour quitter de le mode sans-échec.\n" -#, fuzzy -#~ msgid "palette must be displayio.Palette" -#~ msgstr "la palette doit être une displayio.Palette" +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "" +#~ "Il semblerait que votre code CircuitPython a durement planté. Oups!\n" -#, fuzzy -#~ msgid "value_size must be power of two" -#~ msgstr "value_size doit être une puissance de 2" +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n" -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Impossible d'appliquer les paramètres GAP" +#~ msgid "Can not add Service." +#~ msgstr "Impossible d'ajouter le Service" -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Impossible d'appliquer le nom de périphérique dans la pile" +#~ msgid "Invalid Service type" +#~ msgstr "Type de service invalide" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Impossible d'appliquer les paramètres PPCP" +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur." + +#~ msgid "Can not add Characteristic." +#~ msgstr "Impossible d'ajouter la Characteristic." + +#~ msgid "Can not query for the device address." +#~ msgstr "Impossible d'obtenir l'adresse du périphérique" #~ msgid "" #~ "enough power for the whole circuit and press reset (after ejecting " @@ -2656,26 +2663,19 @@ msgstr "" #~ "assez de puissance pour l'ensemble du circuit et appuyez sur " #~ "'reset' (après avoir éjecter CIRCUITPY).\n" -#~ msgid "Can not query for the device address." -#~ msgstr "Impossible d'obtenir l'adresse du périphérique" +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Impossible d'appliquer les paramètres PPCP" -#~ msgid "Can not add Characteristic." -#~ msgstr "Impossible d'ajouter la Characteristic." +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Impossible d'appliquer le nom de périphérique dans la pile" -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur." +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Impossible d'appliquer les paramètres GAP" -#~ msgid "Invalid Service type" -#~ msgstr "Type de service invalide" +#, fuzzy +#~ msgid "value_size must be power of two" +#~ msgstr "value_size doit être une puissance de 2" -#~ msgid "Can not add Service." -#~ msgstr "Impossible d'ajouter le Service" - -#~ msgid "" -#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" -#~ msgstr "" -#~ "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n" - -#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -#~ msgstr "" -#~ "Il semblerait que votre code CircuitPython a durement planté. Oups!\n" +#, fuzzy +#~ msgid "palette must be displayio.Palette" +#~ msgstr "la palette doit être une displayio.Palette" diff --git a/locale/it_IT.po b/locale/it_IT.po index e9a970b85a..4cb328319d 100644 --- a/locale/it_IT.po +++ b/locale/it_IT.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-06 17:04-0800\n" +"POT-Creation-Date: 2018-12-26 20:49+0100\n" "PO-Revision-Date: 2018-10-02 16:27+0200\n" "Last-Translator: Enrico Paganin \n" "Language-Team: \n" @@ -351,12 +351,12 @@ msgid "bytes > 8 bits not supported" msgstr "byte > 8 bit non supportati" #: ports/atmel-samd/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:106 msgid "tx and rx cannot both be None" msgstr "tx e rx non possono essere entrambi None" #: ports/atmel-samd/common-hal/busio/UART.c:146 -#: ports/nrf/common-hal/busio/UART.c:116 +#: ports/nrf/common-hal/busio/UART.c:140 msgid "Failed to allocate RX buffer" msgstr "Impossibile allocare buffer RX" @@ -365,12 +365,12 @@ msgid "Could not initialize UART" msgstr "Impossibile inizializzare l'UART" #: ports/atmel-samd/common-hal/busio/UART.c:241 -#: ports/nrf/common-hal/busio/UART.c:157 +#: ports/nrf/common-hal/busio/UART.c:185 msgid "No RX pin" msgstr "Nessun pin RX" #: ports/atmel-samd/common-hal/busio/UART.c:300 -#: ports/nrf/common-hal/busio/UART.c:207 +#: ports/nrf/common-hal/busio/UART.c:220 msgid "No TX pin" msgstr "Nessun pin TX" @@ -787,21 +787,21 @@ msgstr "Tutte le periferiche SPI sono in uso" msgid "error = 0x%08lX" msgstr "" -#: ports/nrf/common-hal/busio/UART.c:87 +#: ports/nrf/common-hal/busio/UART.c:110 #, fuzzy msgid "Invalid buffer size" msgstr "lunghezza del buffer non valida" -#: ports/nrf/common-hal/busio/UART.c:91 +#: ports/nrf/common-hal/busio/UART.c:114 #, fuzzy msgid "Odd parity is not supported" msgstr "operazione I2C non supportata" -#: ports/nrf/common-hal/busio/UART.c:334 ports/nrf/common-hal/busio/UART.c:338 -#: ports/nrf/common-hal/busio/UART.c:343 ports/nrf/common-hal/busio/UART.c:348 -#: ports/nrf/common-hal/busio/UART.c:354 ports/nrf/common-hal/busio/UART.c:359 -#: ports/nrf/common-hal/busio/UART.c:364 ports/nrf/common-hal/busio/UART.c:368 -#: ports/nrf/common-hal/busio/UART.c:376 +#: ports/nrf/common-hal/busio/UART.c:346 ports/nrf/common-hal/busio/UART.c:350 +#: ports/nrf/common-hal/busio/UART.c:355 ports/nrf/common-hal/busio/UART.c:360 +#: ports/nrf/common-hal/busio/UART.c:366 ports/nrf/common-hal/busio/UART.c:371 +#: ports/nrf/common-hal/busio/UART.c:376 ports/nrf/common-hal/busio/UART.c:380 +#: ports/nrf/common-hal/busio/UART.c:388 #, fuzzy msgid "busio.UART not available" msgstr "busio.UART non ancora implementato" @@ -2601,31 +2601,20 @@ msgid "" "exit safe mode.\n" msgstr "" -#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -#~ msgstr "" -#~ "Sembra che il codice del core di CircuitPython sia crashato malamente. " -#~ "Whoops!\n" +#~ msgid "Invalid Service type" +#~ msgstr "Tipo di servizio non valido" -#~ msgid "" -#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" -#~ msgstr "" -#~ "Ti preghiamo di compilare una issue con il contenuto del tuo drie " -#~ "CIRCUITPY:\n" +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "Impossible inserire dati advertisement. status: 0x%02x" -#~ msgid "Can not add Service." -#~ msgstr "Non è possibile aggiungere Service." +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Impossibile applicare i parametri GAP." -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "È possibile codificare l'UUID nel pacchetto di advertisement." +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Non è possibile inserire il nome del dipositivo nella lista." -#~ msgid "Can not encode UUID, to check length." -#~ msgstr "Non è possibile codificare l'UUID, lunghezza da controllare." - -#~ msgid "Can not add Characteristic." -#~ msgstr "Non è possibile aggiungere Characteristic." - -#~ msgid "Can not query for the device address." -#~ msgstr "Non è possibile trovare l'indirizzo del dispositivo." +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Impossibile impostare i parametri PPCP." #~ msgid "" #~ "enough power for the whole circuit and press reset (after ejecting " @@ -2634,17 +2623,28 @@ msgstr "" #~ "abbastanza potenza per l'intero circuito e premere reset (dopo aver " #~ "espulso CIRCUITPY).\n" -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Impossibile impostare i parametri PPCP." +#~ msgid "Can not query for the device address." +#~ msgstr "Non è possibile trovare l'indirizzo del dispositivo." -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Non è possibile inserire il nome del dipositivo nella lista." +#~ msgid "Can not add Characteristic." +#~ msgstr "Non è possibile aggiungere Characteristic." -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Impossibile applicare i parametri GAP." +#~ msgid "Can not encode UUID, to check length." +#~ msgstr "Non è possibile codificare l'UUID, lunghezza da controllare." -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "Impossible inserire dati advertisement. status: 0x%02x" +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "È possibile codificare l'UUID nel pacchetto di advertisement." -#~ msgid "Invalid Service type" -#~ msgstr "Tipo di servizio non valido" +#~ msgid "Can not add Service." +#~ msgstr "Non è possibile aggiungere Service." + +#~ msgid "" +#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#~ msgstr "" +#~ "Ti preghiamo di compilare una issue con il contenuto del tuo drie " +#~ "CIRCUITPY:\n" + +#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#~ msgstr "" +#~ "Sembra che il codice del core di CircuitPython sia crashato malamente. " +#~ "Whoops!\n" diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 7a0cf64862..1b35b48247 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-06 17:04-0800\n" +"POT-Creation-Date: 2018-12-26 20:49+0100\n" "PO-Revision-Date: 2018-10-02 21:14-0000\n" "Last-Translator: \n" "Language-Team: \n" @@ -346,12 +346,12 @@ msgid "bytes > 8 bits not supported" msgstr "bytes > 8 bits não suportado" #: ports/atmel-samd/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:106 msgid "tx and rx cannot both be None" msgstr "TX e RX não podem ser ambos" #: ports/atmel-samd/common-hal/busio/UART.c:146 -#: ports/nrf/common-hal/busio/UART.c:116 +#: ports/nrf/common-hal/busio/UART.c:140 msgid "Failed to allocate RX buffer" msgstr "Falha ao alocar buffer RX" @@ -360,12 +360,12 @@ msgid "Could not initialize UART" msgstr "Não foi possível inicializar o UART" #: ports/atmel-samd/common-hal/busio/UART.c:241 -#: ports/nrf/common-hal/busio/UART.c:157 +#: ports/nrf/common-hal/busio/UART.c:185 msgid "No RX pin" msgstr "Nenhum pino RX" #: ports/atmel-samd/common-hal/busio/UART.c:300 -#: ports/nrf/common-hal/busio/UART.c:207 +#: ports/nrf/common-hal/busio/UART.c:220 msgid "No TX pin" msgstr "Nenhum pino TX" @@ -780,21 +780,21 @@ msgstr "Todos os periféricos SPI estão em uso" msgid "error = 0x%08lX" msgstr "erro = 0x%08lX" -#: ports/nrf/common-hal/busio/UART.c:87 +#: ports/nrf/common-hal/busio/UART.c:110 #, fuzzy msgid "Invalid buffer size" msgstr "Arquivo inválido" -#: ports/nrf/common-hal/busio/UART.c:91 +#: ports/nrf/common-hal/busio/UART.c:114 #, fuzzy msgid "Odd parity is not supported" msgstr "I2C operação não suportada" -#: ports/nrf/common-hal/busio/UART.c:334 ports/nrf/common-hal/busio/UART.c:338 -#: ports/nrf/common-hal/busio/UART.c:343 ports/nrf/common-hal/busio/UART.c:348 -#: ports/nrf/common-hal/busio/UART.c:354 ports/nrf/common-hal/busio/UART.c:359 -#: ports/nrf/common-hal/busio/UART.c:364 ports/nrf/common-hal/busio/UART.c:368 -#: ports/nrf/common-hal/busio/UART.c:376 +#: ports/nrf/common-hal/busio/UART.c:346 ports/nrf/common-hal/busio/UART.c:350 +#: ports/nrf/common-hal/busio/UART.c:355 ports/nrf/common-hal/busio/UART.c:360 +#: ports/nrf/common-hal/busio/UART.c:366 ports/nrf/common-hal/busio/UART.c:371 +#: ports/nrf/common-hal/busio/UART.c:376 ports/nrf/common-hal/busio/UART.c:380 +#: ports/nrf/common-hal/busio/UART.c:388 msgid "busio.UART not available" msgstr "busio.UART não disponível" @@ -2557,32 +2557,32 @@ msgid "" "exit safe mode.\n" msgstr "" -#~ msgid "Can not add Service." -#~ msgstr "Não é possível adicionar o serviço." - -#~ msgid "Can not apply advertisement data. status: 0x%02x" -#~ msgstr "Não é possível aplicar dados de anúncio. status: 0x%02x" - -#~ msgid "Baud rate too high for this SPI peripheral" -#~ msgstr "Taxa de transmissão muito alta para esse periférico SPI" - -#~ msgid "Can not query for the device address." -#~ msgstr "Não é possível consultar o endereço do dispositivo." - -#~ msgid "Cannot set PPCP parameters." -#~ msgstr "Não é possível definir parâmetros PPCP." - -#~ msgid "Cannot apply GAP parameters." -#~ msgstr "Não é possível aplicar parâmetros GAP." - -#~ msgid "Invalid Service type" -#~ msgstr "Tipo de serviço inválido" - -#~ msgid "Can encode UUID into the advertisement packet." -#~ msgstr "Pode codificar o UUID no pacote de anúncios." +#~ msgid "Can not apply device name in the stack." +#~ msgstr "Não é possível aplicar o nome do dispositivo na pilha." #~ msgid "Can not add Characteristic." #~ msgstr "Não é possível adicionar Característica." -#~ msgid "Can not apply device name in the stack." -#~ msgstr "Não é possível aplicar o nome do dispositivo na pilha." +#~ msgid "Can encode UUID into the advertisement packet." +#~ msgstr "Pode codificar o UUID no pacote de anúncios." + +#~ msgid "Invalid Service type" +#~ msgstr "Tipo de serviço inválido" + +#~ msgid "Cannot apply GAP parameters." +#~ msgstr "Não é possível aplicar parâmetros GAP." + +#~ msgid "Cannot set PPCP parameters." +#~ msgstr "Não é possível definir parâmetros PPCP." + +#~ msgid "Can not query for the device address." +#~ msgstr "Não é possível consultar o endereço do dispositivo." + +#~ msgid "Baud rate too high for this SPI peripheral" +#~ msgstr "Taxa de transmissão muito alta para esse periférico SPI" + +#~ msgid "Can not apply advertisement data. status: 0x%02x" +#~ msgstr "Não é possível aplicar dados de anúncio. status: 0x%02x" + +#~ msgid "Can not add Service." +#~ msgstr "Não é possível adicionar o serviço." From 55084b30efc5066a2aa43943de3d01e3b0277d06 Mon Sep 17 00:00:00 2001 From: Jerry Needell Date: Thu, 27 Dec 2018 09:38:35 -0500 Subject: [PATCH 06/13] remome FRAMEBUF from nrf builds - use QSPI for particle ARGON --- ports/nrf/boards/particle_argon/mpconfigboard.mk | 2 +- ports/nrf/mpconfigport.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/nrf/boards/particle_argon/mpconfigboard.mk b/ports/nrf/boards/particle_argon/mpconfigboard.mk index 0719488213..ee30c2be90 100644 --- a/ports/nrf/boards/particle_argon/mpconfigboard.mk +++ b/ports/nrf/boards/particle_argon/mpconfigboard.mk @@ -20,6 +20,6 @@ endif NRF_DEFINES += -DNRF52840_XXAA -DNRF52840 -SPI_FLASH_FILESYSTEM = 1 +QSPI_FLASH_FILESYSTEM = 1 EXTERNAL_FLASH_DEVICE_COUNT = 1 EXTERNAL_FLASH_DEVICES = "MX25L3233F" diff --git a/ports/nrf/mpconfigport.h b/ports/nrf/mpconfigport.h index db384d5102..25710cea27 100644 --- a/ports/nrf/mpconfigport.h +++ b/ports/nrf/mpconfigport.h @@ -117,7 +117,7 @@ #define MICROPY_PY_UHEAPQ (0) #define MICROPY_PY_UHASHLIB (1) #define MICROPY_PY_STRUCT (0) -#define MICROPY_PY_FRAMEBUF (1) +#define MICROPY_PY_FRAMEBUF (0) #define MICROPY_KBD_EXCEPTION (1) From d092722ae83f03f0da7a77b525037cf279465112 Mon Sep 17 00:00:00 2001 From: hathach Date: Fri, 28 Dec 2018 00:39:33 +0700 Subject: [PATCH 07/13] fix #1407 keep receiving in case of error --- ports/nrf/common-hal/busio/UART.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ports/nrf/common-hal/busio/UART.c b/ports/nrf/common-hal/busio/UART.c index a291af5788..c200b6e6f8 100644 --- a/ports/nrf/common-hal/busio/UART.c +++ b/ports/nrf/common-hal/busio/UART.c @@ -81,7 +81,7 @@ static void uart_callback_irq (const nrfx_uarte_event_t * event, void * context) } // keep receiving - _VERIFY_ERR(nrfx_uarte_rx(&self->uarte, &self->rx_char, 1)); + (void) nrfx_uarte_rx(&self->uarte, &self->rx_char, 1); break; case NRFX_UARTE_EVT_TX_DONE: @@ -89,7 +89,11 @@ static void uart_callback_irq (const nrfx_uarte_event_t * event, void * context) break; case NRFX_UARTE_EVT_ERROR: - // Handle error + // Possible Error source is Overrun, Parity, Framing, Break + // uint32_t errsrc = event->data.error.error_mask; + + // Keep receiving + (void) nrfx_uarte_rx(&self->uarte, &self->rx_char, 1); break; default: From 3ee766bc013aa3b3bb03606f6a0df03d8cf260e5 Mon Sep 17 00:00:00 2001 From: hathach Date: Fri, 28 Dec 2018 01:05:30 +0700 Subject: [PATCH 08/13] put received bytes to fifo when error --- ports/nrf/common-hal/busio/UART.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/ports/nrf/common-hal/busio/UART.c b/ports/nrf/common-hal/busio/UART.c index c200b6e6f8..912956369c 100644 --- a/ports/nrf/common-hal/busio/UART.c +++ b/ports/nrf/common-hal/busio/UART.c @@ -67,18 +67,24 @@ static void ringbuf_clear(ringbuf_t *r) r->iput = r->iget = 0; } +// will overwrite old data +static void ringbuf_put_n(ringbuf_t* r, uint8_t* buf, uint8_t bufsize) +{ + for(uint8_t i=0; i < bufsize; i++) { + if ( ringbuf_put(r, buf[i]) < 0 ) { + // if full overwrite old data + (void) ringbuf_get(r); + ringbuf_put(r, buf[i]); + } + } +} + static void uart_callback_irq (const nrfx_uarte_event_t * event, void * context) { busio_uart_obj_t* self = (busio_uart_obj_t*) context; switch ( event->type ) { case NRFX_UARTE_EVT_RX_DONE: - for(uint8_t i=0; i < event->data.rxtx.bytes; i++) { - if ( ringbuf_put(&self->rbuf, event->data.rxtx.p_data[i]) < 0 ) { - // if full overwrite old data - (void) ringbuf_get(&self->rbuf); - ringbuf_put(&self->rbuf, event->data.rxtx.p_data[i]); - } - } + ringbuf_put_n(&self->rbuf, event->data.rxtx.p_data, event->data.rxtx.bytes); // keep receiving (void) nrfx_uarte_rx(&self->uarte, &self->rx_char, 1); @@ -92,6 +98,8 @@ static void uart_callback_irq (const nrfx_uarte_event_t * event, void * context) // Possible Error source is Overrun, Parity, Framing, Break // uint32_t errsrc = event->data.error.error_mask; + ringbuf_put_n(&self->rbuf, event->data.error.rxtx.p_data, event->data.error.rxtx.bytes); + // Keep receiving (void) nrfx_uarte_rx(&self->uarte, &self->rx_char, 1); break; From a8486c6b7e3a4ef9028e4c7d067339c13cbfd885 Mon Sep 17 00:00:00 2001 From: Kattni Date: Thu, 27 Dec 2018 18:05:07 -0600 Subject: [PATCH 09/13] Adding header logo resized --- logo/CircuitPython_Repo_header_logo.png | Bin 0 -> 103853 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 logo/CircuitPython_Repo_header_logo.png diff --git a/logo/CircuitPython_Repo_header_logo.png b/logo/CircuitPython_Repo_header_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6ce287922ab515c71c97f704b80a6626d64d042a GIT binary patch literal 103853 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 Date: Fri, 28 Dec 2018 16:30:11 +0700 Subject: [PATCH 10/13] fix #1422 correct i2c max xfer len (size in bits) --- ports/nrf/common-hal/busio/I2C.c | 56 +++++++++++++++++--------------- ports/nrf/common-hal/busio/I2C.h | 1 - 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/ports/nrf/common-hal/busio/I2C.c b/ports/nrf/common-hal/busio/I2C.c index 4c42e58cdf..f2ba655949 100644 --- a/ports/nrf/common-hal/busio/I2C.c +++ b/ports/nrf/common-hal/busio/I2C.c @@ -37,19 +37,21 @@ #include "nrfx_spim.h" #include "nrf_gpio.h" +// all TWI instances have the same max size +// 16 bits for 840, 10 bits for 810, 8 bits for 832 +#define I2C_MAX_XFER_LEN ( 1UL << TWIM0_EASYDMA_MAXCNT_SIZE) + STATIC twim_peripheral_t twim_peripherals[] = { #if NRFX_CHECK(NRFX_TWIM0_ENABLED) // SPIM0 and TWIM0 share an address. { .twim = NRFX_TWIM_INSTANCE(0), - .in_use = false, - .max_xfer_size = TWIM0_EASYDMA_MAXCNT_SIZE, + .in_use = false }, #endif #if NRFX_CHECK(NRFX_TWIM1_ENABLED) // SPIM1 and TWIM1 share an address. { .twim = NRFX_TWIM_INSTANCE(1), - .in_use = false, - .max_xfer_size = TWIM1_EASYDMA_MAXCNT_SIZE, + .in_use = false }, #endif }; @@ -198,24 +200,25 @@ void common_hal_busio_i2c_unlock(busio_i2c_obj_t *self) { } uint8_t common_hal_busio_i2c_write(busio_i2c_obj_t *self, uint16_t addr, const uint8_t *data, size_t len, bool stopBit) { - if(len == 0) + if(len == 0) { return common_hal_busio_i2c_probe(self, addr) ? 0 : MP_ENODEV; + } - const uint32_t max_xfer_size = self->twim_peripheral->max_xfer_size; - const uint32_t parts = len / max_xfer_size; - const uint32_t remainder = len % max_xfer_size; nrfx_err_t err = NRFX_SUCCESS; nrfx_twim_enable(&self->twim_peripheral->twim); - for (uint32_t i = 0; i < parts; ++i) { - err = nrfx_twim_tx(&self->twim_peripheral->twim, addr, data + i * max_xfer_size, max_xfer_size, !stopBit); - if (err != NRFX_SUCCESS) - break; - } + // break into MAX_XFER_LEN transaction + while ( len ) { + const size_t xact_len = MIN(len, I2C_MAX_XFER_LEN); - if ((remainder > 0) && (err == NRFX_SUCCESS)) - err = nrfx_twim_tx(&self->twim_peripheral->twim, addr, data + parts * max_xfer_size, remainder, !stopBit); + if ( NRFX_SUCCESS != (err = nrfx_twim_tx(&self->twim_peripheral->twim, addr, data, xact_len, !stopBit)) ) { + break; + } + + len -= xact_len; + data += xact_len; + } nrfx_twim_disable(&self->twim_peripheral->twim); @@ -223,24 +226,25 @@ uint8_t common_hal_busio_i2c_write(busio_i2c_obj_t *self, uint16_t addr, const u } uint8_t common_hal_busio_i2c_read(busio_i2c_obj_t *self, uint16_t addr, uint8_t *data, size_t len) { - if(len == 0) + if(len == 0) { return 0; + } - const uint32_t max_xfer_size = self->twim_peripheral->max_xfer_size; - const uint32_t parts = len / max_xfer_size; - const uint32_t remainder = len % max_xfer_size; nrfx_err_t err = NRFX_SUCCESS; nrfx_twim_enable(&self->twim_peripheral->twim); - for (uint32_t i = 0; i < parts; ++i) { - err = nrfx_twim_rx(&self->twim_peripheral->twim, addr, data + i * max_xfer_size, max_xfer_size); - if (err != NRFX_SUCCESS) - break; - } + // break into MAX_XFER_LEN transaction + while ( len ) { + const size_t xact_len = MIN(len, I2C_MAX_XFER_LEN); - if ((remainder > 0) && (err == NRFX_SUCCESS)) - err = nrfx_twim_rx(&self->twim_peripheral->twim, addr, data + parts * max_xfer_size, remainder); + if ( NRFX_SUCCESS != (err = nrfx_twim_rx(&self->twim_peripheral->twim, addr, data, xact_len)) ) { + break; + } + + len -= xact_len; + data += xact_len; + } nrfx_twim_disable(&self->twim_peripheral->twim); diff --git a/ports/nrf/common-hal/busio/I2C.h b/ports/nrf/common-hal/busio/I2C.h index c8ba84418f..b75d15f00f 100644 --- a/ports/nrf/common-hal/busio/I2C.h +++ b/ports/nrf/common-hal/busio/I2C.h @@ -34,7 +34,6 @@ typedef struct { nrfx_twim_t twim; bool in_use; - uint8_t max_xfer_size; } twim_peripheral_t; typedef struct { From 6b0d93cea3e03a4eac6da6349defa580d78b4bf1 Mon Sep 17 00:00:00 2001 From: hathach Date: Fri, 28 Dec 2018 21:14:27 +0700 Subject: [PATCH 11/13] correct i2c max len --- ports/nrf/common-hal/busio/I2C.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/nrf/common-hal/busio/I2C.c b/ports/nrf/common-hal/busio/I2C.c index f2ba655949..05106d4905 100644 --- a/ports/nrf/common-hal/busio/I2C.c +++ b/ports/nrf/common-hal/busio/I2C.c @@ -39,7 +39,7 @@ // all TWI instances have the same max size // 16 bits for 840, 10 bits for 810, 8 bits for 832 -#define I2C_MAX_XFER_LEN ( 1UL << TWIM0_EASYDMA_MAXCNT_SIZE) +#define I2C_MAX_XFER_LEN ((1UL << TWIM0_EASYDMA_MAXCNT_SIZE) - 1) STATIC twim_peripheral_t twim_peripherals[] = { #if NRFX_CHECK(NRFX_TWIM0_ENABLED) From 715064abebe8a09bd69341f69a19390edbe06fa6 Mon Sep 17 00:00:00 2001 From: Kattni Date: Fri, 28 Dec 2018 12:43:37 -0600 Subject: [PATCH 12/13] Adding MIT license badge --- logo/license-MIT-brightgreen.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 logo/license-MIT-brightgreen.svg diff --git a/logo/license-MIT-brightgreen.svg b/logo/license-MIT-brightgreen.svg new file mode 100644 index 0000000000..e28c04bbc5 --- /dev/null +++ b/logo/license-MIT-brightgreen.svg @@ -0,0 +1 @@ + licenselicenseMITMIT \ No newline at end of file From a48a08d3142da47f891b956044ba2fcc6217a22e Mon Sep 17 00:00:00 2001 From: Kattni Date: Fri, 28 Dec 2018 13:43:14 -0600 Subject: [PATCH 13/13] Added header image and license badge --- README.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 65ad662620..13672b689c 100644 --- a/README.rst +++ b/README.rst @@ -1,7 +1,9 @@ Adafruit CircuitPython ====================== -|Build Status| |Doc Status| |Discord| +.. image:: https://github.com/adafruit/circuitpython/blob/master/logo/CircuitPython_Repo_header_logo.png + +|Build Status| |Doc Status| |License| |Discord| `Status <#status>`__ \| `Supported Boards <#supported-boards>`__ \| `Download <#download>`__ \| @@ -270,3 +272,5 @@ project. :target: http://circuitpython.readthedocs.io/ .. |Discord| image:: https://img.shields.io/discord/327254708534116352.svg :target: https://discord.gg/nBQh6qu +.. |License| image:: https://github.com/adafruit/circuitpython/blob/master/logo/license-MIT-brightgreen.svg + :target: https://opensource.org/licenses/MIT