Merge pull request #1535 from tannewt/group_sequence_and_font

A variety of displayio improvements
This commit is contained in:
Dan Halbert 2019-02-12 19:04:37 -05:00 committed by GitHub
commit a61f68f0fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
48 changed files with 1938 additions and 1088 deletions

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-12 15:01-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -1810,69 +1810,69 @@ msgstr ""
msgid "string index out of range" msgid "string index out of range"
msgstr "" msgstr ""
#: py/objtype.c:368 #: py/objtype.c:371
msgid "__init__() should return None" msgid "__init__() should return None"
msgstr "" msgstr ""
#: py/objtype.c:370 #: py/objtype.c:373
#, c-format #, c-format
msgid "__init__() should return None, not '%s'" msgid "__init__() should return None, not '%s'"
msgstr "" msgstr ""
#: py/objtype.c:633 py/objtype.c:1287 py/runtime.c:1065 #: py/objtype.c:636 py/objtype.c:1290 py/runtime.c:1065
msgid "unreadable attribute" msgid "unreadable attribute"
msgstr "" msgstr ""
#: py/objtype.c:878 py/runtime.c:653 #: py/objtype.c:881 py/runtime.c:653
msgid "object not callable" msgid "object not callable"
msgstr "" msgstr ""
#: py/objtype.c:880 py/runtime.c:655 #: py/objtype.c:883 py/runtime.c:655
#, c-format #, c-format
msgid "'%s' object is not callable" msgid "'%s' object is not callable"
msgstr "" msgstr ""
#: py/objtype.c:988 #: py/objtype.c:991
msgid "type takes 1 or 3 arguments" msgid "type takes 1 or 3 arguments"
msgstr "" msgstr ""
#: py/objtype.c:999 #: py/objtype.c:1002
msgid "cannot create instance" msgid "cannot create instance"
msgstr "" msgstr ""
#: py/objtype.c:1001 #: py/objtype.c:1004
msgid "cannot create '%q' instances" msgid "cannot create '%q' instances"
msgstr "" msgstr ""
#: py/objtype.c:1059 #: py/objtype.c:1062
msgid "can't add special method to already-subclassed class" msgid "can't add special method to already-subclassed class"
msgstr "" msgstr ""
#: py/objtype.c:1103 py/objtype.c:1109 #: py/objtype.c:1106 py/objtype.c:1112
msgid "type is not an acceptable base type" msgid "type is not an acceptable base type"
msgstr "" msgstr ""
#: py/objtype.c:1112 #: py/objtype.c:1115
msgid "type '%q' is not an acceptable base type" msgid "type '%q' is not an acceptable base type"
msgstr "" msgstr ""
#: py/objtype.c:1149 #: py/objtype.c:1152
msgid "multiple inheritance not supported" msgid "multiple inheritance not supported"
msgstr "" msgstr ""
#: py/objtype.c:1176 #: py/objtype.c:1179
msgid "multiple bases have instance lay-out conflict" msgid "multiple bases have instance lay-out conflict"
msgstr "" msgstr ""
#: py/objtype.c:1217 #: py/objtype.c:1220
msgid "first argument to super() must be type" msgid "first argument to super() must be type"
msgstr "" msgstr ""
#: py/objtype.c:1382 #: py/objtype.c:1385
msgid "issubclass() arg 2 must be a class or a tuple of classes" msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "" msgstr ""
#: py/objtype.c:1396 #: py/objtype.c:1399
msgid "issubclass() arg 1 must be a class" msgid "issubclass() arg 1 must be a class"
msgstr "" msgstr ""
@ -2181,7 +2181,7 @@ msgid "buffer must be a bytes-like object"
msgstr "" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "" msgstr ""
@ -2344,74 +2344,89 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:253
msgid "row buffer must be a bytearray or array of type 'b' or 'B'" #: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:94 #: shared-bindings/displayio/Bitmap.c:156
msgid "row data must be a buffer" msgid "pixel coordinates out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/ColorConverter.c:72 #: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:93
msgid "%q should be an int"
msgstr ""
#: shared-bindings/displayio/ColorConverter.c:70
msgid "color should be an int" msgid "color should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "" msgstr ""
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:100
msgstr "" #, fuzzy
msgid "%q must be >= 1"
msgstr "buffers harus mempunyai panjang yang sama"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr ""
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
msgid "start_x should be an int" msgid "start_x should be an int"
msgstr "" msgstr ""
@ -2424,19 +2439,19 @@ msgstr ""
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
@ -2464,6 +2479,7 @@ msgstr ""
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "" msgstr ""
@ -2513,19 +2529,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "" msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -2574,11 +2578,6 @@ msgstr ""
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "" msgstr ""
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "keyword harus berupa string"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "" msgstr ""
@ -2697,27 +2696,28 @@ msgstr ""
msgid "Only bit maps of 8 bit color or less are supported" msgid "Only bit maps of 8 bit color or less are supported"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "sistem file (filesystem) bersifat Read-only"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "Baudrate tidak didukung" msgstr "Baudrate tidak didukung"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:66
msgid "Group full" msgid "Group full"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:73
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr ""
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "" msgstr ""
@ -2848,6 +2848,16 @@ msgid ""
"exit safe mode.\n" "exit safe mode.\n"
msgstr "" msgstr ""
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "keyword harus berupa string"
#~ msgid "All PWM peripherals are in use"
#~ msgstr "Semua perangkat PWM sedang digunakan"
#~ msgid "Invalid UUID string length"
#~ msgstr "Panjang string UUID tidak valid"
#~ msgid "" #~ msgid ""
#~ "enough power for the whole circuit and press reset (after ejecting " #~ "enough power for the whole circuit and press reset (after ejecting "
#~ "CIRCUITPY).\n" #~ "CIRCUITPY).\n"
@ -2855,18 +2865,12 @@ msgstr ""
#~ "tegangan cukup untuk semua sirkuit dan tekan reset (setelah mencabut " #~ "tegangan cukup untuk semua sirkuit dan tekan reset (setelah mencabut "
#~ "CIRCUITPY).\n" #~ "CIRCUITPY).\n"
#, fuzzy
#~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "Gagal untuk megalokasikan buffer RX dari %d byte"
#~ msgid "Invalid UUID string length"
#~ msgstr "Panjang string UUID tidak valid"
#~ msgid "Invalid UUID parameter" #~ msgid "Invalid UUID parameter"
#~ msgstr "Parameter UUID tidak valid" #~ msgstr "Parameter UUID tidak valid"
#~ msgid "All PWM peripherals are in use" #, fuzzy
#~ msgstr "Semua perangkat PWM sedang digunakan" #~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "Gagal untuk megalokasikan buffer RX dari %d byte"
#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" #~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n"
#~ msgstr "" #~ msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-12 15:01-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -1777,69 +1777,69 @@ msgstr ""
msgid "string index out of range" msgid "string index out of range"
msgstr "" msgstr ""
#: py/objtype.c:368 #: py/objtype.c:371
msgid "__init__() should return None" msgid "__init__() should return None"
msgstr "" msgstr ""
#: py/objtype.c:370 #: py/objtype.c:373
#, c-format #, c-format
msgid "__init__() should return None, not '%s'" msgid "__init__() should return None, not '%s'"
msgstr "" msgstr ""
#: py/objtype.c:633 py/objtype.c:1287 py/runtime.c:1065 #: py/objtype.c:636 py/objtype.c:1290 py/runtime.c:1065
msgid "unreadable attribute" msgid "unreadable attribute"
msgstr "" msgstr ""
#: py/objtype.c:878 py/runtime.c:653 #: py/objtype.c:881 py/runtime.c:653
msgid "object not callable" msgid "object not callable"
msgstr "" msgstr ""
#: py/objtype.c:880 py/runtime.c:655 #: py/objtype.c:883 py/runtime.c:655
#, c-format #, c-format
msgid "'%s' object is not callable" msgid "'%s' object is not callable"
msgstr "" msgstr ""
#: py/objtype.c:988 #: py/objtype.c:991
msgid "type takes 1 or 3 arguments" msgid "type takes 1 or 3 arguments"
msgstr "" msgstr ""
#: py/objtype.c:999 #: py/objtype.c:1002
msgid "cannot create instance" msgid "cannot create instance"
msgstr "" msgstr ""
#: py/objtype.c:1001 #: py/objtype.c:1004
msgid "cannot create '%q' instances" msgid "cannot create '%q' instances"
msgstr "" msgstr ""
#: py/objtype.c:1059 #: py/objtype.c:1062
msgid "can't add special method to already-subclassed class" msgid "can't add special method to already-subclassed class"
msgstr "" msgstr ""
#: py/objtype.c:1103 py/objtype.c:1109 #: py/objtype.c:1106 py/objtype.c:1112
msgid "type is not an acceptable base type" msgid "type is not an acceptable base type"
msgstr "" msgstr ""
#: py/objtype.c:1112 #: py/objtype.c:1115
msgid "type '%q' is not an acceptable base type" msgid "type '%q' is not an acceptable base type"
msgstr "" msgstr ""
#: py/objtype.c:1149 #: py/objtype.c:1152
msgid "multiple inheritance not supported" msgid "multiple inheritance not supported"
msgstr "" msgstr ""
#: py/objtype.c:1176 #: py/objtype.c:1179
msgid "multiple bases have instance lay-out conflict" msgid "multiple bases have instance lay-out conflict"
msgstr "" msgstr ""
#: py/objtype.c:1217 #: py/objtype.c:1220
msgid "first argument to super() must be type" msgid "first argument to super() must be type"
msgstr "" msgstr ""
#: py/objtype.c:1382 #: py/objtype.c:1385
msgid "issubclass() arg 2 must be a class or a tuple of classes" msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "" msgstr ""
#: py/objtype.c:1396 #: py/objtype.c:1399
msgid "issubclass() arg 1 must be a class" msgid "issubclass() arg 1 must be a class"
msgstr "" msgstr ""
@ -2148,7 +2148,7 @@ msgid "buffer must be a bytes-like object"
msgstr "" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "" msgstr ""
@ -2306,74 +2306,88 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:253
msgid "row buffer must be a bytearray or array of type 'b' or 'B'" #: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:94 #: shared-bindings/displayio/Bitmap.c:156
msgid "row data must be a buffer" msgid "pixel coordinates out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/ColorConverter.c:72 #: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:93
msgid "%q should be an int"
msgstr ""
#: shared-bindings/displayio/ColorConverter.c:70
msgid "color should be an int" msgid "color should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "" msgstr ""
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:100
msgid "%q must be >= 1"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr ""
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
msgid "start_x should be an int" msgid "start_x should be an int"
msgstr "" msgstr ""
@ -2386,19 +2400,19 @@ msgstr ""
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
@ -2426,6 +2440,7 @@ msgstr ""
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "" msgstr ""
@ -2475,19 +2490,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "" msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -2536,10 +2539,6 @@ msgstr ""
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "" msgstr ""
#: shared-bindings/terminalio/Terminal.c:68
msgid "unicode_characters must be a string"
msgstr ""
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "" msgstr ""
@ -2658,26 +2657,26 @@ msgstr ""
msgid "Only bit maps of 8 bit color or less are supported" msgid "Only bit maps of 8 bit color or less are supported"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:118
msgid "Read-only object"
msgstr ""
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:66
msgid "Group full" msgid "Group full"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:73
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr ""
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "" msgstr ""

View File

@ -7,10 +7,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-02-07 01:10-0600\n" "POT-Creation-Date: 2019-02-12 15:01-0800\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: Pascal Deneaux\n" "Last-Translator: Sebastian Plamauer\n"
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n" "Language-Team: \n"
"Language: en_US\n" "Language: en_US\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -69,11 +69,11 @@ msgstr "eine nicht-hex zahl wurde gefunden"
#: extmod/modubinascii.c:169 #: extmod/modubinascii.c:169
msgid "incorrect padding" msgid "incorrect padding"
msgstr "padding ist inkorrekt" msgstr "falsches padding"
#: extmod/moductypes.c:122 #: extmod/moductypes.c:122
msgid "syntax error in uctypes descriptor" msgid "syntax error in uctypes descriptor"
msgstr "Syntaxfehler in uctypes Deskriptor" msgstr "Syntaxfehler in uctypes Definition"
#: extmod/moductypes.c:219 #: extmod/moductypes.c:219
msgid "Cannot unambiguously get sizeof scalar" msgid "Cannot unambiguously get sizeof scalar"
@ -105,7 +105,7 @@ msgstr "Syntaxfehler in JSON"
#: extmod/modure.c:161 #: extmod/modure.c:161
msgid "Splitting with sub-captures" msgid "Splitting with sub-captures"
msgstr "Splitting with sub-captures" msgstr "Teilen mit unter-captures"
#: extmod/modure.c:207 #: extmod/modure.c:207
msgid "Error in regex" msgid "Error in regex"
@ -161,7 +161,7 @@ msgid ""
"disable.\n" "disable.\n"
msgstr "" msgstr ""
"Automatisches Neuladen ist aktiv. Speichere Dateien über USB um sie " "Automatisches Neuladen ist aktiv. Speichere Dateien über USB um sie "
"auszuführen oder verbinde dich mit der REPL zum Deaktivieren.\n" "auszuführen oder verbinde dich mit der REPL zum deaktivieren.\n"
#: main.c:168 #: main.c:168
msgid "Running in safe mode! Auto-reload is off.\n" msgid "Running in safe mode! Auto-reload is off.\n"
@ -185,12 +185,12 @@ msgid ""
"\n" "\n"
"Code done running. Waiting for reload.\n" "Code done running. Waiting for reload.\n"
msgstr "" msgstr ""
"\n"
"Der Code wurde ausgeführt. Warte auf reload.\n"
#: main.c:254 #: main.c:254
msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgid "Press any key to enter the REPL. Use CTRL-D to reload."
msgstr "Drücke eine Taste um dich mit der REPL zu verbinden. Drücke Strg-D zum neu laden" msgstr ""
"Drücke eine Taste um dich mit der REPL zu verbinden. Drücke Strg-D zum neu "
"laden"
#: main.c:419 #: main.c:419
msgid "soft reboot\n" msgid "soft reboot\n"
@ -492,7 +492,9 @@ msgstr "Minimale PWM Frequenz ist %dHz"
#: ports/esp8266/common-hal/pulseio/PWMOut.c:68 #: ports/esp8266/common-hal/pulseio/PWMOut.c:68
#, c-format #, c-format
msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." msgid "Multiple PWM frequencies not supported. PWM already set to %dhz."
msgstr "Mehrere PWM Frequenzen werden nicht unterstützt. PWM wurde bereits auf %dHz gesetzt." msgstr ""
"Mehrere PWM Frequenzen werden nicht unterstützt. PWM wurde bereits auf %dHz "
"gesetzt."
#: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70 #: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70
#, c-format #, c-format
@ -509,7 +511,8 @@ msgstr "Dateisystem kann nicht wieder gemounted werden."
#: ports/esp8266/common-hal/storage/__init__.c:38 #: ports/esp8266/common-hal/storage/__init__.c:38
msgid "Use esptool to erase flash and re-upload Python instead" msgid "Use esptool to erase flash and re-upload Python instead"
msgstr "Benutze das esptool um den flash zu löschen und Python erneut hochzuladen" msgstr ""
"Benutze esptool um den flash zu löschen und stattdessen Python hochzuladen"
#: ports/esp8266/esp_mphal.c:154 #: ports/esp8266/esp_mphal.c:154
msgid "C-level assert" msgid "C-level assert"
@ -565,7 +568,8 @@ msgstr "len muss ein vielfaches von 4 sein"
#: ports/esp8266/modesp.c:274 #: ports/esp8266/modesp.c:274
#, c-format #, c-format
msgid "memory allocation failed, allocating %u bytes for native code" msgid "memory allocation failed, allocating %u bytes for native code"
msgstr "Speicherallozierung fehlgeschlagen, alloziere %u Bytes für nativen Code" msgstr ""
"Speicherallozierung fehlgeschlagen, alloziere %u Bytes für nativen Code"
#: ports/esp8266/modesp.c:317 #: ports/esp8266/modesp.c:317
msgid "flash location must be below 1MByte" msgid "flash location must be below 1MByte"
@ -840,7 +844,7 @@ msgstr "Ungültige Puffergröße"
#: ports/nrf/common-hal/busio/UART.c:99 #: ports/nrf/common-hal/busio/UART.c:99
msgid "Odd parity is not supported" msgid "Odd parity is not supported"
msgstr "Eine ungerade Parität wird nicht unterstützt" msgstr "Ungerade Parität wird nicht unterstützt"
#: ports/nrf/common-hal/busio/UART.c:335 ports/nrf/common-hal/busio/UART.c:339 #: ports/nrf/common-hal/busio/UART.c:335 ports/nrf/common-hal/busio/UART.c:339
#: ports/nrf/common-hal/busio/UART.c:344 ports/nrf/common-hal/busio/UART.c:349 #: ports/nrf/common-hal/busio/UART.c:344 ports/nrf/common-hal/busio/UART.c:349
@ -868,12 +872,12 @@ msgstr "ffi_prep_closure_loc"
#: ports/unix/modffi.c:413 #: ports/unix/modffi.c:413
msgid "Don't know how to pass object to native function" msgid "Don't know how to pass object to native function"
msgstr "Ich weiß nicht, wie man das Objekt an die native Funktion übergeben kann" msgstr ""
#: ports/unix/modusocket.c:474 #: ports/unix/modusocket.c:474
#, c-format #, c-format
msgid "[addrinfo error %d]" msgid "[addrinfo error %d]"
msgstr "[addrinfo error %d]" msgstr ""
#: py/argcheck.c:53 #: py/argcheck.c:53
msgid "function does not take keyword arguments" msgid "function does not take keyword arguments"
@ -882,7 +886,8 @@ msgstr "Funktion akzeptiert keine Keyword-Argumente"
#: py/argcheck.c:63 py/bc.c:85 py/objnamedtuple.c:108 #: py/argcheck.c:63 py/bc.c:85 py/objnamedtuple.c:108
#, c-format #, c-format
msgid "function takes %d positional arguments but %d were given" msgid "function takes %d positional arguments but %d were given"
msgstr "Funktion nimmt %d Argumente ohne Keyword an, aber es wurden %d angegeben" msgstr ""
"Funktion nimmt %d Argumente ohne Keyword an, aber es wurden %d angegeben"
#: py/argcheck.c:73 #: py/argcheck.c:73
#, c-format #, c-format
@ -912,7 +917,8 @@ msgstr "Anzahl/Type der Argumente passen nicht"
#: py/argcheck.c:156 #: py/argcheck.c:156
msgid "keyword argument(s) not yet implemented - use normal args instead" msgid "keyword argument(s) not yet implemented - use normal args instead"
msgstr "Keyword-Argument(e) noch nicht implementiert - verwenden Sie stattdessen " msgstr ""
"Keyword-Argument(e) noch nicht implementiert - verwenden Sie stattdessen "
"normale Argumente" "normale Argumente"
#: py/bc.c:88 py/objnamedtuple.c:112 #: py/bc.c:88 py/objnamedtuple.c:112
@ -950,11 +956,11 @@ msgstr "Funktion vermisst Keyword-only-Argument"
#: py/binary.c:112 #: py/binary.c:112
msgid "bad typecode" msgid "bad typecode"
msgstr "schlechter typecode" msgstr ""
#: py/builtinevex.c:99 #: py/builtinevex.c:99
msgid "bad compile mode" msgid "bad compile mode"
msgstr "schlechter compile mode" msgstr ""
#: py/builtinhelp.c:137 #: py/builtinhelp.c:137
msgid "Plus any modules on the filesystem\n" msgid "Plus any modules on the filesystem\n"
@ -1062,15 +1068,15 @@ msgstr "mehrere **x sind nicht gestattet"
#: py/compile.c:2271 #: py/compile.c:2271
msgid "LHS of keyword arg must be an id" msgid "LHS of keyword arg must be an id"
msgstr "LHS of keyword arg must be an id" msgstr ""
#: py/compile.c:2287 #: py/compile.c:2287
msgid "non-keyword arg after */**" msgid "non-keyword arg after */**"
msgstr "non-keyword arg after */**" msgstr ""
#: py/compile.c:2291 #: py/compile.c:2291
msgid "non-keyword arg after keyword arg" msgid "non-keyword arg after keyword arg"
msgstr "non-keyword arg after keyword arg" msgstr ""
#: py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 py/compile.c:2742 #: py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 py/compile.c:2742
#: py/parse.c:1176 #: py/parse.c:1176
@ -1148,56 +1154,56 @@ msgstr ""
#: py/emitinlinethumb.c:188 py/emitinlinethumb.c:230 #: py/emitinlinethumb.c:188 py/emitinlinethumb.c:230
#, c-format #, c-format
msgid "'%s' expects at most r%d" msgid "'%s' expects at most r%d"
msgstr "'%s' erwartet höchstens r%d" msgstr ""
#: py/emitinlinethumb.c:197 py/emitinlinextensa.c:162 #: py/emitinlinethumb.c:197 py/emitinlinextensa.c:162
#, c-format #, c-format
msgid "'%s' expects a register" msgid "'%s' expects a register"
msgstr "'%s' erwartet ein Register" msgstr ""
#: py/emitinlinethumb.c:211 #: py/emitinlinethumb.c:211
#, c-format #, c-format
msgid "'%s' expects a special register" msgid "'%s' expects a special register"
msgstr "'%s' erwartet ein Spezialregister" msgstr ""
#: py/emitinlinethumb.c:239 #: py/emitinlinethumb.c:239
#, c-format #, c-format
msgid "'%s' expects an FPU register" msgid "'%s' expects an FPU register"
msgstr "'%s' erwartet ein FPU-Register" msgstr ""
#: py/emitinlinethumb.c:292 #: py/emitinlinethumb.c:292
#, c-format #, c-format
msgid "'%s' expects {r0, r1, ...}" msgid "'%s' expects {r0, r1, ...}"
msgstr "'%s' erwartet {r0, r1, ...}" msgstr ""
#: py/emitinlinethumb.c:299 py/emitinlinextensa.c:169 #: py/emitinlinethumb.c:299 py/emitinlinextensa.c:169
#, c-format #, c-format
msgid "'%s' expects an integer" msgid "'%s' expects an integer"
msgstr "'%s' erwartet ein Integer" msgstr ""
#: py/emitinlinethumb.c:304 #: py/emitinlinethumb.c:304
#, c-format #, c-format
msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgid "'%s' integer 0x%x does not fit in mask 0x%x"
msgstr "'%s' Integer 0x%x passt nicht in Maske 0x%x" msgstr ""
#: py/emitinlinethumb.c:328 #: py/emitinlinethumb.c:328
#, c-format #, c-format
msgid "'%s' expects an address of the form [a, b]" msgid "'%s' expects an address of the form [a, b]"
msgstr "'%s' erwartet eine Adresse in der Form [a, b]" msgstr ""
#: py/emitinlinethumb.c:334 py/emitinlinextensa.c:182 #: py/emitinlinethumb.c:334 py/emitinlinextensa.c:182
#, c-format #, c-format
msgid "'%s' expects a label" msgid "'%s' expects a label"
msgstr "'%s' erwartet ein Label" msgstr ""
#: py/emitinlinethumb.c:345 py/emitinlinextensa.c:193 #: py/emitinlinethumb.c:345 py/emitinlinextensa.c:193
msgid "label '%q' not defined" msgid "label '%q' not defined"
msgstr "Label '%q' nicht definiert" msgstr ""
#: py/emitinlinethumb.c:806 #: py/emitinlinethumb.c:806
#, c-format #, c-format
msgid "unsupported Thumb instruction '%s' with %d arguments" msgid "unsupported Thumb instruction '%s' with %d arguments"
msgstr "nicht unterstützter Thumb-Befehl '%s' mit %d Argumenten" msgstr ""
#: py/emitinlinethumb.c:810 #: py/emitinlinethumb.c:810
msgid "branch not in range" msgid "branch not in range"
@ -1205,11 +1211,11 @@ msgstr "Zweig ist außerhalb der Reichweite"
#: py/emitinlinextensa.c:86 #: py/emitinlinextensa.c:86
msgid "can only have up to 4 parameters to Xtensa assembly" msgid "can only have up to 4 parameters to Xtensa assembly"
msgstr "kann nur bis zu 4 Parameter für die Xtensa assembly haben" msgstr ""
#: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96 #: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96
msgid "parameters must be registers in sequence a2 to a5" msgid "parameters must be registers in sequence a2 to a5"
msgstr "Die Parameter müssen Register der Reihenfolge a2 bis a5 sein" msgstr ""
#: py/emitinlinextensa.c:174 #: py/emitinlinextensa.c:174
#, c-format #, c-format
@ -1263,19 +1269,19 @@ msgstr ""
#: py/emitnative.c:1540 #: py/emitnative.c:1540
msgid "can't implicitly convert '%q' to 'bool'" msgid "can't implicitly convert '%q' to 'bool'"
msgstr "Kann '%q' nicht implizit nach 'bool' konvertieren" msgstr ""
#: py/emitnative.c:1774 #: py/emitnative.c:1774
msgid "unary op %q not implemented" msgid "unary op %q not implemented"
msgstr "Der unäre Operator %q ist nicht implementiert" msgstr ""
#: py/emitnative.c:1930 #: py/emitnative.c:1930
msgid "binary op %q not implemented" msgid "binary op %q not implemented"
msgstr "Der binäre Operator %q ist nicht implementiert" msgstr ""
#: py/emitnative.c:1951 #: py/emitnative.c:1951
msgid "can't do binary op between '%q' and '%q'" msgid "can't do binary op between '%q' and '%q'"
msgstr "Eine binäre Operation zwischen '%q' und '%q' ist nicht möglich" msgstr ""
#: py/emitnative.c:2126 #: py/emitnative.c:2126
msgid "casting" msgid "casting"
@ -1299,51 +1305,51 @@ msgstr ""
#: py/modbuiltins.c:162 #: py/modbuiltins.c:162
msgid "chr() arg not in range(0x110000)" msgid "chr() arg not in range(0x110000)"
msgstr "chr() arg ist nicht in range(0x110000)" msgstr ""
#: py/modbuiltins.c:171 #: py/modbuiltins.c:171
msgid "chr() arg not in range(256)" msgid "chr() arg not in range(256)"
msgstr "chr() arg ist nicht in range(256)" msgstr ""
#: py/modbuiltins.c:285 #: py/modbuiltins.c:285
msgid "arg is an empty sequence" msgid "arg is an empty sequence"
msgstr "arg ist eine leere Sequenz" msgstr ""
#: py/modbuiltins.c:350 #: py/modbuiltins.c:350
msgid "ord expects a character" msgid "ord expects a character"
msgstr "ord erwartet ein Zeichen" msgstr ""
#: py/modbuiltins.c:353 #: py/modbuiltins.c:353
#, c-format #, c-format
msgid "ord() expected a character, but string of length %d found" msgid "ord() expected a character, but string of length %d found"
msgstr "ord() erwartet ein Zeichen aber es wurde eine Zeichenfolge mit Länge %d gefunden" msgstr ""
#: py/modbuiltins.c:363 #: py/modbuiltins.c:363
msgid "3-arg pow() not supported" msgid "3-arg pow() not supported"
msgstr "3-arg pow() wird nicht unterstützt" msgstr ""
#: py/modbuiltins.c:517 #: py/modbuiltins.c:517
msgid "must use keyword argument for key function" msgid "must use keyword argument for key function"
msgstr "muss Schlüsselwortargument für key function verwenden" msgstr ""
#: py/modmath.c:41 shared-bindings/math/__init__.c:53 #: py/modmath.c:41 shared-bindings/math/__init__.c:53
msgid "math domain error" msgid "math domain error"
msgstr "math domain error" msgstr ""
#: py/modmath.c:196 py/objfloat.c:270 py/objint_longlong.c:222 #: py/modmath.c:196 py/objfloat.c:270 py/objint_longlong.c:222
#: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346 #: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346
msgid "division by zero" msgid "division by zero"
msgstr "Division durch Null" msgstr ""
#: py/modmicropython.c:155 #: py/modmicropython.c:155
msgid "schedule stack full" msgid "schedule stack full"
msgstr "Der schedule stack ist voll" msgstr ""
#: py/modstruct.c:148 py/modstruct.c:156 py/modstruct.c:244 py/modstruct.c:254 #: py/modstruct.c:148 py/modstruct.c:156 py/modstruct.c:244 py/modstruct.c:254
#: shared-bindings/struct/__init__.c:102 shared-bindings/struct/__init__.c:161 #: shared-bindings/struct/__init__.c:102 shared-bindings/struct/__init__.c:161
#: shared-module/struct/__init__.c:128 shared-module/struct/__init__.c:183 #: shared-module/struct/__init__.c:128 shared-module/struct/__init__.c:183
msgid "buffer too small" msgid "buffer too small"
msgstr "Der Puffer ist zu klein" msgstr "Puffer zu klein"
#: py/modthread.c:240 #: py/modthread.c:240
msgid "expecting a dict for keyword args" msgid "expecting a dict for keyword args"
@ -1367,7 +1373,7 @@ msgstr "Datei existiert"
#: py/moduerrno.c:152 #: py/moduerrno.c:152
msgid "Unsupported operation" msgid "Unsupported operation"
msgstr "Nicht unterstützte Operation" msgstr "Nicht unterstützter Vorgang"
#: py/moduerrno.c:153 #: py/moduerrno.c:153
msgid "Invalid argument" msgid "Invalid argument"
@ -1375,7 +1381,7 @@ msgstr "Ungültiges Argument"
#: py/moduerrno.c:154 #: py/moduerrno.c:154
msgid "No space left on device" msgid "No space left on device"
msgstr "Kein Speicherplatz auf Gerät" msgstr ""
#: py/obj.c:92 #: py/obj.c:92
msgid "Traceback (most recent call last):\n" msgid "Traceback (most recent call last):\n"
@ -1391,7 +1397,7 @@ msgstr " Datei \"%q\""
#: py/obj.c:102 #: py/obj.c:102
msgid ", in %q\n" msgid ", in %q\n"
msgstr ", in %q\n" msgstr ""
#: py/obj.c:259 #: py/obj.c:259
msgid "can't convert to int" msgid "can't convert to int"
@ -1553,24 +1559,24 @@ msgstr ""
#: py/objint.c:144 #: py/objint.c:144
msgid "can't convert inf to int" msgid "can't convert inf to int"
msgstr "kann inf nicht nach int konvertieren" msgstr ""
#: py/objint.c:146 #: py/objint.c:146
msgid "can't convert NaN to int" msgid "can't convert NaN to int"
msgstr "kann NaN nicht nach int konvertieren" msgstr ""
#: py/objint.c:163 #: py/objint.c:163
msgid "float too big" msgid "float too big"
msgstr "float zu groß" msgstr ""
#: py/objint.c:328 #: py/objint.c:328
msgid "long int not supported in this build" msgid "long int not supported in this build"
msgstr "long int wird in diesem Build nicht unterstützt" msgstr ""
#: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358 #: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358
#: py/sequence.c:41 #: py/sequence.c:41
msgid "small int overflow" msgid "small int overflow"
msgstr "small int Überlauf" msgstr ""
#: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486 #: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486
msgid "negative power with no float support" msgid "negative power with no float support"
@ -1789,69 +1795,69 @@ msgstr ""
msgid "string index out of range" msgid "string index out of range"
msgstr "" msgstr ""
#: py/objtype.c:368 #: py/objtype.c:371
msgid "__init__() should return None" msgid "__init__() should return None"
msgstr "" msgstr ""
#: py/objtype.c:370 #: py/objtype.c:373
#, c-format #, c-format
msgid "__init__() should return None, not '%s'" msgid "__init__() should return None, not '%s'"
msgstr "" msgstr ""
#: py/objtype.c:633 py/objtype.c:1287 py/runtime.c:1065 #: py/objtype.c:636 py/objtype.c:1290 py/runtime.c:1065
msgid "unreadable attribute" msgid "unreadable attribute"
msgstr "" msgstr ""
#: py/objtype.c:878 py/runtime.c:653 #: py/objtype.c:881 py/runtime.c:653
msgid "object not callable" msgid "object not callable"
msgstr "" msgstr ""
#: py/objtype.c:880 py/runtime.c:655 #: py/objtype.c:883 py/runtime.c:655
#, c-format #, c-format
msgid "'%s' object is not callable" msgid "'%s' object is not callable"
msgstr "" msgstr ""
#: py/objtype.c:988 #: py/objtype.c:991
msgid "type takes 1 or 3 arguments" msgid "type takes 1 or 3 arguments"
msgstr "" msgstr ""
#: py/objtype.c:999 #: py/objtype.c:1002
msgid "cannot create instance" msgid "cannot create instance"
msgstr "" msgstr ""
#: py/objtype.c:1001 #: py/objtype.c:1004
msgid "cannot create '%q' instances" msgid "cannot create '%q' instances"
msgstr "" msgstr ""
#: py/objtype.c:1059 #: py/objtype.c:1062
msgid "can't add special method to already-subclassed class" msgid "can't add special method to already-subclassed class"
msgstr "" msgstr ""
#: py/objtype.c:1103 py/objtype.c:1109 #: py/objtype.c:1106 py/objtype.c:1112
msgid "type is not an acceptable base type" msgid "type is not an acceptable base type"
msgstr "" msgstr ""
#: py/objtype.c:1112 #: py/objtype.c:1115
msgid "type '%q' is not an acceptable base type" msgid "type '%q' is not an acceptable base type"
msgstr "" msgstr ""
#: py/objtype.c:1149 #: py/objtype.c:1152
msgid "multiple inheritance not supported" msgid "multiple inheritance not supported"
msgstr "" msgstr ""
#: py/objtype.c:1176 #: py/objtype.c:1179
msgid "multiple bases have instance lay-out conflict" msgid "multiple bases have instance lay-out conflict"
msgstr "" msgstr ""
#: py/objtype.c:1217 #: py/objtype.c:1220
msgid "first argument to super() must be type" msgid "first argument to super() must be type"
msgstr "" msgstr ""
#: py/objtype.c:1382 #: py/objtype.c:1385
msgid "issubclass() arg 2 must be a class or a tuple of classes" msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "" msgstr ""
#: py/objtype.c:1396 #: py/objtype.c:1399
msgid "issubclass() arg 1 must be a class" msgid "issubclass() arg 1 must be a class"
msgstr "" msgstr ""
@ -1973,16 +1979,16 @@ msgstr "'%s' Objekt nicht iterierbar"
#: py/runtime.c:1260 py/runtime.c:1296 #: py/runtime.c:1260 py/runtime.c:1296
msgid "object not an iterator" msgid "object not an iterator"
msgstr "Objekt ist kein Iterator" msgstr ""
#: py/runtime.c:1262 py/runtime.c:1298 #: py/runtime.c:1262 py/runtime.c:1298
#, c-format #, c-format
msgid "'%s' object is not an iterator" msgid "'%s' object is not an iterator"
msgstr "'%s' Objekt ist kein Iterator" msgstr ""
#: py/runtime.c:1401 #: py/runtime.c:1401
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "Exceptions müssen von BaseException abgeleitet sein" msgstr ""
#: py/runtime.c:1430 #: py/runtime.c:1430
msgid "cannot import name %q" msgid "cannot import name %q"
@ -2003,23 +2009,23 @@ msgstr "maximale Rekursionstiefe überschritten"
#: py/sequence.c:273 #: py/sequence.c:273
msgid "object not in sequence" msgid "object not in sequence"
msgstr "Objekt ist nicht in sequence" msgstr ""
#: py/stream.c:96 #: py/stream.c:96
msgid "stream operation not supported" msgid "stream operation not supported"
msgstr "stream operation ist nicht unterstützt" msgstr ""
#: py/stream.c:254 #: py/stream.c:254
msgid "string not supported; use bytes or bytearray" msgid "string not supported; use bytes or bytearray"
msgstr "Zeichenfolgen werden nicht unterstützt; Verwenden Sie bytes oder bytearray" msgstr ""
#: py/stream.c:289 #: py/stream.c:289
msgid "length argument not allowed for this type" msgid "length argument not allowed for this type"
msgstr "Für diesen Typ ist length nicht zulässig" msgstr ""
#: py/vm.c:255 #: py/vm.c:255
msgid "local variable referenced before assignment" msgid "local variable referenced before assignment"
msgstr "Es wurde versucht auf eine Variable zuzugreifen, die es (noch) nicht gibt. Variablen immer zuerst Zuweisen!" msgstr ""
#: py/vm.c:1142 #: py/vm.c:1142
msgid "no active exception to reraise" msgid "no active exception to reraise"
@ -2159,16 +2165,16 @@ msgstr "Es müssen 8 oder 16 bits_per_sample sein"
msgid "" msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " "sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'" "'B'"
msgstr "sample_source buffer muss ein Bytearray oder ein Array vom Typ 'h', 'H', 'b' oder 'B' sein" msgstr ""
#: shared-bindings/audioio/RawSample.c:101 #: shared-bindings/audioio/RawSample.c:101
msgid "buffer must be a bytes-like object" msgid "buffer must be a bytes-like object"
msgstr "Puffer muss ein bytes-artiges Objekt sein" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "Die Datei muss eine im Byte-Modus geöffnete Datei sein" msgstr ""
#: shared-bindings/bitbangio/I2C.c:109 shared-bindings/bitbangio/SPI.c:119 #: shared-bindings/bitbangio/I2C.c:109 shared-bindings/bitbangio/SPI.c:119
#: shared-bindings/busio/SPI.c:130 #: shared-bindings/busio/SPI.c:130
@ -2268,15 +2274,15 @@ msgstr ""
#: shared-bindings/bleio/UUID.c:66 #: shared-bindings/bleio/UUID.c:66
msgid "UUID integer value not in range 0 to 0xffff" msgid "UUID integer value not in range 0 to 0xffff"
msgstr "UUID-Integer nicht im Bereich 0 bis 0xffff" msgstr ""
#: shared-bindings/bleio/UUID.c:91 #: shared-bindings/bleio/UUID.c:91
msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'" msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'"
msgstr "UUID Zeichenfolge ist nicht 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'" msgstr ""
#: shared-bindings/bleio/UUID.c:103 #: shared-bindings/bleio/UUID.c:103
msgid "UUID value is not str, int or byte buffer" msgid "UUID value is not str, int or byte buffer"
msgstr "Der UUID-Wert ist kein str-, int- oder Byte-Puffer" msgstr ""
#: shared-bindings/bleio/UUID.c:107 #: shared-bindings/bleio/UUID.c:107
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
@ -2284,7 +2290,7 @@ msgstr "Der Puffer muss 16 Bytes lang sein"
#: shared-bindings/bleio/UUID.c:151 #: shared-bindings/bleio/UUID.c:151
msgid "not a 128-bit UUID" msgid "not a 128-bit UUID"
msgstr "keine 128-bit UUID" msgstr ""
#: shared-bindings/busio/I2C.c:117 #: shared-bindings/busio/I2C.c:117
msgid "Function requires lock." msgid "Function requires lock."
@ -2292,11 +2298,11 @@ msgstr "Die Funktion erwartet, dass der 'lock'-Befehl zuvor ausgeführt wurde"
#: shared-bindings/busio/UART.c:103 #: shared-bindings/busio/UART.c:103
msgid "bits must be 7, 8 or 9" msgid "bits must be 7, 8 or 9"
msgstr "bits muss 7, 8 oder 9 sein" msgstr ""
#: shared-bindings/busio/UART.c:115 #: shared-bindings/busio/UART.c:115
msgid "stop must be 1 or 2" msgid "stop must be 1 or 2"
msgstr "stop muss 1 oder 2 sein" msgstr ""
#: shared-bindings/busio/UART.c:120 #: shared-bindings/busio/UART.c:120
msgid "timeout >100 (units are now seconds, not msecs)" msgid "timeout >100 (units are now seconds, not msecs)"
@ -2324,74 +2330,89 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:253
msgid "row buffer must be a bytearray or array of type 'b' or 'B'" #: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:94 #: shared-bindings/displayio/Bitmap.c:156
msgid "row data must be a buffer" msgid "pixel coordinates out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/ColorConverter.c:72 #: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:93
msgid "%q should be an int"
msgstr ""
#: shared-bindings/displayio/ColorConverter.c:70
msgid "color should be an int" msgid "color should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "" msgstr ""
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:100
msgstr "" #, fuzzy
msgid "%q must be >= 1"
msgstr "Puffergröße muss >= 1 sein"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr ""
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
msgid "start_x should be an int" msgid "start_x should be an int"
msgstr "" msgstr ""
@ -2404,25 +2425,25 @@ msgstr ""
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "Nicht unterstützter Bitmap-Typ" msgstr "Nicht unterstützter Bitmap-Typ"
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
#: shared-bindings/gamepad/GamePad.c:100 #: shared-bindings/gamepad/GamePad.c:100
msgid "too many arguments" msgid "too many arguments"
msgstr "zu viele Argumente" msgstr ""
#: shared-bindings/gamepad/GamePad.c:104 #: shared-bindings/gamepad/GamePad.c:104
msgid "expected a DigitalInOut" msgid "expected a DigitalInOut"
@ -2430,84 +2451,73 @@ msgstr ""
#: shared-bindings/i2cslave/I2CSlave.c:95 #: shared-bindings/i2cslave/I2CSlave.c:95
msgid "can't convert address to int" msgid "can't convert address to int"
msgstr "kann Adresse nicht in int konvertieren" msgstr ""
#: shared-bindings/i2cslave/I2CSlave.c:98 #: shared-bindings/i2cslave/I2CSlave.c:98
msgid "address out of bounds" msgid "address out of bounds"
msgstr "Adresse außerhalb der Grenzen" msgstr ""
#: shared-bindings/i2cslave/I2CSlave.c:104 #: shared-bindings/i2cslave/I2CSlave.c:104
msgid "addresses is empty" msgid "addresses is empty"
msgstr "adresses ist leer" msgstr ""
#: shared-bindings/microcontroller/Pin.c:89 #: shared-bindings/microcontroller/Pin.c:89
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Erwartet ein(e) %q" msgstr ""
#: shared-bindings/microcontroller/Pin.c:100 #: shared-bindings/microcontroller/Pin.c:100
msgid "%q in use" msgid "%q in use"
msgstr "%q in Benutzung" msgstr ""
#: shared-bindings/microcontroller/__init__.c:126 #: shared-bindings/microcontroller/__init__.c:126
msgid "Invalid run mode." msgid "Invalid run mode."
msgstr "Ungültiger Ausführungsmodus" msgstr ""
#: shared-bindings/multiterminal/__init__.c:68 #: shared-bindings/multiterminal/__init__.c:68
msgid "Stream missing readinto() or write() method." msgid "Stream missing readinto() or write() method."
msgstr "Stream fehlt readinto() oder write() Methode." msgstr ""
#: shared-bindings/nvm/ByteArray.c:99 #: shared-bindings/nvm/ByteArray.c:99
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Slice und Wert (value) haben unterschiedliche Längen." msgstr ""
#: shared-bindings/nvm/ByteArray.c:104 #: shared-bindings/nvm/ByteArray.c:104
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Array-Werte sollten aus Einzelbytes bestehen." msgstr ""
#: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141 #: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Schreiben in nvm nicht möglich." msgstr ""
#: shared-bindings/nvm/ByteArray.c:137 #: shared-bindings/nvm/ByteArray.c:137
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Ein Bytes kann nur Werte zwischen 0 und 255 annehmen." msgstr ""
#: shared-bindings/os/__init__.c:200 #: shared-bindings/os/__init__.c:200
msgid "No hardware random available" msgid "No hardware random available"
msgstr "Kein hardware random verfügbar" msgstr ""
#: shared-bindings/pulseio/PWMOut.c:117 #: shared-bindings/pulseio/PWMOut.c:117
msgid "All timers for this pin are in use" msgid "All timers for this pin are in use"
msgstr "Alle timer für diesen Pin werden bereits benutzt" msgstr "Alle timer für diesen Pin werden benutzt"
#: shared-bindings/pulseio/PWMOut.c:171 #: shared-bindings/pulseio/PWMOut.c:171
msgid "" msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" "PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
msgstr "PWM duty_cycle muss zwischen 0 und 65535 (16 Bit Auflösung) liegen" msgstr ""
#: shared-bindings/pulseio/PWMOut.c:202 #: shared-bindings/pulseio/PWMOut.c:202
msgid "" msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "Die PWM-Frequenz ist nicht schreibbar wenn variable_Frequenz = False." msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "Kann Werte nicht löschen"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Slices werden nicht unterstützt"
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "index muss ein int sein"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Nur lesen möglich, da Schreibgeschützt" msgstr ""
#: shared-bindings/pulseio/PulseOut.c:135 #: shared-bindings/pulseio/PulseOut.c:135
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
@ -2515,28 +2525,28 @@ msgstr ""
#: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100 #: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100
msgid "stop not reachable from start" msgid "stop not reachable from start"
msgstr "stop ist von start aus nicht erreichbar" msgstr ""
#: shared-bindings/random/__init__.c:111 #: shared-bindings/random/__init__.c:111
msgid "step must be non-zero" msgid "step must be non-zero"
msgstr "Schritt (step) darf nicht Null sein" msgstr ""
#: shared-bindings/random/__init__.c:114 #: shared-bindings/random/__init__.c:114
msgid "invalid step" msgid "invalid step"
msgstr "ungültiger Schritt (step)" msgstr ""
#: shared-bindings/random/__init__.c:146 #: shared-bindings/random/__init__.c:146
msgid "empty sequence" msgid "empty sequence"
msgstr "leere Sequenz" msgstr ""
#: shared-bindings/rtc/RTC.c:40 shared-bindings/rtc/RTC.c:44 #: shared-bindings/rtc/RTC.c:40 shared-bindings/rtc/RTC.c:44
#: shared-bindings/time/__init__.c:190 #: shared-bindings/time/__init__.c:190
msgid "RTC is not supported on this board" msgid "RTC is not supported on this board"
msgstr "Eine RTC wird auf diesem Board nicht unterstützt" msgstr ""
#: shared-bindings/rtc/RTC.c:52 #: shared-bindings/rtc/RTC.c:52
msgid "RTC calibration is not supported on this board" msgid "RTC calibration is not supported on this board"
msgstr "Die RTC-Kalibrierung wird auf diesem Board nicht unterstützt" msgstr ""
#: shared-bindings/socket/__init__.c:516 shared-module/network/__init__.c:81 #: shared-bindings/socket/__init__.c:516 shared-module/network/__init__.c:81
msgid "no available NIC" msgid "no available NIC"
@ -2544,20 +2554,15 @@ msgstr ""
#: shared-bindings/storage/__init__.c:77 #: shared-bindings/storage/__init__.c:77
msgid "filesystem must provide mount method" msgid "filesystem must provide mount method"
msgstr "Das Dateisystem muss eine Mount-Methode bereitstellen" msgstr ""
#: shared-bindings/supervisor/__init__.c:93 #: shared-bindings/supervisor/__init__.c:93
msgid "Brightness must be between 0 and 255" msgid "Brightness must be between 0 and 255"
msgstr "Die Helligkeit muss zwischen 0 und 255 liegen" msgstr ""
#: shared-bindings/supervisor/__init__.c:119 #: shared-bindings/supervisor/__init__.c:119
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "Die Stackgröße sollte mindestens 256 sein" msgstr ""
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "unicode_characters muss eine Zeichenfolge sein"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
@ -2585,17 +2590,17 @@ msgstr ""
#: shared-bindings/touchio/TouchIn.c:173 #: shared-bindings/touchio/TouchIn.c:173
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "threshold muss im Intervall 0-65536 liegen" msgstr ""
#: shared-bindings/util.c:38 #: shared-bindings/util.c:38
msgid "" msgid ""
"Object has been deinitialized and can no longer be used. Create a new object." "Object has been deinitialized and can no longer be used. Create a new object."
msgstr "Objekt wurde deinitialisiert und kann nicht mehr verwendet werden. Erstelle ein neues Objekt." msgstr ""
#: shared-module/_pixelbuf/PixelBuf.c:69 #: shared-module/_pixelbuf/PixelBuf.c:69
#, c-format #, c-format
msgid "Expected tuple of length %d, got %d" msgid "Expected tuple of length %d, got %d"
msgstr "Habe ein Tupel der Länge %d erwartet aber %d erhalten" msgstr ""
#: shared-module/audioio/Mixer.c:47 shared-module/audioio/WaveFile.c:117 #: shared-module/audioio/Mixer.c:47 shared-module/audioio/WaveFile.c:117
msgid "Couldn't allocate first buffer" msgid "Couldn't allocate first buffer"
@ -2677,26 +2682,27 @@ msgstr ""
msgid "Only bit maps of 8 bit color or less are supported" msgid "Only bit maps of 8 bit color or less are supported"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Schreibgeschützte Dateisystem"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "Nicht unterstützter display bus type" msgstr "Nicht unterstützter display bus type"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:66
msgid "Group full" msgid "Group full"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:73
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr ""
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "Ungültige BMP-Datei" msgstr "Ungültige BMP-Datei"
@ -2738,12 +2744,12 @@ msgstr ""
#: shared-module/struct/__init__.c:179 #: shared-module/struct/__init__.c:179
msgid "buffer size must match format" msgid "buffer size must match format"
msgstr "Die Puffergröße muss zum Format passen" msgstr "Buffergröße muss zum Format passen"
#: shared-module/usb_hid/Device.c:45 #: shared-module/usb_hid/Device.c:45
#, c-format #, c-format
msgid "Buffer incorrect size. Should be %d bytes." msgid "Buffer incorrect size. Should be %d bytes."
msgstr "Der Puffergröße ist inkorrekt. Sie sollte %d bytes haben." msgstr "Buffergröße falsch, sollte %d bytes sein."
#: shared-module/usb_hid/Device.c:53 #: shared-module/usb_hid/Device.c:53
msgid "USB Busy" msgid "USB Busy"
@ -2837,3 +2843,14 @@ msgid ""
msgstr "" msgstr ""
"Die Reset-Taste wurde beim Booten von CircuitPython gedrückt. Drücke sie " "Die Reset-Taste wurde beim Booten von CircuitPython gedrückt. Drücke sie "
"erneut um den abgesicherten Modus zu verlassen. \n" "erneut um den abgesicherten Modus zu verlassen. \n"
#, fuzzy
#~ msgid "Group must have %q at least 1"
#~ msgstr "Der Puffer muss eine Mindestenslänge von 1 haben"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "name muss ein String sein"
#~ msgid "All PWM peripherals are in use"
#~ msgstr "Alle PWM-Peripheriegeräte werden verwendet"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-02-07 01:10-0600\n" "POT-Creation-Date: 2019-02-12 15:01-0800\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -1777,69 +1777,69 @@ msgstr ""
msgid "string index out of range" msgid "string index out of range"
msgstr "" msgstr ""
#: py/objtype.c:368 #: py/objtype.c:371
msgid "__init__() should return None" msgid "__init__() should return None"
msgstr "" msgstr ""
#: py/objtype.c:370 #: py/objtype.c:373
#, c-format #, c-format
msgid "__init__() should return None, not '%s'" msgid "__init__() should return None, not '%s'"
msgstr "" msgstr ""
#: py/objtype.c:633 py/objtype.c:1287 py/runtime.c:1065 #: py/objtype.c:636 py/objtype.c:1290 py/runtime.c:1065
msgid "unreadable attribute" msgid "unreadable attribute"
msgstr "" msgstr ""
#: py/objtype.c:878 py/runtime.c:653 #: py/objtype.c:881 py/runtime.c:653
msgid "object not callable" msgid "object not callable"
msgstr "" msgstr ""
#: py/objtype.c:880 py/runtime.c:655 #: py/objtype.c:883 py/runtime.c:655
#, c-format #, c-format
msgid "'%s' object is not callable" msgid "'%s' object is not callable"
msgstr "" msgstr ""
#: py/objtype.c:988 #: py/objtype.c:991
msgid "type takes 1 or 3 arguments" msgid "type takes 1 or 3 arguments"
msgstr "" msgstr ""
#: py/objtype.c:999 #: py/objtype.c:1002
msgid "cannot create instance" msgid "cannot create instance"
msgstr "" msgstr ""
#: py/objtype.c:1001 #: py/objtype.c:1004
msgid "cannot create '%q' instances" msgid "cannot create '%q' instances"
msgstr "" msgstr ""
#: py/objtype.c:1059 #: py/objtype.c:1062
msgid "can't add special method to already-subclassed class" msgid "can't add special method to already-subclassed class"
msgstr "" msgstr ""
#: py/objtype.c:1103 py/objtype.c:1109 #: py/objtype.c:1106 py/objtype.c:1112
msgid "type is not an acceptable base type" msgid "type is not an acceptable base type"
msgstr "" msgstr ""
#: py/objtype.c:1112 #: py/objtype.c:1115
msgid "type '%q' is not an acceptable base type" msgid "type '%q' is not an acceptable base type"
msgstr "" msgstr ""
#: py/objtype.c:1149 #: py/objtype.c:1152
msgid "multiple inheritance not supported" msgid "multiple inheritance not supported"
msgstr "" msgstr ""
#: py/objtype.c:1176 #: py/objtype.c:1179
msgid "multiple bases have instance lay-out conflict" msgid "multiple bases have instance lay-out conflict"
msgstr "" msgstr ""
#: py/objtype.c:1217 #: py/objtype.c:1220
msgid "first argument to super() must be type" msgid "first argument to super() must be type"
msgstr "" msgstr ""
#: py/objtype.c:1382 #: py/objtype.c:1385
msgid "issubclass() arg 2 must be a class or a tuple of classes" msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "" msgstr ""
#: py/objtype.c:1396 #: py/objtype.c:1399
msgid "issubclass() arg 1 must be a class" msgid "issubclass() arg 1 must be a class"
msgstr "" msgstr ""
@ -2148,7 +2148,7 @@ msgid "buffer must be a bytes-like object"
msgstr "" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "" msgstr ""
@ -2306,74 +2306,88 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:253
msgid "row buffer must be a bytearray or array of type 'b' or 'B'" #: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:94 #: shared-bindings/displayio/Bitmap.c:156
msgid "row data must be a buffer" msgid "pixel coordinates out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/ColorConverter.c:72 #: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:93
msgid "%q should be an int"
msgstr ""
#: shared-bindings/displayio/ColorConverter.c:70
msgid "color should be an int" msgid "color should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "" msgstr ""
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:100
msgid "%q must be >= 1"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr ""
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
msgid "start_x should be an int" msgid "start_x should be an int"
msgstr "" msgstr ""
@ -2386,19 +2400,19 @@ msgstr ""
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
@ -2426,6 +2440,7 @@ msgstr ""
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "" msgstr ""
@ -2475,19 +2490,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "" msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -2536,10 +2539,6 @@ msgstr ""
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "" msgstr ""
#: shared-bindings/terminalio/Terminal.c:68
msgid "unicode_characters must be a string"
msgstr ""
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "" msgstr ""
@ -2658,26 +2657,26 @@ msgstr ""
msgid "Only bit maps of 8 bit color or less are supported" msgid "Only bit maps of 8 bit color or less are supported"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:118
msgid "Read-only object"
msgstr ""
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:66
msgid "Group full" msgid "Group full"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:73
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr ""
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-12 15:01-0800\n"
"PO-Revision-Date: 2018-08-24 22:56-0500\n" "PO-Revision-Date: 2018-08-24 22:56-0500\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -1820,69 +1820,69 @@ msgstr "índices de string deben ser enteros, no %s"
msgid "string index out of range" msgid "string index out of range"
msgstr "string index fuera de rango" msgstr "string index fuera de rango"
#: py/objtype.c:368 #: py/objtype.c:371
msgid "__init__() should return None" msgid "__init__() should return None"
msgstr "__init__() deberia devolver None" msgstr "__init__() deberia devolver None"
#: py/objtype.c:370 #: py/objtype.c:373
#, c-format #, c-format
msgid "__init__() should return None, not '%s'" msgid "__init__() should return None, not '%s'"
msgstr "__init__() deberia devolver None, no '%s'" msgstr "__init__() deberia devolver None, no '%s'"
#: py/objtype.c:633 py/objtype.c:1287 py/runtime.c:1065 #: py/objtype.c:636 py/objtype.c:1290 py/runtime.c:1065
msgid "unreadable attribute" msgid "unreadable attribute"
msgstr "atributo no legible" msgstr "atributo no legible"
#: py/objtype.c:878 py/runtime.c:653 #: py/objtype.c:881 py/runtime.c:653
msgid "object not callable" msgid "object not callable"
msgstr "objeto no puede ser llamado" msgstr "objeto no puede ser llamado"
#: py/objtype.c:880 py/runtime.c:655 #: py/objtype.c:883 py/runtime.c:655
#, c-format #, c-format
msgid "'%s' object is not callable" msgid "'%s' object is not callable"
msgstr "objeto '%s' no puede ser llamado" msgstr "objeto '%s' no puede ser llamado"
#: py/objtype.c:988 #: py/objtype.c:991
msgid "type takes 1 or 3 arguments" msgid "type takes 1 or 3 arguments"
msgstr "type acepta 1 o 3 argumentos" msgstr "type acepta 1 o 3 argumentos"
#: py/objtype.c:999 #: py/objtype.c:1002
msgid "cannot create instance" msgid "cannot create instance"
msgstr "no se puede crear instancia" msgstr "no se puede crear instancia"
#: py/objtype.c:1001 #: py/objtype.c:1004
msgid "cannot create '%q' instances" msgid "cannot create '%q' instances"
msgstr "no se pueden crear '%q' instancias" msgstr "no se pueden crear '%q' instancias"
#: py/objtype.c:1059 #: py/objtype.c:1062
msgid "can't add special method to already-subclassed class" msgid "can't add special method to already-subclassed class"
msgstr "no se puede agregar un método a una clase ya subclasificada" msgstr "no se puede agregar un método a una clase ya subclasificada"
#: py/objtype.c:1103 py/objtype.c:1109 #: py/objtype.c:1106 py/objtype.c:1112
msgid "type is not an acceptable base type" msgid "type is not an acceptable base type"
msgstr "type no es un tipo de base aceptable" msgstr "type no es un tipo de base aceptable"
#: py/objtype.c:1112 #: py/objtype.c:1115
msgid "type '%q' is not an acceptable base type" msgid "type '%q' is not an acceptable base type"
msgstr "type '%q' no es un tipo de base aceptable" msgstr "type '%q' no es un tipo de base aceptable"
#: py/objtype.c:1149 #: py/objtype.c:1152
msgid "multiple inheritance not supported" msgid "multiple inheritance not supported"
msgstr "herencia multiple no soportada" msgstr "herencia multiple no soportada"
#: py/objtype.c:1176 #: py/objtype.c:1179
msgid "multiple bases have instance lay-out conflict" msgid "multiple bases have instance lay-out conflict"
msgstr "" msgstr ""
#: py/objtype.c:1217 #: py/objtype.c:1220
msgid "first argument to super() must be type" msgid "first argument to super() must be type"
msgstr "primer argumento para super() debe ser de tipo" msgstr "primer argumento para super() debe ser de tipo"
#: py/objtype.c:1382 #: py/objtype.c:1385
msgid "issubclass() arg 2 must be a class or a tuple of classes" msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "issubclass() arg 2 debe ser una clase o tuple de clases" msgstr "issubclass() arg 2 debe ser una clase o tuple de clases"
#: py/objtype.c:1396 #: py/objtype.c:1399
msgid "issubclass() arg 1 must be a class" msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 debe ser una clase" msgstr "issubclass() arg 1 debe ser una clase"
@ -2200,7 +2200,7 @@ msgid "buffer must be a bytes-like object"
msgstr "buffer debe de ser un objeto bytes-like" msgstr "buffer debe de ser un objeto bytes-like"
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "el archivo deberia ser una archivo abierto en modo byte" msgstr "el archivo deberia ser una archivo abierto en modo byte"
@ -2365,75 +2365,92 @@ msgstr "Pull no se usa cuando la dirección es output."
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "valor pull no soportado." msgstr "valor pull no soportado."
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "No se puede eliminar valores"
#: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:253
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/displayio/Bitmap.c:156
#, fuzzy
msgid "pixel coordinates out of bounds"
msgstr "address fuera de límites"
#: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:93
#, fuzzy
msgid "%q should be an int"
msgstr "y deberia ser un int" msgstr "y deberia ser un int"
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/ColorConverter.c:70
msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "row buffer deberia ser un bytearray o array de tipo 'b' o 'B'"
#: shared-bindings/displayio/Bitmap.c:94
msgid "row data must be a buffer"
msgstr "row data debe ser un buffer"
#: shared-bindings/displayio/ColorConverter.c:72
msgid "color should be an int" msgid "color should be an int"
msgstr "color deberia ser un int" msgstr "color deberia ser un int"
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
#, fuzzy #, fuzzy
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "Bytes debe estar entre 0 y 255." msgstr "Bytes debe estar entre 0 y 255."
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:100
msgstr "Group debe tener size de minimo 1" #, fuzzy
msgid "%q must be >= 1"
msgstr "los buffers deben de tener la misma longitud"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "color buffer deberia ser un bytearray o array de tipo 'b' o 'B'" msgstr "color buffer deberia ser un bytearray o array de tipo 'b' o 'B'"
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "color debe estar entre 0x000000 y 0xffffff" msgstr "color debe estar entre 0x000000 y 0xffffff"
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "color buffer deber ser un buffer o un int" msgstr "color buffer deber ser un buffer o un int"
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "palette_index deberia ser un int" msgstr "palette_index deberia ser un int"
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr "y deberia ser un int"
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
#, fuzzy #, fuzzy
msgid "start_x should be an int" msgid "start_x should be an int"
@ -2448,19 +2465,19 @@ msgstr "y deberia ser un int"
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "posición debe ser 2-tuple" msgstr "posición debe ser 2-tuple"
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "tipo de bitmap no soportado" msgstr "tipo de bitmap no soportado"
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "pixel_shader debe ser displayio.Palette o displayio.ColorConverter" msgstr "pixel_shader debe ser displayio.Palette o displayio.ColorConverter"
@ -2488,6 +2505,7 @@ msgstr "addresses esta vacío"
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Se espera un %q" msgstr "Se espera un %q"
@ -2537,19 +2555,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "" msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "No se puede eliminar valores"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "indice debe ser int"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Solo-lectura" msgstr "Solo-lectura"
@ -2598,11 +2604,6 @@ msgstr "Brightness debe estar entro 0 y 255"
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "" msgstr ""
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "palabras clave deben ser strings"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "la longitud de sleep no puede ser negativa" msgstr "la longitud de sleep no puede ser negativa"
@ -2723,27 +2724,28 @@ msgstr "No se puede transferir sin pines MOSI y MISO."
msgid "Only bit maps of 8 bit color or less are supported" msgid "Only bit maps of 8 bit color or less are supported"
msgstr "Solo se admiten bit maps de color de 8 bits o menos" msgstr "Solo se admiten bit maps de color de 8 bits o menos"
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "la fila debe estar empacada y la palabra alineada" msgstr "la fila debe estar empacada y la palabra alineada"
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Solo-lectura"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "tipo de bitmap no soportado" msgstr "tipo de bitmap no soportado"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:66
msgid "Group full" msgid "Group full"
msgstr "Group lleno" msgstr "Group lleno"
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:73
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr "Group vacío"
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "Archivo BMP inválido" msgstr "Archivo BMP inválido"
@ -2884,35 +2886,59 @@ msgstr ""
"El botón reset fue presionado mientras arrancaba CircuitPython. Presiona " "El botón reset fue presionado mientras arrancaba CircuitPython. Presiona "
"otra vez para salir del modo seguro.\n" "otra vez para salir del modo seguro.\n"
#, fuzzy
#~ msgid "Group must have %q at least 1"
#~ msgstr "Group debe tener size de minimo 1"
#~ msgid "Baud rate too high for this SPI peripheral"
#~ msgstr "Baud rate demasiado alto para este periférico SPI"
#~ msgid "Invalid UUID parameter" #~ msgid "Invalid UUID parameter"
#~ msgstr "Parámetro UUID inválido" #~ msgstr "Parámetro UUID inválido"
#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
#~ msgstr "row buffer deberia ser un bytearray o array de tipo 'b' o 'B'"
#~ msgid "row data must be a buffer"
#~ msgstr "row data debe ser un buffer"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "palabras clave deben ser strings"
#~ msgid "index must be int"
#~ msgstr "indice debe ser int"
#~ msgid "Can not query for the device address." #~ msgid "Can not query for the device address."
#~ msgstr "No se puede consultar la dirección del dispositivo." #~ msgstr "No se puede consultar la dirección del dispositivo."
#~ msgid "All PWM peripherals are in use" #~ msgid "All PWM peripherals are in use"
#~ msgstr "Todos los periféricos PWM en uso" #~ msgstr "Todos los periféricos PWM en uso"
#~ msgid "displayio is a work in progress" #~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n"
#~ msgstr "displayio todavia esta en desarrollo" #~ msgstr ""
#~ "Parece que nuestro código CircuitPython dejó de funcionar. Whoops!\n"
#~ msgid "Cannot set PPCP parameters." #~ msgid "Group empty"
#~ msgstr "No se pueden establecer los parámetros PPCP." #~ msgstr "Group vacío"
#~ msgid "Invalid UUID string length" #~ msgid "Wrong address length"
#~ msgstr "Longitud de string UUID inválida" #~ msgstr "Longitud de address erronea"
#~ msgid "Baud rate too high for this SPI peripheral"
#~ msgstr "Baud rate demasiado alto para este periférico SPI"
#~ msgid "Can encode UUID into the advertisement packet." #~ msgid "Can encode UUID into the advertisement packet."
#~ msgstr "Se puede codificar el UUID en el paquete de anuncio." #~ msgstr "Se puede codificar el UUID en el paquete de anuncio."
#~ msgid "Cannot apply GAP parameters." #~ msgid "Invalid Service type"
#~ msgstr "No se pueden aplicar los parámetros GAP." #~ msgstr "Tipo de Servicio inválido"
#~ msgid "Wrong address length" #~ msgid "Invalid UUID string length"
#~ msgstr "Longitud de address erronea" #~ msgstr "Longitud de string UUID inválida"
#~ msgid "Can not add Service."
#~ msgstr "No se puede agregar el Servicio."
#~ msgid "displayio is a work in progress"
#~ msgstr "displayio todavia esta en desarrollo"
#~ msgid "" #~ msgid ""
#~ "enough power for the whole circuit and press reset (after ejecting " #~ "enough power for the whole circuit and press reset (after ejecting "
@ -2921,6 +2947,25 @@ msgstr ""
#~ "suficiente poder para todo el circuito y presiona reset (después de " #~ "suficiente poder para todo el circuito y presiona reset (después de "
#~ "expulsar CIRCUITPY).\n" #~ "expulsar CIRCUITPY).\n"
#, fuzzy
#~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "Falló la asignación del buffer RX de %d bytes"
#~ msgid "Can not encode UUID, to check length."
#~ msgstr "No se puede codificar el UUID, para revisar la longitud."
#~ msgid "Wrong number of bytes provided"
#~ msgstr "Numero erroneo de bytes dados"
#~ msgid "Cannot apply GAP parameters."
#~ msgstr "No se pueden aplicar los parámetros GAP."
#~ msgid "Can not apply device name in the stack."
#~ msgstr "No se puede aplicar el nombre del dispositivo en el stack."
#~ msgid "Cannot set PPCP parameters."
#~ msgstr "No se pueden establecer los parámetros PPCP."
#, fuzzy #, fuzzy
#~ msgid "" #~ msgid ""
#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" #~ "Please file an issue here with the contents of your CIRCUITPY drive:\n"
@ -2928,28 +2973,5 @@ msgstr ""
#~ "Por favor registra un issue en la siguiente URL con el contenidos de tu " #~ "Por favor registra un issue en la siguiente URL con el contenidos de tu "
#~ "unidad de almacenamiento CIRCUITPY:\n" #~ "unidad de almacenamiento CIRCUITPY:\n"
#~ msgid "Can not apply device name in the stack."
#~ msgstr "No se puede aplicar el nombre del dispositivo en el stack."
#, fuzzy
#~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "Falló la asignación del buffer RX de %d bytes"
#~ msgid "Wrong number of bytes provided"
#~ msgstr "Numero erroneo de bytes dados"
#~ msgid "Can not add Service."
#~ msgstr "No se puede agregar el Servicio."
#~ msgid "Can not apply advertisement data. status: 0x%02x" #~ msgid "Can not apply advertisement data. status: 0x%02x"
#~ msgstr "No se puede aplicar los datos de anuncio. status: 0x%02x" #~ msgstr "No se puede aplicar los datos de anuncio. status: 0x%02x"
#~ msgid "Invalid Service type"
#~ msgstr "Tipo de Servicio inválido"
#~ 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 encode UUID, to check length."
#~ msgstr "No se puede codificar el UUID, para revisar la longitud."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-12 15:01-0800\n"
"PO-Revision-Date: 2018-12-20 22:15-0800\n" "PO-Revision-Date: 2018-12-20 22:15-0800\n"
"Last-Translator: Timothy <me@timothygarcia.ca>\n" "Last-Translator: Timothy <me@timothygarcia.ca>\n"
"Language-Team: fil\n" "Language-Team: fil\n"
@ -1821,70 +1821,70 @@ msgstr "ang indeks ng string ay dapat na integer, hindi %s"
msgid "string index out of range" msgid "string index out of range"
msgstr "indeks ng string wala sa sakop" msgstr "indeks ng string wala sa sakop"
#: py/objtype.c:368 #: py/objtype.c:371
msgid "__init__() should return None" msgid "__init__() should return None"
msgstr "__init __ () dapat magbalik na None" msgstr "__init __ () dapat magbalik na None"
#: py/objtype.c:370 #: py/objtype.c:373
#, c-format #, c-format
msgid "__init__() should return None, not '%s'" msgid "__init__() should return None, not '%s'"
msgstr "__init__() dapat magbalink na None, hindi '%s'" msgstr "__init__() dapat magbalink na None, hindi '%s'"
#: py/objtype.c:633 py/objtype.c:1287 py/runtime.c:1065 #: py/objtype.c:636 py/objtype.c:1290 py/runtime.c:1065
msgid "unreadable attribute" msgid "unreadable attribute"
msgstr "hindi mabasa ang attribute" msgstr "hindi mabasa ang attribute"
#: py/objtype.c:878 py/runtime.c:653 #: py/objtype.c:881 py/runtime.c:653
msgid "object not callable" msgid "object not callable"
msgstr "hindi matatawag ang object" msgstr "hindi matatawag ang object"
#: py/objtype.c:880 py/runtime.c:655 #: py/objtype.c:883 py/runtime.c:655
#, c-format #, c-format
msgid "'%s' object is not callable" msgid "'%s' object is not callable"
msgstr "'%s' object hindi matatawag" msgstr "'%s' object hindi matatawag"
#: py/objtype.c:988 #: py/objtype.c:991
msgid "type takes 1 or 3 arguments" msgid "type takes 1 or 3 arguments"
msgstr "type kumuhuha ng 1 o 3 arguments" msgstr "type kumuhuha ng 1 o 3 arguments"
#: py/objtype.c:999 #: py/objtype.c:1002
msgid "cannot create instance" msgid "cannot create instance"
msgstr "hindi magawa ang instance" msgstr "hindi magawa ang instance"
#: py/objtype.c:1001 #: py/objtype.c:1004
msgid "cannot create '%q' instances" msgid "cannot create '%q' instances"
msgstr "hindi magawa '%q' instances" msgstr "hindi magawa '%q' instances"
#: py/objtype.c:1059 #: py/objtype.c:1062
msgid "can't add special method to already-subclassed class" msgid "can't add special method to already-subclassed class"
msgstr "" msgstr ""
"hindi madagdag ang isang espesyal na method sa isang na i-subclass na class" "hindi madagdag ang isang espesyal na method sa isang na i-subclass na class"
#: py/objtype.c:1103 py/objtype.c:1109 #: py/objtype.c:1106 py/objtype.c:1112
msgid "type is not an acceptable base type" msgid "type is not an acceptable base type"
msgstr "hindi puede ang type para sa base type" msgstr "hindi puede ang type para sa base type"
#: py/objtype.c:1112 #: py/objtype.c:1115
msgid "type '%q' is not an acceptable base type" msgid "type '%q' is not an acceptable base type"
msgstr "hindi maari ang type na '%q' para sa base type" msgstr "hindi maari ang type na '%q' para sa base type"
#: py/objtype.c:1149 #: py/objtype.c:1152
msgid "multiple inheritance not supported" msgid "multiple inheritance not supported"
msgstr "maraming inhertance hindi sinusuportahan" msgstr "maraming inhertance hindi sinusuportahan"
#: py/objtype.c:1176 #: py/objtype.c:1179
msgid "multiple bases have instance lay-out conflict" msgid "multiple bases have instance lay-out conflict"
msgstr "maraming bases ay may instance lay-out conflict" msgstr "maraming bases ay may instance lay-out conflict"
#: py/objtype.c:1217 #: py/objtype.c:1220
msgid "first argument to super() must be type" msgid "first argument to super() must be type"
msgstr "unang argument ng super() ay dapat type" msgstr "unang argument ng super() ay dapat type"
#: py/objtype.c:1382 #: py/objtype.c:1385
msgid "issubclass() arg 2 must be a class or a tuple of classes" msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "issubclass() arg 2 ay dapat na class o tuple ng classes" msgstr "issubclass() arg 2 ay dapat na class o tuple ng classes"
#: py/objtype.c:1396 #: py/objtype.c:1399
msgid "issubclass() arg 1 must be a class" msgid "issubclass() arg 1 must be a class"
msgstr "issubclass() arg 1 ay dapat na class" msgstr "issubclass() arg 1 ay dapat na class"
@ -2205,7 +2205,7 @@ msgid "buffer must be a bytes-like object"
msgstr "buffer ay dapat bytes-like object" msgstr "buffer ay dapat bytes-like object"
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "file ay dapat buksan sa byte mode" msgstr "file ay dapat buksan sa byte mode"
@ -2370,75 +2370,92 @@ msgstr "Pull hindi ginagamit kapag ang direksyon ay output."
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "Hindi suportado ang pull value." msgstr "Hindi suportado ang pull value."
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "Hindi mabura ang values"
#: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:253
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Hindi suportado ang Slices"
#: shared-bindings/displayio/Bitmap.c:156
#, fuzzy
msgid "pixel coordinates out of bounds"
msgstr "wala sa sakop ang address"
#: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:93
#, fuzzy
msgid "%q should be an int"
msgstr "y ay dapat int" msgstr "y ay dapat int"
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/ColorConverter.c:70
msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "ang row buffer ay dapat bytearray o array na type b or B"
#: shared-bindings/displayio/Bitmap.c:94
msgid "row data must be a buffer"
msgstr "row data ay dapat na buffer"
#: shared-bindings/displayio/ColorConverter.c:72
msgid "color should be an int" msgid "color should be an int"
msgstr "color ay dapat na int" msgstr "color ay dapat na int"
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
#, fuzzy #, fuzzy
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "Sa gitna ng 0 o 255 dapat ang bytes." msgstr "Sa gitna ng 0 o 255 dapat ang bytes."
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:100
msgstr "Group dapat ay hindi baba sa 1 na haba" #, fuzzy
msgid "%q must be >= 1"
msgstr "aarehas na haba dapat ang buffer slices"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "ang color buffer ay dapat bytearray o array na type b or B" msgstr "ang color buffer ay dapat bytearray o array na type b or B"
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "color buffer ay dapat na 3 bytes (RGB) o 4 bytes (RGB + pad byte)" msgstr "color buffer ay dapat na 3 bytes (RGB) o 4 bytes (RGB + pad byte)"
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "color ay dapat mula sa 0x000000 hangang 0xffffff" msgstr "color ay dapat mula sa 0x000000 hangang 0xffffff"
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "color buffer ay dapat buffer or int" msgstr "color buffer ay dapat buffer or int"
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "palette_index ay dapat na int" msgstr "palette_index ay dapat na int"
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr "y ay dapat int"
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
#, fuzzy #, fuzzy
msgid "start_x should be an int" msgid "start_x should be an int"
@ -2453,19 +2470,19 @@ msgstr "y ay dapat int"
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "position ay dapat 2-tuple" msgstr "position ay dapat 2-tuple"
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "Hindi supportadong tipo ng bitmap" msgstr "Hindi supportadong tipo ng bitmap"
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "pixel_shader ay dapat displayio.Palette o displayio.ColorConverter" msgstr "pixel_shader ay dapat displayio.Palette o displayio.ColorConverter"
@ -2493,6 +2510,7 @@ msgstr "walang laman ang address"
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Umasa ng %q" msgstr "Umasa ng %q"
@ -2543,19 +2561,7 @@ msgid ""
msgstr "" msgstr ""
"PWM frequency hindi writable 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:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "Hindi mabura ang values"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Hindi suportado ang Slices"
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "index ay dapat int"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Basahin-lamang" msgstr "Basahin-lamang"
@ -2604,11 +2610,6 @@ msgstr "Ang liwanag ay dapat sa gitna ng 0 o 255"
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "Ang laki ng stack ay dapat na hindi bababa sa 256" msgstr "Ang laki ng stack ay dapat na hindi bababa sa 256"
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "ang keywords dapat strings"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "sleep length ay dapat hindi negatibo" msgstr "sleep length ay dapat hindi negatibo"
@ -2729,27 +2730,28 @@ msgstr "Hindi maaaring ilipat kapag walang MOSI at MISO pin."
msgid "Only bit maps of 8 bit color or less are supported" msgid "Only bit maps of 8 bit color or less are supported"
msgstr "Tanging bit maps na may 8 bit color o mas mababa ang supportado" msgstr "Tanging bit maps na may 8 bit color o mas mababa ang supportado"
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "row ay dapat packed at ang word nakahanay" msgstr "row ay dapat packed at ang word nakahanay"
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Basahin-lamang"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "Hindi supportadong tipo ng bitmap" msgstr "Hindi supportadong tipo ng bitmap"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:66
msgid "Group full" msgid "Group full"
msgstr "Puno ang group" msgstr "Puno ang group"
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:73
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr "Walang laman ang group"
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "Mali ang BMP file" msgstr "Mali ang BMP file"
@ -2890,36 +2892,60 @@ msgstr ""
"Ang reset button ay pinindot habang nag boot ang CircuitPython. Pindutin " "Ang reset button ay pinindot habang nag boot ang CircuitPython. Pindutin "
"ulit para lumabas sa safe mode.\n" "ulit para lumabas sa safe mode.\n"
#, fuzzy
#~ msgid "Group must have %q at least 1"
#~ msgstr "Group dapat ay hindi baba sa 1 na haba"
#, fuzzy
#~ msgid "palette must be displayio.Palette"
#~ msgstr "ang palette ay dapat 32 bytes ang haba"
#~ msgid "Invalid UUID parameter" #~ msgid "Invalid UUID parameter"
#~ msgstr "Mali ang UUID parameter" #~ msgstr "Mali ang UUID parameter"
#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
#~ msgstr "ang row buffer ay dapat bytearray o array na type b or B"
#~ msgid "row data must be a buffer"
#~ msgstr "row data ay dapat na buffer"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "ang keywords dapat strings"
#~ msgid "index must be int"
#~ msgstr "index ay dapat int"
#~ msgid "Can not query for the device address." #~ msgid "Can not query for the device address."
#~ msgstr "Hindi maaaring mag-query para sa address ng device." #~ msgstr "Hindi maaaring mag-query para sa address ng device."
#~ msgid "All PWM peripherals are in use" #~ msgid "All PWM peripherals are in use"
#~ msgstr "Lahat ng PWM peripherals ay ginagamit" #~ msgstr "Lahat ng PWM peripherals ay ginagamit"
#~ msgid "displayio is a work in progress" #~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n"
#~ msgstr "displayio ay nasa gitna ng konstruksiyon" #~ msgstr ""
#~ "Mukhang ang core CircuitPython code ay nag-crash ng malakas. Aray!\n"
#~ msgid "Cannot set PPCP parameters." #~ msgid "Group empty"
#~ msgstr "Hindi ma-set ang PPCP parameters." #~ msgstr "Walang laman ang group"
#~ msgid "Invalid UUID string length" #~ msgid "Wrong address length"
#~ msgstr "Mali ang UUID string length" #~ msgstr "Mali ang address length"
#, fuzzy
#~ msgid "palette must be displayio.Palette"
#~ msgstr "ang palette ay dapat 32 bytes ang haba"
#~ msgid "Can encode UUID into the advertisement packet." #~ msgid "Can encode UUID into the advertisement packet."
#~ msgstr "Maaring i-encode ang UUID sa advertisement packet." #~ msgstr "Maaring i-encode ang UUID sa advertisement packet."
#~ msgid "Cannot apply GAP parameters." #~ msgid "Invalid Service type"
#~ msgstr "Hindi ma-apply ang GAP parameters." #~ msgstr "Mali ang tipo ng serbisyo"
#~ msgid "Wrong address length" #~ msgid "Invalid UUID string length"
#~ msgstr "Mali ang address length" #~ msgstr "Mali ang UUID string length"
#~ msgid "Can not add Service."
#~ msgstr "Hindi maidaragdag ang serbisyo."
#~ msgid "displayio is a work in progress"
#~ msgstr "displayio ay nasa gitna ng konstruksiyon"
#~ msgid "" #~ msgid ""
#~ "enough power for the whole circuit and press reset (after ejecting " #~ "enough power for the whole circuit and press reset (after ejecting "
@ -2928,34 +2954,30 @@ msgstr ""
#~ "ay nagbibigay ng sapat na power para sa buong circuit at i-press ang " #~ "ay nagbibigay ng sapat na power para sa buong circuit at i-press ang "
#~ "reset (pagkatapos i-eject ang CIRCUITPY).\n" #~ "reset (pagkatapos i-eject ang CIRCUITPY).\n"
#, fuzzy
#~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "Nabigong ilaan ang RX buffer ng %d bytes"
#~ msgid "Can not encode UUID, to check length."
#~ msgstr "Hindi ma-encode UUID, para suriin ang haba."
#~ msgid "Wrong number of bytes provided"
#~ msgstr "Mali ang bilang ng bytes"
#~ msgid "Cannot apply GAP parameters."
#~ msgstr "Hindi ma-apply ang GAP parameters."
#~ msgid "Can not apply device name in the stack."
#~ msgstr "Hindi maaaring ma-aplay ang device name sa stack."
#~ msgid "Cannot set PPCP parameters."
#~ msgstr "Hindi ma-set ang PPCP parameters."
#~ msgid "" #~ msgid ""
#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" #~ "Please file an issue here with the contents of your CIRCUITPY drive:\n"
#~ msgstr "" #~ msgstr ""
#~ "Mag-file ng isang isyu dito gamit ang mga nilalaman ng iyong CIRCUITPY " #~ "Mag-file ng isang isyu dito gamit ang mga nilalaman ng iyong CIRCUITPY "
#~ "drive:\n" #~ "drive:\n"
#~ msgid "Can not apply device name in the stack."
#~ msgstr "Hindi maaaring ma-aplay ang device name sa stack."
#, fuzzy
#~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "Nabigong ilaan ang RX buffer ng %d bytes"
#~ msgid "Wrong number of bytes provided"
#~ msgstr "Mali ang bilang ng bytes"
#~ msgid "Can not add Service."
#~ msgstr "Hindi maidaragdag ang serbisyo."
#~ msgid "Can not apply advertisement data. status: 0x%02x" #~ msgid "Can not apply advertisement data. status: 0x%02x"
#~ msgstr "Hindi ma i-apply ang advertisement data. status: 0x%02x" #~ msgstr "Hindi ma i-apply ang advertisement data. status: 0x%02x"
#~ msgid "Invalid Service type"
#~ msgstr "Mali ang tipo ng serbisyo"
#~ 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 encode UUID, to check length."
#~ msgstr "Hindi ma-encode UUID, para suriin ang haba."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 0.1\n" "Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-12 15:01-0800\n"
"PO-Revision-Date: 2018-12-23 20:05+0100\n" "PO-Revision-Date: 2018-12-23 20:05+0100\n"
"Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n" "Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n"
"Language-Team: fr\n" "Language-Team: fr\n"
@ -1819,71 +1819,71 @@ msgstr "les indices de chaîne de caractère doivent être des entiers, pas %s"
msgid "string index out of range" msgid "string index out of range"
msgstr "index de chaîne hors gamme" msgstr "index de chaîne hors gamme"
#: py/objtype.c:368 #: py/objtype.c:371
msgid "__init__() should return None" msgid "__init__() should return None"
msgstr "__init__() doit retourner None" msgstr "__init__() doit retourner None"
#: py/objtype.c:370 #: py/objtype.c:373
#, c-format #, c-format
msgid "__init__() should return None, not '%s'" msgid "__init__() should return None, not '%s'"
msgstr "__init__() doit retourner None, pas '%s'" msgstr "__init__() doit retourner None, pas '%s'"
#: py/objtype.c:633 py/objtype.c:1287 py/runtime.c:1065 #: py/objtype.c:636 py/objtype.c:1290 py/runtime.c:1065
msgid "unreadable attribute" msgid "unreadable attribute"
msgstr "attribut illisible" msgstr "attribut illisible"
#: py/objtype.c:878 py/runtime.c:653 #: py/objtype.c:881 py/runtime.c:653
msgid "object not callable" msgid "object not callable"
msgstr "objet non appelable" msgstr "objet non appelable"
#: py/objtype.c:880 py/runtime.c:655 #: py/objtype.c:883 py/runtime.c:655
#, c-format #, c-format
msgid "'%s' object is not callable" msgid "'%s' object is not callable"
msgstr "objet '%s' non appelable" msgstr "objet '%s' non appelable"
#: py/objtype.c:988 #: py/objtype.c:991
msgid "type takes 1 or 3 arguments" msgid "type takes 1 or 3 arguments"
msgstr "le type prend 1 ou 3 arguments" msgstr "le type prend 1 ou 3 arguments"
#: py/objtype.c:999 #: py/objtype.c:1002
msgid "cannot create instance" msgid "cannot create instance"
msgstr "ne peut pas créer une instance" msgstr "ne peut pas créer une instance"
#: py/objtype.c:1001 #: py/objtype.c:1004
msgid "cannot create '%q' instances" msgid "cannot create '%q' instances"
msgstr "ne peut pas créer une instance de '%q'" msgstr "ne peut pas créer une instance de '%q'"
#: py/objtype.c:1059 #: py/objtype.c:1062
msgid "can't add special method to already-subclassed class" msgid "can't add special method to already-subclassed class"
msgstr "" msgstr ""
"impossible d'ajouter une méthode spécial à une classe déjà sous-classée" "impossible d'ajouter une méthode spécial à une classe déjà sous-classée"
#: py/objtype.c:1103 py/objtype.c:1109 #: py/objtype.c:1106 py/objtype.c:1112
msgid "type is not an acceptable base type" msgid "type is not an acceptable base type"
msgstr "le type n'est pas un type de base accepté" msgstr "le type n'est pas un type de base accepté"
#: py/objtype.c:1112 #: py/objtype.c:1115
msgid "type '%q' is not an acceptable base type" msgid "type '%q' is not an acceptable base type"
msgstr "le type '%q' n'est pas un type de base accepté" msgstr "le type '%q' n'est pas un type de base accepté"
#: py/objtype.c:1149 #: py/objtype.c:1152
msgid "multiple inheritance not supported" msgid "multiple inheritance not supported"
msgstr "héritage multiple non supporté" msgstr "héritage multiple non supporté"
#: py/objtype.c:1176 #: py/objtype.c:1179
msgid "multiple bases have instance lay-out conflict" msgid "multiple bases have instance lay-out conflict"
msgstr "de multiple bases ont un conflit de lay-out d'instance" msgstr "de multiple bases ont un conflit de lay-out d'instance"
#: py/objtype.c:1217 #: py/objtype.c:1220
msgid "first argument to super() must be type" msgid "first argument to super() must be type"
msgstr "le premier argument de super() doit être un type" msgstr "le premier argument de super() doit être un type"
#: py/objtype.c:1382 #: py/objtype.c:1385
msgid "issubclass() arg 2 must be a class or a tuple of classes" msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "" msgstr ""
"l'argument 2 de issubclass() doit être une classe ou un tuple de classes" "l'argument 2 de issubclass() doit être une classe ou un tuple de classes"
#: py/objtype.c:1396 #: py/objtype.c:1399
msgid "issubclass() arg 1 must be a class" msgid "issubclass() arg 1 must be a class"
msgstr "l'argument 1 de issubclass() doit être une classe" msgstr "l'argument 1 de issubclass() doit être une classe"
@ -2206,7 +2206,7 @@ msgid "buffer must be a bytes-like object"
msgstr "le tampon doit être un objet bytes-like" msgstr "le tampon doit être un objet bytes-like"
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" 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'"
@ -2371,86 +2371,99 @@ msgstr "Le tirage 'pull' n'est pas utilisé quand la direction est 'output'."
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "Valeur de tirage 'pull' non supportée." msgstr "Valeur de tirage 'pull' non supportée."
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "Cannot delete values"
msgstr "Impossible de supprimer les valeurs"
#: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:253
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Slices non supportées"
#: shared-bindings/displayio/Bitmap.c:156
#, fuzzy #, fuzzy
msgid "y should be an int" msgid "pixel coordinates out of bounds"
msgstr "adresse hors limites"
#: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:93
#, fuzzy
msgid "%q should be an int"
msgstr "y doit être un entier (int)" msgstr "y doit être un entier (int)"
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/ColorConverter.c:70
#, fuzzy
msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
msgstr ""
"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 données de ligne doivent être un tampon"
#: shared-bindings/displayio/ColorConverter.c:72
#, fuzzy #, fuzzy
msgid "color should be an int" msgid "color should be an int"
msgstr "la couleur doit être un entier (int)" msgstr "la couleur doit être un entier (int)"
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
#, fuzzy #, fuzzy
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "Les octets 'bytes' doivent être entre 0 et 255" msgstr "Les octets 'bytes' doivent être entre 0 et 255"
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68
#: shared-bindings/displayio/Group.c:100
#, fuzzy #, fuzzy
msgid "Group must have size at least 1" msgid "%q must be >= 1"
msgstr "Le tampon doit être de longueur au moins 1" msgstr "les slices de tampon doivent être de longueurs égales"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
#, fuzzy #, fuzzy
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
"le tampon de couleur doit être un bytearray ou un tableau de type 'b' ou 'B'" "le tampon de couleur doit être un bytearray ou un tableau de type 'b' ou 'B'"
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "le tampon de couleur doit faire 3 octets (RVB) ou 4 (RVB + pad byte)" msgstr "le tampon de couleur doit faire 3 octets (RVB) ou 4 (RVB + pad byte)"
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
#, fuzzy #, fuzzy
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "la couleur doit être entre 0x000000 et 0xffffff" msgstr "la couleur doit être entre 0x000000 et 0xffffff"
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
#, fuzzy #, fuzzy
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "le tampon de couleur doit être un tampon ou un entier" msgstr "le tampon de couleur doit être un tampon ou un entier"
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
#, fuzzy #, fuzzy
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "palette_index devrait être un entier (int)'" msgstr "palette_index devrait être un entier (int)'"
#: shared-bindings/displayio/Shape.c:88
#, fuzzy
msgid "y should be an int"
msgstr "y doit être un entier (int)"
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
#, fuzzy #, fuzzy
msgid "start_x should be an int" msgid "start_x should be an int"
@ -2466,20 +2479,20 @@ msgstr "y doit être un entier (int)"
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "position doit être un 2-tuple" msgstr "position doit être un 2-tuple"
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
#, fuzzy #, fuzzy
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "type de bitmap non supporté" msgstr "type de bitmap non supporté"
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
"pixel_shader doit être un objet displayio.Palette ou displayio.ColorConverter" "pixel_shader doit être un objet displayio.Palette ou displayio.ColorConverter"
@ -2509,6 +2522,7 @@ msgstr "adresses vides"
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Attendu : %q" msgstr "Attendu : %q"
@ -2563,19 +2577,7 @@ msgstr ""
"La fréquence de PWM n'est pas modifiable quand variable_frequency est False " "La fréquence de PWM n'est pas modifiable quand variable_frequency est False "
"à la construction." "à la construction."
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "Impossible de supprimer les valeurs"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Slices non supportées"
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "l'index doit être un entier"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Lecture seule" msgstr "Lecture seule"
@ -2625,11 +2627,6 @@ msgstr "La luminosité doit être entre 0 et 255"
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "La pile doit être au moins de 256" msgstr "La pile doit être au moins de 256"
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "les noms doivent être des chaînes de caractère"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "la longueur de sleep ne doit pas être négative" msgstr "la longueur de sleep ne doit pas être négative"
@ -2750,28 +2747,28 @@ msgstr "Pas de transfert sans broches MOSI et MISO"
msgid "Only bit maps of 8 bit color or less are supported" msgid "Only bit maps of 8 bit color or less are supported"
msgstr "Seules les bitmaps de 8bits par couleur ou moins sont supportées" msgstr "Seules les bitmaps de 8bits par couleur ou moins sont supportées"
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Lecture seule"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "type de bitmap non supporté" msgstr "type de bitmap non supporté"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:66
msgid "Group full" msgid "Group full"
msgstr "Groupe plein" msgstr "Groupe plein"
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:73
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
#, fuzzy
msgid "Group empty"
msgstr "Groupe vide"
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
#, fuzzy #, fuzzy
msgid "Invalid BMP file" msgid "Invalid BMP file"
@ -2918,9 +2915,32 @@ msgstr ""
"Le bouton 'reset' a été appuyé pendant le démarrage de CircuitPython. " "Le bouton 'reset' a été appuyé pendant le démarrage de CircuitPython. "
"Appuyer denouveau pour quitter de le mode sans-échec.\n" "Appuyer denouveau pour quitter de le mode sans-échec.\n"
#, fuzzy
#~ msgid "Group must have %q at least 1"
#~ msgstr "Le tampon doit être de longueur au moins 1"
#~ msgid "Cannot set PPCP parameters."
#~ msgstr "Impossible d'appliquer les paramètres PPCP"
#~ msgid "Invalid UUID parameter" #~ msgid "Invalid UUID parameter"
#~ msgstr "Paramètre UUID invalide" #~ msgstr "Paramètre UUID invalide"
#, fuzzy
#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
#~ msgstr ""
#~ "le tampon de ligne doit être un bytearray ou un tableau de type 'b' ou 'B'"
#, fuzzy
#~ msgid "row data must be a buffer"
#~ msgstr "les données de ligne doivent être un tampon"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "les noms doivent être des chaînes de caractère"
#~ msgid "index must be int"
#~ msgstr "l'index doit être un entier"
#, fuzzy #, fuzzy
#~ msgid "palette must be displayio.Palette" #~ msgid "palette must be displayio.Palette"
#~ msgstr "la palette doit être une displayio.Palette" #~ msgstr "la palette doit être une displayio.Palette"
@ -2929,59 +2949,38 @@ msgstr ""
#~ msgid "All PWM peripherals are in use" #~ msgid "All PWM peripherals are in use"
#~ msgstr "Tous les périphériques PWM sont utilisés" #~ msgstr "Tous les périphériques PWM sont utilisés"
#~ msgid "displayio is a work in progress" #, fuzzy
#~ msgstr "displayio est en cours de développement" #~ msgid "value_size must be power of two"
#~ msgstr "value_size doit être une puissance de 2"
#~ msgid "Cannot apply GAP parameters." #, fuzzy
#~ msgstr "Impossible d'appliquer les paramètres GAP" #~ msgid "Group empty"
#~ msgstr "Groupe vide"
#~ msgid "Invalid UUID string length"
#~ msgstr "Longeur de chaîne UUID invalide"
#~ msgid "Cannot set PPCP parameters."
#~ msgstr "Impossible d'appliquer les paramètres PPCP"
#~ msgid "Can not add Service."
#~ msgstr "Impossible d'ajouter le Service"
#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n"
#~ msgstr ""
#~ "Il semblerait que votre code CircuitPython a durement planté. Oups!\n"
#~ msgid "Wrong address length" #~ msgid "Wrong address length"
#~ msgstr "Mauvaise longueur d'adresse" #~ msgstr "Mauvaise longueur d'adresse"
#~ msgid "Invalid Service type" #~ msgid "Can not add Service."
#~ msgstr "Type de service invalide" #~ msgstr "Impossible d'ajouter le Service"
#~ msgid "Can not encode UUID, to check length."
#~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur."
#~ 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 "unpack requires a buffer of %d bytes"
#~ msgstr "Echec de l'allocation de %d octets du tampon RX"
#, fuzzy
#~ msgid "Wrong number of bytes provided"
#~ msgstr "mauvais nombre d'octets fourni'"
#~ 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 query for the device address."
#~ msgstr "Impossible d'obtenir l'adresse du périphérique"
#~ msgid "Can not add Characteristic." #~ msgid "Can not add Characteristic."
#~ msgstr "Impossible d'ajouter la Characteristic." #~ msgstr "Impossible d'ajouter la Characteristic."
#~ msgid "Invalid UUID string length"
#~ msgstr "Longeur de chaîne UUID invalide"
#~ msgid "Can not apply device name in the stack."
#~ msgstr "Impossible d'appliquer le nom de périphérique dans la pile"
#~ msgid "displayio is a work in progress"
#~ msgstr "displayio est en cours de développement"
#~ msgid "Invalid Service type"
#~ msgstr "Type de service invalide"
#, fuzzy #, fuzzy
#~ msgid "value_size must be power of two" #~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "value_size doit être une puissance de 2" #~ msgstr "Echec de l'allocation de %d octets du tampon RX"
#~ msgid "" #~ msgid ""
#~ "enough power for the whole circuit and press reset (after ejecting " #~ "enough power for the whole circuit and press reset (after ejecting "
@ -2989,3 +2988,25 @@ msgstr ""
#~ msgstr "" #~ msgstr ""
#~ "assez de puissance pour l'ensemble du circuit et appuyez sur " #~ "assez de puissance pour l'ensemble du circuit et appuyez sur "
#~ "'reset' (après avoir éjecter CIRCUITPY).\n" #~ "'reset' (après avoir éjecter CIRCUITPY).\n"
#, fuzzy
#~ msgid "Wrong number of bytes provided"
#~ msgstr "mauvais nombre d'octets fourni'"
#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n"
#~ msgstr ""
#~ "Il semblerait que votre code CircuitPython a durement planté. Oups!\n"
#~ 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 encode UUID, to check length."
#~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur."
#~ msgid "Can not query for the device address."
#~ msgstr "Impossible d'obtenir l'adresse du périphérique"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-12 15:01-0800\n"
"PO-Revision-Date: 2018-10-02 16:27+0200\n" "PO-Revision-Date: 2018-10-02 16:27+0200\n"
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n" "Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -1815,71 +1815,71 @@ msgstr "indici della stringa devono essere interi, non %s"
msgid "string index out of range" msgid "string index out of range"
msgstr "indice della stringa fuori intervallo" msgstr "indice della stringa fuori intervallo"
#: py/objtype.c:368 #: py/objtype.c:371
msgid "__init__() should return None" msgid "__init__() should return None"
msgstr "__init__() deve ritornare None" msgstr "__init__() deve ritornare None"
#: py/objtype.c:370 #: py/objtype.c:373
#, c-format #, c-format
msgid "__init__() should return None, not '%s'" msgid "__init__() should return None, not '%s'"
msgstr "__init__() deve ritornare None, non '%s'" msgstr "__init__() deve ritornare None, non '%s'"
#: py/objtype.c:633 py/objtype.c:1287 py/runtime.c:1065 #: py/objtype.c:636 py/objtype.c:1290 py/runtime.c:1065
msgid "unreadable attribute" msgid "unreadable attribute"
msgstr "attributo non leggibile" msgstr "attributo non leggibile"
#: py/objtype.c:878 py/runtime.c:653 #: py/objtype.c:881 py/runtime.c:653
msgid "object not callable" msgid "object not callable"
msgstr "" msgstr ""
#: py/objtype.c:880 py/runtime.c:655 #: py/objtype.c:883 py/runtime.c:655
#, c-format #, c-format
msgid "'%s' object is not callable" msgid "'%s' object is not callable"
msgstr "" msgstr ""
#: py/objtype.c:988 #: py/objtype.c:991
msgid "type takes 1 or 3 arguments" msgid "type takes 1 or 3 arguments"
msgstr "tipo prende 1 o 3 argomenti" msgstr "tipo prende 1 o 3 argomenti"
#: py/objtype.c:999 #: py/objtype.c:1002
msgid "cannot create instance" msgid "cannot create instance"
msgstr "impossibile creare un istanza" msgstr "impossibile creare un istanza"
#: py/objtype.c:1001 #: py/objtype.c:1004
msgid "cannot create '%q' instances" msgid "cannot create '%q' instances"
msgstr "creare '%q' istanze" msgstr "creare '%q' istanze"
#: py/objtype.c:1059 #: py/objtype.c:1062
msgid "can't add special method to already-subclassed class" msgid "can't add special method to already-subclassed class"
msgstr "" msgstr ""
#: py/objtype.c:1103 py/objtype.c:1109 #: py/objtype.c:1106 py/objtype.c:1112
msgid "type is not an acceptable base type" msgid "type is not an acceptable base type"
msgstr "il tipo non è un tipo di base accettabile" msgstr "il tipo non è un tipo di base accettabile"
#: py/objtype.c:1112 #: py/objtype.c:1115
msgid "type '%q' is not an acceptable base type" msgid "type '%q' is not an acceptable base type"
msgstr "il tipo '%q' non è un tipo di base accettabile" msgstr "il tipo '%q' non è un tipo di base accettabile"
#: py/objtype.c:1149 #: py/objtype.c:1152
msgid "multiple inheritance not supported" msgid "multiple inheritance not supported"
msgstr "ereditarietà multipla non supportata" msgstr "ereditarietà multipla non supportata"
#: py/objtype.c:1176 #: py/objtype.c:1179
msgid "multiple bases have instance lay-out conflict" msgid "multiple bases have instance lay-out conflict"
msgstr "" msgstr ""
#: py/objtype.c:1217 #: py/objtype.c:1220
msgid "first argument to super() must be type" msgid "first argument to super() must be type"
msgstr "" msgstr ""
#: py/objtype.c:1382 #: py/objtype.c:1385
msgid "issubclass() arg 2 must be a class or a tuple of classes" msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "" msgstr ""
"il secondo argomento di issubclass() deve essere una classe o una tupla di " "il secondo argomento di issubclass() deve essere una classe o una tupla di "
"classi" "classi"
#: py/objtype.c:1396 #: py/objtype.c:1399
msgid "issubclass() arg 1 must be a class" msgid "issubclass() arg 1 must be a class"
msgstr "il primo argomento di issubclass() deve essere una classe" msgstr "il primo argomento di issubclass() deve essere una classe"
@ -2203,7 +2203,7 @@ msgid "buffer must be a bytes-like object"
msgstr "" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "" msgstr ""
@ -2368,77 +2368,94 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "Valore di pull non supportato." msgstr "Valore di pull non supportato."
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "Impossibile cancellare valori"
#: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:253
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Slice non supportate"
#: shared-bindings/displayio/Bitmap.c:156
#, fuzzy
msgid "pixel coordinates out of bounds"
msgstr "indirizzo fuori limite"
#: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:93
#, fuzzy
msgid "%q should be an int"
msgstr "y dovrebbe essere un int" msgstr "y dovrebbe essere un int"
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/ColorConverter.c:70
msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "buffer di riga deve essere un bytearray o un array di tipo 'b' o 'B'"
#: shared-bindings/displayio/Bitmap.c:94
msgid "row data must be a buffer"
msgstr "valori della riga devono essere un buffer"
#: shared-bindings/displayio/ColorConverter.c:72
msgid "color should be an int" msgid "color should be an int"
msgstr "il colore deve essere un int" msgstr "il colore deve essere un int"
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
#, fuzzy #, fuzzy
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "I byte devono essere compresi tra 0 e 255" msgstr "I byte devono essere compresi tra 0 e 255"
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:100
msgstr "Il gruppo deve avere dimensione almeno 1" #, fuzzy
msgid "%q must be >= 1"
msgstr "slice del buffer devono essere della stessa lunghezza"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
"buffer del colore deve essere un bytearray o un array di tipo 'b' o 'B'" "buffer del colore deve essere un bytearray o un array di tipo 'b' o 'B'"
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
"il buffer del colore deve esseer di 3 byte (RGB) o 4 byte (RGB + pad byte)" "il buffer del colore deve esseer di 3 byte (RGB) o 4 byte (RGB + pad byte)"
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "il colore deve essere compreso tra 0x000000 e 0xffffff" msgstr "il colore deve essere compreso tra 0x000000 e 0xffffff"
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "il buffer del colore deve essere un buffer o un int" msgstr "il buffer del colore deve essere un buffer o un int"
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "palette_index deve essere un int" msgstr "palette_index deve essere un int"
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr "y dovrebbe essere un int"
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
#, fuzzy #, fuzzy
msgid "start_x should be an int" msgid "start_x should be an int"
@ -2453,19 +2470,19 @@ msgstr "y dovrebbe essere un int"
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "position deve essere una 2-tuple" msgstr "position deve essere una 2-tuple"
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "tipo di bitmap non supportato" msgstr "tipo di bitmap non supportato"
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "pixel_shader deve essere displayio.Palette o displayio.ColorConverter" msgstr "pixel_shader deve essere displayio.Palette o displayio.ColorConverter"
@ -2493,6 +2510,7 @@ msgstr "gli indirizzi sono vuoti"
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Atteso un %q" msgstr "Atteso un %q"
@ -2547,19 +2565,7 @@ msgstr ""
"frequenza PWM frequency non è scrivibile quando variable_frequency è " "frequenza PWM frequency non è scrivibile quando variable_frequency è "
"impostato nel costruttore a False." "impostato nel costruttore a False."
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "Impossibile cancellare valori"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Slice non supportate"
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "l'indice deve essere int"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Sola lettura" msgstr "Sola lettura"
@ -2609,11 +2615,6 @@ msgstr "La luminosità deve essere compreso tra 0 e 255"
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "La dimensione dello stack deve essere almeno 256" msgstr "La dimensione dello stack deve essere almeno 256"
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "argomenti nominati devono essere stringhe"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "la lunghezza di sleed deve essere non negativa" msgstr "la lunghezza di sleed deve essere non negativa"
@ -2734,27 +2735,28 @@ msgstr "Impossibile trasferire senza i pin MOSI e MISO."
msgid "Only bit maps of 8 bit color or less are supported" msgid "Only bit maps of 8 bit color or less are supported"
msgstr "Sono supportate solo bitmap con colori a 8 bit o meno" msgstr "Sono supportate solo bitmap con colori a 8 bit o meno"
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "la riga deve essere compattata e allineata alla parola" msgstr "la riga deve essere compattata e allineata alla parola"
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Sola lettura"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "tipo di bitmap non supportato" msgstr "tipo di bitmap non supportato"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:66
msgid "Group full" msgid "Group full"
msgstr "Gruppo pieno" msgstr "Gruppo pieno"
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:73
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr "Gruppo vuoto"
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "File BMP non valido" msgstr "File BMP non valido"
@ -2887,34 +2889,75 @@ msgid ""
"exit safe mode.\n" "exit safe mode.\n"
msgstr "" msgstr ""
#~ msgid "row data must be a buffer"
#~ msgstr "valori della riga devono essere un buffer"
#, fuzzy #, fuzzy
#~ msgid "Wrong number of bytes provided" #~ msgid "Group must have %q at least 1"
#~ msgstr "numero di argomenti errato" #~ msgstr "Il gruppo deve avere dimensione almeno 1"
#~ msgid "Invalid UUID parameter" #~ msgid "Invalid UUID parameter"
#~ msgstr "Parametro UUID non valido" #~ msgstr "Parametro UUID non valido"
#~ msgid "Group empty"
#~ msgstr "Gruppo vuoto"
#, fuzzy #, fuzzy
#~ msgid "All PWM peripherals are in use" #~ msgid "All PWM peripherals are in use"
#~ msgstr "Tutte le periferiche SPI sono in uso" #~ msgstr "Tutte le periferiche SPI sono in uso"
#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
#~ msgstr ""
#~ "buffer di riga deve essere un bytearray o un array di tipo 'b' o 'B'"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "argomenti nominati devono essere stringhe"
#~ msgid "index must be int"
#~ msgstr "l'indice deve essere int"
#~ msgid "Invalid Service type" #~ msgid "Invalid Service type"
#~ msgstr "Tipo di servizio non valido" #~ msgstr "Tipo di servizio non valido"
#, fuzzy
#~ msgid "Wrong number of bytes provided"
#~ msgstr "numero di argomenti errato"
#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" #~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n"
#~ msgstr "" #~ msgstr ""
#~ "Sembra che il codice del core di CircuitPython sia crashato malamente. " #~ "Sembra che il codice del core di CircuitPython sia crashato malamente. "
#~ "Whoops!\n" #~ "Whoops!\n"
#~ msgid "Can not add Characteristic."
#~ msgstr "Non è possibile aggiungere Characteristic."
#~ msgid "Cannot apply GAP parameters."
#~ msgstr "Impossibile applicare i parametri GAP."
#~ msgid "Can not apply advertisement data. status: 0x%02x"
#~ msgstr "Impossible inserire dati advertisement. status: 0x%02x"
#~ msgid ""
#~ "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 query for the device address." #~ msgid "Can not query for the device address."
#~ msgstr "Non è possibile trovare l'indirizzo del dispositivo." #~ msgstr "Non è possibile trovare l'indirizzo del dispositivo."
#~ msgid "Cannot set PPCP parameters." #~ msgid "Cannot set PPCP parameters."
#~ msgstr "Impossibile impostare i parametri PPCP." #~ msgstr "Impossibile impostare i parametri PPCP."
#, fuzzy #~ msgid "Can not apply device name in the stack."
#~ msgid "unpack requires a buffer of %d bytes" #~ msgstr "Non è possibile inserire il nome del dipositivo nella lista."
#~ msgstr "Fallita allocazione del buffer RX di %d byte"
#~ msgid "Can encode UUID into the advertisement packet."
#~ msgstr "È possibile codificare l'UUID nel pacchetto di advertisement."
#~ msgid "Can not add Service."
#~ msgstr "Non è possibile aggiungere Service."
#~ msgid "" #~ msgid ""
#~ "enough power for the whole circuit and press reset (after ejecting " #~ "enough power for the whole circuit and press reset (after ejecting "
@ -2923,32 +2966,12 @@ msgstr ""
#~ "abbastanza potenza per l'intero circuito e premere reset (dopo aver " #~ "abbastanza potenza per l'intero circuito e premere reset (dopo aver "
#~ "espulso CIRCUITPY).\n" #~ "espulso CIRCUITPY).\n"
#~ msgid "Can not add Service."
#~ msgstr "Non è possibile aggiungere Service."
#~ msgid "Can not apply advertisement data. status: 0x%02x"
#~ msgstr "Impossible inserire dati advertisement. status: 0x%02x"
#~ 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 "Can not encode UUID, to check length."
#~ msgstr "Non è possibile codificare l'UUID, lunghezza da controllare."
#~ msgid "Invalid UUID string length" #~ msgid "Invalid UUID string length"
#~ msgstr "Lunghezza della stringa UUID non valida" #~ msgstr "Lunghezza della stringa UUID non valida"
#~ msgid "Cannot apply GAP parameters." #, fuzzy
#~ msgstr "Impossibile applicare i parametri GAP." #~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "Fallita allocazione del buffer RX di %d byte"
#~ msgid "Can encode UUID into the advertisement packet." #~ msgid "Can not encode UUID, to check length."
#~ msgstr "È possibile codificare l'UUID nel pacchetto di advertisement." #~ msgstr "Non è possibile codificare l'UUID, lunghezza da controllare."
#~ 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"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-12 15:01-0800\n"
"PO-Revision-Date: 2018-10-02 21:14-0000\n" "PO-Revision-Date: 2018-10-02 21:14-0000\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -1794,69 +1794,69 @@ msgstr ""
msgid "string index out of range" msgid "string index out of range"
msgstr "" msgstr ""
#: py/objtype.c:368 #: py/objtype.c:371
msgid "__init__() should return None" msgid "__init__() should return None"
msgstr "" msgstr ""
#: py/objtype.c:370 #: py/objtype.c:373
#, c-format #, c-format
msgid "__init__() should return None, not '%s'" msgid "__init__() should return None, not '%s'"
msgstr "" msgstr ""
#: py/objtype.c:633 py/objtype.c:1287 py/runtime.c:1065 #: py/objtype.c:636 py/objtype.c:1290 py/runtime.c:1065
msgid "unreadable attribute" msgid "unreadable attribute"
msgstr "atributo ilegível" msgstr "atributo ilegível"
#: py/objtype.c:878 py/runtime.c:653 #: py/objtype.c:881 py/runtime.c:653
msgid "object not callable" msgid "object not callable"
msgstr "" msgstr ""
#: py/objtype.c:880 py/runtime.c:655 #: py/objtype.c:883 py/runtime.c:655
#, c-format #, c-format
msgid "'%s' object is not callable" msgid "'%s' object is not callable"
msgstr "" msgstr ""
#: py/objtype.c:988 #: py/objtype.c:991
msgid "type takes 1 or 3 arguments" msgid "type takes 1 or 3 arguments"
msgstr "" msgstr ""
#: py/objtype.c:999 #: py/objtype.c:1002
msgid "cannot create instance" msgid "cannot create instance"
msgstr "não é possível criar instância" msgstr "não é possível criar instância"
#: py/objtype.c:1001 #: py/objtype.c:1004
msgid "cannot create '%q' instances" msgid "cannot create '%q' instances"
msgstr "" msgstr ""
#: py/objtype.c:1059 #: py/objtype.c:1062
msgid "can't add special method to already-subclassed class" msgid "can't add special method to already-subclassed class"
msgstr "" msgstr ""
#: py/objtype.c:1103 py/objtype.c:1109 #: py/objtype.c:1106 py/objtype.c:1112
msgid "type is not an acceptable base type" msgid "type is not an acceptable base type"
msgstr "" msgstr ""
#: py/objtype.c:1112 #: py/objtype.c:1115
msgid "type '%q' is not an acceptable base type" msgid "type '%q' is not an acceptable base type"
msgstr "" msgstr ""
#: py/objtype.c:1149 #: py/objtype.c:1152
msgid "multiple inheritance not supported" msgid "multiple inheritance not supported"
msgstr "" msgstr ""
#: py/objtype.c:1176 #: py/objtype.c:1179
msgid "multiple bases have instance lay-out conflict" msgid "multiple bases have instance lay-out conflict"
msgstr "" msgstr ""
#: py/objtype.c:1217 #: py/objtype.c:1220
msgid "first argument to super() must be type" msgid "first argument to super() must be type"
msgstr "" msgstr ""
#: py/objtype.c:1382 #: py/objtype.c:1385
msgid "issubclass() arg 2 must be a class or a tuple of classes" msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "" msgstr ""
#: py/objtype.c:1396 #: py/objtype.c:1399
msgid "issubclass() arg 1 must be a class" msgid "issubclass() arg 1 must be a class"
msgstr "" msgstr ""
@ -2169,7 +2169,7 @@ msgid "buffer must be a bytes-like object"
msgstr "" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "" msgstr ""
@ -2334,75 +2334,91 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "Não é possível excluir valores"
#: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:253
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/displayio/Bitmap.c:156
msgid "pixel coordinates out of bounds"
msgstr ""
#: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:93
#, fuzzy
msgid "%q should be an int"
msgstr "y deve ser um int" msgstr "y deve ser um int"
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/ColorConverter.c:70
msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
msgstr ""
#: shared-bindings/displayio/Bitmap.c:94
msgid "row data must be a buffer"
msgstr ""
#: shared-bindings/displayio/ColorConverter.c:72
msgid "color should be an int" msgid "color should be an int"
msgstr "cor deve ser um int" msgstr "cor deve ser um int"
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
#, fuzzy #, fuzzy
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "Os bytes devem estar entre 0 e 255." msgstr "Os bytes devem estar entre 0 e 255."
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:63 shared-bindings/displayio/Group.c:68
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:100
msgstr "Grupo deve ter tamanho pelo menos 1" #, fuzzy
msgid "%q must be >= 1"
msgstr "buffers devem ser o mesmo tamanho"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "cor deve estar entre 0x000000 e 0xffffff" msgstr "cor deve estar entre 0x000000 e 0xffffff"
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr "y deve ser um int"
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
#, fuzzy #, fuzzy
msgid "start_x should be an int" msgid "start_x should be an int"
@ -2417,19 +2433,19 @@ msgstr "y deve ser um int"
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
@ -2457,6 +2473,7 @@ msgstr ""
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Esperado um" msgstr "Esperado um"
@ -2506,19 +2523,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "" msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "Não é possível excluir valores"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "index deve ser int"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Somente leitura" msgstr "Somente leitura"
@ -2567,11 +2572,6 @@ msgstr "O brilho deve estar entre 0 e 255"
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "O tamanho da pilha deve ser pelo menos 256" msgstr "O tamanho da pilha deve ser pelo menos 256"
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "heap deve ser uma lista"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "" msgstr ""
@ -2691,27 +2691,28 @@ msgstr "Não é possível transferir sem os pinos MOSI e MISO."
msgid "Only bit maps of 8 bit color or less are supported" msgid "Only bit maps of 8 bit color or less are supported"
msgstr "Apenas bit maps de cores de 8 bit ou menos são suportados" msgstr "Apenas bit maps de cores de 8 bit ou menos são suportados"
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "Linha deve ser comprimida e com as palavras alinhadas" msgstr "Linha deve ser comprimida e com as palavras alinhadas"
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Somente leitura"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "Taxa de transmissão não suportada" msgstr "Taxa de transmissão não suportada"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:66
msgid "Group full" msgid "Group full"
msgstr "Grupo cheio" msgstr "Grupo cheio"
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:73
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr "Grupo vazio"
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "Arquivo BMP inválido" msgstr "Arquivo BMP inválido"
@ -2836,34 +2837,32 @@ msgid ""
"exit safe mode.\n" "exit safe mode.\n"
msgstr "" msgstr ""
#~ msgid "Can not apply device name in the stack." #~ msgid "index must be int"
#~ msgstr "Não é possível aplicar o nome do dispositivo na pilha." #~ msgstr "index deve ser int"
#, fuzzy #, fuzzy
#~ msgid "unpack requires a buffer of %d bytes" #~ msgid "Group must have %q at least 1"
#~ msgstr "Falha ao alocar buffer RX de %d bytes" #~ msgstr "Grupo deve ter tamanho pelo menos 1"
#~ msgid "Baud rate too high for this SPI peripheral" #~ msgid "Group empty"
#~ msgstr "Taxa de transmissão muito alta para esse periférico SPI" #~ msgstr "Grupo vazio"
#, fuzzy #, fuzzy
#~ msgid "All PWM peripherals are in use" #~ msgid "unicode_characters must be a string"
#~ msgstr "Todos os temporizadores em uso" #~ msgstr "heap deve ser uma lista"
#~ msgid "Invalid UUID parameter" #~ msgid "Invalid UUID parameter"
#~ msgstr "Parâmetro UUID inválido" #~ msgstr "Parâmetro UUID inválido"
#~ msgid "Baud rate too high for this SPI peripheral"
#~ msgstr "Taxa de transmissão muito alta para esse periférico SPI"
#~ msgid "Can encode UUID into the advertisement packet." #~ msgid "Can encode UUID into the advertisement packet."
#~ msgstr "Pode codificar o UUID no pacote de anúncios." #~ msgstr "Pode codificar o UUID no pacote de anúncios."
#~ msgid "Can not apply advertisement data. status: 0x%02x" #, fuzzy
#~ msgstr "Não é possível aplicar dados de anúncio. status: 0x%02x" #~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "Falha ao alocar buffer RX de %d bytes"
#~ msgid "Cannot set PPCP parameters."
#~ msgstr "Não é possível definir parâmetros PPCP."
#~ msgid "Can not add Characteristic."
#~ msgstr "Não é possível adicionar Característica."
#~ msgid "Can not query for the device address." #~ msgid "Can not query for the device address."
#~ msgstr "Não é possível consultar o endereço do dispositivo." #~ msgstr "Não é possível consultar o endereço do dispositivo."
@ -2871,5 +2870,21 @@ msgstr ""
#~ msgid "Invalid Service type" #~ msgid "Invalid Service type"
#~ msgstr "Tipo de serviço inválido" #~ msgstr "Tipo de serviço inválido"
#~ msgid "Cannot set PPCP parameters."
#~ msgstr "Não é possível definir parâmetros PPCP."
#~ msgid "Can not apply device name in the stack."
#~ msgstr "Não é possível aplicar o nome do dispositivo na pilha."
#~ msgid "Cannot apply GAP parameters." #~ msgid "Cannot apply GAP parameters."
#~ msgstr "Não é possível aplicar parâmetros GAP." #~ msgstr "Não é possível aplicar parâmetros GAP."
#~ 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 Characteristic."
#~ msgstr "Não é possível adicionar Característica."
#, fuzzy
#~ msgid "All PWM peripherals are in use"
#~ msgstr "Todos os temporizadores em uso"

