mirror of
https://github.com/cmclark00/retro-imager.git
synced 2025-05-18 07:55:21 +01:00
Add localisation support
- Tested with Dutch and Chinese. - Chinese translation courtesy of @YuzukiTsuru
This commit is contained in:
parent
224ebebb04
commit
73b9ae764d
5 changed files with 702 additions and 3 deletions
|
@ -8,7 +8,7 @@ endif()
|
||||||
|
|
||||||
project(rpi-imager LANGUAGES CXX)
|
project(rpi-imager LANGUAGES CXX)
|
||||||
set(IMAGER_VERSION_MAJOR 1)
|
set(IMAGER_VERSION_MAJOR 1)
|
||||||
set(IMAGER_VERSION_MINOR 2)
|
set(IMAGER_VERSION_MINOR 3)
|
||||||
set(IMAGER_VERSION_STR "${IMAGER_VERSION_MAJOR}.${IMAGER_VERSION_MINOR}")
|
set(IMAGER_VERSION_STR "${IMAGER_VERSION_MAJOR}.${IMAGER_VERSION_MINOR}")
|
||||||
set(IMAGER_VERSION_CSV "${IMAGER_VERSION_MAJOR},${IMAGER_VERSION_MINOR},0,0")
|
set(IMAGER_VERSION_CSV "${IMAGER_VERSION_MAJOR},${IMAGER_VERSION_MINOR},0,0")
|
||||||
add_definitions(-DIMAGER_VERSION_STR="${IMAGER_VERSION_STR}")
|
add_definitions(-DIMAGER_VERSION_STR="${IMAGER_VERSION_STR}")
|
||||||
|
@ -62,6 +62,13 @@ set(SOURCES "main.cpp" "imagewriter.cpp" "networkaccessmanagerfactory.cpp"
|
||||||
"drivelistitem.cpp" "drivelistmodel.cpp" "downloadthread.cpp" "downloadextractthread.cpp"
|
"drivelistitem.cpp" "drivelistmodel.cpp" "downloadthread.cpp" "downloadextractthread.cpp"
|
||||||
"driveformatthread.cpp" "powersaveblocker.cpp" "qml.qrc")
|
"driveformatthread.cpp" "powersaveblocker.cpp" "qml.qrc")
|
||||||
|
|
||||||
|
find_package(Qt5 COMPONENTS Core Quick Widgets LinguistTools REQUIRED)
|
||||||
|
|
||||||
|
#qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} i18n/rpi-imager_nl.ts i18n/rpi-imager_zh_cn.ts)
|
||||||
|
qt5_add_translation(QM_FILES i18n/rpi-imager_nl.ts i18n/rpi-imager_zh_cn.ts)
|
||||||
|
configure_file(i18n/translations.qrc "${CMAKE_CURRENT_BINARY_DIR}" COPYONLY)
|
||||||
|
set(SOURCES ${SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc ${QM_FILES})
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
# Adding WIN32 prevents a console window being opened on Windows
|
# Adding WIN32 prevents a console window being opened on Windows
|
||||||
add_executable(${PROJECT_NAME} WIN32 ${SOURCES} ${HEADERS} ${DEPENDENCIES})
|
add_executable(${PROJECT_NAME} WIN32 ${SOURCES} ${HEADERS} ${DEPENDENCIES})
|
||||||
|
@ -69,8 +76,6 @@ else()
|
||||||
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ${DEPENDENCIES})
|
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ${DEPENDENCIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Qt5 COMPONENTS Core Quick Widgets REQUIRED)
|
|
||||||
|
|
||||||
# Because dependencies are typically not available by default on Windows, build bundled code
|
# Because dependencies are typically not available by default on Windows, build bundled code
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
# Target Windows 7 (needed for drivelist module)
|
# Target Windows 7 (needed for drivelist module)
|
||||||
|
|
343
i18n/rpi-imager_nl.ts
Normal file
343
i18n/rpi-imager_nl.ts
Normal file
|
@ -0,0 +1,343 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1" language="nl_NL">
|
||||||
|
<context>
|
||||||
|
<name>DownloadExtractThread</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="166"/>
|
||||||
|
<source>Error writing to storage</source>
|
||||||
|
<translation>Fout bij schrijven naar opslag</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="188"/>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="348"/>
|
||||||
|
<source>Error extracting archive: %1</source>
|
||||||
|
<translation>Fout bij uitpakken archiefbestand: %1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="234"/>
|
||||||
|
<source>Error mounting FAT32 partition</source>
|
||||||
|
<translation>Fout bij mounten FAT32 partitie</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="244"/>
|
||||||
|
<source>Operating system did not mount FAT32 partition</source>
|
||||||
|
<translation>Besturingssysteem heeft FAT32 partitie niet gemount</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="267"/>
|
||||||
|
<source>Error changing to directory '%1'</source>
|
||||||
|
<translation>Fout bij openen map '%1'</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>DownloadThread</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="126"/>
|
||||||
|
<source>Error running diskpart: %1</source>
|
||||||
|
<translation>Fout bij uitvoeren diskpart: %1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="147"/>
|
||||||
|
<source>Error removing existing partitions</source>
|
||||||
|
<translation>Fout bij verwijderen bestaande partities</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="174"/>
|
||||||
|
<source>Error running authopen to gain access to disk device '%1'</source>
|
||||||
|
<translation>Fout bij uitvoeren authopen: '%1'</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="192"/>
|
||||||
|
<source>Cannot open storage device '%1'.</source>
|
||||||
|
<translation>Fout bij openen opslagapparaat '%1'.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="207"/>
|
||||||
|
<source>Write error while zero'ing out MBR</source>
|
||||||
|
<translation>Fout bij wissen MBR</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="219"/>
|
||||||
|
<source>Write error while trying to zero out last part of card.
|
||||||
|
Card could be advertising wrong capacity (possible counterfeit)</source>
|
||||||
|
<translation>Fout bij wissen laatste deel van de SD kaart.
|
||||||
|
Kaart geeft mogelijk onjuiste capaciteit aan (mogelijk counterfeit)</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="523"/>
|
||||||
|
<source>Error writing to storage (while flushing)</source>
|
||||||
|
<translation>Fout bij schrijven naar opslag (tijdens flushen)</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="529"/>
|
||||||
|
<source>Error writing to storage (while fsync)</source>
|
||||||
|
<translation>Fout bij schrijven naar opslag (tijdens fsync)</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="546"/>
|
||||||
|
<source>Download corrupt. Hash does not match</source>
|
||||||
|
<translation>Download corrupt. Hash komt niet overeen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="576"/>
|
||||||
|
<source>Error writing first block (partition table)</source>
|
||||||
|
<translation>Fout bij schrijven naar eerste deel van kaart (partitie tabel)</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="620"/>
|
||||||
|
<source>Error reading from storage.
|
||||||
|
SD card may be broken.</source>
|
||||||
|
<translation>Fout bij lezen van SD kaart. Kaart is mogelijk defect.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="638"/>
|
||||||
|
<source>Verifying write failed. Contents of SD card is different from what was written to it.</source>
|
||||||
|
<translation>Verificatie mislukt. De gegevens die op de SD kaart staan wijken af van wat er naar geschreven is.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>DriveFormatThread</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="63"/>
|
||||||
|
<location filename="../driveformatthread.cpp" line="124"/>
|
||||||
|
<location filename="../driveformatthread.cpp" line="181"/>
|
||||||
|
<source>Error partitioning: %1</source>
|
||||||
|
<translation>Fout bij partitioneren: %1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="84"/>
|
||||||
|
<source>Error starting fat32format</source>
|
||||||
|
<translation>Fout bij starten fat32format</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="94"/>
|
||||||
|
<source>Error running fat32format: %1</source>
|
||||||
|
<translation>Fout bij uitvoeren fat32format: %1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="104"/>
|
||||||
|
<source>Error determining new drive letter</source>
|
||||||
|
<translation>Fout bij vaststellen nieuwe letter van schijfstation</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="109"/>
|
||||||
|
<source>Invalid device: %1</source>
|
||||||
|
<translation>Ongeldig device: %1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="144"/>
|
||||||
|
<source>Error formatting (through udisks2)</source>
|
||||||
|
<translation>Fout bij formatteren (via udisks2)</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="170"/>
|
||||||
|
<source>Error starting sfdisk</source>
|
||||||
|
<translation>Fout bij starten sfdisk</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="192"/>
|
||||||
|
<source>Error starting mkfs.fat</source>
|
||||||
|
<translation>Fout bij starten mkfs.fat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="202"/>
|
||||||
|
<source>Error running mkfs.fat: %1</source>
|
||||||
|
<translation>Fout bij uitvoeren mkfs.fat: %1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="209"/>
|
||||||
|
<source>Formatting not implemented for this platform</source>
|
||||||
|
<translation>Formatteren is niet geimplementeerd op dit besturingssysteem</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ImageWriter</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../imagewriter.cpp" line="152"/>
|
||||||
|
<source>Storage capacity is not large enough.
|
||||||
|
Needs to be at least %1 GB</source>
|
||||||
|
<translation>Opslagcapaciteit niet groot genoeg.
|
||||||
|
Deze dient minimaal %1 GB te zijn</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../imagewriter.cpp" line="158"/>
|
||||||
|
<source>Input file is not a valid disk image.
|
||||||
|
File size %1 bytes is not a multiple of 512 bytes.</source>
|
||||||
|
<translation>Invoerbestand is geen disk image.
|
||||||
|
Bestandsgrootte %1 bytes is geen veelvoud van 512 bytes.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../imagewriter.cpp" line="178"/>
|
||||||
|
<source>Downloading and writing image</source>
|
||||||
|
<translation>Downloaden en schrijven van image</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../imagewriter.cpp" line="379"/>
|
||||||
|
<source>Select image</source>
|
||||||
|
<translation>Selecteer image</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>main</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="23"/>
|
||||||
|
<source>Raspberry Pi Imager v%1</source>
|
||||||
|
<translation>Raspberry Pi Imager v%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="68"/>
|
||||||
|
<location filename="../main.qml" line="276"/>
|
||||||
|
<source>Operating System</source>
|
||||||
|
<translation>Besturingssysteem</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="80"/>
|
||||||
|
<source>CHOOSE OS</source>
|
||||||
|
<translation>SELECTEER OS</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="102"/>
|
||||||
|
<location filename="../main.qml" line="584"/>
|
||||||
|
<source>SD Card</source>
|
||||||
|
<translation>SD kaart</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="114"/>
|
||||||
|
<location filename="../main.qml" line="901"/>
|
||||||
|
<source>CHOOSE SD CARD</source>
|
||||||
|
<translation>SELECTEER SD KAART</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="141"/>
|
||||||
|
<source>WRITE</source>
|
||||||
|
<translation>SCHRIJF</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="156"/>
|
||||||
|
<location filename="../main.qml" line="846"/>
|
||||||
|
<source>Writing... %1%</source>
|
||||||
|
<translation>Schrijven... %1%</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="194"/>
|
||||||
|
<source>CANCEL WRITE</source>
|
||||||
|
<translation>Annuleer schrijven</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="197"/>
|
||||||
|
<location filename="../main.qml" line="843"/>
|
||||||
|
<source>Cancelling...</source>
|
||||||
|
<translation>Annuleren...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="208"/>
|
||||||
|
<source>CANCEL VERIFY</source>
|
||||||
|
<translation>ANNULEER VERIFICATIE</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="211"/>
|
||||||
|
<location filename="../main.qml" line="866"/>
|
||||||
|
<location filename="../main.qml" line="919"/>
|
||||||
|
<source>Finalizing...</source>
|
||||||
|
<translation>Afronden...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="338"/>
|
||||||
|
<location filename="../main.qml" line="895"/>
|
||||||
|
<source>Erase</source>
|
||||||
|
<translation>Wissen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="339"/>
|
||||||
|
<source>Format card as FAT32</source>
|
||||||
|
<translation>Formatteer kaart als FAT32</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="346"/>
|
||||||
|
<source>Use custom</source>
|
||||||
|
<translation>Gebruik eigen bestand</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="347"/>
|
||||||
|
<source>Select a custom .img from your computer</source>
|
||||||
|
<translation>Selecteer een eigen .img bestand</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="354"/>
|
||||||
|
<location filename="../main.qml" line="507"/>
|
||||||
|
<source>Error parsing os_list.json</source>
|
||||||
|
<translation>Fout bij parsen os_list.json</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="378"/>
|
||||||
|
<source>Back</source>
|
||||||
|
<translation>Terug</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="379"/>
|
||||||
|
<source>Go back to main menu</source>
|
||||||
|
<translation>Terug naar hoofdmenu</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="434"/>
|
||||||
|
<source>Released: %1</source>
|
||||||
|
<translation>Release datum: %1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="437"/>
|
||||||
|
<source>Cached on your computer</source>
|
||||||
|
<translation>Opgeslagen op computer</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="439"/>
|
||||||
|
<source>Online - %1 GB download</source>
|
||||||
|
<translation>Online %1 GB download</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="660"/>
|
||||||
|
<source>Mounted as %1</source>
|
||||||
|
<translation>Mounted op %1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="775"/>
|
||||||
|
<source>QUIT APP</source>
|
||||||
|
<translation>AFSLUITEN</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="785"/>
|
||||||
|
<source>CONTINUE</source>
|
||||||
|
<translation>VERDER GAAN</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="825"/>
|
||||||
|
<source>Error downloading OS list from Internet</source>
|
||||||
|
<translation>Fout bij downloaden van lijst met besturingssystemen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="869"/>
|
||||||
|
<source>Verifying... %1%</source>
|
||||||
|
<translation>Verifiëren... %1%</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="887"/>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation>Fout</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="894"/>
|
||||||
|
<source>Write Successful</source>
|
||||||
|
<translation>Klaar met schrijven</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="896"/>
|
||||||
|
<source><b>%2</b> has been erased<br><br>You can now remove the SD card from the reader</source>
|
||||||
|
<translation><b>%2</b> is gewist<br><br>U kunt nu de SD kaart uit de lezer halen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="898"/>
|
||||||
|
<source><b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader</source>
|
||||||
|
<translation type="unfinished"><b>%1</b> is geschreven naar <b>%2</b><br><br>U kunt nu de SD kaart uit de lezer halen</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
</TS>
|
340
i18n/rpi-imager_zh_cn.ts
Normal file
340
i18n/rpi-imager_zh_cn.ts
Normal file
|
@ -0,0 +1,340 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1" language="zh_CN">
|
||||||
|
<context>
|
||||||
|
<name>DownloadExtractThread</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="166"/>
|
||||||
|
<source>Error writing to storage</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="188"/>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="348"/>
|
||||||
|
<source>Error extracting archive: %1</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="234"/>
|
||||||
|
<source>Error mounting FAT32 partition</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="244"/>
|
||||||
|
<source>Operating system did not mount FAT32 partition</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadextractthread.cpp" line="267"/>
|
||||||
|
<source>Error changing to directory '%1'</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>DownloadThread</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="126"/>
|
||||||
|
<source>Error running diskpart: %1</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="147"/>
|
||||||
|
<source>Error removing existing partitions</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="174"/>
|
||||||
|
<source>Error running authopen to gain access to disk device '%1'</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="192"/>
|
||||||
|
<source>Cannot open storage device '%1'.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="207"/>
|
||||||
|
<source>Write error while zero'ing out MBR</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="219"/>
|
||||||
|
<source>Write error while trying to zero out last part of card.
|
||||||
|
Card could be advertising wrong capacity (possible counterfeit)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="523"/>
|
||||||
|
<source>Error writing to storage (while flushing)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="529"/>
|
||||||
|
<source>Error writing to storage (while fsync)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="546"/>
|
||||||
|
<source>Download corrupt. Hash does not match</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="576"/>
|
||||||
|
<source>Error writing first block (partition table)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="620"/>
|
||||||
|
<source>Error reading from storage.
|
||||||
|
SD card may be broken.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../downloadthread.cpp" line="638"/>
|
||||||
|
<source>Verifying write failed. Contents of SD card is different from what was written to it.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>DriveFormatThread</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="63"/>
|
||||||
|
<location filename="../driveformatthread.cpp" line="124"/>
|
||||||
|
<location filename="../driveformatthread.cpp" line="181"/>
|
||||||
|
<source>Error partitioning: %1</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="84"/>
|
||||||
|
<source>Error starting fat32format</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="94"/>
|
||||||
|
<source>Error running fat32format: %1</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="104"/>
|
||||||
|
<source>Error determining new drive letter</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="109"/>
|
||||||
|
<source>Invalid device: %1</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="144"/>
|
||||||
|
<source>Error formatting (through udisks2)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="170"/>
|
||||||
|
<source>Error starting sfdisk</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="192"/>
|
||||||
|
<source>Error starting mkfs.fat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="202"/>
|
||||||
|
<source>Error running mkfs.fat: %1</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../driveformatthread.cpp" line="209"/>
|
||||||
|
<source>Formatting not implemented for this platform</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ImageWriter</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../imagewriter.cpp" line="152"/>
|
||||||
|
<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"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Downloading and writing image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../imagewriter.cpp" line="379"/>
|
||||||
|
<source>Select image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>main</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="23"/>
|
||||||
|
<source>Raspberry Pi Imager v%1</source>
|
||||||
|
<translation>树莓派镜像烧录 v%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="68"/>
|
||||||
|
<location filename="../main.qml" line="276"/>
|
||||||
|
<source>Operating System</source>
|
||||||
|
<translation>操作系统</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="80"/>
|
||||||
|
<source>CHOOSE OS</source>
|
||||||
|
<translation>选择操作系统</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="102"/>
|
||||||
|
<location filename="../main.qml" line="584"/>
|
||||||
|
<source>SD Card</source>
|
||||||
|
<translation>SD卡</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="114"/>
|
||||||
|
<location filename="../main.qml" line="901"/>
|
||||||
|
<source>CHOOSE SD CARD</source>
|
||||||
|
<translation>选择SD卡</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="141"/>
|
||||||
|
<source>WRITE</source>
|
||||||
|
<translation>烧录</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="156"/>
|
||||||
|
<location filename="../main.qml" line="846"/>
|
||||||
|
<source>Writing... %1%</source>
|
||||||
|
<translation>写入中...%1%</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="194"/>
|
||||||
|
<source>CANCEL WRITE</source>
|
||||||
|
<translation>取消写入</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="197"/>
|
||||||
|
<location filename="../main.qml" line="843"/>
|
||||||
|
<source>Cancelling...</source>
|
||||||
|
<translation>取消中...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="208"/>
|
||||||
|
<source>CANCEL VERIFY</source>
|
||||||
|
<translation>取消验证</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="211"/>
|
||||||
|
<location filename="../main.qml" line="866"/>
|
||||||
|
<location filename="../main.qml" line="919"/>
|
||||||
|
<source>Finalizing...</source>
|
||||||
|
<translation>完成中...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="338"/>
|
||||||
|
<location filename="../main.qml" line="895"/>
|
||||||
|
<source>Erase</source>
|
||||||
|
<translation>擦除</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="339"/>
|
||||||
|
<source>Format card as FAT32</source>
|
||||||
|
<translation>格式化SD卡为FAT32格式</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="346"/>
|
||||||
|
<source>Use custom</source>
|
||||||
|
<translation>使用自定义镜像</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="347"/>
|
||||||
|
<source>Select a custom .img from your computer</source>
|
||||||
|
<translation>使用下载的系统镜像文件烧录</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="354"/>
|
||||||
|
<location filename="../main.qml" line="507"/>
|
||||||
|
<source>Error parsing os_list.json</source>
|
||||||
|
<translation>解析 os_list.json 错误</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="378"/>
|
||||||
|
<source>Back</source>
|
||||||
|
<translation>返回</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="379"/>
|
||||||
|
<source>Go back to main menu</source>
|
||||||
|
<translation>回到主页</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="434"/>
|
||||||
|
<source>Released: %1</source>
|
||||||
|
<translation>解压中...%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="437"/>
|
||||||
|
<source>Cached on your computer</source>
|
||||||
|
<translation>在你的电脑上缓存</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="439"/>
|
||||||
|
<source>Online - %1 GB download</source>
|
||||||
|
<translation>已下载:%1 GB</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="660"/>
|
||||||
|
<source>Mounted as %1</source>
|
||||||
|
<translation>挂载在:%1 上</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="775"/>
|
||||||
|
<source>QUIT APP</source>
|
||||||
|
<translation>退出</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="785"/>
|
||||||
|
<source>CONTINUE</source>
|
||||||
|
<translation>继续</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="825"/>
|
||||||
|
<source>Error downloading OS list from Internet</source>
|
||||||
|
<translation>下载镜像列表错误</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="869"/>
|
||||||
|
<source>Verifying... %1%</source>
|
||||||
|
<translation>验证文件中...%1%</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="887"/>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation>错误</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="894"/>
|
||||||
|
<source>Write Successful</source>
|
||||||
|
<translation>烧录成功</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="896"/>
|
||||||
|
<source><b>%2</b> has been erased<br><br>You can now remove the SD card from the reader</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.qml" line="898"/>
|
||||||
|
<source><b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader</source>
|
||||||
|
<translation><b>%1</b> 已经成功烧录到 <b>%2</b><br><br>上了,你可以卸载SD卡了</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
</TS>
|
6
i18n/translations.qrc
Normal file
6
i18n/translations.qrc
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<RCC>
|
||||||
|
<qresource prefix="/i18n">
|
||||||
|
<file>rpi-imager_nl.qm</file>
|
||||||
|
<file>rpi-imager_zh_cn.qm</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
5
main.cpp
5
main.cpp
|
@ -16,6 +16,8 @@
|
||||||
#include <QtWidgets/QApplication>
|
#include <QtWidgets/QApplication>
|
||||||
#include <QMessageLogContext>
|
#include <QMessageLogContext>
|
||||||
#include <QQuickWindow>
|
#include <QQuickWindow>
|
||||||
|
#include <QTranslator>
|
||||||
|
#include <QLocale>
|
||||||
|
|
||||||
static QTextStream cerr(stderr);
|
static QTextStream cerr(stderr);
|
||||||
|
|
||||||
|
@ -40,6 +42,9 @@ int main(int argc, char *argv[])
|
||||||
ImageWriter imageWriter;
|
ImageWriter imageWriter;
|
||||||
NetworkAccessManagerFactory namf;
|
NetworkAccessManagerFactory namf;
|
||||||
QQmlApplicationEngine engine;
|
QQmlApplicationEngine engine;
|
||||||
|
QTranslator translator;
|
||||||
|
if (translator.load(QLocale(), "rpi-imager", "_", QLatin1String(":/i18n")))
|
||||||
|
QCoreApplication::installTranslator(&translator);
|
||||||
|
|
||||||
/* Parse commandline arguments (if any) */
|
/* Parse commandline arguments (if any) */
|
||||||
QString customRepo;
|
QString customRepo;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue