Add basic accessibility support

- Support for screen readers on Linux/Windows. (Mac does not work
  as intended yet)
- Add keyboard navigation
- Add write confirmation dialog. Closes #84
- Update debian changelog
This commit is contained in:
Floris Bos 2020-06-30 00:42:39 +02:00
parent 855ad53b21
commit 2a0925b10a
6 changed files with 643 additions and 324 deletions

View file

@ -48,7 +48,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadthread.cpp" line="192"/>
<location filename="../downloadthread.cpp" line="193"/>
<source>Cannot open storage device &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
@ -64,33 +64,33 @@ Card could be advertising wrong capacity (possible counterfeit)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadthread.cpp" line="523"/>
<location filename="../downloadthread.cpp" line="537"/>
<source>Error writing to storage (while flushing)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadthread.cpp" line="529"/>
<location filename="../downloadthread.cpp" line="543"/>
<source>Error writing to storage (while fsync)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadthread.cpp" line="546"/>
<location filename="../downloadthread.cpp" line="560"/>
<source>Download corrupt. Hash does not match</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadthread.cpp" line="576"/>
<location filename="../downloadthread.cpp" line="590"/>
<source>Error writing first block (partition table)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadthread.cpp" line="622"/>
<location filename="../downloadthread.cpp" line="642"/>
<source>Error reading from storage.
SD card may be broken.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadthread.cpp" line="641"/>
<location filename="../downloadthread.cpp" line="661"/>
<source>Verifying write failed. Contents of SD card is different from what was written to it.</source>
<translation type="unfinished"></translation>
</message>
@ -100,7 +100,7 @@ SD card may be broken.</source>
<message>
<location filename="../driveformatthread.cpp" line="63"/>
<location filename="../driveformatthread.cpp" line="124"/>
<location filename="../driveformatthread.cpp" line="181"/>
<location filename="../driveformatthread.cpp" line="185"/>
<source>Error partitioning: %1</source>
<translation type="unfinished"></translation>
</message>
@ -125,27 +125,27 @@ SD card may be broken.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../driveformatthread.cpp" line="144"/>
<location filename="../driveformatthread.cpp" line="146"/>
<source>Error formatting (through udisks2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../driveformatthread.cpp" line="170"/>
<location filename="../driveformatthread.cpp" line="174"/>
<source>Error starting sfdisk</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../driveformatthread.cpp" line="192"/>
<location filename="../driveformatthread.cpp" line="196"/>
<source>Error starting mkfs.fat</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../driveformatthread.cpp" line="202"/>
<location filename="../driveformatthread.cpp" line="206"/>
<source>Error running mkfs.fat: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../driveformatthread.cpp" line="209"/>
<location filename="../driveformatthread.cpp" line="213"/>
<source>Formatting not implemented for this platform</source>
<translation type="unfinished"></translation>
</message>
@ -153,196 +153,264 @@ SD card may be broken.</source>
<context>
<name>ImageWriter</name>
<message>
<location filename="../imagewriter.cpp" line="152"/>
<location filename="../imagewriter.cpp" line="170"/>
<source>Storage capacity is not large enough.
Needs to be at least %1 GB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../imagewriter.cpp" line="158"/>
<location filename="../imagewriter.cpp" line="176"/>
<source>Input file is not a valid disk image.
File size %1 bytes is not a multiple of 512 bytes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../imagewriter.cpp" line="178"/>
<location filename="../imagewriter.cpp" line="200"/>
<source>Downloading and writing image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../imagewriter.cpp" line="380"/>
<location filename="../imagewriter.cpp" line="403"/>
<source>Select image</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LocalFileExtractThread</name>
<message>
<location filename="../localfileextractthread.cpp" line="38"/>
<source>Error opening image file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MsgPopup</name>
<message>
<location filename="../MsgPopup.qml" line="96"/>
<source>NO</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MsgPopup.qml" line="108"/>
<source>YES</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MsgPopup.qml" line="120"/>
<source>CONTINUE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../linux/linuxdrivelist.cpp" line="111"/>
<source>Internal SD card reader</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>main</name>
<message>
<location filename="../main.qml" line="23"/>
<location filename="../main.qml" line="24"/>
<source>Raspberry Pi Imager v%1</source>
<translation> v%1</translation>
</message>
<message>
<location filename="../main.qml" line="32"/>
<location filename="../main.qml" line="719"/>
<source>Are you sure you want to quit?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="33"/>
<location filename="../main.qml" line="720"/>
<source>Raspberry Pi Imager is still busy.&lt;br&gt;Are you sure you want to quit?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="78"/>
<location filename="../main.qml" line="286"/>
<location filename="../main.qml" line="91"/>
<location filename="../main.qml" line="300"/>
<source>Operating System</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="90"/>
<location filename="../main.qml" line="103"/>
<source>CHOOSE OS</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="112"/>
<location filename="../main.qml" line="594"/>
<location filename="../main.qml" line="133"/>
<location filename="../main.qml" line="575"/>
<source>SD Card</source>
<translation>SD卡</translation>
</message>
<message>
<location filename="../main.qml" line="124"/>
<location filename="../main.qml" line="914"/>
<location filename="../main.qml" line="145"/>
<location filename="../main.qml" line="859"/>
<source>CHOOSE SD CARD</source>
<translation>SD卡</translation>
</message>
<message>
<location filename="../main.qml" line="151"/>
<location filename="../main.qml" line="175"/>
<source>WRITE</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="166"/>
<location filename="../main.qml" line="859"/>
<location filename="../main.qml" line="737"/>
<location filename="../main.qml" line="804"/>
<source>Writing... %1%</source>
<translation>...%1%</translation>
</message>
<message>
<location filename="../main.qml" line="204"/>
<location filename="../main.qml" line="219"/>
<source>CANCEL WRITE</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="207"/>
<location filename="../main.qml" line="856"/>
<location filename="../main.qml" line="121"/>
<source>Select this button to change the operating system</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="159"/>
<source>Select this button to change the destination SD card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="180"/>
<source>Select this button to start writing the image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="222"/>
<location filename="../main.qml" line="801"/>
<source>Cancelling...</source>
<translation>...</translation>
</message>
<message>
<location filename="../main.qml" line="218"/>
<location filename="../main.qml" line="233"/>
<source>CANCEL VERIFY</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="221"/>
<location filename="../main.qml" line="879"/>
<location filename="../main.qml" line="932"/>
<location filename="../main.qml" line="236"/>
<location filename="../main.qml" line="824"/>
<location filename="../main.qml" line="877"/>
<source>Finalizing...</source>
<translation>...</translation>
</message>
<message>
<location filename="../main.qml" line="348"/>
<location filename="../main.qml" line="908"/>
<location filename="../main.qml" line="373"/>
<location filename="../main.qml" line="853"/>
<source>Erase</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="349"/>
<location filename="../main.qml" line="374"/>
<source>Format card as FAT32</source>
<translation>SD卡为FAT32格式</translation>
</message>
<message>
<location filename="../main.qml" line="356"/>
<location filename="../main.qml" line="381"/>
<source>Use custom</source>
<translation>使</translation>
</message>
<message>
<location filename="../main.qml" line="357"/>
<location filename="../main.qml" line="382"/>
<source>Select a custom .img from your computer</source>
<translation>使</translation>
</message>
<message>
<location filename="../main.qml" line="364"/>
<location filename="../main.qml" line="517"/>
<location filename="../main.qml" line="468"/>
<source>Local file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="731"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="750"/>
<source>All existing data on &apos;%1&apos; will be erased.&lt;br&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="854"/>
<source>&lt;b&gt;%1&lt;/b&gt; has been erased&lt;br&gt;&lt;br&gt;You can now remove the SD card from the reader</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="884"/>
<location filename="../main.qml" line="926"/>
<source>Error parsing os_list.json</source>
<translation> os_list.json </translation>
</message>
<message>
<location filename="../main.qml" line="388"/>
<location filename="../main.qml" line="964"/>
<source>Connect an USB stick containing images first.&lt;br&gt;The images must be located in the root folder of the USB stick.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="405"/>
<source>Back</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="389"/>
<location filename="../main.qml" line="406"/>
<source>Go back to main menu</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="444"/>
<location filename="../main.qml" line="463"/>
<source>Released: %1</source>
<translation>...%1</translation>
</message>
<message>
<location filename="../main.qml" line="447"/>
<location filename="../main.qml" line="466"/>
<source>Cached on your computer</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="449"/>
<location filename="../main.qml" line="470"/>
<source>Online - %1 GB download</source>
<translation>%1 GB</translation>
</message>
<message>
<location filename="../main.qml" line="670"/>
<location filename="../main.qml" line="628"/>
<location filename="../main.qml" line="676"/>
<source>Mounted as %1</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../main.qml" line="785"/>
<source>QUIT APP</source>
<translation>退</translation>
<translation type="vanished">退</translation>
</message>
<message>
<location filename="../main.qml" line="795"/>
<source>CONTINUE</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../main.qml" line="838"/>
<location filename="../main.qml" line="783"/>
<source>Error downloading OS list from Internet</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="882"/>
<location filename="../main.qml" line="827"/>
<source>Verifying... %1%</source>
<translation>...%1%</translation>
</message>
<message>
<location filename="../main.qml" line="900"/>
<location filename="../main.qml" line="845"/>
<source>Error</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="907"/>
<location filename="../main.qml" line="852"/>
<source>Write Successful</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="909"/>
<source>&lt;b&gt;%2&lt;/b&gt; has been erased&lt;br&gt;&lt;br&gt;You can now remove the SD card from the reader</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="911"/>
<location filename="../main.qml" line="856"/>
<source>&lt;b&gt;%1&lt;/b&gt; has been written to &lt;b&gt;%2&lt;/b&gt;&lt;br&gt;&lt;br&gt;You can now remove the SD card from the reader</source>
<translation>&lt;b&gt;%1&lt;/b&gt; &lt;b&gt;%2&lt;/b&gt;&lt;br&gt;&lt;br&gt;SD</translation>
</message>