View File

@ -366,6 +366,7 @@ SRC_BINDINGS_ENUMS = \
digitalio/Direction.c \ digitalio/Direction.c \
digitalio/DriveMode.c \ digitalio/DriveMode.c \
digitalio/Pull.c \ digitalio/Pull.c \
displayio/Glyph.c \
microcontroller/RunMode.c \ microcontroller/RunMode.c \
help.c \ help.c \
math/__init__.c \ math/__init__.c \
@ -381,6 +382,7 @@ SRC_SHARED_MODULE = \
busio/OneWire.c \ busio/OneWire.c \
displayio/__init__.c \ displayio/__init__.c \
displayio/Bitmap.c \ displayio/Bitmap.c \
displayio/BuiltinFont.c \
displayio/ColorConverter.c \ displayio/ColorConverter.c \
displayio/Display.c \ displayio/Display.c \
displayio/FourWire.c \ displayio/FourWire.c \

View File

@ -82,7 +82,7 @@ void board_init(void) {
240, // Height 240, // Height
0, // column start 0, // column start
0, // row start 0, // row start
90, // rotation 270, // rotation
16, // Color depth 16, // Color depth
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command

View File

@ -164,24 +164,24 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
// 0x1: TX pad 2; no RTS/CTS // 0x1: TX pad 2; no RTS/CTS
// 0x2: TX pad 0; RTS: pad 2, CTS: pad 3 (not used by us right now) // 0x2: TX pad 0; RTS: pad 2, CTS: pad 3 (not used by us right now)
// So divide by 2 to map pad to value. // So divide by 2 to map pad to value.
hri_sercomusart_write_CTRLA_TXPO_bf(sercom, tx_pad / 2);
// RXPO: // RXPO:
// 0x0: RX pad 0 // 0x0: RX pad 0
// 0x1: RX pad 1 // 0x1: RX pad 1
// 0x2: RX pad 2 // 0x2: RX pad 2
// 0x3: RX pad 3 // 0x3: RX pad 3
hri_sercomusart_write_CTRLA_RXPO_bf(sercom, rx_pad); sercom->USART.CTRLA.reg = SERCOM_USART_CTRLA_TXPO(tx_pad / 2) |
SERCOM_USART_CTRLA_RXPO(rx_pad) |
(parity == PARITY_NONE ? 0 : SERCOM_USART_CTRLA_FORM(1));
// Enable tx and/or rx based on whether the pins were specified. // Enable tx and/or rx based on whether the pins were specified.
hri_sercomusart_write_CTRLB_TXEN_bit(sercom, have_tx); // CHSIZE is 0 for 8 bits, 5, 6, 7 for 5, 6, 7 bits. 1 for 9 bits, but we don't support that.
hri_sercomusart_write_CTRLB_RXEN_bit(sercom, have_rx); sercom->USART.CTRLB.reg = (have_tx ? SERCOM_USART_CTRLB_TXEN : 0) |
(have_rx ? SERCOM_USART_CTRLB_RXEN : 0) |
(parity == PARITY_ODD ? SERCOM_USART_CTRLB_PMODE : 0) |
(stop > 1 ? SERCOM_USART_CTRLB_SBMODE : 0) |
SERCOM_USART_CTRLB_CHSIZE(bits % 8);
// Set parity, baud rate, stop bits, etc. 9-bit bytes not supported. // Set baud rate
usart_async_set_parity(usart_desc_p, parity == PARITY_NONE ? USART_PARITY_NONE :
(parity == PARITY_ODD ? USART_PARITY_ODD : USART_PARITY_EVEN));
usart_async_set_stopbits(usart_desc_p, stop == 1 ? USART_STOP_BITS_ONE : USART_STOP_BITS_TWO);
// This field is 0 for 8 bits, 5, 6, 7 for 5, 6, 7 bits. 1 for 9 bits, but we don't support that.
usart_async_set_character_size(usart_desc_p, bits % 8);
common_hal_busio_uart_set_baudrate(self, baudrate); common_hal_busio_uart_set_baudrate(self, baudrate);
// Turn on rx interrupt handling. The UART async driver has its own set of internal callbacks, // Turn on rx interrupt handling. The UART async driver has its own set of internal callbacks,

View File

@ -195,6 +195,7 @@ SRC_BINDINGS_ENUMS = \
digitalio/Direction.c \ digitalio/Direction.c \
digitalio/DriveMode.c \ digitalio/DriveMode.c \
digitalio/Pull.c \ digitalio/Pull.c \
displayio/Glyph.c \
microcontroller/RunMode.c \ microcontroller/RunMode.c \
help.c \ help.c \
math/__init__.c \ math/__init__.c \
@ -221,6 +222,7 @@ SRC_SHARED_MODULE = \
busio/OneWire.c \ busio/OneWire.c \
displayio/__init__.c \ displayio/__init__.c \
displayio/Bitmap.c \ displayio/Bitmap.c \
displayio/BuiltinFont.c \
displayio/ColorConverter.c \ displayio/ColorConverter.c \
displayio/Display.c \ displayio/Display.c \
displayio/FourWire.c \ displayio/FourWire.c \

View File

@ -121,9 +121,6 @@
#define MICROPY_KBD_EXCEPTION (1) #define MICROPY_KBD_EXCEPTION (1)
#define MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF (1)
#define MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE (0)
// Scan gamepad every 32ms // Scan gamepad every 32ms
#define CIRCUITPY_GAMEPAD_TICKS 0x1f #define CIRCUITPY_GAMEPAD_TICKS 0x1f

View File

@ -171,6 +171,9 @@ STATIC void mp_obj_class_lookup(struct class_lookup_data *lookup, const mp_obj_
// do a lookup, not a (base) type in which we found the class method. // do a lookup, not a (base) type in which we found the class method.
const mp_obj_type_t *org_type = (const mp_obj_type_t*)lookup->obj; const mp_obj_type_t *org_type = (const mp_obj_type_t*)lookup->obj;
mp_convert_member_lookup(MP_OBJ_NULL, org_type, elem->value, lookup->dest); mp_convert_member_lookup(MP_OBJ_NULL, org_type, elem->value, lookup->dest);
} else if (MP_OBJ_IS_TYPE(elem->value, &mp_type_property)) {
lookup->dest[0] = elem->value;
return;
} else { } else {
mp_obj_instance_t *obj = lookup->obj; mp_obj_instance_t *obj = lookup->obj;
mp_obj_t obj_obj; mp_obj_t obj_obj;

View File

@ -43,8 +43,6 @@
//| //|
//| Stores values of a certain size in a 2D array //| Stores values of a certain size in a 2D array
//| //|
//| .. warning:: This will likely be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: Bitmap(width, height, value_count) //| .. class:: Bitmap(width, height, value_count)
//| //|
//| Create a Bitmap object with the given fixed size. Each pixel stores a value that is used to //| Create a Bitmap object with the given fixed size. Each pixel stores a value that is used to
@ -71,34 +69,110 @@ STATIC mp_obj_t displayio_bitmap_make_new(const mp_obj_type_t *type, size_t n_ar
return MP_OBJ_FROM_PTR(self); return MP_OBJ_FROM_PTR(self);
} }
//| .. attribute:: width
//| .. method:: _load_row(y, data)
//| //|
//| Loads pre-packed data into the given row. //| Width of the bitmap. (read only)
//| //|
STATIC mp_obj_t displayio_bitmap_obj__load_row(mp_obj_t self_in, mp_obj_t y_in, mp_obj_t data_in) { STATIC mp_obj_t displayio_bitmap_obj_get_width(mp_obj_t self_in) {
displayio_bitmap_t *self = MP_OBJ_TO_PTR(self_in); displayio_bitmap_t *self = MP_OBJ_TO_PTR(self_in);
mp_int_t y;
if (!mp_obj_get_int_maybe(y_in, &y)) { return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_bitmap_get_width(self));
mp_raise_ValueError(translate("y should be an int")); }
MP_DEFINE_CONST_FUN_OBJ_1(displayio_bitmap_get_width_obj, displayio_bitmap_obj_get_width);
const mp_obj_property_t displayio_bitmap_width_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_bitmap_get_width_obj,
(mp_obj_t)&mp_const_none_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. attribute:: height
//|
//| Height of the bitmap. (read only)
//|
STATIC mp_obj_t displayio_bitmap_obj_get_height(mp_obj_t self_in) {
displayio_bitmap_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_bitmap_get_height(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_bitmap_get_height_obj, displayio_bitmap_obj_get_height);
const mp_obj_property_t displayio_bitmap_height_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_bitmap_get_height_obj,
(mp_obj_t)&mp_const_none_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. method:: __getitem__(index)
//|
//| Returns the value at the given index. The index can either be an x,y tuple or an int equal
//| to ``y * width + x``.
//|
//| This allows you to::
//|
//| print(bitmap[0,1])
//|
//| .. method:: __setitem__(index, value)
//|
//| Sets the value at the given index. The index can either be an x,y tuple or an int equal
//| to ``y * width + x``.
//|
//| This allows you to::
//|
//| bitmap[0,1] = 3
//|
STATIC mp_obj_t bitmap_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t value_obj) {
if (value_obj == mp_const_none) {
// delete item
mp_raise_AttributeError(translate("Cannot delete values"));
return mp_const_none;
} }
mp_buffer_info_t bufinfo;
if (mp_get_buffer(data_in, &bufinfo, MP_BUFFER_READ)) { displayio_bitmap_t *self = MP_OBJ_TO_PTR(self_in);
if (bufinfo.typecode != 'b' && bufinfo.typecode != 'B' && bufinfo.typecode != BYTEARRAY_TYPECODE) {
mp_raise_ValueError(translate("row buffer must be a bytearray or array of type 'b' or 'B'")); if (MP_OBJ_IS_TYPE(index_obj, &mp_type_slice)) {
// TODO(tannewt): Implement subscr after slices support start, stop and step tuples.
mp_raise_NotImplementedError(translate("Slices not supported"));
return mp_const_none;
} }
uint8_t* buf = bufinfo.buf;
common_hal_displayio_bitmap_load_row(self, y, buf, bufinfo.len); uint16_t x = 0;
uint16_t y = 0;
if (MP_OBJ_IS_SMALL_INT(index_obj)) {
mp_int_t i = MP_OBJ_SMALL_INT_VALUE(index_obj);
uint16_t width = common_hal_displayio_bitmap_get_width(self);
x = i % width;
y = i / width;
} else { } else {
mp_raise_TypeError(translate("row data must be a buffer")); mp_obj_t* items;
mp_obj_get_array_fixed_n(index_obj, 2, &items);
x = mp_obj_get_int(items[0]);
y = mp_obj_get_int(items[1]);
if (x >= common_hal_displayio_bitmap_get_width(self) || y >= common_hal_displayio_bitmap_get_height(self)) {
mp_raise_IndexError(translate("pixel coordinates out of bounds"));
}
}
if (value_obj == MP_OBJ_SENTINEL) {
// load
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_bitmap_get_pixel(self, x, y));
} else {
mp_int_t value = mp_obj_get_int(value_obj);
if (value >= 1 << common_hal_displayio_bitmap_get_bits_per_value(self)) {
mp_raise_ValueError(translate("pixel value requires too many bits"));
}
common_hal_displayio_bitmap_set_pixel(self, x, y, value);
} }
return mp_const_none; return mp_const_none;
} }
MP_DEFINE_CONST_FUN_OBJ_3(displayio_bitmap__load_row_obj, displayio_bitmap_obj__load_row);
STATIC const mp_rom_map_elem_t displayio_bitmap_locals_dict_table[] = { STATIC const mp_rom_map_elem_t displayio_bitmap_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR__load_row), MP_ROM_PTR(&displayio_bitmap__load_row_obj) }, { MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&displayio_bitmap_height_obj) },
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&displayio_bitmap_width_obj) },
}; };
STATIC MP_DEFINE_CONST_DICT(displayio_bitmap_locals_dict, displayio_bitmap_locals_dict_table); STATIC MP_DEFINE_CONST_DICT(displayio_bitmap_locals_dict, displayio_bitmap_locals_dict_table);
@ -106,7 +180,6 @@ const mp_obj_type_t displayio_bitmap_type = {
{ &mp_type_type }, { &mp_type_type },
.name = MP_QSTR_Bitmap, .name = MP_QSTR_Bitmap,
.make_new = displayio_bitmap_make_new, .make_new = displayio_bitmap_make_new,
// TODO(tannewt): Implement subscr after slices support start, stop and step tuples. .subscr = bitmap_subscr,
// .subscr = displayio_bitmap_subscr,
.locals_dict = (mp_obj_dict_t*)&displayio_bitmap_locals_dict, .locals_dict = (mp_obj_dict_t*)&displayio_bitmap_locals_dict,
}; };

View File

@ -36,6 +36,10 @@ void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t wi
void common_hal_displayio_bitmap_load_row(displayio_bitmap_t *self, uint16_t y, uint8_t* data, void common_hal_displayio_bitmap_load_row(displayio_bitmap_t *self, uint16_t y, uint8_t* data,
uint16_t len); uint16_t len);
uint16_t common_hal_displayio_bitmap_get_height(displayio_bitmap_t *self);
uint16_t common_hal_displayio_bitmap_get_width(displayio_bitmap_t *self);
uint32_t common_hal_displayio_bitmap_get_bits_per_value(displayio_bitmap_t *self);
void common_hal_displayio_bitmap_set_pixel(displayio_bitmap_t *bitmap, int16_t x, int16_t y, uint32_t value);
uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *bitmap, int16_t x, int16_t y); uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *bitmap, int16_t x, int16_t y);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_BITMAP_H #endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_BITMAP_H

View File

@ -0,0 +1,110 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/displayio/BuiltinFont.h"
#include <stdint.h>
#include "lib/utils/context_manager_helpers.h"
#include "py/binary.h"
#include "py/objproperty.h"
#include "py/runtime.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/util.h"
#include "supervisor/shared/translate.h"
//| .. currentmodule:: displayio
//|
//| :class:`BuiltinFont` -- A font built into CircuitPython
//| =========================================================================================
//|
//| A font built into CircuitPython.
//|
//| .. class:: BuiltinFont()
//|
//| Creation not supported. Available fonts are defined when CircuitPython is built. See the
//| `Adafruit_CircuitPython_Bitmap_Font <https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font>`_
//| library for dynamically loaded fonts.
//|
//| .. attribute:: bitmap
//|
//| Bitmap containing all font glyphs starting with ASCII and followed by unicode. Use
//| `get_glyph` in most cases. This is useful for use with `displayio.TileGrid` and
//| `terminalio.Terminal`.
//|
STATIC mp_obj_t displayio_builtinfont_obj_get_bitmap(mp_obj_t self_in) {
displayio_builtinfont_t *self = MP_OBJ_TO_PTR(self_in);
return common_hal_displayio_builtinfont_get_bitmap(self);
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_builtinfont_get_bitmap_obj, displayio_builtinfont_obj_get_bitmap);
const mp_obj_property_t displayio_builtinfont_bitmap_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_builtinfont_get_bitmap_obj,
(mp_obj_t)&mp_const_none_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. method:: get_bounding_box()
//|
//| Returns the maximum bounds of all glyphs in the font in a tuple of two values: width, height.
//|
STATIC mp_obj_t displayio_builtinfont_obj_get_bounding_box(mp_obj_t self_in) {
displayio_builtinfont_t *self = MP_OBJ_TO_PTR(self_in);
return common_hal_displayio_builtinfont_get_bounding_box(self);
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_builtinfont_get_bounding_box_obj, displayio_builtinfont_obj_get_bounding_box);
//| .. method:: get_glyph(codepoint)
//|
//| Returns a `displayio.Glyph` for the given codepoint or None if no glyph is available.
//|
STATIC mp_obj_t displayio_builtinfont_obj_get_glyph(mp_obj_t self_in, mp_obj_t codepoint_obj) {
displayio_builtinfont_t *self = MP_OBJ_TO_PTR(self_in);
mp_int_t codepoint;
if (!mp_obj_get_int_maybe(codepoint_obj, &codepoint)) {
mp_raise_ValueError_varg(translate("%q should be an int"), MP_QSTR_codepoint);
}
return common_hal_displayio_builtinfont_get_glyph(self, codepoint);
}
MP_DEFINE_CONST_FUN_OBJ_2(displayio_builtinfont_get_glyph_obj, displayio_builtinfont_obj_get_glyph);
STATIC const mp_rom_map_elem_t displayio_builtinfont_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_bitmap), MP_ROM_PTR(&displayio_builtinfont_bitmap_obj) },
{ MP_ROM_QSTR(MP_QSTR_get_bounding_box), MP_ROM_PTR(&displayio_builtinfont_get_bounding_box_obj) },
{ MP_ROM_QSTR(MP_QSTR_get_glyph), MP_ROM_PTR(&displayio_builtinfont_get_glyph_obj) },
};
STATIC MP_DEFINE_CONST_DICT(displayio_builtinfont_locals_dict, displayio_builtinfont_locals_dict_table);
const mp_obj_type_t displayio_builtinfont_type = {
{ &mp_type_type },
.name = MP_QSTR_BuiltinFont,
.locals_dict = (mp_obj_dict_t*)&displayio_builtinfont_locals_dict,
};

View File

@ -0,0 +1,38 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_BUILTINFONT_H
#define MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_BUILTINFONT_H
#include "shared-module/displayio/BuiltinFont.h"
extern const mp_obj_type_t displayio_builtinfont_type;
mp_obj_t common_hal_displayio_builtinfont_get_bitmap(const displayio_builtinfont_t *self);
mp_obj_t common_hal_displayio_builtinfont_get_bounding_box(const displayio_builtinfont_t *self);
mp_obj_t common_hal_displayio_builtinfont_get_glyph(const displayio_builtinfont_t *self, mp_uint_t codepoint);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_BUILTINFONT_H

View File

@ -43,8 +43,6 @@
//| //|
//| Converts one color format to another. //| Converts one color format to another.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: ColorConverter() //| .. class:: ColorConverter()
//| //|
//| Create a ColorConverter object to convert color formats. Only supports RGB888 to RGB565 //| Create a ColorConverter object to convert color formats. Only supports RGB888 to RGB565

View File

@ -50,8 +50,6 @@
//| Most people should not use this class directly. Use a specific display driver instead that will //| Most people should not use this class directly. Use a specific display driver instead that will
//| contain the initialization sequence at minimum. //| contain the initialization sequence at minimum.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: Display(display_bus, init_sequence, *, width, height, colstart=0, rowstart=0, rotation=0, color_depth=16, set_column_command=0x2a, set_row_command=0x2b, write_ram_command=0x2c, set_vertical_scroll=0, backlight_pin=None) //| .. class:: Display(display_bus, init_sequence, *, width, height, colstart=0, rowstart=0, rotation=0, color_depth=16, set_column_command=0x2a, set_row_command=0x2b, write_ram_command=0x2c, set_vertical_scroll=0, backlight_pin=None)
//| //|
//| Create a Display object on the given display bus (`displayio.FourWire` or `displayio.ParallelBus`). //| Create a Display object on the given display bus (`displayio.FourWire` or `displayio.ParallelBus`).

View File

@ -46,8 +46,6 @@
//| Manage updating a display over SPI four wire protocol in the background while Python code runs. //| Manage updating a display over SPI four wire protocol in the background while Python code runs.
//| It doesn't handle display initialization. //| It doesn't handle display initialization.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: FourWire(spi_bus, *, command, chip_select, reset) //| .. class:: FourWire(spi_bus, *, command, chip_select, reset)
//| //|
//| Create a FourWire object associated with the given pins. //| Create a FourWire object associated with the given pins.

View File

@ -0,0 +1,75 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/displayio/Glyph.h"
#include <stdint.h>
//| .. currentmodule:: displayio
//|
//| :class:`Glyph` -- Storage of glyph info
//| ==========================================================================
//|
//| .. class:: Glyph(bitmap, tile_index, width, height, dx, dy, shift_x, shift_y)
//|
//| Named tuple used to capture a single glyph and its attributes.
//|
//| :param displayio.Bitmap bitmap: the bitmap including the glyph
//| :param int tile_index: the tile index within the bitmap
//| :param int width: the width of the glyph's bitmap
//| :param int height: the height of the glyph's bitmap
//| :param int dx: x adjustment to the bitmap's position
//| :param int dy: y adjustment to the bitmap's position
//| :param int shift_x: the x difference to the next glyph
//| :param int shift_y: the y difference to the next glyph
//|
const mp_obj_namedtuple_type_t displayio_glyph_type = {
.base = {
.base = {
.type = &mp_type_type
},
.name = MP_QSTR_Glyph,
.print = namedtuple_print,
.make_new = namedtuple_make_new,
.unary_op = mp_obj_tuple_unary_op,
.binary_op = mp_obj_tuple_binary_op,
.attr = namedtuple_attr,
.subscr = mp_obj_tuple_subscr,
.getiter = mp_obj_tuple_getiter,
.parent = &mp_type_tuple,
},
.n_fields = 8,
.fields = {
MP_QSTR_bitmap,
MP_QSTR_tile_index,
MP_QSTR_width,
MP_QSTR_height,
MP_QSTR_dx,
MP_QSTR_dy,
MP_QSTR_shift_x,
MP_QSTR_shift_y
},
};

View File

@ -0,0 +1,34 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_GLYPH_H
#define MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_GLYPH_H
#include "py/objnamedtuple.h"
extern const mp_obj_namedtuple_type_t displayio_glyph_type;
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_GLYPH_H

View File

@ -41,57 +41,237 @@
//| //|
//| Manage a group of sprites and groups and how they are inter-related. //| Manage a group of sprites and groups and how they are inter-related.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental. //| .. class:: Group(*, max_size=4, scale=1)
//| //|
//| .. class:: Group(*, max_size=4) //| Create a Group of a given size and scale. Scale is in one dimension. For example, scale=2
//| //| leads to a layer's pixel being 2x2 pixels when in the group.
//| Create a Group of a given size.
//| //|
//| :param int max_size: The maximum group size. //| :param int max_size: The maximum group size.
//| :param int scale: Scale of layer pixels in one dimension.
//| //|
STATIC mp_obj_t displayio_group_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { STATIC mp_obj_t displayio_group_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
enum { ARG_max_size }; enum { ARG_max_size, ARG_scale };
static const mp_arg_t allowed_args[] = { static const mp_arg_t allowed_args[] = {
{ MP_QSTR_max_size, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 4} }, { MP_QSTR_max_size, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 4} },
{ MP_QSTR_scale, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 1} },
}; };
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
mp_int_t max_size = args[ARG_max_size].u_int; mp_int_t max_size = args[ARG_max_size].u_int;
if (max_size < 1) { if (max_size < 1) {
mp_raise_ValueError(translate("Group must have size at least 1")); mp_raise_ValueError_varg(translate("%q must be >= 1"), MP_QSTR_max_size);
}
mp_int_t scale = args[ARG_scale].u_int;
if (scale < 1) {
mp_raise_ValueError_varg(translate("%q must be >= 1"), MP_QSTR_scale);
} }
displayio_group_t *self = m_new_obj(displayio_group_t); displayio_group_t *self = m_new_obj(displayio_group_t);
self->base.type = &displayio_group_type; self->base.type = &displayio_group_type;
common_hal_displayio_group_construct(self, max_size); common_hal_displayio_group_construct(self, max_size, scale);
return MP_OBJ_FROM_PTR(self); return MP_OBJ_FROM_PTR(self);
} }
// Helper to ensure we have the native super class instead of a subclass.
static displayio_group_t* native_group(mp_obj_t group_obj) {
mp_obj_t native_group = mp_instance_cast_to_native_base(group_obj, &displayio_group_type);
return MP_OBJ_TO_PTR(native_group);
}
//| .. attribute:: scale
//|
//| Scales each pixel within the Group in both directions. For example, when scale=2 each pixel
//| will be represented by 2x2 pixels.
//|
STATIC mp_obj_t displayio_group_obj_get_scale(mp_obj_t self_in) {
displayio_group_t *self = native_group(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_group_get_scale(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_group_get_scale_obj, displayio_group_obj_get_scale);
STATIC mp_obj_t displayio_group_obj_set_scale(mp_obj_t self_in, mp_obj_t scale_obj) {
displayio_group_t *self = native_group(self_in);
mp_int_t scale = mp_obj_get_int(scale_obj);
if (scale < 1) {
mp_raise_ValueError_varg(translate("%q must be >= 1"), MP_QSTR_scale);
}
common_hal_displayio_group_set_scale(self, scale);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(displayio_group_set_scale_obj, displayio_group_obj_set_scale);
const mp_obj_property_t displayio_group_scale_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_group_get_scale_obj,
(mp_obj_t)&displayio_group_set_scale_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. attribute:: x
//|
//| X position of the Group in the parent.
//|
STATIC mp_obj_t displayio_group_obj_get_x(mp_obj_t self_in) {
displayio_group_t *self = native_group(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_group_get_x(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_group_get_x_obj, displayio_group_obj_get_x);
STATIC mp_obj_t displayio_group_obj_set_x(mp_obj_t self_in, mp_obj_t x_obj) {
displayio_group_t *self = native_group(self_in);
mp_int_t x = mp_obj_get_int(x_obj);
common_hal_displayio_group_set_x(self, x);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(displayio_group_set_x_obj, displayio_group_obj_set_x);
const mp_obj_property_t displayio_group_x_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_group_get_x_obj,
(mp_obj_t)&displayio_group_set_x_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. attribute:: y
//|
//| Y position of the Group in the parent.
//|
STATIC mp_obj_t displayio_group_obj_get_y(mp_obj_t self_in) {
displayio_group_t *self = native_group(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_group_get_y(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_group_get_y_obj, displayio_group_obj_get_y);
STATIC mp_obj_t displayio_group_obj_set_y(mp_obj_t self_in, mp_obj_t y_obj) {
displayio_group_t *self = native_group(self_in);
mp_int_t y = mp_obj_get_int(y_obj);
common_hal_displayio_group_set_y(self, y);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(displayio_group_set_y_obj, displayio_group_obj_set_y);
const mp_obj_property_t displayio_group_y_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_group_get_y_obj,
(mp_obj_t)&displayio_group_set_y_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. method:: append(layer) //| .. method:: append(layer)
//| //|
//| Append a layer to the group. It will be drawn above other layers. //| Append a layer to the group. It will be drawn above other layers.
//| //|
STATIC mp_obj_t displayio_group_obj_append(mp_obj_t self_in, mp_obj_t layer) { STATIC mp_obj_t displayio_group_obj_append(mp_obj_t self_in, mp_obj_t layer) {
displayio_group_t *self = MP_OBJ_TO_PTR(self_in); displayio_group_t *self = MP_OBJ_TO_PTR(self_in);
common_hal_displayio_group_append(self, layer); common_hal_displayio_group_insert(self, common_hal_displayio_group_get_len(self), layer);
return mp_const_none; return mp_const_none;
} }
MP_DEFINE_CONST_FUN_OBJ_2(displayio_group_append_obj, displayio_group_obj_append); MP_DEFINE_CONST_FUN_OBJ_2(displayio_group_append_obj, displayio_group_obj_append);
//| .. method:: pop() //| .. method:: insert(index, layer)
//| //|
//| Remove the last item and return it. //| Insert a layer into the group.
//| //|
STATIC mp_obj_t displayio_group_obj_pop(mp_obj_t self_in) { STATIC mp_obj_t displayio_group_obj_insert(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t layer) {
displayio_group_t *self = MP_OBJ_TO_PTR(self_in); displayio_group_t *self = MP_OBJ_TO_PTR(self_in);
return common_hal_displayio_group_pop(self); size_t index = mp_get_index(&displayio_group_type, common_hal_displayio_group_get_len(self), index_obj, false);
common_hal_displayio_group_insert(self, index, layer);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_3(displayio_group_insert_obj, displayio_group_obj_insert);
//| .. method:: pop(i=-1)
//|
//| Remove the ith item and return it.
//|
STATIC mp_obj_t displayio_group_obj_pop(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
enum { ARG_i };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_i, MP_ARG_INT, {.u_int = -1} },
};
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
displayio_group_t *self = MP_OBJ_TO_PTR(pos_args[0]);
size_t index = mp_get_index(&displayio_group_type,
common_hal_displayio_group_get_len(self),
MP_OBJ_NEW_SMALL_INT(args[ARG_i].u_int),
false);
return common_hal_displayio_group_pop(self, index);
}
MP_DEFINE_CONST_FUN_OBJ_KW(displayio_group_pop_obj, 1, displayio_group_obj_pop);
//| .. method:: __len__()
//|
//| Returns the number of layers in a Group
//|
STATIC mp_obj_t group_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
displayio_group_t *self = MP_OBJ_TO_PTR(self_in);
uint16_t len = common_hal_displayio_group_get_len(self);
switch (op) {
case MP_UNARY_OP_BOOL: return mp_obj_new_bool(len != 0);
case MP_UNARY_OP_LEN: return MP_OBJ_NEW_SMALL_INT(len);
default: return MP_OBJ_NULL; // op not supported
}
}
//| .. method:: __getitem__(index)
//|
//| Returns the value at the given index.
//|
//| This allows you to::
//|
//| print(group[0])
//|
//| .. method:: __setitem__(index, value)
//|
//| Sets the value at the given index.
//|
//| This allows you to::
//|
//| group[0] = sprite
//|
//| .. method:: __delitem__(index)
//|
//| Deletes the value at the given index.
//|
//| This allows you to::
//|
//| del group[0]
//|
STATIC mp_obj_t group_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t value) {
displayio_group_t *self = MP_OBJ_TO_PTR(self_in);
if (MP_OBJ_IS_TYPE(index_obj, &mp_type_slice)) {
mp_raise_NotImplementedError(translate("Slices not supported"));
} else {
size_t index = mp_get_index(&displayio_group_type, common_hal_displayio_group_get_len(self), index_obj, false);
if (value == MP_OBJ_SENTINEL) {
// load
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_group_get(self, index));
} else if (value == mp_const_none) {
common_hal_displayio_group_pop(self, index);
} else {
common_hal_displayio_group_set(self, index, value);
}
}
return mp_const_none;
} }
MP_DEFINE_CONST_FUN_OBJ_1(displayio_group_pop_obj, displayio_group_obj_pop);
STATIC const mp_rom_map_elem_t displayio_group_locals_dict_table[] = { STATIC const mp_rom_map_elem_t displayio_group_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_scale), MP_ROM_PTR(&displayio_group_scale_obj) },
{ MP_ROM_QSTR(MP_QSTR_x), MP_ROM_PTR(&displayio_group_x_obj) },
{ MP_ROM_QSTR(MP_QSTR_y), MP_ROM_PTR(&displayio_group_y_obj) },
{ MP_ROM_QSTR(MP_QSTR_append), MP_ROM_PTR(&displayio_group_append_obj) }, { MP_ROM_QSTR(MP_QSTR_append), MP_ROM_PTR(&displayio_group_append_obj) },
{ MP_ROM_QSTR(MP_QSTR_insert), MP_ROM_PTR(&displayio_group_insert_obj) },
{ MP_ROM_QSTR(MP_QSTR_pop), MP_ROM_PTR(&displayio_group_pop_obj) }, { MP_ROM_QSTR(MP_QSTR_pop), MP_ROM_PTR(&displayio_group_pop_obj) },
}; };
STATIC MP_DEFINE_CONST_DICT(displayio_group_locals_dict, displayio_group_locals_dict_table); STATIC MP_DEFINE_CONST_DICT(displayio_group_locals_dict, displayio_group_locals_dict_table);
@ -100,5 +280,7 @@ const mp_obj_type_t displayio_group_type = {
{ &mp_type_type }, { &mp_type_type },
.name = MP_QSTR_Group, .name = MP_QSTR_Group,
.make_new = displayio_group_make_new, .make_new = displayio_group_make_new,
.subscr = group_subscr,
.unary_op = group_unary_op,
.locals_dict = (mp_obj_dict_t*)&displayio_group_locals_dict, .locals_dict = (mp_obj_dict_t*)&displayio_group_locals_dict,
}; };

View File

@ -32,8 +32,18 @@
extern const mp_obj_type_t displayio_group_type; extern const mp_obj_type_t displayio_group_type;
void common_hal_displayio_group_construct(displayio_group_t* self, uint32_t max_size); void common_hal_displayio_group_construct(displayio_group_t* self, uint32_t max_size, uint32_t scale);
uint32_t common_hal_displayio_group_get_scale(displayio_group_t* self);
void common_hal_displayio_group_set_scale(displayio_group_t* self, uint32_t scale);
mp_int_t common_hal_displayio_group_get_x(displayio_group_t* self);
void common_hal_displayio_group_set_x(displayio_group_t* self, mp_int_t x);
mp_int_t common_hal_displayio_group_get_y(displayio_group_t* self);
void common_hal_displayio_group_set_y(displayio_group_t* self, mp_int_t y);
void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer); void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer);
mp_obj_t common_hal_displayio_group_pop(displayio_group_t* self); void common_hal_displayio_group_insert(displayio_group_t* self, size_t index, mp_obj_t layer);
size_t common_hal_displayio_group_get_len(displayio_group_t* self);
mp_obj_t common_hal_displayio_group_pop(displayio_group_t* self, size_t index);
mp_obj_t common_hal_displayio_group_get(displayio_group_t* self, size_t index);
void common_hal_displayio_group_set(displayio_group_t* self, size_t index, mp_obj_t layer);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_GROUP_H #endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_GROUP_H

View File

@ -42,8 +42,6 @@
//| much slower pixel load times. These load times may result in frame tearing where only part of //| much slower pixel load times. These load times may result in frame tearing where only part of
//| the image is visible. //| the image is visible.
//| //|
//| .. warning:: This will likely be changed before 4.0.0. Consider it very experimental.
//|
//| It's easiest to use on a board with a built in display such as the `Hallowing M0 Express //| It's easiest to use on a board with a built in display such as the `Hallowing M0 Express
//| <https://www.adafruit.com/product/3900>`_. //| <https://www.adafruit.com/product/3900>`_.
//| //|

View File

@ -44,8 +44,6 @@
//| Map a pixel palette_index to a full color. Colors are transformed to the display's format internally to //| Map a pixel palette_index to a full color. Colors are transformed to the display's format internally to
//| save memory. //| save memory.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: Palette(color_count) //| .. class:: Palette(color_count)
//| //|
//| Create a Palette object to store a set number of colors. //| Create a Palette object to store a set number of colors.

View File

@ -45,8 +45,6 @@
//| Manage updating a display over SPI four wire protocol in the background while Python code runs. //| Manage updating a display over SPI four wire protocol in the background while Python code runs.
//| It doesn't handle display initialization. //| It doesn't handle display initialization.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: ParallelBus(*, data0, command, chip_select, write, read, reset) //| .. class:: ParallelBus(*, data0, command, chip_select, write, read, reset)
//| //|
//| Create a ParallelBus object associated with the given pins. The bus is inferred from data0 //| Create a ParallelBus object associated with the given pins. The bus is inferred from data0

View File

@ -60,8 +60,6 @@ static void unpack_position(mp_obj_t position_obj, int16_t* x, int16_t* y) {
//| //|
//| A single tile grid is also known as a Sprite. //| A single tile grid is also known as a Sprite.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: TileGrid(bitmap, *, pixel_shader, position, width=1, height=1, tile_width=None, tile_height=None, default_tile=0) //| .. class:: TileGrid(bitmap, *, pixel_shader, position, width=1, height=1, tile_width=None, tile_height=None, default_tile=0)
//| //|
//| Create a TileGrid object. The bitmap is source for 2d pixels. The pixel_shader is used to //| Create a TileGrid object. The bitmap is source for 2d pixels. The pixel_shader is used to

View File

@ -31,9 +31,11 @@
#include "shared-bindings/displayio/__init__.h" #include "shared-bindings/displayio/__init__.h"
#include "shared-bindings/displayio/Bitmap.h" #include "shared-bindings/displayio/Bitmap.h"
#include "shared-bindings/displayio/BuiltinFont.h"
#include "shared-bindings/displayio/ColorConverter.h" #include "shared-bindings/displayio/ColorConverter.h"
#include "shared-bindings/displayio/Display.h" #include "shared-bindings/displayio/Display.h"
#include "shared-bindings/displayio/FourWire.h" #include "shared-bindings/displayio/FourWire.h"
#include "shared-bindings/displayio/Glyph.h"
#include "shared-bindings/displayio/Group.h" #include "shared-bindings/displayio/Group.h"
#include "shared-bindings/displayio/OnDiskBitmap.h" #include "shared-bindings/displayio/OnDiskBitmap.h"
#include "shared-bindings/displayio/Palette.h" #include "shared-bindings/displayio/Palette.h"
@ -51,17 +53,17 @@
//| The `displayio` module contains classes to manage display output //| The `displayio` module contains classes to manage display output
//| including synchronizing with refresh rates and partial updating. //| including synchronizing with refresh rates and partial updating.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| Libraries //| Libraries
//| //|
//| .. toctree:: //| .. toctree::
//| :maxdepth: 3 //| :maxdepth: 3
//| //|
//| Bitmap //| Bitmap
//| BuiltinFont
//| ColorConverter //| ColorConverter
//| Display //| Display
//| FourWire //| FourWire
//| Glyph
//| Group //| Group
//| OnDiskBitmap //| OnDiskBitmap
//| Palette //| Palette
@ -88,8 +90,10 @@ MP_DEFINE_CONST_FUN_OBJ_0(displayio_release_displays_obj, displayio_release_disp
STATIC const mp_rom_map_elem_t displayio_module_globals_table[] = { STATIC const mp_rom_map_elem_t displayio_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_displayio) }, { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_displayio) },
{ MP_ROM_QSTR(MP_QSTR_Bitmap), MP_ROM_PTR(&displayio_bitmap_type) }, { MP_ROM_QSTR(MP_QSTR_Bitmap), MP_ROM_PTR(&displayio_bitmap_type) },
{ MP_ROM_QSTR(MP_QSTR_BuiltinFont), MP_ROM_PTR(&displayio_builtinfont_type) },
{ MP_ROM_QSTR(MP_QSTR_ColorConverter), MP_ROM_PTR(&displayio_colorconverter_type) }, { MP_ROM_QSTR(MP_QSTR_ColorConverter), MP_ROM_PTR(&displayio_colorconverter_type) },
{ MP_ROM_QSTR(MP_QSTR_Display), MP_ROM_PTR(&displayio_display_type) }, { MP_ROM_QSTR(MP_QSTR_Display), MP_ROM_PTR(&displayio_display_type) },
{ MP_ROM_QSTR(MP_QSTR_Glyph), MP_ROM_PTR(&displayio_glyph_type) },
{ MP_ROM_QSTR(MP_QSTR_Group), MP_ROM_PTR(&displayio_group_type) }, { MP_ROM_QSTR(MP_QSTR_Group), MP_ROM_PTR(&displayio_group_type) },
{ MP_ROM_QSTR(MP_QSTR_OnDiskBitmap), MP_ROM_PTR(&displayio_ondiskbitmap_type) }, { MP_ROM_QSTR(MP_QSTR_OnDiskBitmap), MP_ROM_PTR(&displayio_ondiskbitmap_type) },
{ MP_ROM_QSTR(MP_QSTR_Palette), MP_ROM_PTR(&displayio_palette_type) }, { MP_ROM_QSTR(MP_QSTR_Palette), MP_ROM_PTR(&displayio_palette_type) },

View File

@ -257,7 +257,7 @@ STATIC mp_obj_t pulsein_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
} }
} }
//| .. method:: __get__(index) //| .. method:: __getitem__(index)
//| //|
//| Returns the value at the given index or values in slice. //| Returns the value at the given index or values in slice.
//| //|
@ -277,12 +277,7 @@ STATIC mp_obj_t pulsein_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t va
if (MP_OBJ_IS_TYPE(index_obj, &mp_type_slice)) { if (MP_OBJ_IS_TYPE(index_obj, &mp_type_slice)) {
mp_raise_NotImplementedError(translate("Slices not supported")); mp_raise_NotImplementedError(translate("Slices not supported"));
} else { } else {
uint16_t index = 0; size_t index = mp_get_index(&pulseio_pulsein_type, common_hal_pulseio_pulsein_get_len(self), index_obj, false);
if (MP_OBJ_IS_SMALL_INT(index_obj)) {
index = MP_OBJ_SMALL_INT_VALUE(index_obj);
} else {
mp_raise_TypeError(translate("index must be int"));
}
if (value == MP_OBJ_SENTINEL) { if (value == MP_OBJ_SENTINEL) {
// load // load
return MP_OBJ_NEW_SMALL_INT(common_hal_pulseio_pulsein_get_item(self, index)); return MP_OBJ_NEW_SMALL_INT(common_hal_pulseio_pulsein_get_item(self, index));

View File

@ -34,6 +34,7 @@
#include "py/objstr.h" #include "py/objstr.h"
#include "py/runtime.h" #include "py/runtime.h"
#include "py/stream.h" #include "py/stream.h"
#include "shared-bindings/displayio/BuiltinFont.h"
#include "supervisor/shared/translate.h" #include "supervisor/shared/translate.h"
@ -42,18 +43,17 @@
//| :class:`Terminal` -- display a character stream with a TileGrid //| :class:`Terminal` -- display a character stream with a TileGrid
//| ================================================================ //| ================================================================
//| //|
//| .. class:: Terminal(tilegrid, *, unicode_characters="") //| .. class:: Terminal(tilegrid, font)
//| //|
//| Terminal manages tile indices and cursor position based on VT100 commands. Visible ASCII //| Terminal manages tile indices and cursor position based on VT100 commands. The font should be
//| characters are mapped to the first 94 tile indices by substracting 0x20 from characters value. //| a `displayio.BuiltinFont` and the TileGrid's bitmap should match the font's bitmap.
//| Unicode characters are mapped based on unicode_characters starting at index 94.
//| //|
STATIC mp_obj_t terminalio_terminal_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { STATIC mp_obj_t terminalio_terminal_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
enum { ARG_tilegrid, ARG_unicode_characters }; enum { ARG_tilegrid, ARG_font };
static const mp_arg_t allowed_args[] = { static const mp_arg_t allowed_args[] = {
{ MP_QSTR_tilegrid, MP_ARG_REQUIRED | MP_ARG_OBJ }, { MP_QSTR_tilegrid, MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_unicode_characters, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = mp_const_none} }, { MP_QSTR_font, MP_ARG_REQUIRED | MP_ARG_OBJ },
}; };
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
@ -63,15 +63,13 @@ STATIC mp_obj_t terminalio_terminal_make_new(const mp_obj_type_t *type, size_t n
mp_raise_TypeError_varg(translate("Expected a %q"), displayio_tilegrid_type.name); mp_raise_TypeError_varg(translate("Expected a %q"), displayio_tilegrid_type.name);
} }
mp_obj_t unicode_characters_obj = args[ARG_unicode_characters].u_obj; mp_obj_t font = args[ARG_font].u_obj;
if (MP_OBJ_IS_STR(unicode_characters_obj)) { if (!MP_OBJ_IS_TYPE(font, &displayio_builtinfont_type)) {
mp_raise_TypeError(translate("unicode_characters must be a string")); mp_raise_TypeError_varg(translate("Expected a %q"), displayio_builtinfont_type.name);
} }
GET_STR_DATA_LEN(unicode_characters_obj, unicode_characters, unicode_characters_len);
terminalio_terminal_obj_t *self = m_new_obj(terminalio_terminal_obj_t); terminalio_terminal_obj_t *self = m_new_obj(terminalio_terminal_obj_t);
self->base.type = &terminalio_terminal_type; self->base.type = &terminalio_terminal_type;
common_hal_terminalio_terminal_construct(self, MP_OBJ_TO_PTR(tilegrid), unicode_characters, unicode_characters_len); common_hal_terminalio_terminal_construct(self, MP_OBJ_TO_PTR(tilegrid), MP_OBJ_TO_PTR(font));
return MP_OBJ_FROM_PTR(self); return MP_OBJ_FROM_PTR(self);
} }

View File

@ -34,7 +34,7 @@
extern const mp_obj_type_t terminalio_terminal_type; extern const mp_obj_type_t terminalio_terminal_type;
extern void common_hal_terminalio_terminal_construct(terminalio_terminal_obj_t *self, extern void common_hal_terminalio_terminal_construct(terminalio_terminal_obj_t *self,
displayio_tilegrid_t* tilegrid, const byte* unicode_characters, size_t unicode_characters_len); displayio_tilegrid_t* tilegrid, const displayio_builtinfont_t* font);
// Write characters. len is in characters NOT bytes! // Write characters. len is in characters NOT bytes!
extern size_t common_hal_terminalio_terminal_write(terminalio_terminal_obj_t *self, extern size_t common_hal_terminalio_terminal_write(terminalio_terminal_obj_t *self,

View File

@ -31,6 +31,7 @@
#include "shared-bindings/terminalio/__init__.h" #include "shared-bindings/terminalio/__init__.h"
#include "shared-bindings/terminalio/Terminal.h" #include "shared-bindings/terminalio/Terminal.h"
#include "supervisor/shared/display.h"
#include "py/runtime.h" #include "py/runtime.h"
@ -40,7 +41,8 @@
//| .. module:: terminalio //| .. module:: terminalio
//| :synopsis: Displays text in a TileGrid //| :synopsis: Displays text in a TileGrid
//| //|
//| The `terminalio` module contains classes to display a character stream on a display //| The `terminalio` module contains classes to display a character stream on a display. The built
//| in font is available as ``terminalio.FONT``.
//| //|
//| Libraries //| Libraries
//| //|
@ -53,6 +55,7 @@
STATIC const mp_rom_map_elem_t terminalio_module_globals_table[] = { STATIC const mp_rom_map_elem_t terminalio_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_terminalio) }, { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_terminalio) },
{ MP_ROM_QSTR(MP_QSTR_Terminal), MP_OBJ_FROM_PTR(&terminalio_terminal_type) }, { MP_ROM_QSTR(MP_QSTR_Terminal), MP_OBJ_FROM_PTR(&terminalio_terminal_type) },
{ MP_ROM_QSTR(MP_QSTR_FONT), MP_ROM_PTR(&supervisor_terminal_font) },
}; };

View File

@ -45,11 +45,6 @@
//| //|
//| Not currently dynamically supported. //| Not currently dynamically supported.
//| //|
STATIC mp_obj_t usb_hid_device_make_new(const mp_obj_type_t *type,
mp_uint_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
return mp_const_none;
}
//| .. method:: send_report(buf) //| .. method:: send_report(buf)
//| //|
//| Send a HID report. //| Send a HID report.
@ -114,6 +109,5 @@ STATIC MP_DEFINE_CONST_DICT(usb_hid_device_locals_dict, usb_hid_device_locals_di
const mp_obj_type_t usb_hid_device_type = { const mp_obj_type_t usb_hid_device_type = {
{ &mp_type_type }, { &mp_type_type },
.name = MP_QSTR_Device, .name = MP_QSTR_Device,
.make_new = usb_hid_device_make_new,
.locals_dict = (mp_obj_t)&usb_hid_device_locals_dict, .locals_dict = (mp_obj_t)&usb_hid_device_locals_dict,
}; };

View File

@ -42,7 +42,7 @@ void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t wi
self->width = width; self->width = width;
self->height = height; self->height = height;
self->data = m_malloc(self->stride * height * sizeof(uint32_t), false); self->data = m_malloc(self->stride * height * sizeof(uint32_t), false);
self->read_only = false;
self->bits_per_value = bits_per_value; self->bits_per_value = bits_per_value;
if (bits_per_value > 8) { if (bits_per_value > 8) {
@ -64,6 +64,18 @@ void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t wi
self->bitmask = (1 << bits_per_value) - 1; self->bitmask = (1 << bits_per_value) - 1;
} }
uint16_t common_hal_displayio_bitmap_get_height(displayio_bitmap_t *self) {
return self->height;
}
uint16_t common_hal_displayio_bitmap_get_width(displayio_bitmap_t *self) {
return self->width;
}
uint32_t common_hal_displayio_bitmap_get_bits_per_value(displayio_bitmap_t *self) {
return self->bits_per_value;
}
void common_hal_displayio_bitmap_load_row(displayio_bitmap_t *self, uint16_t y, uint8_t* data, uint16_t len) { void common_hal_displayio_bitmap_load_row(displayio_bitmap_t *self, uint16_t y, uint8_t* data, uint16_t len) {
if (len != self->stride * sizeof(uint32_t)) { if (len != self->stride * sizeof(uint32_t)) {
mp_raise_ValueError(translate("row must be packed and word aligned")); mp_raise_ValueError(translate("row must be packed and word aligned"));
@ -85,6 +97,7 @@ void common_hal_displayio_bitmap_load_row(displayio_bitmap_t *self, uint16_t y,
row_value++; row_value++;
} }
} }
uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *self, int16_t x, int16_t y) { uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *self, int16_t x, int16_t y) {
if (x >= self->width || x < 0 || y >= self->height || y < 0) { if (x >= self->width || x < 0 || y >= self->height || y < 0) {
return 0; return 0;
@ -99,3 +112,21 @@ uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *self, int16_t
return self->data[row_start + x * bytes_per_value]; return self->data[row_start + x * bytes_per_value];
} }
} }
void common_hal_displayio_bitmap_set_pixel(displayio_bitmap_t *self, int16_t x, int16_t y, uint32_t value) {
if (self->read_only) {
mp_raise_RuntimeError(translate("Read-only object"));
}
int32_t row_start = y * self->stride;
if (self->bits_per_value < 8) {
uint32_t bit_position = (32 - ((x & self->x_mask) + 1) * self->bits_per_value);
uint32_t index = row_start + (x >> self->x_shift);
uint32_t word = self->data[index];
word &= ~(self->bitmask << bit_position);
word |= (value & self->bitmask) << bit_position;
self->data[index] = word;
} else {
uint32_t bytes_per_value = self->bits_per_value / 8;
self->data[row_start + x * bytes_per_value] = value;
}
}

View File

@ -42,6 +42,7 @@ typedef struct {
uint8_t x_shift; uint8_t x_shift;
uint8_t x_mask; uint8_t x_mask;
uint16_t bitmask; uint16_t bitmask;
bool read_only;
} displayio_bitmap_t; } displayio_bitmap_t;
#endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BITMAP_H #endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BITMAP_H

View File

@ -0,0 +1,79 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2018 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/displayio/BuiltinFont.h"
#include "shared-bindings/displayio/Glyph.h"
#include "py/objnamedtuple.h"
mp_obj_t common_hal_displayio_builtinfont_get_bitmap(const displayio_builtinfont_t *self) {
return MP_OBJ_FROM_PTR(self->bitmap);
}
mp_obj_t common_hal_displayio_builtinfont_get_bounding_box(const displayio_builtinfont_t *self) {
mp_obj_t *items = m_new(mp_obj_t, 2);
items[0] = MP_OBJ_NEW_SMALL_INT(self->width);
items[1] = MP_OBJ_NEW_SMALL_INT(self->height);
return mp_obj_new_tuple(2, items);
}
uint8_t displayio_builtinfont_get_glyph_index(const displayio_builtinfont_t *self, mp_uint_t codepoint) {
if (codepoint >= 0x20 && codepoint <= 0x7e) {
return codepoint - 0x20;
}
// Do a linear search of the mapping for unicode.
const byte* j = self->unicode_characters;
uint8_t k = 0;
while (j < self->unicode_characters + self->unicode_characters_len) {
unichar potential_c = utf8_get_char(j);
j = utf8_next_char(j);
if (codepoint == potential_c) {
return 0x7f - 0x20 + k;
}
k++;
}
return 0xff;
}
mp_obj_t common_hal_displayio_builtinfont_get_glyph(const displayio_builtinfont_t *self, mp_uint_t codepoint) {
uint8_t glyph_index = displayio_builtinfont_get_glyph_index(self, codepoint);
if (glyph_index == 0xff) {
return mp_const_none;
}
mp_obj_t field_values[8] = {
MP_OBJ_FROM_PTR(self->bitmap),
MP_OBJ_NEW_SMALL_INT(glyph_index),
MP_OBJ_NEW_SMALL_INT(self->width),
MP_OBJ_NEW_SMALL_INT(self->height),
MP_OBJ_NEW_SMALL_INT(0),
MP_OBJ_NEW_SMALL_INT(0),
MP_OBJ_NEW_SMALL_INT(self->width),
MP_OBJ_NEW_SMALL_INT(0)
};
return namedtuple_make_new((const mp_obj_type_t*) &displayio_glyph_type, 8, field_values, NULL);
}

View File

@ -0,0 +1,47 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2018 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BUILTINFONT_H
#define MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BUILTINFONT_H
#include <stdbool.h>
#include <stdint.h>
#include "py/obj.h"
#include "shared-bindings/displayio/Bitmap.h"
typedef struct {
mp_obj_base_t base;
const displayio_bitmap_t* bitmap;
uint8_t width;
uint8_t height;
const byte* unicode_characters;
uint16_t unicode_characters_len;
} displayio_builtinfont_t;
uint8_t displayio_builtinfont_get_glyph_index(const displayio_builtinfont_t *self, mp_uint_t codepoint);
#endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BUILTINFONT_H

View File

@ -29,12 +29,39 @@
#include "py/runtime.h" #include "py/runtime.h"
#include "shared-bindings/displayio/TileGrid.h" #include "shared-bindings/displayio/TileGrid.h"
void common_hal_displayio_group_construct(displayio_group_t* self, uint32_t max_size) { void common_hal_displayio_group_construct(displayio_group_t* self, uint32_t max_size, uint32_t scale) {
mp_obj_t* children = m_new(mp_obj_t, max_size); mp_obj_t* children = m_new(mp_obj_t, max_size);
displayio_group_construct(self, children, max_size); displayio_group_construct(self, children, max_size, scale);
} }
void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer) { uint32_t common_hal_displayio_group_get_scale(displayio_group_t* self) {
return self->scale;
}
void common_hal_displayio_group_set_scale(displayio_group_t* self, uint32_t scale) {
self->needs_refresh = self->scale != scale;
self->scale = scale;
}
mp_int_t common_hal_displayio_group_get_x(displayio_group_t* self) {
return self->x;
}
void common_hal_displayio_group_set_x(displayio_group_t* self, mp_int_t x) {
self->needs_refresh = self->x != x;
self->x = x;
}
mp_int_t common_hal_displayio_group_get_y(displayio_group_t* self) {
return self->y;
}
void common_hal_displayio_group_set_y(displayio_group_t* self, mp_int_t y) {
self->needs_refresh = self->y != y;
self->y = y;
}
void common_hal_displayio_group_insert(displayio_group_t* self, size_t index, mp_obj_t layer) {
if (self->size == self->max_size) { if (self->size == self->max_size) {
mp_raise_RuntimeError(translate("Group full")); mp_raise_RuntimeError(translate("Group full"));
} }
@ -45,29 +72,47 @@ void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer)
if (native_layer == MP_OBJ_NULL) { if (native_layer == MP_OBJ_NULL) {
mp_raise_ValueError(translate("Layer must be a Group or TileGrid subclass.")); mp_raise_ValueError(translate("Layer must be a Group or TileGrid subclass."));
} }
self->children[self->size] = layer; // Shift everything right.
for (size_t i = index; i < self->size; i++) {
self->children[i + 1] = self->children[i];
}
self->children[index] = native_layer;
self->size++; self->size++;
self->needs_refresh = true; self->needs_refresh = true;
} }
mp_obj_t common_hal_displayio_group_pop(displayio_group_t* self) { mp_obj_t common_hal_displayio_group_pop(displayio_group_t* self, size_t index) {
if (self->size == 0) {
mp_raise_IndexError(translate("Group empty"));
}
self->size--; self->size--;
mp_obj_t item = self->children[self->size]; mp_obj_t item = self->children[index];
// Shift everything left.
for (size_t i = index; i < self->size; i++) {
self->children[i] = self->children[i + 1];
}
self->children[self->size] = NULL; self->children[self->size] = NULL;
self->needs_refresh = true; self->needs_refresh = true;
return item; return item;
} }
void displayio_group_construct(displayio_group_t* self, mp_obj_t* child_array, uint32_t max_size) { size_t common_hal_displayio_group_get_len(displayio_group_t* self) {
return self->size;
}
mp_obj_t common_hal_displayio_group_get(displayio_group_t* self, size_t index) {
return self->children[index];
}
void common_hal_displayio_group_set(displayio_group_t* self, size_t index, mp_obj_t layer) {
self->children[index] = layer;
self->needs_refresh = true;
}
void displayio_group_construct(displayio_group_t* self, mp_obj_t* child_array, uint32_t max_size, uint32_t scale) {
self->x = 0; self->x = 0;
self->y = 0; self->y = 0;
self->children = child_array; self->children = child_array;
self->max_size = max_size; self->max_size = max_size;
self->needs_refresh = false; self->needs_refresh = false;
self->scale = 1; self->scale = scale;
} }
bool displayio_group_get_pixel(displayio_group_t *self, int16_t x, int16_t y, uint16_t* pixel) { bool displayio_group_get_pixel(displayio_group_t *self, int16_t x, int16_t y, uint16_t* pixel) {
@ -86,7 +131,6 @@ bool displayio_group_get_pixel(displayio_group_t *self, int16_t x, int16_t y, ui
return true; return true;
} }
} }
// TODO: Tiled layer
} }
return false; return false;
} }

View File

@ -43,11 +43,7 @@ typedef struct {
bool needs_refresh; bool needs_refresh;
} displayio_group_t; } displayio_group_t;
void displayio_group_construct(displayio_group_t* self, mp_obj_t* child_array, uint32_t max_size, uint32_t scale);
void common_hal_displayio_group_construct(displayio_group_t* self, uint32_t max_size);
void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer);
void displayio_group_construct(displayio_group_t* self, mp_obj_t* child_array, uint32_t max_size);
bool displayio_group_get_pixel(displayio_group_t *group, int16_t x, int16_t y, uint16_t *pixel); bool displayio_group_get_pixel(displayio_group_t *group, int16_t x, int16_t y, uint16_t *pixel);
bool displayio_group_needs_refresh(displayio_group_t *self); bool displayio_group_needs_refresh(displayio_group_t *self);
void displayio_group_finish_refresh(displayio_group_t *self); void displayio_group_finish_refresh(displayio_group_t *self);

View File

@ -40,9 +40,17 @@ void common_hal_displayio_tilegrid_construct(displayio_tilegrid_t *self, mp_obj_
// Sprites will only have one tile so save a little memory by inlining values in the pointer. // Sprites will only have one tile so save a little memory by inlining values in the pointer.
uint8_t inline_tiles = sizeof(uint8_t*); uint8_t inline_tiles = sizeof(uint8_t*);
if (total_tiles <= inline_tiles) { if (total_tiles <= inline_tiles) {
self->tiles = 0;
// Pack values into the pointer since there are only a few.
for (uint32_t i = 0; i < inline_tiles; i++) {
((uint8_t*) &self->tiles)[i] = default_tile;
}
self->inline_tiles = true; self->inline_tiles = true;
} else { } else {
self->tiles = (uint8_t*) m_malloc(total_tiles, false); self->tiles = (uint8_t*) m_malloc(total_tiles, false);
for (uint32_t i = 0; i < total_tiles; i++) {
self->tiles[i] = default_tile;
}
self->inline_tiles = false; self->inline_tiles = false;
} }
self->bitmap_width_in_tiles = bitmap_width_in_tiles; self->bitmap_width_in_tiles = bitmap_width_in_tiles;

View File

@ -27,14 +27,14 @@
#include "shared-module/terminalio/Terminal.h" #include "shared-module/terminalio/Terminal.h"
#include "shared-module/displayio/__init__.h" #include "shared-module/displayio/__init__.h"
#include "shared-module/displayio/BuiltinFont.h"
#include "shared-bindings/displayio/TileGrid.h" #include "shared-bindings/displayio/TileGrid.h"
void common_hal_terminalio_terminal_construct(terminalio_terminal_obj_t *self, displayio_tilegrid_t* tilegrid, const uint8_t* unicode_characters, size_t unicode_characters_len) { void common_hal_terminalio_terminal_construct(terminalio_terminal_obj_t *self, displayio_tilegrid_t* tilegrid, const displayio_builtinfont_t* font) {
self->cursor_x = 0; self->cursor_x = 0;
self->cursor_y = 0; self->cursor_y = 0;
self->font = font;
self->tilegrid = tilegrid; self->tilegrid = tilegrid;
self->unicode_characters = unicode_characters;
self->unicode_characters_len = unicode_characters_len;
self->first_row = 0; self->first_row = 0;
} }
@ -47,10 +47,10 @@ size_t common_hal_terminalio_terminal_write(terminalio_terminal_obj_t *self, con
// Always handle ASCII. // Always handle ASCII.
if (c < 128) { if (c < 128) {
if (c >= 0x20 && c <= 0x7e) { if (c >= 0x20 && c <= 0x7e) {
common_hal_displayio_textgrid_set_tile(self->tilegrid, self->cursor_x, self->cursor_y, c - 0x20); uint8_t tile_index = displayio_builtinfont_get_glyph_index(self->font, c);
common_hal_displayio_textgrid_set_tile(self->tilegrid, self->cursor_x, self->cursor_y, tile_index);
self->cursor_x++; self->cursor_x++;
} } else if (c == '\r') {
if (c == '\r') {
self->cursor_x = 0; self->cursor_x = 0;
} else if (c == '\n') { } else if (c == '\n') {
self->cursor_y++; self->cursor_y++;
@ -76,6 +76,7 @@ size_t common_hal_terminalio_terminal_write(terminalio_terminal_obj_t *self, con
n = n * 10 + (i[j] - '0'); n = n * 10 + (i[j] - '0');
} else { } else {
c = i[j]; c = i[j];
break;
} }
} }
if (c == 'D') { if (c == 'D') {
@ -84,23 +85,18 @@ size_t common_hal_terminalio_terminal_write(terminalio_terminal_obj_t *self, con
} else { } else {
self->cursor_x -= n; self->cursor_x -= n;
} }
i += j;
} }
i += j + 1;
continue;
} }
} }
} }
} else { } else {
// Do a linear search of the mapping for unicode. uint8_t tile_index = displayio_builtinfont_get_glyph_index(self->font, c);
const byte* j = self->unicode_characters; if (tile_index != 0xff) {
uint8_t k = 0; common_hal_displayio_textgrid_set_tile(self->tilegrid, self->cursor_x, self->cursor_y, tile_index);
while (j < self->unicode_characters + self->unicode_characters_len) {
unichar potential_c = utf8_get_char(j);
j = utf8_next_char(j);
if (c == potential_c) {
common_hal_displayio_textgrid_set_tile(self->tilegrid, self->cursor_x, self->cursor_y, 0x7f - 0x20 + k);
self->cursor_x++; self->cursor_x++;
break;
}
} }
} }
if (self->cursor_x >= self->tilegrid->width_in_tiles) { if (self->cursor_x >= self->tilegrid->width_in_tiles) {

View File

@ -31,15 +31,15 @@
#include <stdbool.h> #include <stdbool.h>
#include "py/obj.h" #include "py/obj.h"
#include "shared-module/displayio/BuiltinFont.h"
#include "shared-module/displayio/TileGrid.h" #include "shared-module/displayio/TileGrid.h"
typedef struct { typedef struct {
mp_obj_base_t base; mp_obj_base_t base;
const displayio_builtinfont_t* font;
uint16_t cursor_x; uint16_t cursor_x;
uint16_t cursor_y; uint16_t cursor_y;
displayio_tilegrid_t* tilegrid; displayio_tilegrid_t* tilegrid;
const byte* unicode_characters;
uint16_t unicode_characters_len;
uint16_t first_row; uint16_t first_row;
} terminalio_terminal_obj_t; } terminalio_terminal_obj_t;

View File

@ -134,7 +134,8 @@ displayio_bitmap_t blinka_bitmap = {
.bits_per_value = 4, .bits_per_value = 4,
.x_shift = 3, .x_shift = 3,
.x_mask = 0x7, .x_mask = 0x7,
.bitmask = 0xf .bitmask = 0xf,
.read_only = true
}; };
uint32_t blinka_transparency[1] = {0x80000000}; uint32_t blinka_transparency[1] = {0x80000000};

View File

@ -27,6 +27,7 @@
#ifndef MICROPY_INCLUDED_SUPERVISOR_SHARED_DISPLAY_H #ifndef MICROPY_INCLUDED_SUPERVISOR_SHARED_DISPLAY_H
#define MICROPY_INCLUDED_SUPERVISOR_SHARED_DISPLAY_H #define MICROPY_INCLUDED_SUPERVISOR_SHARED_DISPLAY_H
#include "shared-bindings/displayio/BuiltinFont.h"
#include "shared-bindings/displayio/Bitmap.h" #include "shared-bindings/displayio/Bitmap.h"
#include "shared-bindings/displayio/TileGrid.h" #include "shared-bindings/displayio/TileGrid.h"
#include "shared-bindings/terminalio/Terminal.h" #include "shared-bindings/terminalio/Terminal.h"
@ -34,7 +35,9 @@
// These are autogenerated resources. // These are autogenerated resources.
// This is fixed so it doesn't need to be in RAM. // This is fixed so it doesn't need to be in RAM.
extern const displayio_bitmap_t supervisor_terminal_font; extern const displayio_bitmap_t supervisor_terminal_font_bitmap;
extern const displayio_builtinfont_t supervisor_terminal_font;
// These will change so they must live in RAM. // These will change so they must live in RAM.
extern displayio_tilegrid_t supervisor_terminal_text_grid; extern displayio_tilegrid_t supervisor_terminal_text_grid;

View File

@ -118,7 +118,7 @@ displayio_palette_t supervisor_terminal_color = {
c_file.write("""\ c_file.write("""\
displayio_tilegrid_t supervisor_terminal_text_grid = {{ displayio_tilegrid_t supervisor_terminal_text_grid = {{
.base = {{ .type = &displayio_tilegrid_type }}, .base = {{ .type = &displayio_tilegrid_type }},
.bitmap = (displayio_bitmap_t*) &supervisor_terminal_font, .bitmap = (displayio_bitmap_t*) &supervisor_terminal_font_bitmap,
.pixel_shader = &supervisor_terminal_color, .pixel_shader = &supervisor_terminal_color,
.x = 16, .x = 16,
.y = 0, .y = 0,
@ -149,7 +149,7 @@ c_file.write("""\
""") """)
c_file.write("""\ c_file.write("""\
const displayio_bitmap_t supervisor_terminal_font = {{ const displayio_bitmap_t supervisor_terminal_font_bitmap = {{
.base = {{.type = &displayio_bitmap_type }}, .base = {{.type = &displayio_bitmap_type }},
.width = {}, .width = {},
.height = {}, .height = {},
@ -158,17 +158,29 @@ const displayio_bitmap_t supervisor_terminal_font = {{
.bits_per_value = 1, .bits_per_value = 1,
.x_shift = 5, .x_shift = 5,
.x_mask = 0x1f, .x_mask = 0x1f,
.bitmask = 0x1 .bitmask = 0x1,
.read_only = true
}}; }};
""".format(len(all_characters) * tile_x, tile_y, bytes_per_row / 4)) """.format(len(all_characters) * tile_x, tile_y, bytes_per_row / 4))
c_file.write("""\ c_file.write("""\
terminalio_terminal_obj_t supervisor_terminal = {{ const displayio_builtinfont_t supervisor_terminal_font = {{
.base = {{.type = &terminalio_terminal_type }}, .base = {{.type = &displayio_builtinfont_type }},
.cursor_x = 0, .bitmap = &supervisor_terminal_font_bitmap,
.cursor_y = 0, .width = {},
.tilegrid = &supervisor_terminal_text_grid, .height = {},
.unicode_characters = (const uint8_t*) "{}", .unicode_characters = (const uint8_t*) "{}",
.unicode_characters_len = {} .unicode_characters_len = {}
}}; }};
""".format(extra_characters, len(extra_characters.encode("utf-8")))) """.format(tile_x, tile_y, extra_characters, len(extra_characters.encode("utf-8"))))
c_file.write("""\
terminalio_terminal_obj_t supervisor_terminal = {
.base = { .type = &terminalio_terminal_type },
.font = &supervisor_terminal_font,
.cursor_x = 0,
.cursor_y = 0,
.tilegrid = &supervisor_terminal_text_grid
};
""")