From b66a2b158e3dfea6c073daa3845f7bdb32277644 Mon Sep 17 00:00:00 2001 From: Odudex Date: Mon, 9 Sep 2024 11:06:11 -0300 Subject: [PATCH 01/20] Krux works without a camera reduced camera loading time --- src/krux/camera.py | 21 +++++++++++++++++--- src/krux/pages/home_pages/mnemonic_backup.py | 6 +++++- src/krux/pages/qr_capture.py | 9 +++++++++ 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/krux/camera.py b/src/krux/camera.py index ee30e594..4ba8a339 100644 --- a/src/krux/camera.py +++ b/src/krux/camera.py @@ -31,6 +31,9 @@ GC0328_ID = 0x9D # Dock GC2145_ID = 0x45 # Yahboom +COLOR_MODE = 0 +GRAYSCALE_MODE = 1 + class Camera: """Camera is a singleton interface for interacting with the device's camera""" @@ -39,13 +42,18 @@ def __init__(self): self.initialized = False self.cam_id = None self.antiglare_enabled = False - self.initialize_sensor() + self.mode = None + try: + self.initialize_sensor() + sensor.run(0) + except Exception as e: + print("Camera not found:", e) def initialize_sensor(self, grayscale=False): """Initializes the camera""" self.initialized = False self.antiglare_enabled = False - self.cam_id = sensor.get_id() + self.mode = COLOR_MODE if self.cam_id in (OV7740_ID, GC2145_ID): sensor.reset(freq=18200000) if board.config["type"] == "cube": @@ -54,9 +62,11 @@ def initialize_sensor(self, grayscale=False): sensor.set_vflip(1) else: sensor.reset() + self.cam_id = sensor.get_id() if grayscale and self.cam_id != GC2145_ID: # GC2145 does not support grayscale sensor.set_pixformat(sensor.GRAYSCALE) + self.mode = GRAYSCALE_MODE else: sensor.set_pixformat(sensor.RGB565) if self.cam_id == OV5642_ID: @@ -201,8 +211,13 @@ def snapshot(self): def initialize_run(self): """Initializes and runs sensor""" - self.initialize_sensor() + if self.mode is None: + raise ValueError("No camera found") + if self.mode != COLOR_MODE: + self.initialize_sensor() sensor.run(1) + if self.antiglare_enabled: + self.disable_antiglare() def stop_sensor(self): """Stops capturing from sensor""" diff --git a/src/krux/pages/home_pages/mnemonic_backup.py b/src/krux/pages/home_pages/mnemonic_backup.py index 26b892a7..15ddcfa8 100644 --- a/src/krux/pages/home_pages/mnemonic_backup.py +++ b/src/krux/pages/home_pages/mnemonic_backup.py @@ -202,7 +202,11 @@ def tiny_seed(self): tiny_seed.export() # Allow to print on thermal printer only - if Settings().hardware.printer.driver == THERMAL_ADAFRUIT_TXT: + if ( + Settings().hardware.printer.driver == THERMAL_ADAFRUIT_TXT + and self.ctx.camera.mode is not None + ): + # TinySeed printing requires a camera frame buffer to draw in. if self.print_prompt(t("Print Tiny Seed?")): tiny_seed.print_tiny_seed() return MENU_CONTINUE diff --git a/src/krux/pages/qr_capture.py b/src/krux/pages/qr_capture.py index 637742eb..5d2abe31 100644 --- a/src/krux/pages/qr_capture.py +++ b/src/krux/pages/qr_capture.py @@ -22,6 +22,7 @@ import board import time from . import Page +from ..display import FONT_HEIGHT from ..input import PRESSED from ..themes import theme from ..qr import QRPartParser, FORMAT_UR @@ -58,6 +59,14 @@ def anti_glare_control(self): else: self.ctx.display.draw_centered_text(t("Anti-glare disabled")) time.sleep_ms(ANTI_GLARE_WAIT_TIME) + # Erase the message from the screen + self.ctx.display.fill_rectangle( + 0, + (self.ctx.display.height() - FONT_HEIGHT) // 2, + self.ctx.display.width(), + FONT_HEIGHT, + theme.bg_color + ) self.ctx.display.to_landscape() self.ctx.input.reset_ios_state() From 5b8c57f2045e4252f6d360029aef9fc508f8da58 Mon Sep 17 00:00:00 2001 From: Odudex Date: Mon, 9 Sep 2024 11:07:01 -0300 Subject: [PATCH 02/20] detach battery status drawing of menu drawing --- src/krux/pages/__init__.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/krux/pages/__init__.py b/src/krux/pages/__init__.py index da41ad50..2647c0a1 100644 --- a/src/krux/pages/__init__.py +++ b/src/krux/pages/__init__.py @@ -24,6 +24,7 @@ import time import board import lcd +import _thread from .keypads import Keypad from ..themes import theme, WHITE, GREEN, DARKGREY from ..input import ( @@ -643,9 +644,10 @@ def draw_status_bar(self): STATUS_BAR_HEIGHT, theme.info_bg_color, ) - self.draw_battery_indicator() self.draw_network_indicator() self.draw_wallet_indicator() + if self.ctx.power_manager.has_battery(): + _thread.start_new_thread(self.draw_battery_indicator, ()) # self.draw_ram_indicator() @@ -684,9 +686,6 @@ def draw_status_bar(self): def draw_battery_indicator(self): """Draws a battery icon with depletion proportional to battery voltage""" - if not self.ctx.power_manager.has_battery(): - return - charge = self.ctx.power_manager.battery_charge_remaining() if self.ctx.power_manager.usb_connected(): battery_color = theme.go_color From 0da029d0db7c10917459835896d084858df11694 Mon Sep 17 00:00:00 2001 From: Odudex Date: Mon, 9 Sep 2024 11:22:10 -0300 Subject: [PATCH 03/20] update version --- mkdocs.yml | 2 +- pyproject.toml | 2 +- src/krux/metadata.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 769ddfca..0ca1297e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -51,7 +51,7 @@ edit_uri: edit/main/docs docs_dir: docs site_dir: public extra: - latest_krux: krux-v24.09.beta10 + latest_krux: krux-v24.09.beta11 latest_installer: v0.0.2-alpha latest_installer_rpm: krux-installer-0.0.2_alpha-1.x86_64.rpm latest_installer_deb: krux-installer_0.0.2-alpha_amd64.deb diff --git a/pyproject.toml b/pyproject.toml index dbf9db5e..ae9119e7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,7 +22,7 @@ [tool.poetry] name = "krux" -version = "24.09.beta10" +version = "24.09.beta11" description = "Open-source signing device firmware for Bitcoin" authors = ["Jeff S "] diff --git a/src/krux/metadata.py b/src/krux/metadata.py index 63860fce..da978002 100644 --- a/src/krux/metadata.py +++ b/src/krux/metadata.py @@ -19,5 +19,5 @@ # 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. -VERSION = "24.09.beta10" +VERSION = "24.09.beta11" SIGNER_PUBKEY = "03339e883157e45891e61ca9df4cd3bb895ef32d475b8e793559ea10a36766689b" From d100bb57e2b13c840d3508df9f632ad8d1ee916d Mon Sep 17 00:00:00 2001 From: Odudex Date: Mon, 9 Sep 2024 13:51:28 -0300 Subject: [PATCH 04/20] add tests and format --- src/krux/camera.py | 4 +-- src/krux/pages/qr_capture.py | 2 +- tests/test_camera.py | 61 ++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 4 deletions(-) diff --git a/src/krux/camera.py b/src/krux/camera.py index 4ba8a339..fae0743a 100644 --- a/src/krux/camera.py +++ b/src/krux/camera.py @@ -39,7 +39,6 @@ class Camera: """Camera is a singleton interface for interacting with the device's camera""" def __init__(self): - self.initialized = False self.cam_id = None self.antiglare_enabled = False self.mode = None @@ -51,9 +50,7 @@ def __init__(self): def initialize_sensor(self, grayscale=False): """Initializes the camera""" - self.initialized = False self.antiglare_enabled = False - self.mode = COLOR_MODE if self.cam_id in (OV7740_ID, GC2145_ID): sensor.reset(freq=18200000) if board.config["type"] == "cube": @@ -63,6 +60,7 @@ def initialize_sensor(self, grayscale=False): else: sensor.reset() self.cam_id = sensor.get_id() + self.mode = COLOR_MODE if grayscale and self.cam_id != GC2145_ID: # GC2145 does not support grayscale sensor.set_pixformat(sensor.GRAYSCALE) diff --git a/src/krux/pages/qr_capture.py b/src/krux/pages/qr_capture.py index 5d2abe31..8f9bdc1a 100644 --- a/src/krux/pages/qr_capture.py +++ b/src/krux/pages/qr_capture.py @@ -65,7 +65,7 @@ def anti_glare_control(self): (self.ctx.display.height() - FONT_HEIGHT) // 2, self.ctx.display.width(), FONT_HEIGHT, - theme.bg_color + theme.bg_color, ) self.ctx.display.to_landscape() self.ctx.input.reset_ios_state() diff --git a/tests/test_camera.py b/tests/test_camera.py index 52229c2b..a8c8fc78 100644 --- a/tests/test_camera.py +++ b/tests/test_camera.py @@ -43,6 +43,67 @@ def test_initialize_sensors(mocker, m5stickv): ) +def test_fail_to_initialize_sensor(mocker, m5stickv): + from krux.camera import Camera + + # Mock sensor.reset to raise an exception + mocker.patch("sensor.reset", side_effect=Exception) + c = Camera() + with pytest.raises(Exception): + c.initialize_sensor() + assert c.mode == None + + +def test_initialize_run_no_sensor(mocker, m5stickv): + from krux.camera import Camera + + mocker.patch("sensor.reset", side_effect=Exception) + c = Camera() + try: + # Fails to initialize at boot + c.initialize_sensor() + except: + pass + with pytest.raises(ValueError, match="No camera found"): + c.initialize_run() + assert c.mode == None + + +def test_initialize_run(mocker, m5stickv): + from krux.camera import Camera, COLOR_MODE + + c = Camera() + c.initialize_sensor() + c.initialize_run() + assert c.mode == COLOR_MODE + assert c.cam_id is not None + assert c.antiglare_enabled == False + + +def test_initialize_run_from_grayscale(mocker, m5stickv): + from krux.camera import Camera, COLOR_MODE, GRAYSCALE_MODE + + c = Camera() + c.initialize_sensor() + c.mode = GRAYSCALE_MODE + c.initialize_run() + assert c.mode == COLOR_MODE + assert c.cam_id is not None + assert c.antiglare_enabled == False + + +def test_initialize_run_with_anti_glair_enabled(mocker, m5stickv): + from krux.camera import Camera, COLOR_MODE, GRAYSCALE_MODE + + c = Camera() + c.initialize_sensor() + c.antiglare_enabled = True + c.initialize_run() + assert c.mode == COLOR_MODE + assert c.cam_id is not None + assert c.antiglare_enabled == False + + def test_toggle_antiglare(mocker, m5stickv): import krux from krux.camera import Camera, OV7740_ID, OV2640_ID, GC0328_ID, GC2145_ID From caf3d5d35f714d9944245d7cdafa6890f500aafe Mon Sep 17 00:00:00 2001 From: Odudex Date: Mon, 9 Sep 2024 15:33:16 -0300 Subject: [PATCH 05/20] changelog sketch for v24.09.0 --- CHANGELOG.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74b3710b..8d6fb608 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,65 @@ +# Changelog 24.09.0 - September 16, 2024 + +### New Device Support: WonderMV +Manufactured by HiWonder, the WonderMV is similar to Yahboom K210 Module, with a few differences, including a metal enclosure, USB-C port, and screen backlight control. + +### Added Support for East Asian Languages - Korean and Simplified Chinese +After implementing low-level support for different glyph form factors, we were finally able to introduce the long-awaited Korean language translation. Simplified Chinese support followed shortly thereafter. + +### Faster PSBT Scanning +Reduced the time required to scan larger PSBTs by optimizing processing speed. + +### Improved QR Code Scanning +Enhanced scan success rates in challenging conditions, such as reduced focus or scanning from greater distances. + +### UI Standardization +The positions of "Yes" and "No" in prompts have been inverted to standardize the UI. Affirmative actions, such as "Yes," "Go," and "Proceed," will now be positioned on the right, while "No," "Esc," and "Back" will be on the left. + +### Enhanced Scanning Progress Bars +QR code progress bars now provide more detailed information. For UR PSBTs, the progress bar indicates when a valid frame is captured, while for BBQR, it displays the index or position of the last successfully scanned frame. + +### Mnemoniocs Editor - Loading Mnemonics +When manually loading an existing mnemonic, you can now correct typos and mistakes during the review stage by simply tapping or navigating to the incorrect words. The checksum word will be highlighted in red if the entered mnemonic is invalid to help detect eventual problems. + +### Mnemonics Editor - New Mnemonic +When generating new mnemonics through dice rolls or camera images, you can now modify the entropy by changing some of the mnemonic words. The final word will dynamically adjust to always produce a valid checksum. + +### Support for Scanning Various Binary Grid Formats +In addition to TinySeed, the camera can now scan and load mnemonics from equivalent formats, such as OneKey KeyTag, or even generic binary grids, like spreadsheets with colored, squared cells. + +### Generate Double Mnemonics from Camera +When generating a new mnemonic using the camera, users can now choose to create a "Double Mnemonic," in addition to the standard 12 and 24-word options. This feature generates a 24-word mnemonic that, when split in half, forms two valid 12-word mnemonics. + +### Increased Valid Touch Surface +To improve touch accuracy, especially on small touchscreens, the touch surface area of buttons has been increased to make better use of the available screen space. + +### Add Account Descriptor Type Support +Krux now accepts urtype.Account type QR code descriptors. + +### Enhanced File Exploring +File explorer now better differentiate files from folders. + +### Camera Adjustments for Yahboom and WondeMV +Sensitivity and exposure adjustments were made to the GC2145 sensor, enhancing the scanning success rate for Yahboom and WondeMV devices. + +### About Shows Board Type +Ensure you flashed the correct firmware for your device consulting the "About" menu item. + +### Simplified Translations +Messages and terms were simplified to reduce firmware size and maintenance. + +### Bugfix - Signing Messages with ":" Character +Fixed an issue where signing messages containing the ":" character would result in invalid signatures when signing at addresses. + +### Bugfix - Import of Base64 Encoded PSBTs from SD Card +Fixed an issue where base64 encoded PSBTs imported from an SD card were not correctly detected and parsed. + +### Translation Removed: Polish +Polish translation was removed due to the lack of maintainers and known users. + +### Code Refactor and Optimizations +Several optimizations to increase performance and code quality. + # Changelog 24.07.0 - July 15, 2024 ### Maix Cube Support From ff24da84827dab8bfa102e64fe87a39314452db6 Mon Sep 17 00:00:00 2001 From: Odudex Date: Mon, 16 Sep 2024 15:55:23 -0300 Subject: [PATCH 06/20] translations optimizations --- i18n/i18n.py | 90 +- src/krux/krux_settings.py | 81 +- src/krux/pages/__init__.py | 25 +- src/krux/pages/settings_page.py | 3 + src/krux/translations.py | 2974 ----------------------------- src/krux/translations/__init__.py | 33 + src/krux/translations/de_DE.py | 317 +++ src/krux/translations/es_MX.py | 317 +++ src/krux/translations/fr_FR.py | 317 +++ src/krux/translations/ko_KR.py | 317 +++ src/krux/translations/nl_NL.py | 317 +++ src/krux/translations/pt_BR.py | 317 +++ src/krux/translations/ru_RU.py | 317 +++ src/krux/translations/tr_TR.py | 317 +++ src/krux/translations/vi_VN.py | 317 +++ src/krux/translations/zh_CN.py | 317 +++ 16 files changed, 3330 insertions(+), 3046 deletions(-) delete mode 100644 src/krux/translations.py create mode 100644 src/krux/translations/__init__.py create mode 100644 src/krux/translations/de_DE.py create mode 100644 src/krux/translations/es_MX.py create mode 100644 src/krux/translations/fr_FR.py create mode 100644 src/krux/translations/ko_KR.py create mode 100644 src/krux/translations/nl_NL.py create mode 100644 src/krux/translations/pt_BR.py create mode 100644 src/krux/translations/ru_RU.py create mode 100644 src/krux/translations/tr_TR.py create mode 100644 src/krux/translations/vi_VN.py create mode 100644 src/krux/translations/zh_CN.py diff --git a/i18n/i18n.py b/i18n/i18n.py index 913f100d..24ed79fb 100644 --- a/i18n/i18n.py +++ b/i18n/i18n.py @@ -22,13 +22,36 @@ import binascii import sys import json -from os import listdir, walk -from os.path import isfile, exists, join, basename +from os import listdir, walk, mkdir +from os.path import isfile, isdir, exists, join, basename import re SRC_DIR = "../src" TRANSLATION_FILES_DIR = "translations" +KRUX_LICENSE = """# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +""" + def find_translation_slugs(): """Searches the src directory for all 'slugs' that should be translated @@ -167,8 +190,13 @@ def remove_unnecessary(): def bake_translations(): - """Bakes all translations into a translations.py file inside the krux namespace""" - translation_table = {} + """Bakes individual translation tables into separate files inside the krux namespace within a 'translations' subfolder.""" + translations_dir = join(SRC_DIR, "krux", "translations") + + # Create the translations subfolder if it doesn't exist + if not isdir(translations_dir): + mkdir(translations_dir) + translation_filenames = [ f for f in listdir(TRANSLATION_FILES_DIR) @@ -183,39 +211,33 @@ def bake_translations(): lookup = {} for slug, translation in list(translations.items()): lookup[binascii.crc32(slug.encode("utf-8"))] = translation - translation_table[basename(translation_filename).split(".")[0]] = lookup - with open( - join(SRC_DIR, "krux", "translations.py"), "w", encoding="utf8", newline="\n" - ) as translations: - translations.write( - """# The MIT License (MIT) - -# Copyright (c) 2021-2024 Krux contributors - -# 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. + language_code = ( + basename(translation_filename).split(".")[0].replace("-", "_") + ) -# 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.\n""" + # Write the individual translation table to a separate Python file in the 'translations' subfolder + with open( + join(translations_dir, f"{language_code}.py"), + "w", + encoding="utf8", + newline="\n", + ) as language_file: + language_file.write(KRUX_LICENSE) + language_file.write("# pylint: disable=C0301\n") + language_file.write(f"translation_table = ") + language_file.write(repr(lookup)) + language_file.write("\n") + print("Baked: " + translations_dir + f"/{language_code}.py") + # Create a file with a list of all available languages + with open(join(translations_dir, "__init__.py"), "w", encoding="utf8") as init_file: + init_file.write(KRUX_LICENSE) + init_file.write("available_languages = [") + init_file.write( + ", ".join([f'"{basename(f).split(".")[0]}"' for f in translation_filenames]) ) - translations.write("# pylint: disable=C0301\n") - translations.write("translation_table = ") - translations.write(repr(translation_table)) - translations.write("\n") - print("Baked " + SRC_DIR + "/krux/" + "translations.py") + init_file.write("]") + init_file.write("\n") def create_translation_file(locale): diff --git a/src/krux/krux_settings.py b/src/krux/krux_settings.py index c8f02916..7c857cef 100644 --- a/src/krux/krux_settings.py +++ b/src/krux/krux_settings.py @@ -30,11 +30,11 @@ MAIN_TXT, TEST_TXT, ) -from .translations import translation_table from .key import SCRIPT_LONG_NAMES BAUDRATES = [1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200] +DEFAULT_LOCALE = "en-US" DEFAULT_TX_PIN = ( board.config["board_info"]["CONNEXT_A"] @@ -54,20 +54,61 @@ THERMAL_ADAFRUIT_TXT = "thermal/adafruit" -def translations(locale): - """Returns the translations map for the given locale""" - if locale in translation_table: - return translation_table[locale] - return None - - def t(slug): """Translates a slug according to the current locale""" + if not locale_control.translation: + return slug slug_id = binascii.crc32(slug.encode("utf-8")) - lookup = translations(Settings().i18n.locale) - if not lookup or slug_id not in lookup: + if slug_id not in locale_control.translation: return slug - return lookup[slug_id] + return locale_control.translation[slug_id] + + +class LocaleControl: + """Manages the current locale and available translations""" + + def __init__(self): + self.translation = None + self.locales = [] + self.update_locales() + + def update_locales(self): + """Updates the list of available locales""" + from .translations import available_languages + + self.locales = [] + self.locales.append(DEFAULT_LOCALE) + self.locales.extend(available_languages) + + def load_locale(self, locale): + """Loads translation based on the given locale""" + + if locale == DEFAULT_LOCALE: + self.translation = None + return + module_path = "krux.translations.{}".format(locale.replace('-', '_')) + translation_module = __import__(module_path) + # Navigate to the nested module (translations.) + for part in module_path.split(".")[1:]: + translation_module = getattr(translation_module, part) + + self.translation = getattr(translation_module, "translation_table") + + +locale_control = LocaleControl() + + +class I18nSettings(SettingsNamespace): + """I18n-specific settings""" + + namespace = "settings.i18n" + locale = CategorySetting("locale", DEFAULT_LOCALE, locale_control.locales) + + def label(self, attr): + """Returns a label for UI when given a setting name or namespace""" + return { + "locale": t("Locale"), + }[attr] class DefaultWallet(SettingsNamespace): @@ -89,22 +130,6 @@ def label(self, attr): }[attr] -class I18nSettings(SettingsNamespace): - """I18n-specific settings""" - - namespace = "settings.i18n" - DEFAULT_LOCALE = "en-US" - locale = CategorySetting( - "locale", DEFAULT_LOCALE, list(translation_table.keys()) + [DEFAULT_LOCALE] - ) - - def label(self, attr): - """Returns a label for UI when given a setting name or namespace""" - return { - "locale": t("Locale"), - }[attr] - - class ThermalSettings(SettingsNamespace): """Thermal printer settings""" @@ -420,3 +445,5 @@ def label(self, attr): } return main_menu[attr] + +locale_control.load_locale(Settings().i18n.locale) diff --git a/src/krux/pages/__init__.py b/src/krux/pages/__init__.py index 2647c0a1..ae0a0d34 100644 --- a/src/krux/pages/__init__.py +++ b/src/krux/pages/__init__.py @@ -653,35 +653,38 @@ def draw_status_bar(self): # def draw_ram_indicator(self): # """Draws the amount of free RAM in the status bar +recently-collected""" + # def strnum(_in): - # large_units = ("","K","M") + # large_units = ("", "K", "M") # value = _in # for i in range(len(large_units)): # unit = large_units[i] # if value < 2**10: # break - # if i+1 < len(large_units): + # if i + 1 < len(large_units): # value /= 2**10 # if value == int(value): # fmt = "%d" + unit # else: - # if value < 1: - # fmt = "%0.3f" + unit - # elif value < 10: - # fmt = "%.2f" + unit - # elif value < 100: - # fmt = "%.1f" + unit - # else: - # fmt = "%d" + unit + # if value < 1: + # fmt = "%0.3f" + unit + # elif value < 10: + # fmt = "%.2f" + unit + # elif value < 100: + # fmt = "%.1f" + unit + # else: + # fmt = "%d" + unit # return fmt % value # pre_collect = gc.mem_free() # gc.collect() # post_collect = gc.mem_free() - # ram_text = "RAM: " + strnum(post_collect) + " +" + strnum(post_collect - pre_collect) + # ram_text = ( + # "RAM: " + strnum(post_collect) + " +" + strnum(post_collect - pre_collect) + # ) # self.ctx.display.draw_string(12, 0, ram_text, GREEN) def draw_battery_indicator(self): diff --git a/src/krux/pages/settings_page.py b/src/krux/pages/settings_page.py index 06551dd8..fe56e7e1 100644 --- a/src/krux/pages/settings_page.py +++ b/src/krux/pages/settings_page.py @@ -40,6 +40,7 @@ TouchSettings, ButtonsSettings, t, + locale_control, ) from ..input import BUTTON_ENTER, BUTTON_PAGE, BUTTON_PAGE_PREV, BUTTON_TOUCH from ..sd_card import SDHandler @@ -289,6 +290,8 @@ def category_setting(self, settings_namespace, setting): new_category = categories[(i - 1) % len(categories)] setting.__set__(settings_namespace, new_category) break + if setting.attr == "locale": + locale_control.load_locale(new_category) if setting.attr == "theme": theme.update() if setting.attr == "brightness": diff --git a/src/krux/translations.py b/src/krux/translations.py deleted file mode 100644 index cc4b7f82..00000000 --- a/src/krux/translations.py +++ /dev/null @@ -1,2974 +0,0 @@ -# The MIT License (MIT) - -# Copyright (c) 2021-2024 Krux contributors - -# 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. -# pylint: disable=C0301 -translation_table = { - "de-DE": { - 232475068: "% des Betrags.", - 1185266064: "%d von %d Multisig", - 1503087751: "%d bis %d ", - 1178563089: "%s wurde entfernt.", - 1092222515: "(%d insgesamt)", - 3348584292: "(Experimental)", - 1099786887: "(nur zur Betrachtung)", - 2739590230: "12 Wörter", - 1310058127: "24 Wörter", - 1949634023: "Über", - 4287534872: "Annahme akzeptieren?", - 2995482424: "Konto", - 2415648848: "Konto #0 würde angenommen", - 1043817877: "Kontoindex", - 3439746594: "Wallet-Passphrase hinzufügen oder ändern?", - 2143824150: "Zusätzliche Entropie von der Kamera für den AES-CBC-Modus erforderlich", - 3270727197: "Adresse", - 900375497: "Richte Kamera und Sicherungsplatte richtig aus.", - 88746165: "Blendschutz deaktiviert", - 1521033296: "Blendschutz aktiviert", - 3857613120: "Aussehen", - 1056821534: "Bist Du sicher?", - 1868069640: "BGR-Farben", - 3455872521: "Zurück", - 4151330982: "Zurück zum Menü", - 2756316330: "Mnemonik-Backup", - 2256777600: "Ungültige Signatur", - 3937333362: "Baudrate", - 2046615409: "Binäres Gitter", - 928727036: "Randpolsterung", - 2519455027: "Helligkeit", - 2363604010: "Tasten", - 2038226551: "Entprellung der Tasten", - 3138204438: "Aufnahme abgebrochen", - 1207696150: "Change Adresse", - 3126552510: "Change Adressen", - 1583186953: "Thema ändern und neu starten?", - 3768416405: "Change:", - 388908871: "Änderungen bleiben bis zum Herunterfahren bestehen.", - 3442025874: "Prüfe SD-Karte", - 3119547911: "Überprüfen, ob diese Adresse zu dieser Wallet gehört?", - 1187826970: "Überprüfte %d Adresse ohne Übereinstimmungen.", - 2470115694: "Suche nach SD-Karte..", - 1851578965: "Untergeordneter Index", - 4094072796: "Erstelle QR-Code", - 167798282: "QR-Code aus Text erzeugen?", - 678449760: "Erstellt:", - 3513215254: "Benutzerdefinierte QR-Code", - 3585411775: "Anpassen", - 534274978: "Wenn Sie Ihr Wallet anpassen, wird ein neuer Schlüssel generiert.", - 124617190: "Schnitttiefe", - 597912140: "Cut-Methode", - 2504034831: "Dezimal", - 2751113454: "Entschlüsseln?", - 1272005728: "Standard-Wallet", - 4102535566: "Tiefe pro Durchgang", - 1712856005: "Deskriptor-Adressen", - 3278654271: "Bildschirm", - 3895447625: "Schalten Sie das Gerät nicht aus, es kann eine Weile dauern.", - 3836852788: "Fertig?", - 690625786: "Doppelte Gedächtnisstütze", - 382368239: "Driver", - 3582575312: "Verschlüsselt", - 1244124409: "Verschlüsselter QR-Code", - 2968548114: "Verschlüsselte Mnemonic wurde nicht gespeichert", - 781419966: "Speicherung der verschlüsselten Mnemonic mit ID:", - 350279787: "Verschlüsselung", - 2601598799: "Verschlüsselungsmodus", - 1821513079: "Geben Sie %d BIP-39 Wörter ein.", - 3504179008: "Gib jedes Wort Deiner BIP-39 Mnemonic als Zahl von 1 bis 2048 ein.", - 1100685007: "Gib jedes Wort Deiner BIP-39 Mnemonic als Hexadezimalzahl von 1 bis 800 ein.", - 4090266642: "Gib jedes Wort Deiner BIP-39 Mnemonic als Oktalzahl von 1 bis 4000 ein.", - 2780625730: "Gib jedes Wort Deiner BIP-39 Mnemonic ein.", - 889040671: "Fehler:", - 1505332462: "Esc", - 3838465623: "Dateien durchsuchen?", - 4170881190: "Auf SD-Karte exportieren..", - 1711312434: "Öffentlicher Schlüssel", - 3981762528: "Werkeinstellungen", - 383371114: "Entschlüsselung fehlgeschlagen", - 3048830188: "PSBT konnte nicht geladen werden", - 4192663412: "Adresse konnte nicht geladen werden", - 1996021743: "Schlüssel konnte nicht geladen werden", - 1108715658: "Nachricht konnte nicht geladen werden", - 1081425878: "Mnemonic konnte nicht geladen werden", - 928667220: "Ausgabedeskriptor konnte nicht geladen werden", - 1620572516: "Passphrase konnte nicht geladen werden", - 2946146830: "Mnemonic konnte nicht gespeichert werden", - 262248294: "Gebühr:", - 104500973: "Vorschubgeschwindigkeit", - 3313339187: "Dateiname", - 1982637349: "Dateiname %s existiert auf SD-Karte, überschreiben?", - 4006602858: "Fingerabdruck in PSBT deaktiviert", - 2542772894: "Die Firmware übersteigt die maximale Größe: %d", - 3748840176: "Umgedrehte X-Koordinaten", - 1406590538: "Flötendurchmesser", - 1077771640: "Frei:", - 1893243331: "Vom Speicher", - 1871146425: "Löschen Sie Ihre SD-Karte vollständig in einem anderen Gerät, um sicherzustellen, dass die Daten nicht wiederhergestellt werden können", - 3549015533: "Mnemonik erzeugen", - 3524220994: "BIP85-Untermnemonik generieren?", - 299338213: "Dieser Mnemonic eine benutzerdefinierte ID zuteilen? Andernfalls wird der aktuelle Fingerabdruck verwendet", - 602716148: "Go", - 1198393582: "Gute Entropie", - 133139382: "Hardware", - 3580020863: "Hex öffentlicher Schlüssel", - 2691246967: "Hexadezimal", - 3903754133: "Mnemonics ausblenden", - 3876651191: "Hohe Gebühren!", - 2880010062: "ID existiert bereits", - 3242179508: "Input (%d):", - 3034883011: "Installieren?", - 3755547839: "Unzureichende Entropie!", - 2032416055: "Unzureichende Entropie", - 2585599782: "Ungültige Adresse", - 2874529150: "Ungültiger Bootloader", - 4093416954: "Ungültige mnemonische Lange", - 1422874211: "Ungültiger öffentlicher Schlüssel", - 237577215: "Ungültige Wallet:", - 4122897393: "Umkehren", - 640219121: "Invertierte Farben", - 3000888649: "Schlüssel", - 3264569915: "Schlüssel wurde nicht zur Verfügung gestellt", - 3835918229: "Krux Drucker Test-QR", - 911419226: "LCD-Typ", - 766317539: "Sprache", - 4180141032: "Lassen Sie das Feld leer, wenn Sie möchten, dass Krux ein gültiges letztes Wort auswählt", - 3663022166: "Links", - 972436696: "Leitungsverzögerung", - 2176866982: "Linie:", - 2820726296: "Mnemonic laden", - 2369474953: "Wallet laden", - 2256441194: "Einen vertrauenswürdigen Wallet-Deskriptor laden, um Adressen anzuzeigen?", - 237136240: "Von SD-Karte laden", - 879727077: "Von SD-Karte laden?", - 1936877965: "Von der Kamera laden", - 669106195: "Eine laden?", - 3330705289: "Laden?", - 2596531078: "Lade Kamera..", - 2488179069: "Lade Change Adressen..", - 336702608: "Drucker wird geladen..", - 1201104769: "Lade Empfangsadressen..", - 3159494909: "Wird geladen..", - 1177338798: "Spracheinstellung", - 2817059741: "Speicherort", - 2917810189: "Maximale Länge überschritten (%s)", - 2030045667: "Nachricht", - 762611188: "Nachricht:", - 3928301843: "Fehlende Signaturdatei", - 1948316555: "Mnemonic", - 2123991188: "Mnemonische ID", - 1443208255: "Mnemotechnik und Passphrase werden beibehalten.", - 1746030071: "Mnemonic wurde nicht verschlüsselt", - 1237332019: "Geändert:", - 1845376098: "Multisig", - 4265479636: "Native Segwit - 84 würde angenommen", - 2939797024: "Netzwerk", - 73574491: "Neue Mnemonic", - 3634967631: "Neue Firmware erkannt.", - 4063104189: "Nein", - 2325721074: "Keine Passphrase", - 4092516657: "Nicht genug Würfe!", - 3089363813: "Zahlen", - 1577637745: "Oktal", - 391304453: "Andere Formate", - 3312581301: "PBKDF2-Iter.", - 995862913: "Male gestanzte Punkte schwarz an, damit sie erkannt werden können.", - 2987800462: "Papierbreite", - 3913146360: "Teil", - 3559456868: "Teilegröße", - 4249903283: "Passphrase", - 3745269737: "Pfad stimmt nicht überein", - 500286397: "Muster erkannt!", - 3040011773: "Alle gespeicherten verschlüsselten Mnemoniken und Einstellungen dauerhaft vom Flash-Speicher entfernen?", - 140802882: "Speicher", - 2578106186: "Pixelabweichungsindex:", - 1703779997: "Klartext-QR", - 3561756278: "Bitte lade einen Wallet Ausgabedeskriptor", - 784609464: "Tauchrate", - 3761518438: "Schlechte Entropie", - 3639136476: "Schlechte Entropie erkannt!", - 3037062877: "Drucke Test-QR", - 2362732578: "Tiny Seed drucken?", - 3123770978: "Als QR-Code drucken", - 3345150514: "Als QR-Code drucken?", - 3339507095: "Drucken?", - 1123106929: "Drucker", - 3903571079: "Druckertreiber nicht gesetzt!", - 3586624216: "Wird gedruckt..", - 3593149291: "Trotzdem fortfahren?", - 2580599003: "Weiter?", - 3108881025: "Wird bearbeitet..", - 1848310591: "QR-Code", - 710709610: "RX Pin", - 2697857197: "Empfangen", - 1746677167: "Empfangsadresse", - 1658501467: "Region:", - 3739634002: "Löschen %s?", - 1476462492: "Mnemonic löschen", - 1557093280: "Firmware-Dateien von der SD-Karte entfernen?", - 2817311427: "Res. - Format", - 2365886561: "Werkseinstellungen wiederherstellen und neu starten?", - 3091105710: "Zurück zum QR-Viewer", - 1662254634: "Überprüfe gescannte Daten und bearbeite sie bei Bedarf", - 1963678224: "Rechts", - 770350922: "Würfel mindestens %d Mal, um eine Mnemonic zu erzeugen.", - 3271055013: "Rollenverteilung:", - 432366011: "Würfe:", - 3976793317: "SD-Karte", - 2736513298: "SD-Karte nicht erkannt.", - 1166743226: "SHA256 der Würfe:", - 817419367: "SHA256 des Snapshots:", - 699906428: "QR-Bild auf SD-Karte speichern", - 2163347007: "Auf SD-Karte speichern?", - 3531742595: "Auf SD-Karte speichern?", - 2940025484: "Auf SD-Karte gespeichert", - 763824768: "Skala", - 4117455079: "Adresse\nscannen", - 4038076821: "Scan BIP39 Passphrase", - 923277590: "Schlüssel QR-Code Scannen", - 4006316572: "Wörter 1-12 erneut scannen", - 2736506158: "Wörter 13-24 scannen", - 2029624154: "Bildschirmschonerzeit", - 289960586: "Script-Art", - 1022211991: "Sicherheit", - 4255182430: "Selbstübertragung oder Change (%d):", - 3753172956: "Selbstübertragung:", - 473154195: "Einstellungen", - 563836138: "Die Einstellungen werden intern auf Flash gespeichert.", - 712533907: "Einstellungen auf SD-Karte gespeichert.", - 2377955518: "Shannons Entropie:", - 1825881236: "Ausschalten", - 3656120779: "Abschaltzeit:", - 2120776272: "Herunterfahren..", - 1061961408: "Signieren", - 2293863356: "Am QR-Code unterschreiben", - 2879966040: "Auf SD-Karte signieren", - 4282338366: "Signieren?", - 746161122: "Signatur", - 1988416729: "Signierte Nachricht", - 3672006076: "Signierte PSBT", - 3406791302: "Unterschreiben..", - 2281377987: "Single-Sig", - 2019512665: "Größe:", - 2344747135: "Einige Schecks können nicht durchgeführt werden.", - 2090568351: "Ausgabe (%d):", - 1260825919: "Ausgaben:", - 1232757391: "Statistiken für Nerds", - 3303592908: "Auf Flash speichern", - 720041451: "Auf der SD-Karte speichern", - 3514476519: "Wischen um den Modus zu ändern", - 1898550184: "TOUCH oder ENTER zum Erfassen", - 4228215415: "TX Pin", - 2612594937: "Text", - 1454688268: "Thema", - 1180180513: "Thermisch", - 2258131455: "Um sicherzustellen, dass die Daten nicht wiederhergestellt werden können, verwenden Sie die Funktion 'Gerät löschen'", - 2700207481: "Helligkeit umschalten", - 725348723: "Werkzeuge", - 3684696112: "Berühre Schwellenwert", - 2978718564: "Touchscreen", - 2732611775: "Weiter versuchen?", - 401829098: "BIP39 Passphrase eingeben", - 2061556020: "Schlüssel eingeben", - 2089395053: "Einheit", - 2786714360: "Upgrade abgeschlossen.", - 2674953168: "Verwende eine schwarze Hintergrundfläche.", - 2402455261: "Verwende die Entropie der Kamera, um eine neue Mnemonic zu erstellen", - 3336226318: "Belegt:", - 4003084591: "Wert %S außerhalb des Bereichs: [ %s, %s]", - 989428076: "Der Wert muss ein Vielfaches von %s sein", - 3429519584: "Überprüfung..", - 1889659487: "Version", - 4191058607: "Via Kamera", - 1254681955: "Via D20", - 525309547: "Via D6", - 590330112: "Via manueller Eingabe", - 1947603760: "Via Wörter", - 2504354847: "Warte auf die Erfassung", - 2076481321: "Wallet", - 2297028319: "Wallet-Deskriptor", - 4232654916: "Wallet Ausgabedeskriptor", - 2587172867: "Wallet Ausgabedeskriptor geladen!", - 2499782468: "Wallet Ausgabedeskriptor nicht gefunden.", - 2671738224: "Warnung:", - 262410364: "Gerät löschen", - 3522794335: "Gerät wird gewischt..", - 797660533: "Wort %d", - 3742424146: "Wortnummern", - 2965123464: "Wörter", - 1303016265: "Ja", - 2171149824: "ist eine gültige Adresse!", - 1875891934: "wurde in den ersten %d Adressen nicht gefunden", - }, - "es-MX": { - 232475068: "% del monto.", - 1185266064: "%d de %d multisig", - 1503087751: "%d a %d", - 1178563089: "%s eliminado.", - 1092222515: "(%d total)", - 3348584292: "(Experimental)", - 1099786887: "(Solo para observación)", - 2739590230: "12 palabras", - 1310058127: "24 palabras", - 1949634023: "Nosotros", - 4287534872: "¿Aceptar la suposición?", - 2995482424: "Cuenta", - 2415648848: "Se supondría que la cuenta #0", - 1043817877: "Índice de la cuenta", - 3439746594: "¿Añadir o cambiar passphrase de la cartera?", - 2143824150: "Se requiere entropía adicional de la cámara para el modo AES-CBC", - 3270727197: "Dirección", - 900375497: "Alinea la cámara y la placa de respaldo correctamente.", - 88746165: "Anti-reflejo desactivado", - 1521033296: "Anti-reflejo habilitado", - 3857613120: "Apariencia", - 1056821534: "¿Estás seguro?", - 1868069640: "Colores BGR", - 3455872521: "Atrás", - 4151330982: "Volver al Menú", - 2756316330: "Backup del Mnemónico", - 2256777600: "Firma incorrecta", - 3937333362: "Baudrate", - 2046615409: "Cuadrícula binaria", - 928727036: "Grosor del Borde", - 2519455027: "Brillo", - 2363604010: "Botones", - 2038226551: "Rebote de Botones", - 3138204438: "Captura cancelada", - 1207696150: "Cambio", - 3126552510: "Direcciones de Cambio", - 1583186953: "¿Cambiar de tema y reiniciar?", - 3768416405: "Cambio:", - 388908871: "Los cambios durarán hasta que el dispositivo se apague.", - 3442025874: "Verifica Tarjeta SD", - 3119547911: "¿Verificar que la dirección pertenece a esta cartera?", - 1187826970: "Comprobado %d direcciones sin coincidencias.", - 2470115694: "Comprobación de la tarjeta SD..", - 1851578965: "Índice Derivado", - 4094072796: "Crear Código QR", - 167798282: "¿Crear código QR desde texto?", - 678449760: "Creado:", - 3513215254: "Código QR Personalizado", - 3585411775: "Personalizar", - 534274978: "Personalizar tu cartera generará una nueva clave", - 124617190: "Profundidad de Corte", - 597912140: "Método de Corte", - 2504034831: "Decimal", - 2751113454: "¿Descifrar?", - 1272005728: "Cartera Predeterminada", - 4102535566: "Profundidad por Pasada", - 1712856005: "Direcciones del descriptor", - 3278654271: "Pantalla", - 3895447625: "No apagues el dispositivo, puede tardar un tiempo en completarse.", - 3836852788: "¿Listo?", - 690625786: "Doble mnemónico", - 382368239: "Operador", - 3582575312: "Cifrado", - 1244124409: "Código QR Cifrado", - 2968548114: "Mnemónico cifrado no se almacenó", - 781419966: "Mnemónico cifrado fue almacenado con ID:", - 350279787: "Cifrado", - 2601598799: "Modo de Cifrado", - 1821513079: "Ingrese %d palabras BIP-39.", - 3504179008: "Ingresa cada palabra de tu mnemónico BIP-39 como un número del 1 al 2048.", - 1100685007: "Ingresa cada palabra de tu mnemónico BIP-39 como un número en hexadecimal del 1 al 800.", - 4090266642: "Ingresa cada palabra de tu mnemónico BIP-39 como un número en octal del 1 al 4000.", - 2780625730: "Ingresa cada palabra de tu mnemónico BIP-39.", - 889040671: "Error:", - 1505332462: "Esc", - 3838465623: "¿Explorar archivos?", - 4170881190: "Exportando a la tarjeta SD..", - 1711312434: "Clave Pública Extendida", - 3981762528: "Ajustes de Fábrica", - 383371114: "Error al descifrar", - 3048830188: "No se pudo cargar la PSBT", - 4192663412: "No se pudo cargar la dirección", - 1996021743: "No se pudo cargar la clave", - 1108715658: "No se pudo cargar el mensaje", - 1081425878: "No se pudo importar el mnemónico", - 928667220: "No se pudo cargar el descriptor de salida", - 1620572516: "No se pudo cargar el passphrase", - 2946146830: "No pudo almacenar mnemónico", - 262248294: "Comisión:", - 104500973: "Feed Rate", - 3313339187: "Nombre del Archivo", - 1982637349: "El nombre de archivo %s existe en la tarjeta SD, ¿sobrescribir?", - 4006602858: "Huella dactilar no establecida en PSBT", - 2542772894: "El firmware supera el tamaño máximo: %d", - 3748840176: "Coordenadas X Invertidas", - 1406590538: "Diámetro de la Flauta", - 1077771640: "Libre:", - 1893243331: "Desde el Almacenamiento", - 1871146425: "Borra completamente su tarjeta SD en otro dispositivo para asegurarse de que los datos sean irrecuperables", - 3549015533: "Generar Mnemónico", - 3524220994: "¿Generar un mnemónico derivado BIP85?", - 299338213: "¿Darle a este mnemónico una identificación personalizada? De lo contrario se utilizará el fingerprint actual", - 602716148: "Ir", - 1198393582: "Buena entropía", - 133139382: "Hardware", - 3580020863: "Clave Pública Hexadecimal", - 2691246967: "Hexadecimal", - 3903754133: "Ocultar Mnemónicos", - 3876651191: "¡Tarifas altas!", - 2880010062: "ID ya existe", - 3242179508: "Entradas (%d):", - 3034883011: "¿Instalar?", - 3755547839: "¡Entropía Insuficiente!", - 2032416055: "Entropía insuficiente", - 2585599782: "Dirección inválida", - 2874529150: "Bootloader inválido", - 4093416954: "Longitud mnemónica no válida", - 1422874211: "Clave pública inválida", - 237577215: "Cartera inválida:", - 4122897393: "Invertir", - 640219121: "Colores Invertidos", - 3000888649: "Clave", - 3264569915: "No se proporcionó la clave", - 3835918229: "Test de impresión QR", - 911419226: "Tipo de LCD", - 766317539: "Idioma", - 4180141032: "Déjalo en blanco si quieres que Krux elija una última palabra válida", - 3663022166: "Izquierda", - 972436696: "Retraso de Línea", - 2176866982: "Línea:", - 2820726296: "Importar Mnemónico", - 2369474953: "Cargar Cartera", - 2256441194: "¿Cargar un descriptor de monedero de confianza para ver las direcciones?", - 237136240: "Cargar desde tarjeta SD", - 879727077: "¿Cargar desde la tarjeta SD?", - 1936877965: "Cargar desde la cámara", - 669106195: "¿Cargar algo?", - 3330705289: "¿Cargar?", - 2596531078: "Cargando Camara..", - 2488179069: "Cargando direcciones de cambio..", - 336702608: "Cargando impresora..", - 1201104769: "Cargando direcciones de recepción..", - 3159494909: "Cargando..", - 1177338798: "Idioma", - 2817059741: "Ubicación", - 2917810189: "Longitud máxima excedida (%s)", - 2030045667: "Mensaje", - 762611188: "Mensaje:", - 3928301843: "Falta archivo de firma", - 1948316555: "Mnemónico", - 2123991188: "Identificación del Mnemónico", - 1443208255: "Mnemónico y passphrase se mantendrán.", - 1746030071: "Mnemónico no fue descifrado", - 1237332019: "Modificado:", - 1845376098: "Multisig", - 4265479636: "Segwit nativo - 84 se supondría", - 2939797024: "Red", - 73574491: "Nuevo Mnemónico", - 3634967631: "Nuevo firmware detectado.", - 4063104189: "No", - 2325721074: "Sin Passphrase", - 4092516657: "¡No hay suficientes tiradas!", - 3089363813: "Números", - 1577637745: "Octales", - 391304453: "Otros Formatos", - 3312581301: "Iter. PBKDF2", - 995862913: "Pinte los puntos perforados de negro para que puedan ser detectados.", - 2987800462: "Ancho del Papel", - 3913146360: "Parte", - 3559456868: "Tamaño de la Pieza", - 4249903283: "Passphrase", - 3745269737: "La ruta no coincide", - 500286397: "¡Patrón detectado!", - 3040011773: "¿Eliminar permanentemente todos los mnemónicos y configuraciones cifradas almacenadas del flash?", - 140802882: "Guardar", - 2578106186: "Índice de desviación de píxeles:", - 1703779997: "QR de Texto", - 3561756278: "Carga un descriptor de cartera", - 784609464: "Tasa de Caída", - 3761518438: "Baja entropía", - 3639136476: "Mala entropía detectada!", - 3037062877: "Prueba de Impresión QR", - 2362732578: "¿Imprimir Tiny Seed?", - 3123770978: "Imprimir como Código QR", - 3345150514: "¿Imprimir con Codigo QR?", - 3339507095: "¿Impresión?", - 1123106929: "Impresora", - 3903571079: "¡El controlador de impresora no está configurado!", - 3586624216: "Imprimiendo..", - 3593149291: "¿Proceder de todas maneras?", - 2580599003: "¿Continuar?", - 3108881025: "Procesando..", - 1848310591: "Código QR", - 710709610: "RX Pin", - 2697857197: "Recepción", - 1746677167: "Direcciones de Recepción", - 1658501467: "Región:", - 3739634002: "Eliminar %s?", - 1476462492: "Eliminar Mnemónico", - 1557093280: "¿Eliminar archivos de firmware de la tarjeta SD?", - 2817311427: "Res. - Formato", - 2365886561: "¿Restablecer a la configuración de fábrica y reiniciar?", - 3091105710: "Volver al QR", - 1662254634: "Revisa los datos escaneados, edítalos si es necesario", - 1963678224: "Derecha", - 770350922: "Tira el dado al menos %d veces para generar un mnemónico.", - 3271055013: "Distribución de tiradas:", - 432366011: "Tiradas:", - 3976793317: "Tarjeta SD", - 2736513298: "Tarjeta SD no detectada.", - 1166743226: "SHA256 de las tiradas:", - 817419367: "SHA256 de la instantánea:", - 699906428: "Guardar Imagen QR en la Tarjeta SD", - 2163347007: "Guardar en tarjeta SD", - 3531742595: "¿Guardar en la tarjeta SD?", - 2940025484: "Guardado en la tarjeta SD", - 763824768: "Escala", - 4117455079: "Escanear Dirección", - 4038076821: "Escanear Passphrase BIP39", - 923277590: "Escanear el Código QR", - 4006316572: "Escaneo de palabras 1-12 de nuevo", - 2736506158: "Escaneo de palabras 13-24", - 2029624154: "Tiempo de Espera del Protector de Pantalla", - 289960586: "Tipo de Script", - 1022211991: "Seguridad", - 4255182430: "Autotransferencia o Cambio (%d):", - 3753172956: "Autotransferencia:", - 473154195: "Ajustes", - 563836138: "Ajustes almacenados internamente en flash.", - 712533907: "Configuración almacenada en la tarjeta SD.", - 2377955518: "Entropía de Shannon:", - 1825881236: "Apagar", - 3656120779: "Tiempo de Apagado", - 2120776272: "Apagando..", - 1061961408: "Firmar", - 2293863356: "Firmar en Código QR", - 2879966040: "Firmar en la Tarjeta SD", - 4282338366: "¿Firmar?", - 746161122: "Firma", - 1988416729: "Mensaje Firmado", - 3672006076: "PSBT Firmado", - 3406791302: "Firmando..", - 2281377987: "Single-sig", - 2019512665: "Tamaño:", - 2344747135: "Algunas comprobaciones no se pueden realizar.", - 2090568351: "Gastos (%d):", - 1260825919: "Gasto:", - 1232757391: "Estadísticas para Entendidos", - 3303592908: "Almacenar en Flash", - 720041451: "Almacenar en la Tarjeta SD", - 3514476519: "Deslizar para cambiar de modo", - 1898550184: "TOCA o ENTER para capturar", - 4228215415: "TX Pin", - 2612594937: "Texto", - 1454688268: "Tema", - 1180180513: "Térmico", - 2258131455: "Para garantizar que los datos no se puedan recuperar, utiliza la función de borrar dispositivo", - 2700207481: "Alternar Brillo", - 725348723: "Herramientas", - 3684696112: "Umbral Táctil", - 2978718564: "Pantalla Táctil", - 2732611775: "¿Intentar con mas?", - 401829098: "Escribe la Passphrase BIP39", - 2061556020: "Introduce la clave", - 2089395053: "Unidad", - 2786714360: "Actualización completa.", - 2674953168: "Usa una superficie de fondo negra.", - 2402455261: "Usa la entropía de la cámara para crear una nueva mnemónica", - 3336226318: "Usado:", - 4003084591: "Valor %s fuera del rango: [ %s, %s]", - 989428076: "El valor debe ser múltiple de %s", - 3429519584: "Verificando..", - 1889659487: "Versión", - 4191058607: "Desde Cámara", - 1254681955: "Vía D20", - 525309547: "Vía D6", - 590330112: "Introducción Manual", - 1947603760: "A Través de Palabras", - 2504354847: "Espera la captura", - 2076481321: "Cartera", - 2297028319: "Descriptor de Cartera", - 4232654916: "Descriptor de salida de cartera", - 2587172867: "¡Se ha cargado el descriptor de salida de la cartera!", - 2499782468: "No se encontró el descriptor de salida de la cartera.", - 2671738224: "Advertencia:", - 262410364: "Borrar Dispositivo", - 3522794335: "Borrando dispositivo..", - 797660533: "Palabra %d", - 3742424146: "Números de Palabra", - 2965123464: "Palabras", - 1303016265: "Sí", - 2171149824: "es una dirección válida!", - 1875891934: "NO FUE ENCONTRADO en las primeras %d direcciones", - }, - "fr-FR": { - 232475068: "% du montant.", - 1185266064: "%d de %d multisignature", - 1503087751: "%d à %d", - 1178563089: "%s supprimé.", - 1092222515: "(%d au total)", - 3348584292: "(Expérimental)", - 1099786887: "(consultation)", - 2739590230: "12 mots", - 1310058127: "24 mots", - 1949634023: "À propos", - 4287534872: "Accepter supposition\xa0?", - 2995482424: "Compte", - 2415648848: "Le compte n °0 serait supposé", - 1043817877: "Index du compte", - 3439746594: "Ajoutez ou modifiez la phrase secrète\u2009?", - 2143824150: "Entropie supplémentaire de la caméra requise pour le mode AES-CBC", - 3270727197: "Adresse", - 900375497: "Alignez correctement la caméra et plaque de sauvegarde.", - 88746165: "Anti-éblouissement désactivé", - 1521033296: "Anti-éblouissement activé", - 3857613120: "Apparence", - 1056821534: "Es-tu sûr\u2009?", - 1868069640: "Couleurs BGR", - 3455872521: "Retour", - 4151330982: "Retour au menu", - 2756316330: "Sauvegarde mnémonique", - 2256777600: "Mauvaise signature", - 3937333362: "Débit en bauds", - 2046615409: "Grille binaire", - 928727036: "Rembourrage de bordure", - 2519455027: "Luminosité", - 2363604010: "Boutons", - 2038226551: "Anti-rebond des boutons", - 3138204438: "Capture annulée", - 1207696150: "Changement", - 3126552510: "Adresses de Changement", - 1583186953: "Changer de thème et redémarrer\u2009?", - 3768416405: "La monnaie\u2009:", - 388908871: "Les modifications dureront jusqu'à l'arrêt.", - 3442025874: "Vérifiez la carte SD", - 3119547911: "Vérifiez que l'adresse appartient à cette portefeuille\u2009?", - 1187826970: "%d adresses vérifiées sans correspondance.", - 2470115694: "Vérification de la carte SD..", - 1851578965: "Indice enfant", - 4094072796: "Créer du code QR", - 167798282: "Créer du code QR à partir du texte\u2009?", - 678449760: "Créé\u2009:", - 3513215254: "Code QR personnalisé", - 3585411775: "Personnaliser", - 534274978: "La personnalisation de votre portefeuille générera une nouvelle clé.", - 124617190: "Profondeur de coupe", - 597912140: "Méthode de coupe", - 2504034831: "Décimal", - 2751113454: "Décrypter\u2009?", - 1272005728: "Portefeuille par défaut", - 4102535566: "Profondeur par passage", - 1712856005: "Adresses des descripteurs", - 3278654271: "Affichage", - 3895447625: "Ne pas éteindre, cela peut prendre un certain temps.", - 3836852788: "Terminé\u2009?", - 690625786: "Double mnémonique", - 382368239: "Conducteur", - 3582575312: "Chiffré", - 1244124409: "Code QR crypté", - 2968548114: "Le mnémonique crypté n'a pas été stocké", - 781419966: "Mnémonique cryptée a été stockée avec ID\u2009:", - 350279787: "Chiffrement", - 2601598799: "Mode de chiffrement", - 1821513079: "Entrez %d mots BIP-39.", - 3504179008: "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre de 1 à 2048.", - 1100685007: "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en hexadécimal de 1 à 800.", - 4090266642: "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en octal de 1 à 4000.", - 2780625730: "Entrez chaque mot de votre mnémonique BIP-39.", - 889040671: "Erreur\u2009:", - 1505332462: "Esc", - 3838465623: "Explorer des fichiers\u2009?", - 4170881190: "Exportation vers la carte SD..", - 1711312434: "Clé publique", - 3981762528: "Paramètres d'usine", - 383371114: "Échec de décrypter", - 3048830188: "Erreur de chargement PSBT", - 4192663412: "Erreur de chargement d'adresse", - 1996021743: "Échec du chargement de la clé", - 1108715658: "Échec du chargement du message", - 1081425878: "Erreur de chargement mnémonique", - 928667220: "Échec du chargement du descripteur de sortie", - 1620572516: "Échec du chargement de la phrase secrète", - 2946146830: "Échec de stocker mnémonique", - 262248294: "Frais\u2009:", - 104500973: "Taux d'alimentation", - 3313339187: "Nom de fichier", - 1982637349: "Le nom de fichier %s existe sur la carte SD, écraser\u2009?", - 4006602858: "Empreinte digitale manquante dans PSBT", - 2542772894: "Le micrologiciel dépasse la taille maximale\u2009: %d", - 3748840176: "Coordonnées X inversées", - 1406590538: "Diamètre de flûte", - 1077771640: "Libre\u2009:", - 1893243331: "Du stockage", - 1871146425: "Effacez complètement votre carte SD dans un autre appareil pour assurer que les données soient irrécupérables", - 3549015533: "Générer une mnémonique", - 3524220994: "Générer un mnémonique dérivé BIP-85\u2009?", - 299338213: "Donnez à ce mnémonique un identifiant personnalisé\u2009? Sinon l'empreinte actuelle sera utilisée", - 602716148: "Go", - 1198393582: "Bonne entropie", - 133139382: "Matériel", - 3580020863: "Clé public hexadécimal", - 2691246967: "Hexadécimal", - 3903754133: "Masquer les mnémoniques", - 3876651191: "Frais élevés\u2009!", - 2880010062: "Id existe déjà", - 3242179508: "Entrées (%d)\u2009:", - 3034883011: "Installer\u2009?", - 3755547839: "Entropie insuffisante\u2009!", - 2032416055: "Entropie insuffisante", - 2585599782: "Adresse invalide", - 2874529150: "Chargeur de démarrage invalide", - 4093416954: "Longueur mnémonique invalide", - 1422874211: "Clé publique non valide", - 237577215: "Portefeuille invalide\u2009:", - 4122897393: "Inverser", - 640219121: "Couleurs inversées", - 3000888649: "Clé", - 3264569915: "La clé n'a pas été fournie", - 3835918229: "Test de l'imprimante Krux QR", - 911419226: "Type d'écran LCD", - 766317539: "Langue", - 4180141032: "Laissez vide si vous souhaitez que Krux choisisse un dernier mot valide", - 3663022166: "Gauche", - 972436696: "Délai de Ligne", - 2176866982: "Ligne\u2009:", - 2820726296: "Charger mnémonique", - 2369474953: "Charger le portefeuille", - 2256441194: "Charger un descripteur de portefeuille de confiance pour afficher les adresses\u2009?", - 237136240: "Charger depuis la carte SD", - 879727077: "Charger depuis la carte SD\u2009?", - 1936877965: "Charger depuis une caméra", - 669106195: "En charger qu'un\u2009?", - 3330705289: "Charger\u2009?", - 2596531078: "Caméra de Chargement..", - 2488179069: "Chargement des adresses de monnaie..", - 336702608: "Chargement de l'imprimante..", - 1201104769: "Chargement des adresses de réception ..", - 3159494909: "Chargement..", - 1177338798: "Paramètres régionaux", - 2817059741: "Emplacement", - 2917810189: "Longueur maximale dépassée (%s)", - 2030045667: "Message", - 762611188: "Message\u2009:", - 3928301843: "Fichier de signature manquant", - 1948316555: "Mnémonique", - 2123991188: "ID mnémonique", - 1443208255: "Mnémonique et phrase secrète seront conservés.", - 1746030071: "Mnémonique n'était pas cryptée", - 1237332019: "Modifié\u2009:", - 1845376098: "Multi\nsignature", - 4265479636: "Native Segwit - 84 serait supposé", - 2939797024: "Réseau", - 73574491: "Nouveau mnémonique", - 3634967631: "Nouveau micrologiciel détecté.", - 4063104189: "Non", - 2325721074: "Pas de phrase secrète", - 4092516657: "Pas assez de jets\u2009!", - 3089363813: "Nombres", - 1577637745: "Octale", - 391304453: "Autres formats", - 3312581301: "Itér. PBKDF2", - 995862913: "Noircissez les points perforés afin qu'ils puissent être détectés.", - 2987800462: "Largeur du papier", - 3913146360: "Partie", - 3559456868: "Taille de la pièce", - 4249903283: "Phrase secréte", - 3745269737: "Inadéquation du chemin", - 500286397: "Structure détecté\u2009!", - 3040011773: "Supprimer définitivement tous les mnémoniques et paramètres chiffrés stockés dans le flash\u2009?", - 140802882: "Persister", - 2578106186: "Indice de déviation des pixels\u2009:", - 1703779997: "QR en Texte Brut", - 3561756278: "Veuillez charger un descripteur de sortie de portefeuille", - 784609464: "Taux de plongée", - 3761518438: "Mauvaise entropie", - 3639136476: "Faible entropie détectée\u2009!", - 3037062877: "Test d'impression QR", - 2362732578: "Imprimer Tiny Seed\u2009?", - 3123770978: "Imprimer en QR", - 3345150514: "Imprimer en QR\u2009?", - 3339507095: "Imprimer\u2009?", - 1123106929: "Imprimante", - 3903571079: "Le conducteur d'imprimante n'est pas défini\u2009!", - 3586624216: "Impression..", - 3593149291: "Procéder quand même\u2009?", - 2580599003: "Procéder\u2009?", - 3108881025: "Traitement..", - 1848310591: "QR Code", - 710709610: "RX Fiche", - 2697857197: "Recevoir", - 1746677167: "Adresses de Réception", - 1658501467: "Région\u2009:", - 3739634002: "Supprimer %s\u2009?", - 1476462492: "Supprimer mnémonique", - 1557093280: "Supprimer les fichiers micrologiciel de la carte SD\u2009?", - 2817311427: "Rés. - Format", - 2365886561: "Restaurer les paramètres d'usine et redémarrer\u2009?", - 3091105710: "Retour au visualiseur QR", - 1662254634: "Examinez les données numérisées, modifiez-les si nécessaire", - 1963678224: "À droite", - 770350922: "Lancez le dé au moins %d fois pour générer un mnémonique.", - 3271055013: "Distribution des jets\u2009:", - 432366011: "Jets\u2009:", - 3976793317: "Carte SD", - 2736513298: "Carte SD non détectée.", - 1166743226: "SHA256 de jets\u2009:", - 817419367: "SHA256 de snapshot\u2009:", - 699906428: "Enregistrer l'image QR sur la carte SD", - 2163347007: "Enregistrer sur la carte SD", - 3531742595: "Enregistrer sur la carte SD\u2009?", - 2940025484: "Enregistré sur la carte SD", - 763824768: "L'échelle", - 4117455079: "Scannez l'adresse", - 4038076821: "Scannez la phrase secrète BIP-39", - 923277590: "Scannez le Code QR de la clé", - 4006316572: "Analyser à nouveau les mots 1 à 12", - 2736506158: "Analyser les mots 13 à 24", - 2029624154: "Delai d'Inactivité", - 289960586: "Type de Script", - 1022211991: "Sécurité", - 4255182430: "Auto-transfert ou monnaie (%d)\u2009:", - 3753172956: "Auto-transfert\u2009:", - 473154195: "Paramètres", - 563836138: "Paramètres stockés en interne sur flash.", - 712533907: "Paramètres stockés sur la carte SD.", - 2377955518: "Entropie de Shannon\u2009:", - 1825881236: "Fermer", - 3656120779: "Delai d'Arrêt", - 2120776272: "Éteindre..", - 1061961408: "Signer", - 2293863356: "Signer avec le code QR", - 2879966040: "Signer sur la carte SD", - 4282338366: "Signer\u2009?", - 746161122: "Signature", - 1988416729: "Message signé", - 3672006076: "PSBT signé", - 3406791302: "Signature..", - 2281377987: "Clé unique", - 2019512665: "Capacité\u2009:", - 2344747135: "Certains chèques ne peuvent pas être effectués.", - 2090568351: "Dépense (%d)\u2009:", - 1260825919: "Dépense\u2009:", - 1232757391: "Statistiques pour les geeks", - 3303592908: "Stocker sur flash", - 720041451: "Stocker sur la carte SD", - 3514476519: "Faites glisser pour changer de mode", - 1898550184: "TOUCHEZ ou ENTER pour capturer", - 4228215415: "TX Fiche", - 2612594937: "Texte", - 1454688268: "Thème", - 1180180513: "Thermique", - 2258131455: "Pour assurer que les données soient irrécupérables, utilisez la fonctionnalité 'Effacer l'appareil'", - 2700207481: "Ajuster la luminosité", - 725348723: "Outils", - 3684696112: "Seuil Tactile", - 2978718564: "Écran Tactile", - 2732611775: "Réessayer\u2009?", - 401829098: "Entrez la phrase secrète BIP-39", - 2061556020: "Clé de type", - 2089395053: "Unité", - 2786714360: "Mise à niveau complète.", - 2674953168: "Utilisez une surface de fond noire.", - 2402455261: "Utilisez l'entropie de la caméra pour créer un nouveau mnémonique", - 3336226318: "Utilisé\u2009:", - 4003084591: "Valeur %s hors de portée: [%s, %s]", - 989428076: "La valeur doit être un multiple de %s", - 3429519584: "Vérification..", - 1889659487: "Version", - 4191058607: "Par caméra", - 1254681955: "Via D20", - 525309547: "Via D6", - 590330112: "Par saisie manuelle", - 1947603760: "Via Mots", - 2504354847: "Attendez la capture", - 2076481321: "Portefeuille", - 2297028319: "Descripteur de Portefeuille", - 4232654916: "Descripteur de sortie du portefeuille", - 2587172867: "Descripteur de sortie du portefeuille chargé\u2009!", - 2499782468: "Descripteur de sortie du portefeuille introuvable.", - 2671738224: "Avertissement\u2009:", - 262410364: "Effacer l'appareil", - 3522794335: "Effacement de l'appareil en cours..", - 797660533: "Mot %d", - 3742424146: "Numéros de mots", - 2965123464: "Mots", - 1303016265: "Oui", - 2171149824: "Adresse non valide\xa0!", - 1875891934: "n'A PAS ÉTÉ TROUVÉ dans les %d premières adresses", - }, - "ko-KR": { - 232475068: "수량: %", - 1185266064: "%d의 %d 멀티시그", - 1503087751: "%d 부터 %d", - 1178563089: "%s 제거되었습니다.", - 1092222515: "(총 %d)", - 3348584292: "(실험적 기능)", - 1099786887: "(잔액조회 전용)", - 2739590230: "12단어", - 1310058127: "24단어", - 1949634023: "기본 정보", - 4287534872: "가정을 수락하시겠습니까?", - 2995482424: "계정", - 2415648848: "계정 #0이 가정됩니다", - 1043817877: "계정 인덱스", - 3439746594: "패스프레이즈를 추가하거나 변경하시겠습니까?", - 2143824150: "AES-CBC 모드를 위해 카메라의 추가 엔트로피가 필요합니다", - 3270727197: "주소", - 900375497: "카메라와 보조 플레이트를 올바르게 정렬하십시오.", - 88746165: "눈부심방지 비활성화", - 1521033296: "눈부심방지 활성화", - 3857613120: "디스플레이", - 1056821534: "계속하시겠습니까?", - 1868069640: "BGR 색상", - 3455872521: "뒤로", - 4151330982: "메뉴로 돌아가기", - 2756316330: "니모닉 백업", - 2256777600: "잘못된 서명", - 3937333362: "Baudrate", - 2046615409: "이진수 그리드", - 928727036: "테두리 여백", - 2519455027: "밝기", - 2363604010: "버튼", - 2038226551: "버튼 바운스 방지", - 3138204438: "캡처 취소됨", - 1207696150: "잔돈", - 3126552510: "잔돈 주소", - 1583186953: "테마를 변경하고 재부팅하시겠습니까?", - 3768416405: "변경", - 388908871: "변경 사항은 종료될때까지 유지됩니다.", - 3442025874: "SD카드 확인", - 3119547911: "해당 주소가 이 지갑에 속하는지 확인하시겠습니까?", - 1187826970: "일치하는 주소가 없는 %d 개를 확인했습니다.", - 2470115694: "SD카드 확인 중..", - 1851578965: "차일드 인덱스", - 4094072796: "QR 코드 생성", - 167798282: "텍스트로부터 QR코드를 생성하시겠습니까?", - 678449760: "생성됨:", - 3513215254: "사용자 정의 QR코드", - 3585411775: "사용자 정의", - 534274978: "지갑을 커스터마이징하면 새로운 비밀키가 생성됩니다.", - 124617190: "Cut Depth", - 597912140: "Cut Method", - 2504034831: "10진수", - 2751113454: "복호화하시겠습니까?", - 1272005728: "지갑 기본설정", - 4102535566: "Depth Per Pass", - 1712856005: "디스크립터 주소", - 3278654271: "디스플레이", - 3895447625: "전원을 끄지 마십시오. 완료하는 데 시간이 걸릴 수 있습니다.", - 3836852788: "완료되었습니까?", - 690625786: "이중 니모닉", - 382368239: "드라이버", - 3582575312: "암호화 후 저장", - 1244124409: "암호화된 QR 코드", - 2968548114: "암호화된 니모닉을 저장하지 못했습니다", - 781419966: "암호화된 니모닉을 다음 아이디와 함께 저장했습니다:", - 350279787: "암호화", - 2601598799: "암호화 모드", - 1821513079: "%d개의 BIP-39 단어를 입력하십시오.", - 3504179008: "BIP-39 니모닉의 각 단어를 1에서 2048 사이의 숫자로 입력하십시오.", - 1100685007: "BIP-39 니모닉의 각 단어를 1에서 800 사이의 16진수 숫자로 입력하십시오.", - 4090266642: "BIP-39 니모닉의 각 단어를 1에서 4000 사이의 8진수 숫자로 입력하십시오.", - 2780625730: "BIP-39 니모닉의 각 단어를 입력하십시오.", - 889040671: "오류:", - 1505332462: "Esc", - 3838465623: "파일을 탐색하시겠습니까?", - 4170881190: "SD카드로 내보내는 중..", - 1711312434: "XPUB 내보내기", - 3981762528: "공장 초기 설정", - 383371114: "복호화에 실패했습니다", - 3048830188: "PSBT를 불러오지 못했습니다", - 4192663412: "주소를 불러오지 못했습니다", - 1996021743: "키 로드에 실패했습니다", - 1108715658: "메시지를 불러오지 못했습니다", - 1081425878: "니모닉을 불러오지 못했습니다", - 928667220: "아웃풋 디스크립터를 불러오지 못했습니다", - 1620572516: "패스프레이즈를 불러오지 못했습니다", - 2946146830: "니모닉을 저장하지 못했습니다", - 262248294: "수수료:", - 104500973: "Feed Rate", - 3313339187: "파일명", - 1982637349: "%s 파일명이 SD카드에 이미 존재합니다. 덮어쓰시겠습니까?", - 4006602858: "PSBT에서 지문이 설정되지 않았습니다", - 2542772894: "펌웨어가 최대 크기를 초과했습니다: %d", - 3748840176: "X 좌표 반전", - 1406590538: "플루트 직경", - 1077771640: "여유 공간:", - 1893243331: "저장공간에서 불러오기", - 1871146425: "다른 장치에서 데이터 복구가 불가능하도록 SD카드를 완전히 지우십시오", - 3549015533: "니모닉 생성", - 3524220994: "BIP85 파생 니모닉을 생성하시겠습니까?", - 299338213: "이 니모닉에 별도 아이디를 지정하시겠습니까? 지정하지 않으면 현재 지문을 사용합니다", - 602716148: "선택", - 1198393582: "엔트로피가 충분합니다", - 133139382: "하드웨어", - 3580020863: "16진수 공개키", - 2691246967: "16진수", - 3903754133: "니모닉 숨기기", - 3876651191: "수수료가 높습니다!", - 2880010062: "아이디가 이미 존재합니다", - 3242179508: "Input (%d):", - 3034883011: "설치하시겠습니까?", - 3755547839: "엔트로피가 충분하지 않습니다!", - 2032416055: "엔트로피가 충분하지 않습니다", - 2585599782: "주소가 잘못되었습니다", - 2874529150: "부트로더가 잘못되었습니다", - 4093416954: "니모닉 길이가 잘못되었습니다", - 1422874211: "공개키가 잘못되었습니다", - 237577215: "지갑이 잘못되었습니다:", - 4122897393: "반전", - 640219121: "반전된 색상", - 3000888649: "키", - 3264569915: "키가 제공되지 않았습니다", - 3835918229: "Krux 프린터 테스트 QR", - 911419226: "LCD 유형", - 766317539: "언어", - 4180141032: "마지막 단어를 Krux가 선택하도록 하려면 비워두십시오", - 3663022166: "왼쪽", - 972436696: "줄 지연", - 2176866982: "줄:", - 2820726296: "니모닉 불러오기", - 2369474953: "이대로 불러오기", - 2256441194: "주소를 보기위해 신뢰할 수 있는 월렛 디스크립터를 불러오시겠습니까?", - 237136240: "SD카드에서 불러오기", - 879727077: "SD카드에서 불러오시겠습니까?", - 1936877965: "카메라로 불러오기", - 669106195: "불러오시겠습니까?", - 3330705289: "불러오시겠습니까?", - 2596531078: "카메라를 구동 중입니다..", - 2488179069: "잔돈 주소를 불러옵니다..", - 336702608: "프린터를 로딩 중입니다..", - 1201104769: "수신 주소 불러옵니다..", - 3159494909: "로딩 중..", - 1177338798: "언어 설정", - 2817059741: "기본 저장소", - 2917810189: "최대 길이를 초과함 (%s)", - 2030045667: "메시지", - 762611188: "메시지:", - 3928301843: "서명 파일이 누락되었습니다", - 1948316555: "니모닉", - 2123991188: "니모닉 ID", - 1443208255: "니모닉과 암호는 유지됩니다.", - 1746030071: "니모닉이 암호화되지 않았습니다", - 1237332019: "수정되었습니다:", - 1845376098: "멀티시그", - 4265479636: "네이티브 세그윗 - BIP84를 적용합니다", - 2939797024: "네트워크", - 73574491: "새로운 니모닉", - 3634967631: "새로운 펌웨어가 감지되었습니다.", - 4063104189: "아니요", - 2325721074: "패스프레이즈 없음", - 4092516657: "주사위 횟수가 충분하지 않습니다!", - 3089363813: "시드문구 순번", - 1577637745: "8진수", - 391304453: "기타 형식", - 3312581301: "PBKDF2 Iter.", - 995862913: "카메라가 감지할 수 있도록 펀치된 점을 검게 칠하십시오.", - 2987800462: "종이 너비", - 3913146360: "파트", - 3559456868: "파트 사이즈", - 4249903283: "패스프레이즈", - 3745269737: "경로 불일치", - 500286397: "패턴이 감지되었습니다!", - 3040011773: "저장된 모든 니모닉 및 설정값을 영구적으로 제거하시겠습니까?", - 140802882: "저장", - 2578106186: "픽셀 편차 지수:", - 1703779997: "일반텍스트 QR", - 3561756278: "지갑 출력 디스크립터를 불러오십시오", - 784609464: "침수율", - 3761518438: "엔트로피가 부족합니다", - 3639136476: "엔트로피가 부족합니다!", - 3037062877: "QR 테스트 인쇄", - 2362732578: "Tiny Seed를 인쇄하시겠습니까?", - 3123770978: "QR로 인쇄", - 3345150514: "QR로 인쇄하시겠습니까?", - 3339507095: "인쇄하시겠습니까?", - 1123106929: "프린터", - 3903571079: "프린터 드라이버가 설정되지 않았습니다!", - 3586624216: "출력중", - 3593149291: "계속하시겠습니까?", - 2580599003: "계속하시겠습니까?", - 3108881025: "처리...", - 1848310591: "QR 코드", - 710709610: "RX 핀", - 2697857197: "받기", - 1746677167: "주소", - 1658501467: "지역:", - 3739634002: "%s을 제거하시겠습니까?", - 1476462492: "니모닉 제거", - 1557093280: "SD카드에서 펌웨어 파일을 제거하시겠습니까?", - 2817311427: "Res. - 형식", - 2365886561: "공장 설정을 복원하고 재부팅하시겠습니까?", - 3091105710: "QR 뷰어로 돌아가기", - 1662254634: "스캔된 데이터를 검토하고 필요한 경우 수정하십시오", - 1963678224: "오른쪽", - 770350922: "니모닉을 생성하려면 주사위를 최소 %d번 굴리십시오.", - 3271055013: "주사위값 분포:", - 432366011: "주사위 횟수:", - 3976793317: "SD카드", - 2736513298: "SD카드가 감지되지 않았습니다.", - 1166743226: "주사위의 SHA256:", - 817419367: "SHA256 스냅샷:", - 699906428: "QR 이미지를 SD카드에 저장", - 2163347007: "SD카드에 저장", - 3531742595: "SD카드에 저장하시겠습니까?", - 2940025484: "SD카드에 저장됨", - 763824768: "스케일", - 4117455079: "주소 스캔하기", - 4038076821: "BIP39 패스프레이즈 스캔하기", - 923277590: "비밀번호 QR 스캔", - 4006316572: "1번째부터 12번째 단어를 스캔 중입니다", - 2736506158: "13번째부터 24번째 단어를 스캔 중입니다", - 2029624154: "화면보호기 시간", - 289960586: "지갑 형식", - 1022211991: "보안", - 4255182430: "본인주소 전송 또는 잔돈 (%d):", - 3753172956: "자가 이체:", - 473154195: "설정", - 563836138: "설정은 플래시에서 내부적으로 저장됩니다.", - 712533907: "SD 카드에 저장된 설정.", - 2377955518: "Shannon의 엔트로피:", - 1825881236: "종료", - 3656120779: "자동 종료시간", - 2120776272: "종료 중..", - 1061961408: "서명하기", - 2293863356: "QR코드로 내보내기", - 2879966040: "SD카드로 내보내기", - 4282338366: "서명하시겠습니까?", - 746161122: "서명", - 1988416729: "서명된 메시지", - 3672006076: "서명된 PSBT", - 3406791302: "서명 중..", - 2281377987: "단일서명", - 2019512665: "크기:", - 2344747135: "일부 검사를 수행할 수 없습니다.", - 2090568351: "Spend (%d):", - 1260825919: "지출", - 1232757391: "전문가를 위한 통계", - 3303592908: "플래시 메모리에 저장", - 720041451: "SD카드에 저장", - 3514476519: "모드를 변경하려면 화면을 옆으로 쓸어내리세요", - 1898550184: "터치하거나 엔터를 눌러 캡처하십시오", - 4228215415: "TX 핀", - 2612594937: "텍스트", - 1454688268: "테마", - 1180180513: "Thermal", - 2258131455: "데이터 복구가 불가능하도록 장치 전체지우기 기능을 사용하십시오", - 2700207481: "밝기 전환", - 725348723: "도구", - 3684696112: "터치 민감도", - 2978718564: "터치스크린", - 2732611775: "더 하시겠습니까?", - 401829098: "BIP39 패스프레이즈 입력", - 2061556020: "비밀번호 입력", - 2089395053: "단위", - 2786714360: "업그레이드가 완료되었습니다", - 2674953168: "검은색 배경 화면을 사용하십시오.", - 2402455261: "카메라의 엔트로피를 사용하여 새로운 니모닉을 생성하십시오", - 3336226318: "이미 사용됨:", - 4003084591: "%s는 [%s, %s] 범위를 벗어났습니다", - 989428076: "값은 %s의 배수여야 합니다", - 3429519584: "검증 중..", - 1889659487: "버전", - 4191058607: "카메라", - 1254681955: "20면체 주사위", - 525309547: "일반 주사위", - 590330112: "직접 입력", - 1947603760: "니모닉 단어 입력", - 2504354847: "캡처될때까지 기다리십시오", - 2076481321: "지갑 설정", - 2297028319: "지갑 디스크립터", - 4232654916: "지갑 출력 디스크립터", - 2587172867: "지갑 출력 디스크립터가 로드되었습니다!", - 2499782468: "지갑 출력 디스크립터를 찾을 수 없습니다.", - 2671738224: "경고:", - 262410364: "기기 초기화", - 3522794335: "기기를 초기화하는 중입니다..", - 797660533: "%d 단어", - 3742424146: "단어 번호(1-2048)", - 2965123464: "시드문구", - 1303016265: "예", - 2171149824: " 은 유효한 주소가 아닙니다", - 1875891934: "첫 번째 %d 주소에서 찾을 수 없습니다", - }, - "nl-NL": { - 232475068: "% van het bedrag.", - 1185266064: "%d van %d multisig", - 1503087751: "%d tot %d", - 1178563089: "%s verwijderd.", - 1092222515: "(%d totaal)", - 3348584292: "(Experimenteel)", - 1099786887: "(alleen inzien)", - 2739590230: "12 woorden", - 1310058127: "24 woorden", - 1949634023: "Over", - 4287534872: "Aanname accepteren?", - 2995482424: "Account", - 2415648848: "Account #0 zou worden aangenomen", - 1043817877: "Accountindex", - 3439746594: "Wachtwoordzin voor portemonnee toevoegen of wijzigen?", - 2143824150: "Extra entropie van de camera vereist voor AES-CBC-modus", - 3270727197: "Adres", - 900375497: "Richt de camera en back-upplaat op de juiste manier.", - 88746165: "Anti reflecterend uitgeschakeld", - 1521033296: "Anti reflecterend ingeschakeld", - 3857613120: "Uiterlijk", - 1056821534: "Weet je het zeker?", - 1868069640: "BGR-kleuren", - 3455872521: "Terug", - 4151330982: "Terug naar menu", - 2756316330: "Backup geheugensteun", - 2256777600: "Ongeldige handtekening", - 3937333362: "Baudratio", - 2046615409: "Binair raster", - 928727036: "Rand opvulling", - 2519455027: "Helderheid", - 2363604010: "Knoppen", - 2038226551: "Debounce van knoppen", - 3138204438: "Opname geannuleerd", - 1207696150: "Change", - 3126552510: "Wisselgeldadres", - 1583186953: "Thema veranderen en opnieuw opstarten?", - 3768416405: "Wisselgeld:", - 388908871: "Wijzigingen blijven van kracht tot afsluiten.", - 3442025874: "Controleer SD kaart", - 3119547911: "Controleer of dit adres bij deze portemonnee hoort?", - 1187826970: "%d adressen gecontroleerd zonder overeenkomsten.", - 2470115694: "SD kaart controleren..", - 1851578965: "Onderliggende index", - 4094072796: "QR code maken", - 167798282: "QR code maken van tekst?", - 678449760: "Aangemaakt:", - 3513215254: "Aangepaste QR code", - 3585411775: "Aanpassen", - 534274978: "Bij aanpassen van de portemonnee zal er een nieuwe sleutel gegenereerd worden.", - 124617190: "Snijdiepte", - 597912140: "Snijmethode", - 2504034831: "Decimaal", - 2751113454: "Ontsleutelen?", - 1272005728: "Standaard portemonnee", - 4102535566: "Diepte per pas", - 1712856005: "Descriptoradressen", - 3278654271: "Weergave", - 3895447625: "Schakel het apparaat niet uit, het kan even duren voordat het klaar is.", - 3836852788: "Klaar?", - 690625786: "Dubbel geheugensteuntje", - 382368239: "Driver", - 3582575312: "Versleuteld", - 1244124409: "Versleutelde QR code", - 2968548114: "Versleutelde geheugensteun was niet opgeslagen", - 781419966: "Versleutelde geheugensteun is opgeslagen met ID:", - 350279787: "Versleutelen", - 2601598799: "Versleutel modus", - 1821513079: "Voer %d BIP-39 woorden in.", - 3504179008: "Voer elk woord van jouw BIP-39 geheugensteun in als een nummer van 1 tot 2048.", - 1100685007: "Voer elk woord van jouw BIP-39 geheugensteun in als een hexadecimaal van 1 tot 800.", - 4090266642: "Voer elk woord van jouw BIP-39 geheugensteun in als een octaal van 1 tot 4000.", - 2780625730: "Voer elk woord van jouw BIP-39 geheugensteun in.", - 889040671: "Fout:", - 1505332462: "Esc", - 3838465623: "Bestanden verkennen?", - 4170881190: "Exporteren naar SD kaart..", - 1711312434: "Uitgebreide publieke sleutel", - 3981762528: "Fabrieksinstellingen", - 383371114: "Ontsleutelen is niet gelukt", - 3048830188: "PSBT laden is niet gelukt", - 4192663412: "Adres laden is niet gelukt", - 1996021743: "Sleutel laden is niet gelukt", - 1108715658: "Bericht laden is niet gelukt", - 1081425878: "Geheugensteun laden is niet gelukt", - 928667220: "Descriptor laden is niet gelukt", - 1620572516: "Wachtwoord laden is niet gelukt", - 2946146830: "Geheugensteun opslaan is niet gelukt", - 262248294: "Tarief:", - 104500973: "Voedingssnelheid", - 3313339187: "Bestandsnaam", - 1982637349: "Bestandsnaam %s OVERSCHRIJVEN op SD kaart?", - 4006602858: "Vingerafdruk niet ingesteld in PSBT", - 2542772894: "Firmware overschrijdt de maximale grootte: %d", - 3748840176: "Geflipte X-coördinaten", - 1406590538: "Fluit diameter", - 1077771640: "Vrij:", - 1893243331: "Uit data-opslag", - 1871146425: "Wis uw SD kaart volledig in een ander apparaat om te zorgen dat de gegevens onherstelbaar zijn", - 3549015533: "Geheugensteun genereren", - 3524220994: "Een BIP85 afgeleide geheugensteun genereren?", - 299338213: "Eigen ID gebruiken voor geheugensteun? Anders vingerafdruk gebruiken", - 602716148: "Ga", - 1198393582: "Goede entropie", - 133139382: "Hardware", - 3580020863: "Hex publieke sleutel", - 2691246967: "Hexadecimaal", - 3903754133: "Verberg geheugensteunen", - 3876651191: "Hoge kosten!", - 2880010062: "ID bestaat al", - 3242179508: "Invoer (%d):", - 3034883011: "Installeren?", - 3755547839: "Onvoldoende Entropie!", - 2032416055: "Onvoldoende entropie", - 2585599782: "Ongeldig adres", - 2874529150: "Ongeldige bootloader", - 4093416954: "Ongeldige geheugensteun lengte", - 1422874211: "Ongeldige publieke sleutel", - 237577215: "Ongeldige portemonnee:", - 4122897393: "Omkeren", - 640219121: "Omgekeerde kleuren", - 3000888649: "Sleutel", - 3264569915: "Sleutel niet verstrekt", - 3835918229: "Krux printer test QR", - 911419226: "LCD-type", - 766317539: "Taal", - 4180141032: "Laat leeg als je wilt dat Krux een geldig laatste woord kiest", - 3663022166: "Links", - 972436696: "Lijn vertraging", - 2176866982: "Lijn:", - 2820726296: "Geheugensteun laden", - 2369474953: "Portemonnee laden", - 2256441194: "Een vertrouwde portemonnee descriptor laden om adressen te bekijken?", - 237136240: "Laden vanaf SD kaart", - 879727077: "Laden vanaf SD kaart?", - 1936877965: "Laden van camera", - 669106195: "Laden?", - 3330705289: "Laden?", - 2596531078: "Camera laden..", - 2488179069: "Wijzigingsadressen laden..", - 336702608: "Laadprinter..", - 1201104769: "Ontvangstadressen laden..", - 3159494909: "Laden..", - 1177338798: "Taal", - 2817059741: "Opslaglocatie", - 2917810189: "Maximale lengte overschreden (%s)", - 2030045667: "Bericht", - 762611188: "Bericht:", - 3928301843: "Handtekening bestand mist", - 1948316555: "Geheugensteun", - 2123991188: "Geheugensteun ID", - 1443208255: "Geheugensteun en wachtwoord worden bewaard.", - 1746030071: "Geheugensteun is niet versleuteld", - 1237332019: "Aangepast:", - 1845376098: "Multisig", - 4265479636: "Native Segwit - 84 zal worden gebruikt", - 2939797024: "Netwerk", - 73574491: "Geheugensteun aanmaken", - 3634967631: "Nieuwe firmware gevonden.", - 4063104189: "Nee", - 2325721074: "Geen wachtwoordzin", - 4092516657: "Niet genoeg gedobbeld!", - 3089363813: "Nummers", - 1577637745: "Octaal", - 391304453: "Andere indelingen", - 3312581301: "PBKDF2 iter.", - 995862913: "Maak geperforeerde stippen zwart zodat ze worden gedetecteerd.", - 2987800462: "Papier breedte", - 3913146360: "Deel", - 3559456868: "Deel grootte", - 4249903283: "Wachtwoord", - 3745269737: "Pad komt niet overeen", - 500286397: "Patroon gevonden!", - 3040011773: "Alle opgeslagen versleutelde mnemonics en instellingen permanent uit het flashgeheugen verwijderen?", - 140802882: "Opslag", - 2578106186: "Pixelafwijkingsindex:", - 1703779997: "Platte tekst QR", - 3561756278: "Laadt een portemonnee descriptor in", - 784609464: "Duik tarief", - 3761518438: "Slechte entropie", - 3639136476: "Lage entropie gedetecteerd!", - 3037062877: "Test QR afdrukken", - 2362732578: "Tiny Seed afdrukken?", - 3123770978: "Afdrukken naar QR", - 3345150514: "Afdrukken naar QR?", - 3339507095: "Afdrukken?", - 1123106929: "Printer", - 3903571079: "Printer driver niet ingesteld!", - 3586624216: "Afdrukken..", - 3593149291: "Toch doorgaan?", - 2580599003: "Doorgaan?", - 3108881025: "Verwerken..", - 1848310591: "QR code", - 710709610: "RX pin", - 2697857197: "Ontvangen", - 1746677167: "Ontvangstadres", - 1658501467: "Regio:", - 3739634002: "Verwijderen %s?", - 1476462492: "Geheugensteun verwijderen", - 1557093280: "Firmwarebestanden van SD kaart verwijderen?", - 2817311427: "Res. - Formaat", - 2365886561: "Fabrieksinstellingen herstellen en opnieuw opstarten?", - 3091105710: "Terug naar QR-lezer", - 1662254634: "Controleer gescande gegevens en bewerk indien nodig", - 1963678224: "Rechts", - 770350922: "Dobbel een dobbelsteen minstens %d keer voor het genereren van een geheugensteun.", - 3271055013: "Roldistributie:", - 432366011: "Gedobbeld:", - 3976793317: "SD kaart", - 2736513298: "SD kaart niet gedetecteerd.", - 1166743226: "Gedobbelde SHA256:", - 817419367: "Momentopname van SHA256:", - 699906428: "QR-afbeelding opslaan op SD kaart", - 2163347007: "Opslaan op SD kaart", - 3531742595: "Opslaan op SD kaart?", - 2940025484: "Opgeslagen op SD kaart", - 763824768: "Schaal", - 4117455079: "Adres scannen", - 4038076821: "BIP-39 Wachtwoord Scannen", - 923277590: "QR Code Sleutel Scannen", - 4006316572: "Woorden 1 t/m 12 opnieuw scannen", - 2736506158: "Woorden 13 t/m 24 scannen", - 2029624154: "Schermbeveiligingstijd", - 289960586: "Scripttype", - 1022211991: "Beveiliging", - 4255182430: "Overschrijving naar jezelf, of wisselgeld (%d):", - 3753172956: "Zelf overschrijving:", - 473154195: "Instellingen", - 563836138: "Instellingen intern opgeslagen op flitser.", - 712533907: "Instellingen opgeslagen op SD kaart.", - 2377955518: "Shannon's entropie:", - 1825881236: "Afsluiten", - 3656120779: "Uitschakelingstijd:", - 2120776272: "Bezig met afsluiten..", - 1061961408: "Ondertekenen", - 2293863356: "Teken op QR-code", - 2879966040: "Teken op SD kaart", - 4282338366: "Ondertekenen?", - 746161122: "Handtekening", - 1988416729: "Bericht ondertekend", - 3672006076: "PSBT ondertekend", - 3406791302: "Ondertekenen..", - 2281377987: "Enkele sleutel", - 2019512665: "Grootte:", - 2344747135: "Sommige controles kunnen niet worden uitgevoerd.", - 2090568351: "Uitgaven (%d):", - 1260825919: "Uitgaven:", - 1232757391: "Statistieken voor nerds", - 3303592908: "Opslaan op apparaat", - 720041451: "Opslaan op SD kaart", - 3514476519: "Verander modus", - 1898550184: "TIK of ENTER voor opname", - 4228215415: "TX pin", - 2612594937: "Tekst", - 1454688268: "Thema", - 1180180513: "Thermisch", - 2258131455: "Gebruik de functie 'Apparaat wissen' om te zorgen dat de gegevens onherstelbaar zijn", - 2700207481: "Helderheid schakelen", - 725348723: "Hulpmiddelen", - 3684696112: "Aanraak gevoeligheid", - 2978718564: "Aanraakscherm", - 2732611775: "Meer proberen?", - 401829098: "Voer een BIP-39 wachtwoord in", - 2061556020: "Voer sleutel in", - 2089395053: "Eenheid", - 2786714360: "Upgrade afgerond.", - 2674953168: "Gebruik een donker achergrond.", - 2402455261: "Gebruik de camera als entropie voor het aanmaken van een nieuwe geheugensteun", - 3336226318: "Gebruikt:", - 4003084591: "Waarde %s is buiten bereik: [%s, %s]", - 989428076: "Waarde moet meerdere van %s zijn", - 3429519584: "Bezig met verifiëren..", - 1889659487: "Versie", - 4191058607: "Via camera", - 1254681955: "Via D20", - 525309547: "Via D6", - 590330112: "Via handmatige invoer", - 1947603760: "Via woorden", - 2504354847: "Wacht op opname", - 2076481321: "Portemonnee", - 2297028319: "Descriptor", - 4232654916: "Portemonnee descriptor", - 2587172867: "Portemonnee descriptor geladen!", - 2499782468: "Portemonnee descriptor niet gevonden.", - 2671738224: "Waarschuwing:", - 262410364: "Apparaat wissen", - 3522794335: "Apparaat wissen..", - 797660533: "Woord %d", - 3742424146: "Woord nummers", - 2965123464: "Woorden", - 1303016265: "Yes", - 2171149824: "is geen geldig adres", - 1875891934: "werd NIET GEVONDEN in de eerste %d adressen", - }, - "pt-BR": { - 232475068: "% do valor.", - 1185266064: "%d da %d multisig", - 1503087751: "%d a %d", - 1178563089: "removido.", - 1092222515: "(%d total)", - 3348584292: "(Experimental)", - 1099786887: "(Somente visualização)", - 2739590230: "12 palavras", - 1310058127: "24 palavras", - 1949634023: "Sobre", - 4287534872: "Aceitar suposições?", - 2995482424: "Conta", - 2415648848: "A conta #0 seria assumida", - 1043817877: "Índice da Conta", - 3439746594: "Adicionar ou alterar senha da carteira?", - 2143824150: "Entropia adicional da câmera necessária para o modo AES-CBC", - 3270727197: "Endereço", - 900375497: "Alinhe a câmera e a placa de backup corretamente.", - 88746165: "Antirreflexo desativado", - 1521033296: "Antirreflexo ativado", - 3857613120: "Aparência", - 1056821534: "Tem certeza?", - 1868069640: "Cores BGR", - 3455872521: "Voltar", - 4151330982: "Voltar ao Menu", - 2756316330: "Backup de Mnemônico", - 2256777600: "Assinatura Inválida", - 3937333362: "Baudrate", - 2046615409: "Grade binária", - 928727036: "Borda", - 2519455027: "Brilho", - 2363604010: "Botões", - 2038226551: "Debounce dos Botões", - 3138204438: "Captura cancelada", - 1207696150: "Troco", - 3126552510: "Endereços de Troco", - 1583186953: "Mudar o tema e reiniciar?", - 3768416405: "Troco:", - 388908871: "Alterações só durarão até o desligamento.", - 3442025874: "Verifique o cartão SD", - 3119547911: "Verificar se este endereço pertence a carteira?", - 1187826970: "Verificado %d endereços sem correspondências.", - 2470115694: "Verificando o cartão SD..", - 1851578965: "Índice Derivado", - 4094072796: "Gerar Código QR", - 167798282: "Gerar código QR do texto?", - 678449760: "Criado:", - 3513215254: "Código QR Customizado", - 3585411775: "Customizar", - 534274978: "Personalizar sua carteira gerará uma nova chave.", - 124617190: "Profundidade de Corte", - 597912140: "Método de Corte", - 2504034831: "Decimal", - 2751113454: "Descriptografar?", - 1272005728: "Carteira Padrão", - 4102535566: "Profundidade da Passagem", - 1712856005: "Endereços do Descritor", - 3278654271: "Display", - 3895447625: "Não desligue, pode demorar um pouco para concluir.", - 3836852788: "Feito?", - 690625786: "Duplo mnemônico", - 382368239: "Driver", - 3582575312: "Criptografado", - 1244124409: "Código QR Criptografado", - 2968548114: "Mnemonic criptografado não foi armazenado", - 781419966: "Mnemônico criptografado foi armazenado com ID:", - 350279787: "Criptografia", - 2601598799: "Modo de Criptografia", - 1821513079: "Insira %d palavras BIP-39.", - 3504179008: "Digite o número de cada palavra do seu mnemônico BIP-39, de 1 a 2048.", - 1100685007: "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em hexadecimal, de 1 a 800.", - 4090266642: "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em octal, de 1 a 4000.", - 2780625730: "Digite cada palavra do seu mnemônico BIP-39.", - 889040671: "Erro:", - 1505332462: "Esc", - 3838465623: "Explorar arquivos?", - 4170881190: "Exportando para o cartão SD..", - 1711312434: "Chave Pública Estendida", - 3981762528: "Configurações de Fábrica", - 383371114: "Falhou em descriptografar", - 3048830188: "Falhou ao carregar PSBT", - 4192663412: "Falhou ao carregar endereço", - 1996021743: "Falha ao carregar a chave", - 1108715658: "Falhou ao carregar mensagem", - 1081425878: "Falhou ao carregar mnemônico", - 928667220: "Falha ao carregar o descritor de saída", - 1620572516: "Falha ao carregar a senha", - 2946146830: "Falhou ao armazenar mnemônico", - 262248294: "Taxa:", - 104500973: "Taxa de Alimentação", - 3313339187: "Nome do arquivo", - 1982637349: "O nome do arquivo %s existe no cartão SD, substituir?", - 4006602858: "Impressão digital não definida no PSBT", - 2542772894: "Firmware excede o tamanho máximo: %d", - 3748840176: "Coordenadas X invertidas", - 1406590538: "Diâmetro da Fresa", - 1077771640: "Livre:", - 1893243331: "Do Armazenamento", - 1871146425: "Apague totalmente seu cartão SD em outro dispositivo para garantir que os dados sejam irrecuperáveis", - 3549015533: "Gerar Mnemônico", - 3524220994: "Gerar um mnemônico derivado BIP85?", - 299338213: "Dê a este mnemônico um ID personalizado? Caso contrário, a impressão digital atual será usada", - 602716148: "Ir", - 1198393582: "Boa entropia", - 133139382: "Hardware", - 3580020863: "Chave pública hexadecimal", - 2691246967: "Hexadecimal", - 3903754133: "Ocultar Mnemônicos", - 3876651191: "Taxas altas!", - 2880010062: "Id já existe", - 3242179508: "Entradas (%d):", - 3034883011: "Instalar?", - 3755547839: "Entropia insuficiente!", - 2032416055: "Entropia insuficiente", - 2585599782: "Endereço inválido", - 2874529150: "Bootloader inválido", - 4093416954: "Comprimento de mnemônico inválido", - 1422874211: "Chave pública inválida", - 237577215: "Carteira inválida:", - 4122897393: "Invertido", - 640219121: "Cores invertidas", - 3000888649: "Chave", - 3264569915: "A chave não foi fornecida", - 3835918229: "Teste de impressão de QR krux", - 911419226: "Tipo de LCD", - 766317539: "Língua", - 4180141032: "Deixe em branco se quiser que o Krux escolha uma palavra final válida", - 3663022166: "Esquerda", - 972436696: "Atraso de Linha", - 2176866982: "Linha:", - 2820726296: "Carregar Mnemônico", - 2369474953: "Carregar Carteira", - 2256441194: "Carregar um descritor de carteira confiável para visualizar endereços?", - 237136240: "Carregar do cartão SD", - 879727077: "Carregar do cartão SD?", - 1936877965: "Carregar da câmera", - 669106195: "Carregar um?", - 3330705289: "Carregar?", - 2596531078: "Carregando Câmera..", - 2488179069: "Carregando endereços de troco..", - 336702608: "Carregando impressora..", - 1201104769: "Carregando endereços de recebimento..", - 3159494909: "Carregando..", - 1177338798: "Idioma", - 2817059741: "Local", - 2917810189: "Comprimento máximo excedido (%s)", - 2030045667: "Mensagem", - 762611188: "Mensagem:", - 3928301843: "Arquivo de assinatura faltando", - 1948316555: "Mnemônico", - 2123991188: "ID do mnemônico", - 1443208255: "Mnemônico e senha serão mantidos.", - 1746030071: "Mnemônico não foi criptografado", - 1237332019: "Modificado:", - 1845376098: "Multisig", - 4265479636: "Segwit nativo - 84 seria assumido", - 2939797024: "Rede", - 73574491: "Novo Mnemônico", - 3634967631: "Novo firmware detectado.", - 4063104189: "Não", - 2325721074: "Sem Senha", - 4092516657: "Jogadas insuficientes!", - 3089363813: "Números", - 1577637745: "Octal", - 391304453: "Outros Formatos", - 3312581301: "Iter. PBKDF2", - 995862913: "Pinte os pontos perfurados de preto para que possam ser detectados.", - 2987800462: "Largura do papel", - 3913146360: "Parte", - 3559456868: "Tamanho da peça", - 4249903283: "Senha", - 3745269737: "Incompatibilidade de caminho", - 500286397: "Padrão detectado!", - 3040011773: "Remover permanentemente todos os mnemônicos criptografados e configurações armazenados da memória flash?", - 140802882: "Salvar", - 2578106186: "Índice de desvio de pixels:", - 1703779997: "QR em Texto", - 3561756278: "Carregue um descritor da carteira", - 784609464: "Taxa de Mergulho", - 3761518438: "Entropia fraca", - 3639136476: "Baixa entropia detectada!", - 3037062877: "Imprimir QR de teste", - 2362732578: "Imprimir Tiny Seed?", - 3123770978: "Imprimir QR", - 3345150514: "Imprimir QR?", - 3339507095: "Imprimir?", - 1123106929: "Impressora", - 3903571079: "Driver de impressora não está definido!", - 3586624216: "Imprimindo..", - 3593149291: "Continuar mesmo assim?", - 2580599003: "Seguir?", - 3108881025: "Processando..", - 1848310591: "Código QR", - 710709610: "Pino RX", - 2697857197: "Recebimento", - 1746677167: "Endereços de Recebimento", - 1658501467: "Região:", - 3739634002: "Excluir %s?", - 1476462492: "Excluir Mnemônico", - 1557093280: "Remover arquivos de firmware do cartão SD?", - 2817311427: "Res. - Formato", - 2365886561: "Restaurar as configurações de fábrica e reiniciar?", - 3091105710: "Retornar ao Visualizador de QR", - 1662254634: "Revise os dados, edite se necessário", - 1963678224: "Direita", - 770350922: "Role o dado pelo menos %d vezes para gerar um mnemônico.", - 3271055013: "Distribuição de jogadas:", - 432366011: "Jogadas:", - 3976793317: "Cartão SD", - 2736513298: "Cartão SD não detectado.", - 1166743226: "SHA256 de jogadas:", - 817419367: "Sha256 da imagem:", - 699906428: "Salvar imagem do QR no cartão SD", - 2163347007: "Salvar no cartão SD", - 3531742595: "Salvar no cartão SD?", - 2940025484: "Salvo no cartão SD", - 763824768: "Escala", - 4117455079: "Escanear Endereço", - 4038076821: "Escanear a senha BIP39", - 923277590: "Escanear Código QR da Chave", - 4006316572: "Escaneando as palavras 1-12 novamente", - 2736506158: "Escaneando as palavras 13-24", - 2029624154: "Tempo para protetor de tela", - 289960586: "Tipo de Script", - 1022211991: "Segurança", - 4255182430: "Autotransferência ou Troco (%d):", - 3753172956: "Autotransferência:", - 473154195: "Configurações", - 563836138: "Configurações armazenadas internamente no flash.", - 712533907: "Configurações armazenadas no cartão SD.", - 2377955518: "Entropia de Shannon:", - 1825881236: "Desligar", - 3656120779: "Tempo de desligamento", - 2120776272: "Desligando..", - 1061961408: "Assinar", - 2293863356: "Assinar para código QR", - 2879966040: "Assinar para cartão SD", - 4282338366: "Assinar?", - 746161122: "Assinatura", - 1988416729: "Mensagem Assinada", - 3672006076: "PSBT Assinada", - 3406791302: "Assinando..", - 2281377987: "Single-sig", - 2019512665: "Total:", - 2344747135: "Algumas verificações não podem ser realizadas.", - 2090568351: "Gastos (%d):", - 1260825919: "Gasto:", - 1232757391: "Estatísticas para Nerds", - 3303592908: "Armazene na Flash", - 720041451: "Armazene no Cartão SD", - 3514476519: "Deslize para mudar de modo", - 1898550184: "TOQUE ou ENTER para capturar", - 4228215415: "Pino TX", - 2612594937: "Texto", - 1454688268: "Tema", - 1180180513: "Térmica", - 2258131455: "Para garantir que os dados sejam irrecuperáveis, use o recurso Limpar Dispositivo", - 2700207481: "Alternar brilho", - 725348723: "Ferramentas", - 3684696112: "Limiar de Toque", - 2978718564: "Touchscreen", - 2732611775: "Tentar mais?", - 401829098: "Digitar a senha BIP39", - 2061556020: "Digite a Chave", - 2089395053: "Unidade", - 2786714360: "Atualização completa.", - 2674953168: "Use uma superfície de fundo preta.", - 2402455261: "Use a entropia da câmera para criar um novo mnemônico", - 3336226318: "Usado:", - 4003084591: "Valor %s fora do alcance: [ %s, %s]", - 989428076: "O valor deve ser múltiplo de %s", - 3429519584: "Verificando..", - 1889659487: "Versão", - 4191058607: "Pela Câmera", - 1254681955: "Via D20", - 525309547: "Via D6", - 590330112: "Por entrada manual", - 1947603760: "Via Palavras", - 2504354847: "Aguarde a captura", - 2076481321: "Carteira", - 2297028319: "Descritor de Carteira", - 4232654916: "Descritor da carteira", - 2587172867: "Descritor de saída da carteira carregado!", - 2499782468: "O descritor de saída da carteira não foi encontrado.", - 2671738224: "Aviso:", - 262410364: "Limpar Dispositivo", - 3522794335: "Limpando Dispositivo..", - 797660533: "Palavra %d", - 3742424146: "Números das Palavras", - 2965123464: "Palavras", - 1303016265: "Sim", - 2171149824: "é um endereço válido!", - 1875891934: "NÃO FOI ENCONTRADO nos primeiros %d endereços", - }, - "ru-RU": { - 232475068: "% от суммы.", - 1185266064: "%d из %d мультиподпись", - 1503087751: "%d к %d", - 1178563089: "%s удален.", - 1092222515: "(%d всего)", - 3348584292: "(Эксперементальный)", - 1099786887: "(Только часы)", - 2739590230: "12 слов", - 1310058127: "24 слова", - 1949634023: "О Программе", - 4287534872: "Принять предположение?", - 2995482424: "Учетная запись", - 2415648848: "Будет принят счет №0", - 1043817877: "Индекс счета", - 3439746594: "Добавить или изменить пароль кошелька?", - 2143824150: "Для режима AES-CBC требуется дополнительная энтропия от камеры", - 3270727197: "Адрес", - 900375497: "Правильно совместите камеру и резервную пластину.", - 88746165: "Антиблик отключен", - 1521033296: "Антиблик включен", - 3857613120: "Внешний Вид", - 1056821534: "Вы уверены?", - 1868069640: "Цвета BGR", - 3455872521: "Назад", - 4151330982: "Назад в Mеню", - 2756316330: "Резервная мнемоника", - 2256777600: "Плохая подпись", - 3937333362: "Скорость Передачи Данных", - 2046615409: "Двоичная сетка", - 928727036: "Заполнение Границ", - 2519455027: "Яркость", - 2363604010: "Кнопки", - 2038226551: "Антидребезг кнопок", - 3138204438: "Захват отменен", - 1207696150: "Сдача", - 3126552510: "Адрес Сдачи", - 1583186953: "Сменить тему и перезагрузить?", - 3768416405: "Сдача:", - 388908871: "Изменения будут храниться до выключения.", - 3442025874: "Проверить SD Карту", - 3119547911: "Проверить, что адрес принадлежит этому кошельку?", - 1187826970: "Проверено %d адресов без совпадений.", - 2470115694: "Проверка SD карты..", - 1851578965: "Дочерний индекс", - 4094072796: "Создать QR Код", - 167798282: "Создать QR код из текста?", - 678449760: "Создано:", - 3513215254: "Пользовательский QR Код", - 3585411775: "Настроить", - 534274978: "Настройка вашего кошелька создаст новый ключ.", - 124617190: "Глубина Резки", - 597912140: "Метод Резки", - 2504034831: "Десятичный", - 2751113454: "Расшифровать?", - 1272005728: "Кошелек по умолчанию", - 4102535566: "Глубина за Проход", - 1712856005: "Адреса дескрипторов", - 3278654271: "Дисплеи", - 3895447625: "Не выключайте питание, это может занять некоторое время.", - 3836852788: "Готово?", - 690625786: "Двойная мнемоника", - 382368239: "Драйвер", - 3582575312: "Зашифровано", - 1244124409: "Зашифрованный QR Код", - 2968548114: "Зашифрованная мнемоника не была сохранена", - 781419966: "Зашифрованная мнемоника была сохранена с ID:", - 350279787: "Шифрование", - 2601598799: "Метод Шифрования", - 1821513079: "Введите %d слов BIP-39.", - 3504179008: "Введите каждое слово вашей мнемоники BIP-39 в виде числа от 1 до 2048.", - 1100685007: "Введите каждое слово вашей мнемоники BIP-39 в виде шестнадцатеричного числа от 1 до 800.", - 4090266642: "Введите каждое слово вашей мнемоники BIP-39 в виде восьмеричного числа от 1 до 4000.", - 2780625730: "Введите каждое слово вашей BIP-39 мнемоники.", - 889040671: "Ошибка:", - 1505332462: "Выйти", - 3838465623: "Исследовать файлы?", - 4170881190: "Экспортирование на SD карту..", - 1711312434: "Расширенный Публичный Ключ", - 3981762528: "Заводские Настройки", - 383371114: "Не удалось расшифровать", - 3048830188: "Не удалось загрузить PSBT", - 4192663412: "Не удалось загрузить адрес", - 1996021743: "Не удалось загрузить ключ", - 1108715658: "Не удалось загрузить сообщение", - 1081425878: "Не удалось загрузить мнемонику", - 928667220: "Не удалось загрузить выходной дескриптор", - 1620572516: "Не удалось загрузить фразу-пароль", - 2946146830: "Не удалось сохранить мнемонику", - 262248294: "Комиссия:", - 104500973: "Скорость Подачи", - 3313339187: "Имя файла", - 1982637349: "Файл %s существует на SD карте, перезаписать?", - 4006602858: "Отпечаток пальца не установлен в PSBT", - 2542772894: "Прошивка превышает максимальный размер: %d", - 3748840176: "Перевернутые координаты X", - 1406590538: "Диаметр Флюта", - 1077771640: "Свободно:", - 1893243331: "Из Памяти", - 1871146425: "Полностью стерите SD-карту в другом устройстве, чтобы убедиться, что данные не восстановимы", - 3549015533: "Создать Мнемонику", - 3524220994: "Сгенерировать дочернюю мнемонику BIP85?", - 299338213: "Назначить этой мнемоники кастомный ID? В ином случае будет использован текущий фингерпринт", - 602716148: "OK", - 1198393582: "Хорошая энтропия", - 133139382: "Аппаратное Обеспечение", - 3580020863: "Шестнадцатеричный Публичный Ключ", - 2691246967: "Шестнадцатеричный", - 3903754133: "Скрыть мнемоники", - 3876651191: "Высокие комиссии!", - 2880010062: "ID уже существует", - 3242179508: "Входы (%d):", - 3034883011: "Установить?", - 3755547839: "Недостаточная Энтропия!", - 2032416055: "Недостаточная энтропия", - 2585599782: "Неверный адрес", - 2874529150: "Неверный загрузчик", - 4093416954: "Неверная длина мнемоники", - 1422874211: "Неверный публичный ключ", - 237577215: "Неверный кошелек:", - 4122897393: "Инвертировать", - 640219121: "Перевернутые цвета", - 3000888649: "Ключ", - 3264569915: "Ключ не предоставлен", - 3835918229: "Тестовый QR Принтера Krux", - 911419226: "Тип ЖК-дисплея", - 766317539: "Язык", - 4180141032: "Оставьте пустым, если хотите, чтобы Krux выбрал подходящее последнее слово", - 3663022166: "Влево", - 972436696: "Задержка Линии", - 2176866982: "Линия:", - 2820726296: "Загрузить Мнемонику", - 2369474953: "Загрузить кошелек", - 2256441194: "Загрузить дескриптор доверенного кошелька для просмотра адресов?", - 237136240: "Загрузка с SD-карты", - 879727077: "Загрузить с SD карты?", - 1936877965: "Из камеры", - 669106195: "Загрузить один?", - 3330705289: "Загрузить?", - 2596531078: "Загрузка Камеры..", - 2488179069: "Загрузка адресов изменения..", - 336702608: "Загрузка принтера..", - 1201104769: "Загрузка адресов получения..", - 3159494909: "Загрузка..", - 1177338798: "Локаль", - 2817059741: "Расположение", - 2917810189: "Максимальная длина превышена (%s)", - 2030045667: "Сообщение", - 762611188: "Сообщение:", - 3928301843: "Отсутствует файл подписи", - 1948316555: "Мнемоника", - 2123991188: "ID Мнемоники", - 1443208255: "Мнемоника и парольная фраза будут сохранены.", - 1746030071: "Мнемоника не была зашифрована", - 1237332019: "Изменено:", - 1845376098: "Мультиподпись", - 4265479636: "Native Segwit - 84 будет принято", - 2939797024: "Сеть", - 73574491: "Новая Мнемоника", - 3634967631: "Обнаружена новая прошивка.", - 4063104189: "Нет", - 2325721074: "Нет Фраза-пароль", - 4092516657: "Недостаточно бросков!", - 3089363813: "Числа", - 1577637745: "Восьмеричный", - 391304453: "Другие форматы", - 3312581301: "PBKDF2 Итерации", - 995862913: "Закрасьте перфорированные точки черным цветом, чтобы их можно было обнаружить.", - 2987800462: "Ширина Бумаги", - 3913146360: "Часть", - 3559456868: "Размер Части", - 4249903283: "Фраза-пароль", - 3745269737: "Несоответствие пути", - 500286397: "Образец обнаружен!", - 3040011773: "Окончательно удалить все сохраненные зашифрованные мнемоники и настройки из флеш-памяти?", - 140802882: "Постоянная Память", - 2578106186: "Индекс отклонения пикселей:", - 1703779997: "QR Открытым Текстом", - 3561756278: "Пожалуйста загрузите выходной дескриптор кошелька", - 784609464: "Скорость Погружения", - 3761518438: "Плохая энтропия", - 3639136476: "Обнаружена плохая энтропия!", - 3037062877: "Напечатать Тестовый QR", - 2362732578: "Распечатать Tiny Seed?", - 3123770978: "Печать в QR", - 3345150514: "Напечатать в виде QR?", - 3339507095: "Печатать?", - 1123106929: "Принтер", - 3903571079: "Драйвер Принтера не установлен!", - 3586624216: "Идет печать..", - 3593149291: "Все равно продолжить?", - 2580599003: "Продолжить?", - 3108881025: "Обработка..", - 1848310591: "QR Код", - 710709610: "RX Пин", - 2697857197: "Получить", - 1746677167: "Адрес Получения", - 1658501467: "Регион:", - 3739634002: "Удалить %s?", - 1476462492: "Удалить Мнемонику", - 1557093280: "Удалить файлы прошивки с SD-карты?", - 2817311427: "Разреш. - Формат", - 2365886561: "Восстановить заводские настройки и перезагрузить?", - 3091105710: "Вернуться к QR-просмотрщику", - 1662254634: "Просмотрите отсканированные данные, отредактируйте при необходимости", - 1963678224: "Вправо", - 770350922: "Бросьте кубик не менее %d раз, чтобы сгенерировать мнемонику.", - 3271055013: "Распределение бросков:", - 432366011: "Броски:", - 3976793317: "SD карта", - 2736513298: "SD карта не обнаружена.", - 1166743226: "SHA256 бросков:", - 817419367: "SHA256 снэпшота:", - 699906428: "Сохранить QR-изображение на SD-карту", - 2163347007: "Сохранить на SD-карту", - 3531742595: "Сохранить на SD карту?", - 2940025484: "Сохранено на SD карту", - 763824768: "Шкала", - 4117455079: "Отсканировать Адрес", - 4038076821: "Отсканировать BIP39 фразу-пароль", - 923277590: "Отсканировать Ключ QR код", - 4006316572: "Сканирование слов 1-12 снова", - 2736506158: "Сканирование слов 13-24", - 2029624154: "Время Экранной Заставки", - 289960586: "Тип скрипта", - 1022211991: "Охрана", - 4255182430: "Трансфер самому себе или Сдача (%d):", - 3753172956: "Перевод самому себе:", - 473154195: "Настройки", - 563836138: "Настройки хранятся во флэш-памяти.", - 712533907: "Настройки сохранены на SD-карте.", - 2377955518: "Энтропия Шеннона:", - 1825881236: "Выключить", - 3656120779: "Время выключения", - 2120776272: "Выключение..", - 1061961408: "Подписать", - 2293863356: "Подписать QR-код", - 2879966040: "Подписать на SD-карте", - 4282338366: "Подписать?", - 746161122: "Подпись", - 1988416729: "Подписанное Сообщение", - 3672006076: "Подписанное PSBT", - 3406791302: "Подписание..", - 2281377987: "Одна подпись", - 2019512665: "Размер:", - 2344747135: "Некоторые проверки не могут быть выполнены.", - 2090568351: "Расход (%d):", - 1260825919: "Расход:", - 1232757391: "Статистика для Гиков", - 3303592908: "Сохранить на Флэш Память", - 720041451: "Сохранить на SD Карту", - 3514476519: "Свайпните, чтобы сменить режим", - 1898550184: "ПРИКОСНИТЕСЬ или нажмите ВВОД, чтобы захватить", - 4228215415: "TX Пин", - 2612594937: "Текст", - 1454688268: "Тема", - 1180180513: "Термальный", - 2258131455: "Для гарантии невосстановления данных используйте функцию Очистки Устройства", - 2700207481: "Регулировка Яркости", - 725348723: "Инструменты", - 3684696112: "Чувствительность", - 2978718564: "Тачскрин", - 2732611775: "Попробовать ещё?", - 401829098: "Ввести BIP39 фразу-пароль", - 2061556020: "Ввести Ключ", - 2089395053: "Единица Измерения", - 2786714360: "Обновление завершено.", - 2674953168: "Использовать черную фоновую поверхность.", - 2402455261: "Использовать энтропию камеры, чтобы создать новую мнемонику", - 3336226318: "Использовано:", - 4003084591: "Значение %s вне диапозона: [%s, %s]", - 989428076: "Значение должно быть кратным %s", - 3429519584: "Проверка..", - 1889659487: "Версия", - 4191058607: "С Помощью Камеры", - 1254681955: "С Помощью D20", - 525309547: "С Помощью D6", - 590330112: "С Помощью Ручного Ввода", - 1947603760: "Через Слово", - 2504354847: "Дождитесь Захвата", - 2076481321: "Кошелек", - 2297028319: "Дескриптор Кошелька", - 4232654916: "Выходной дескриптор кошелька", - 2587172867: "Выходной дескриптор кошелька загружен!", - 2499782468: "Выходной дескриптор кошелька не найден.", - 2671738224: "Предупреждение:", - 262410364: "Очистка Устройства", - 3522794335: "Очистка Устройства..", - 797660533: "Слово %d", - 3742424146: "Числа Слов", - 2965123464: "Слова", - 1303016265: "Да", - 2171149824: "некорректный адрес", - 1875891934: "нЕ НАЙДЕНО в первых %d адресах", - }, - "tr-TR": { - 232475068: "tutarın %'si.", - 1185266064: "%d / %d çoklu imza", - 1503087751: "%d to %d", - 1178563089: "%s kaldırıldı.", - 1092222515: "(toplam %d)", - 3348584292: "(Deneysel)", - 1099786887: "(sadece izle)", - 2739590230: "12 kelime", - 1310058127: "24 kelime", - 1949634023: "Hakkında", - 4287534872: "Varsayım kabul edilsin mi?", - 2995482424: "Hesap", - 2415648848: "#0 numaralı hesap varsayılacaktır", - 1043817877: "Hesap Endeksi", - 3439746594: "Cüzdan parolası eklensin mi veya değiştirilsin mi?", - 2143824150: "AES-CBC modu için kameradan ek entropi gereklidir", - 3270727197: "Adres", - 900375497: "Kamerayı ve yedek plakay'ı düzgün bir şekilde hizalayın.", - 88746165: "Parlama önleyici devre dışı", - 1521033296: "Parlama önleyici etkin", - 3857613120: "Görünüm", - 1056821534: "Emin misiniz?", - 1868069640: "BGR Renkleri", - 3455872521: "Geri", - 4151330982: "Menüye Dön", - 2756316330: "Yedek Mnemonic", - 2256777600: "Geçersiz imza", - 3937333362: "Baud Hızı", - 2046615409: "İkili Izgara", - 928727036: "Kenarlık Dolgusu", - 2519455027: "Parlaklık", - 2363604010: "Butonlar", - 2038226551: "Buton Geri-sekmesi", - 3138204438: "Yakalama iptal edildi", - 1207696150: "Para Üstü", - 3126552510: "Para Üstü Adresleri", - 1583186953: "Temayı değiştir ve yeniden başlat?", - 3768416405: "Para Üstü:", - 388908871: "Değişiklikler kapanışa kadar devam edecek.", - 3442025874: "SD Kartı Kontrol Et", - 3119547911: "Bu adresin, bu cüzdana ait olduğunu kontrol et?", - 1187826970: "Eşleşmeyen %d adres kontrol edildi.", - 2470115694: "SD kart kontrol ediliyor..", - 1851578965: "Türev Dizini", - 4094072796: "QR Kodu Oluştur", - 167798282: "Metinden QR kodu oluşturulsun mu?", - 678449760: "Oluşturuldu:", - 3513215254: "Özel QR Kodu", - 3585411775: "Özelleştir", - 534274978: "Cüzdanınızı özelleştirmek yeni bir Anahtar oluşturacaktır.", - 124617190: "Kesim Derinliği", - 597912140: "Kesim Yöntemi", - 2504034831: "Ondalık", - 2751113454: "Şifre çözülsün mü?", - 1272005728: "Varsayılan Cüzdan", - 4102535566: "Geçiş Başına Derinlik", - 1712856005: "Tanımlayıcı Adresler", - 3278654271: "Ekran", - 3895447625: "Kapatmayın, tamamlanması biraz zaman alabilir.", - 3836852788: "Tamamlandı mı?", - 690625786: "Çifte anımsatıcı", - 382368239: "Sürücü", - 3582575312: "Şifrelenmiş", - 1244124409: "Şifrelenmiş QR Kodu", - 2968548114: "Şifrelenmiş mnemonic depolanmadı", - 781419966: "Şifrelenmiş mnemonic ID ile depolandı:", - 350279787: "Şifreleme", - 2601598799: "Şifreleme Modu", - 1821513079: "%d BIP-39 kelime girin.", - 3504179008: "BIP-39 mnemonic'inizin her kelimesini 1'den 2048'e kadar bir sayı olarak girin.", - 1100685007: "BIP-39 mnemonic'inizin her kelimesini 1'den 800'e kadar onaltılık bir sayı olarak girin.", - 4090266642: "BIP-39 mnemonic'inizin her kelimesini 1'den 4000'e kadar sekizlik bir sayı olarak girin.", - 2780625730: "BIP-39 mnemonic'inizin her kelimesini girin.", - 889040671: "Hata:", - 1505332462: "Çıkış", - 3838465623: "Dosyaları ara?", - 4170881190: "SD karta aktarılıyor..", - 1711312434: "Genişletilmiş Public Key", - 3981762528: "Fabrika Ayarları", - 383371114: "Şifre çözme başarısız", - 3048830188: "PSBT yükleme başarısız", - 4192663412: "Adres yükleme başarısız", - 1996021743: "Anahtar yükleme başarısız", - 1108715658: "Mesaj yükleme başarısız", - 1081425878: "Mnemonic yükleme başarısız", - 928667220: "Çıktı tanımlayıcısı yüklemesi başarısız", - 1620572516: "Parola yükleme başarısız", - 2946146830: "Mnemonic depolama başarısız", - 262248294: "Ücret:", - 104500973: "Besleme Hızı", - 3313339187: "Dosya adı", - 1982637349: "%s dosya adı SD kartta var, üzerine yazılsın mı?", - 4006602858: "PSBT'de parmak izi ayarı kaldırıldı", - 2542772894: "Donanım yazılımı maksimum boyutu aşıyor: %d", - 3748840176: "X Koordinatları Tersine Çevrildi", - 1406590538: "Flute Çapı", - 1077771640: "Boş:", - 1893243331: "Depolamadan Seç", - 1871146425: "Verilerin geri kullanılamaz olduğundan emin olmak için SD kartınızı başka bir cihazda tamamen silin", - 3549015533: "Mnemonic Oluştur", - 3524220994: "BIP85 türevi anımsatıcı oluşturulsun mu?", - 299338213: "Bu mnemonic'e özel bir ID verilsin mi? Aksi takdirde mevcut parmak izi kullanılacaktır", - 602716148: "Seç", - 1198393582: "Yeterli entropi", - 133139382: "Donanım", - 3580020863: "Hex Public Key", - 2691246967: "Onaltılık", - 3903754133: "Mnemonic'leri Gizle", - 3876651191: "Yüksek ücret!", - 2880010062: "ID zaten var", - 3242179508: "Girişler (%d):", - 3034883011: "Yükle?", - 3755547839: "Yetersiz Entropi!", - 2032416055: "Yetersiz entropi", - 2585599782: "Geçersiz adres", - 2874529150: "Geçersiz önyükleyici", - 4093416954: "Geçersiz mnemonic uzunluğu", - 1422874211: "Geçersiz public key", - 237577215: "Geçersiz cüzdan:", - 4122897393: "Ters Çevir", - 640219121: "Ters Renkler", - 3000888649: "Anahtar", - 3264569915: "Anahtar sağlanmadı", - 3835918229: "Krux Yazıcı Test QR'ı", - 911419226: "LCD Tipi", - 766317539: "Dil", - 4180141032: "Krux'un geçerli bir son kelime seçmesini istiyorsanız boş bırakın", - 3663022166: "Sol", - 972436696: "Satır Gecikmesi", - 2176866982: "Satır:", - 2820726296: "Mnemonic Yükle", - 2369474953: "Cüzdan Yükle", - 2256441194: "Adresleri görüntülemek için güvenilir bir cüzdan tanımlayıcısı yüklensin mi?", - 237136240: "SD karttan yükle", - 879727077: "SD karttan yüklensin mi?", - 1936877965: "Kameradan yükle", - 669106195: "Bir tane mi yüklensin?", - 3330705289: "Yüklensin mi?", - 2596531078: "Kamera Yükleniyor..", - 2488179069: "Para üstü adresler yükleniyor..", - 336702608: "Yazıcı yükleniyor..", - 1201104769: "Alım adresler yükleniyor..", - 3159494909: "Yükleniyor..", - 1177338798: "Yerel", - 2817059741: "Konum", - 2917810189: "Maksimum uzunluk aşıldı (%s)", - 2030045667: "Mesaj", - 762611188: "Mesaj:", - 3928301843: "İmza dosyası eksik", - 1948316555: "Mnemonic", - 2123991188: "Mnemonic ID", - 1443208255: "Mnemonik ve parola tutulacaktır.", - 1746030071: "Mnemonic şifrelenmedi", - 1237332019: "Değiştirildi:", - 1845376098: "Çoklu imza", - 4265479636: "Yerel Segwit - 84 varsayılacaktır", - 2939797024: "Ağ", - 73574491: "Yeni Mnemonic", - 3634967631: "Yeni donanım yazılımı tespit edildi.", - 4063104189: "Hayır", - 2325721074: "Parola Yok", - 4092516657: "Yeterli zar atışı yok!", - 3089363813: "Numaralar", - 1577637745: "Sekizlik", - 391304453: "Diğer Formatlar", - 3312581301: "PBKDF2 Yinelemesi", - 995862913: "İşaretlenmiş noktaları siyaha boyayın ki tespit edilebilsinler.", - 2987800462: "Kağıt Genişliği", - 3913146360: "Parça", - 3559456868: "Parça Boyutu", - 4249903283: "Parola", - 3745269737: "Yol uyuşmazlığı", - 500286397: "Örüntü algılandı!", - 3040011773: "Tüm depolanmış ve şifrelenmiş mnemonic'ler ve ayarlar flash'tan kalıcı olarak kaldırılsın mı?", - 140802882: "Kalıcı Depolama", - 2578106186: "Piksel sapma indeksi:", - 1703779997: "Düz Metin QR'ı", - 3561756278: "Lütfen bir cüzdan çıktı tanımlayıcısı yükleyin", - 784609464: "Dalış Hızı", - 3761518438: "Düşük entropi", - 3639136476: "Düşük entropi tespit edildi!", - 3037062877: "Test QR'ını Yazdır", - 2362732578: "Tiny Seed Yazdırılsın mı?", - 3123770978: "QR'a Yazdır", - 3345150514: "QR'a yazdırılsın mı?", - 3339507095: "Yazdırılsın mı?", - 1123106929: "Yazıcı", - 3903571079: "Yazıcı Sürücüsü ayarlanmadı!", - 3586624216: "Yazdırılıyor..", - 3593149291: "Yine de devam edilsin mi?", - 2580599003: "Devam edilsin mi?", - 3108881025: "İşleniyor..", - 1848310591: "QR Kodu", - 710709610: "RX Pini", - 2697857197: "Al", - 1746677167: "Adresleri Al", - 1658501467: "Bölge:", - 3739634002: "%s kaldırılsın mı?", - 1476462492: "Mnemonic'i Kaldır", - 1557093280: "SD Karttan donanım yazılımı dosyaları kaldırılsın mı?", - 2817311427: "Çözünürlüğü Sıfırla", - 2365886561: "Fabrika ayarlarına geri dönüp ve yeniden başlatılsın mı?", - 3091105710: "QR Görüntüleyiciye Dön", - 1662254634: "Taranan verileri gözden geçirin, gerekirse düzenleyin", - 1963678224: "Sağ", - 770350922: "Bir mnemonic oluşturmak için zarı en az %d kez atın.", - 3271055013: "Zar atış dağılımı:", - 432366011: "Zar atışları:", - 3976793317: "SD kart", - 2736513298: "SD kart algılanmadı.", - 1166743226: "Zar atışlarının SHA256'sı:", - 817419367: "Snapshot'ın SHA256'sı:", - 699906428: "QR Görüntüsünü SD Karta Kaydet", - 2163347007: "SD karta kaydet", - 3531742595: "SD karta kaydedilsin mi?", - 2940025484: "SD karta kaydedildi", - 763824768: "Ölçek", - 4117455079: "Adresi Tara", - 4038076821: "BIP39 Parolasını Tara", - 923277590: "Anahtar QR Kodunu Tara", - 4006316572: "1-12 kelimeleri tekrar taranıyor", - 2736506158: "13-24 kelimeleri taranıyor", - 2029624154: "Ekran Koruyucu Süresi", - 289960586: "Betik Türü", - 1022211991: "Güvenlik", - 4255182430: "Kendine-transfer veya Para Üstü (%d):", - 3753172956: "Kendine-transfer:", - 473154195: "Ayarlar", - 563836138: "Ayarlar dahili olarak flaşta saklanır.", - 712533907: "Ayarlar SD karta kaydedildi.", - 2377955518: "Shannon Entropisi:", - 1825881236: "Kapat", - 3656120779: "Kapanma Süresi", - 2120776272: "Kapatılıyor..", - 1061961408: "İmzala", - 2293863356: "QR koduna imzala", - 2879966040: "SD karta imzala", - 4282338366: "İmzalansın mı?", - 746161122: "İmza", - 1988416729: "İmzalı Mesaj", - 3672006076: "İmzalı PSBT", - 3406791302: "İmzalanıyor..", - 2281377987: "Tek-imza", - 2019512665: "Boyut:", - 2344747135: "Bazı kontroller yerine getirilemedi.", - 2090568351: "Harcama (%d):", - 1260825919: "Harcama:", - 1232757391: "İnekler İçin İstatistikler", - 3303592908: "Flash'ta Sakla", - 720041451: "SD Kartta Sakla", - 3514476519: "Modu değiştirmek için kaydırın", - 1898550184: "Yakalamak için DOKUN veya GİR", - 4228215415: "TX Pini", - 2612594937: "Metin", - 1454688268: "Tema", - 1180180513: "Termal", - 2258131455: "Verilerin geri kullanılamaz olduğundan emin olmak için Cihazı Sil özelliğini kullanın", - 2700207481: "Parlaklığı Değiştir", - 725348723: "Araçlar", - 3684696112: "Dokunma Eşiği", - 2978718564: "Dokunmatik ekran", - 2732611775: "Daha fazla kez denensin mi?", - 401829098: "BIP39 parolasını yazın", - 2061556020: "Anahtar Yaz", - 2089395053: "Birim", - 2786714360: "Güncelleme tamamlandı.", - 2674953168: "Siyah bir arka plan yüzeyi kullanın.", - 2402455261: "Yeni bir mnemonic oluşturmak için kameranın entropisini kullanın", - 3336226318: "Kullanılan:", - 4003084591: "%s değeri aralık dışında: [%s, %s]", - 989428076: "Değer %s'nin katı olmalıdır", - 3429519584: "Doğrulanıyor..", - 1889659487: "Sürüm", - 4191058607: "Kamera Aracılığıyla", - 1254681955: "D20 Aracılığıyla", - 525309547: "D6 Aracılığıyla", - 590330112: "Manuel Giriş Aracılığıyla", - 1947603760: "Sözcüklerle", - 2504354847: "Yakalamanın tamamlanmasını bekleyin", - 2076481321: "Cüzdan", - 2297028319: "Cüzdan Tanımlayıcısı", - 4232654916: "Cüzdan çıktı tanımlayıcısı", - 2587172867: "Cüzdan çıktı tanımlayıcısı yüklendi!", - 2499782468: "Cüzdan çıktı tanımlayıcısı bulunamadı.", - 2671738224: "Uyarı:", - 262410364: "Cihazı Sil", - 3522794335: "Cihaz Siliniyor..", - 797660533: "Kelime %d", - 3742424146: "Kelime Numaraları", - 2965123464: "Kelimeler", - 1303016265: "Evet", - 2171149824: "geçerli bir adres!", - 1875891934: "ilk %d adreste BULUNAMADI", - }, - "vi-VN": { - 232475068: "% của số tiền.", - 1185266064: "%d của %d đa chữ kí", - 1503087751: "%d đến %d", - 1178563089: "%s Đã bỏ.", - 1092222515: "(tổng cộng %d)", - 3348584292: "(Thực nghiệm)", - 1099786887: "(chỉ xem)", - 2739590230: "12 từ", - 1310058127: "24 từ", - 1949634023: "Về chúng tôi", - 4287534872: "Chấp nhận giả định?", - 2995482424: "Tài khoản", - 2415648848: "Tài khoản #0 sẽ được giả định", - 1043817877: "Chỉ mục tài khoản", - 3439746594: "Thêm hoặc thay đổi cụm mật khẩu ví?", - 2143824150: "Cần thêm entropy từ camera cho chế độ AES-CBC", - 3270727197: "Địa chỉ", - 900375497: "Căn chỉnh camera và tấm dự phòng đúng cách.", - 88746165: "Chống lóa bị vô hiệu hóa", - 1521033296: "Đã bật chống lóa", - 3857613120: "Giao diện", - 1056821534: "Bạn có chắc không?", - 1868069640: "Màu BGR", - 3455872521: "Trở lại", - 4151330982: "Quay lại Menu", - 2756316330: "Sao lưu Mnemonic", - 2256777600: "Chữ ký xấu", - 3937333362: "Tốc độ baud", - 2046615409: "Lưới nhị phân", - 928727036: "Đệm viền", - 2519455027: "Độ sáng", - 2363604010: "Nút", - 2038226551: "Loại bỏ nhiễu nút", - 3138204438: "Hủy chụp hình", - 1207696150: "Thay đổi", - 3126552510: "Các địa chỉ tiền thối", - 1583186953: "Thay đổi giao diện và khởi động lại?", - 3768416405: "Thay đổi:", - 388908871: "Thay đổi sẽ kéo dài cho đến khi tắt máy.", - 3442025874: "Kiểm tra thẻ SD", - 3119547911: "Kiểm tra địa chỉ đó có thuộc về ví này không?", - 1187826970: "Đã kiểm tra %d địa chỉ không khớp.", - 2470115694: "Kiểm tra thẻ SD..", - 1851578965: "Chỉ mục phụ", - 4094072796: "Tạo mã QR", - 167798282: "Tạo mã QR từ văn bản?", - 678449760: "Tạo:", - 3513215254: "Mã QR tùy chỉnh", - 3585411775: "Tùy chỉnh", - 534274978: "Tùy chỉnh ví của bạn sẽ tạo một Khóa mới.", - 124617190: "Chiều sâu cắt", - 597912140: "Phương pháp cắt", - 2504034831: "Số thập phân", - 2751113454: "Giải mã?", - 1272005728: "Ví mặc định", - 4102535566: "Độ sâu mỗi lần cắt CNC", - 1712856005: "Địa chỉ người mô tả", - 3278654271: "Hiển thị", - 3895447625: "Không được tắt máy, có thể mất một lúc để hoàn thành.", - 3836852788: "Hoàn tất?", - 690625786: "Từ gợi nhớ kép", - 382368239: "Driver", - 3582575312: "Đã mã hóa", - 1244124409: "Mã QR được mã hóa", - 2968548114: "Mnemonic được mã hóa không được lưu trữ", - 781419966: "Mnemonic được mã hóa không được lưu trữ với ID:", - 350279787: "Mã hóa", - 2601598799: "Chế độ mã hóa", - 1821513079: "Nhập %d từ BIP-39.", - 3504179008: "Nhập từng từ của Mnemonic BIP-39 của bạn dưới dạng số từ 1 đến 2048.", - 1100685007: "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số thập lục phân từ 1 đến 800.", - 4090266642: "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số bát phân từ 1 đến 4000.", - 2780625730: "Nhập từng từ của Mnemonic BIP-39 của bạn.", - 889040671: "Lỗi:", - 1505332462: "Esc", - 3838465623: "Khám phá các tập tin?", - 4170881190: "Xuất vào thẻ SD ..", - 1711312434: "Khóa công cộng", - 3981762528: "Cài đặt Gốc", - 383371114: "Không giải mã được", - 3048830188: "Tải PSBT thất bại", - 4192663412: "Tải địa chỉ thất bại", - 1996021743: "Không tải được khóa", - 1108715658: "Không tải được tin nhắn", - 1081425878: "Tải mã Mnemonic thất bại", - 928667220: "Không tải được bộ mô tả đầu ra", - 1620572516: "Không tải được cụm mật khẩu", - 2946146830: "Không lưu trữ Mnemonic được", - 262248294: "Phí:", - 104500973: "Tốc độ cắt CNC", - 3313339187: "Tên tệp", - 1982637349: "Tên tệp %s tồn tại trên thẻ SD, ghi đè lên?", - 4006602858: "Bỏ dấu vân tay trong PSBT", - 2542772894: "Phần mềm vượt quá kích thước tối đa: %d", - 3748840176: "Tọa độ X bị lật", - 1406590538: "Đường kính mũi cắt CNC", - 1077771640: "Khả dụng:", - 1893243331: "Từ bộ lưu trữ", - 1871146425: "Xóa hoàn toàn thẻ SD trong một thiết bị khác để đảm bảo dữ liệu không thể phục hồi", - 3549015533: "Tạo Mnemonic", - 3524220994: "Tạo một Mnemonic phụ thuộc BIP85?", - 299338213: "Cung cấp cho Mnemonic này một ID tùy chỉnh? Nếu không thì fingerprint hiện tại sẽ được sử dụng", - 602716148: "Chọn", - 1198393582: "Entropy tốt", - 133139382: "Phần cứng", - 3580020863: "Khóa công cộng Hex", - 2691246967: "Thập lục phân", - 3903754133: "Ẩn Mnemonics", - 3876651191: "Phí cao!", - 2880010062: "Id đã tồn tại", - 3242179508: "Đầu vào (%d):", - 3034883011: "Cài đặt phần mềm?", - 3755547839: "Entropy không đủ!", - 2032416055: "Không đủ entropy", - 2585599782: "Địa chỉ không hợp lệ", - 2874529150: "Bộ tải khởi động không hợp lệ", - 4093416954: "Độ dài mã Mnemonic không hợp lệ", - 1422874211: "Khóa công cộng không hợp lệ", - 237577215: "Ví không hợp lệ:", - 4122897393: "Đảo ngược", - 640219121: "Màu đảo ngược", - 3000888649: "Chìa khóa", - 3264569915: "Khóa không được cung cấp", - 3835918229: "QR kiểm tra máy in Krux", - 911419226: "Loại LCD", - 766317539: "Ngôn ngữ", - 4180141032: "Để trống nếu bạn muốn Krux chọn một từ cuối cùng hợp lệ", - 3663022166: "Trái", - 972436696: "Độ trễ Dòng", - 2176866982: "Đường kẻ:", - 2820726296: "Tải mã mnemonic", - 2369474953: "Nạp Ví", - 2256441194: "Tải mô tả ví đáng tin cậy để xem địa chỉ?", - 237136240: "Tải từ thẻ SD", - 879727077: "Tải từ thẻ SD?", - 1936877965: "Tải từ máy ảnh", - 669106195: "Tải một?", - 3330705289: "Tải?", - 2596531078: "Đang tải máy ảnh..", - 2488179069: "Đang tải địa chỉ tiền thối..", - 336702608: "Đang tải máy in ..", - 1201104769: "Đang tải địa chỉ nhận..", - 3159494909: "Đang tải..", - 1177338798: "Ngôn ngữ", - 2817059741: "Vị trí lưu", - 2917810189: "Chiều dài tối đa vượt quá (%s)", - 2030045667: "Tin nhắn", - 762611188: "Tin nhắn:", - 3928301843: "Thiếu tập tin chữ ký", - 1948316555: "Mã mnemonic", - 2123991188: "Mnemonic ID ", - 1443208255: "Từ gợi nhớ và cụm mật khẩu sẽ được lưu giữ.", - 1746030071: "Mnemonic không được mã hóa", - 1237332019: "Đã sửa đổi:", - 1845376098: "Đa chữ kí", - 4265479636: "Native Segwit - 84 sẽ được giả định", - 2939797024: "Mạng lưới", - 73574491: "Mnemonic mới", - 3634967631: "Phát hiện phần sụn mới.", - 4063104189: "Không", - 2325721074: "Không có cụm mật khẩu", - 4092516657: "Không đủ số lần quay!", - 3089363813: "Số", - 1577637745: "Bát phân", - 391304453: "Các định dạng khác", - 3312581301: "Lặp lại PBKDF2", - 995862913: "Tô các chấm đục lỗ màu đen để chúng có thể được phát hiện.", - 2987800462: "Chiều rộng giấy", - 3913146360: "Phần", - 3559456868: "Kích thước một phần", - 4249903283: "Cụm mật khẩu", - 3745269737: "Đường dẫn không khớp", - 500286397: "Đã phát hiện mẫu!", - 3040011773: "Xóa vĩnh viễn mọi Mnemonics và cài đặt được mã hóa lưu trữ trong flash?", - 140802882: "Vị trí lưu", - 2578106186: "Chỉ số độ lệch điểm ảnh:", - 1703779997: "QR dạng văn bản", - 3561756278: "Vui lòng tải bộ mô tả đầu ra ví", - 784609464: "Tỷ lệ sụt giảm", - 3761518438: "Entropy kém", - 3639136476: "Phát hiện entropy yếu!", - 3037062877: "In kiểm tra QR", - 2362732578: "In Tiny Seed?", - 3123770978: "In ra QR", - 3345150514: "In ra mã QR?", - 3339507095: "In?", - 1123106929: "Máy in", - 3903571079: "Trình điều khiển máy in chưa được cài đặt!", - 3586624216: "Đang in..", - 3593149291: "Vẫn tiếp tục?", - 2580599003: "Thực hiện?", - 3108881025: "Đang xử lý..", - 1848310591: "Mã QR", - 710709610: "RX Pin", - 2697857197: "Nhận được", - 1746677167: "Các địa chỉ nhận", - 1658501467: "Vùng:", - 3739634002: "Xóa %s?", - 1476462492: "Xóa Mnemonic", - 1557093280: "Xóa các tệp firmware khỏi Thẻ SD?", - 2817311427: "Độ phân giải - Định dạng", - 2365886561: "Khôi phục cài đặt gốc và khởi động lại?", - 3091105710: "Quay lại Trình xem QR", - 1662254634: "Xem lại dữ liệu đã quét, chỉnh sửa nếu cần", - 1963678224: "Phải", - 770350922: "Lăn xúc xắc ít nhất %d lần để tạo Mnemonic.", - 3271055013: "Phân bổ xúc xắc:", - 432366011: "Tổng số lần quay xúc xắc:", - 3976793317: "Thẻ SD", - 2736513298: "Thẻ SD không được phát hiện.", - 1166743226: "SHA256 của xúc xắc:", - 817419367: "Sha256 của ảnh chụp:", - 699906428: "Lưu Ảnh QR vào Thẻ SD", - 2163347007: "Lưu vào thẻ SD", - 3531742595: "Lưu vào thẻ SD?", - 2940025484: "Đã lưu vào thẻ SD", - 763824768: "Tỉ lệ", - 4117455079: "Quét địa chỉ", - 4038076821: "Quét cụm mật khẩu BIP39", - 923277590: "Quét mã QR khóa", - 4006316572: "Đang quét lại từ 1-12", - 2736506158: "Đang quét từ 13-24", - 2029624154: "Thời gian chế độ bảo vệ màn hình", - 289960586: "Kiểu văn lệnh", - 1022211991: "Bảo mật", - 4255182430: "Tự chuyển nhượng hoặc giao dịch (%d):", - 3753172956: "Tự chuyển nhượng:", - 473154195: "Cài đặt", - 563836138: "Cài đặt được lưu trữ nội bộ trên đèn flash.", - 712533907: "Cài đặt được lưu trên thẻ SD.", - 2377955518: "Entropy của Shannon:", - 1825881236: "Tắt máy", - 3656120779: "Thời gian tắt máy", - 2120776272: "Đang tắt..", - 1061961408: "Chữ kí", - 2293863356: "Ký vào mã QR", - 2879966040: "Ký vào thẻ SD", - 4282338366: "Kí?", - 746161122: "Chữ ký", - 1988416729: "Tin nhắn đã ký", - 3672006076: "Đã ký PSBT", - 3406791302: "Đang ký..", - 2281377987: "Khóa đơn", - 2019512665: "Dung lượng:", - 2344747135: "Một số kiểm tra không thể được thực hiện.", - 2090568351: "Chi tiêu (%d):", - 1260825919: "Chi tiêu:", - 1232757391: "Số liệu thống kê cho Mọt sách", - 3303592908: "Lưu trữ trên flash", - 720041451: "Lưu trữ trên thẻ SD", - 3514476519: "Vuốt để thay đổi chế độ", - 1898550184: "Chạm màn hình hoặc nhấn nút ENTER để chụp", - 4228215415: "TX Pin", - 2612594937: "Chữ", - 1454688268: "Chủ đề", - 1180180513: "Nhiệt", - 2258131455: "Sử dụng tính năng Xóa dữ liệu trên thiết bị để đảm bảo dữ liệu không thể phục hồi", - 2700207481: "Chuyển đổi độ sáng", - 725348723: "Công cụ", - 3684696112: "Ngưỡng cảm ứng", - 2978718564: "Màn hình cảm ứng", - 2732611775: "Thử thêm nữa?", - 401829098: "Nhập cụm mật khẩu BIP39", - 2061556020: "Nhập khóa", - 2089395053: "Đơn vị", - 2786714360: "Nâng cấp hoàn tất.", - 2674953168: "Sử dụng bề mặt nền đen.", - 2402455261: "Sử dụng sự ngẫu nhiên của máy ảnh để tạo ra một Mnemonic mới", - 3336226318: "Đã sử dụng:", - 4003084591: "Giá trị %s ngoài phạm vi: [ %s, %s]", - 989428076: "Giá trị phải là bội của %s", - 3429519584: "Đang xác minh..", - 1889659487: "Phiên Bản", - 4191058607: "Qua máy ảnh", - 1254681955: "Qua xúc xắc 20 mặt", - 525309547: "Qua xúc xắc 6 mặt", - 590330112: "Thông qua đầu vào thủ công", - 1947603760: "Thông qua từ ngữ", - 2504354847: "Chờ bắt", - 2076481321: "Ví", - 2297028319: "Trình mô tả ví", - 4232654916: "Ví đầu ra mô tả", - 2587172867: "Đã tải bộ mô tả đầu ra của ví!", - 2499782468: "Không tìm thấy bộ mô tả đầu ra ví.", - 2671738224: "Cảnh báo:", - 262410364: "Xóa dữ liệu trên thiết bị", - 3522794335: "Đang xóa dữ liệu trên thiết bị..", - 797660533: "Kí tự %d", - 3742424146: "Từ số", - 2965123464: "Từ ngữ", - 1303016265: "Đúng", - 2171149824: "là một địa chỉ hợp lệ!", - 1875891934: "kHÔNG TÌM THẤY trong %d địa chỉ đầu tiên", - }, - "zh-CN": { - 232475068: "金额的百分比。", - 1185266064: "%d/%d 多签", - 1503087751: "%d到%d", - 1178563089: "%s 已移除.", - 1092222515: "(总计 %d)", - 3348584292: "(实验性)", - 1099786887: "(仅观看)", - 2739590230: "12 个词", - 1310058127: "24 个词", - 1949634023: "关于", - 4287534872: "接受假设?", - 2995482424: "账户", - 2415648848: "将假定为账户 #0", - 1043817877: "账户索引", - 3439746594: "添加或更改钱包密码?", - 2143824150: "AES-CBC 模式需要相机的额外熵", - 3270727197: "地址", - 900375497: "正确对齐摄像头和靠板。", - 88746165: "防眩光已禁用", - 1521033296: "防眩光已启用", - 3857613120: "外观", - 1056821534: "你确定吗?", - 1868069640: "BGR 颜色", - 3455872521: "返回", - 4151330982: "返回菜单", - 2756316330: "备份助记词", - 2256777600: "签名无效", - 3937333362: "波特率", - 2046615409: "二进制网格", - 928727036: "边框填充", - 2519455027: "亮度", - 2363604010: "按钮", - 2038226551: "按钮去抖动", - 3138204438: "捕获取消", - 1207696150: "找零", - 3126552510: "找零地址", - 1583186953: "更改主题并重新启动?", - 3768416405: "找零", - 388908871: "更改将在关机前保持。", - 3442025874: "检查 SD 卡", - 3119547911: "检查该地址是否属于此钱包?", - 1187826970: "已检查%d个不匹配的地址。", - 2470115694: "检查 SD 卡..", - 1851578965: "子索引", - 4094072796: "创建二维码", - 167798282: "从文本创建二维码?", - 678449760: "已创建:", - 3513215254: "自定义二维码", - 3585411775: "自定义", - 534274978: "自定义您的钱包将生成新密钥。", - 124617190: "切割深度", - 597912140: "切割方法", - 2504034831: "十进制", - 2751113454: "解密?", - 1272005728: "默认钱包", - 4102535566: "每次通过的深度", - 1712856005: "描述符地址", - 3278654271: "显示", - 3895447625: "请勿断电,可能需要一段时间完成。", - 3836852788: "完成了吗?", - 690625786: "双重助记符", - 382368239: "驱动程序", - 3582575312: "已加密", - 1244124409: "加密二维码", - 2968548114: "加密助记词未存储", - 781419966: "加密助记词已存储,ID 为:", - 350279787: "加密", - 2601598799: "加密模式", - 1821513079: "输入 %d 个 BIP-39 词。", - 3504179008: "将 BIP-39 助记词的每个词作为 1 到 2048 的数字输入。", - 1100685007: "将 BIP-39 助记词的每个词作为 1 到 800 的十六进制数输入。", - 4090266642: "将 BIP-39 助记词的每个词作为 1 到 4000 的八进制数输入。", - 2780625730: "输入每个 BIP-39 助记词。", - 889040671: "错误:", - 1505332462: "Esc", - 3838465623: "浏览文件?", - 4170881190: "导出到 SD 卡..", - 1711312434: "扩展公钥", - 3981762528: "出厂设置", - 383371114: "解密失败", - 3048830188: "加载 PSBT 失败", - 4192663412: "加载地址失败", - 1996021743: "加载密钥失败", - 1108715658: "加载消息失败", - 1081425878: "加载助记词失败", - 928667220: "加载输出描述符失败", - 1620572516: "加载密码失败", - 2946146830: "存储助记词失败", - 262248294: "费用:", - 104500973: "进给速度", - 3313339187: "文件名", - 1982637349: "文件名 %s 存在于 SD 卡上,覆盖?", - 4006602858: "PSBT 中未设置指纹", - 2542772894: "固件超过最大尺寸:%d", - 3748840176: "翻转 X 坐标", - 1406590538: "刀具直径", - 1077771640: "空闲:", - 1893243331: "从存储中", - 1871146425: "在其他设备中完全擦除您的 SD 卡以确保数据不可恢复", - 3549015533: "生成助记词", - 3524220994: "生成 BIP85 子助记词?", - 299338213: "为此助记词设置自定义 ID?否则将使用当前指纹", - 602716148: "去", - 1198393582: "良好的熵", - 133139382: "硬件", - 3580020863: "十六进制公钥", - 2691246967: "十六进制", - 3903754133: "隐藏助记词", - 3876651191: "高费用!", - 2880010062: "ID 已存在", - 3242179508: "输入 (%d):", - 3034883011: "安装?", - 3755547839: "熵不足!", - 2032416055: "熵不足", - 2585599782: "无效地址", - 2874529150: "无效引导程序", - 4093416954: "助记词长度无效", - 1422874211: "无效公钥", - 237577215: "无效钱包:", - 4122897393: "反转", - 640219121: "反转颜色", - 3000888649: "密钥", - 3264569915: "未提供密钥", - 3835918229: "Krux 打印机测试二维码", - 911419226: "LCD 类型", - 766317539: "语言", - 4180141032: "如果希望 Krux 选择有效的最后一个词,请留空", - 3663022166: "左", - 972436696: "行延迟", - 2176866982: "行:", - 2820726296: "加载助记词", - 2369474953: "加载钱包", - 2256441194: "加载受信任的钱包描述符以查看地址?", - 237136240: "从 SD 卡加载", - 879727077: "从 SD 卡加载?", - 1936877965: "从相机加载", - 669106195: "加载一个?", - 3330705289: "加载?", - 2596531078: "加载相机..", - 2488179069: "加载找零地址..", - 336702608: "加载打印机..", - 1201104769: "加载接收地址..", - 3159494909: "加载中..", - 1177338798: "语言环境", - 2817059741: "位置", - 2917810189: "超过最大长度(%s)", - 2030045667: "消息", - 762611188: "消息:", - 3928301843: "缺少签名文件", - 1948316555: "助记词", - 2123991188: "助记词 ID", - 1443208255: "助记词和密码将被保留。", - 1746030071: "助记词未加密", - 1237332019: "修改时间:", - 1845376098: "多签", - 4265479636: "假定为原生 Segwit - 84", - 2939797024: "网络", - 73574491: "新助记词", - 3634967631: "检测到新固件。", - 4063104189: "否", - 2325721074: "无密码", - 4092516657: "投掷次数不足!", - 3089363813: "数字", - 1577637745: "八进制", - 391304453: "其他格式", - 3312581301: "PBKDF2 迭代", - 995862913: "将打孔点涂黑,以便它们能被检测到。", - 2987800462: "纸张宽度", - 3913146360: "部分", - 3559456868: "部件尺寸", - 4249903283: "密码", - 3745269737: "路径不匹配", - 500286397: "检测到模式!", - 3040011773: "从闪存中永久删除所有存储的加密助记词和设置?", - 140802882: "保存", - 2578106186: "像素偏差指数:", - 1703779997: "明文二维码", - 3561756278: "请加载钱包输出描述符", - 784609464: "下刀速度", - 3761518438: "熵值低", - 3639136476: "检测到低熵!", - 3037062877: "打印测试二维码", - 2362732578: "打印 Tiny Seed?", - 3123770978: "打印到二维码", - 3345150514: "打印到二维码?", - 3339507095: "打印?", - 1123106929: "打印机", - 3903571079: "打印机驱动程序未设置!", - 3586624216: "正在打印", - 3593149291: "继续吗?", - 2580599003: "继续?", - 3108881025: "正在处理..", - 1848310591: "二维码", - 710709610: "RX 引脚", - 2697857197: "接收", - 1746677167: "接收地址", - 1658501467: "区域:", - 3739634002: "删除 %s?", - 1476462492: "删除助记词", - 1557093280: "从 SD 卡中删除固件文件?", - 2817311427: "分辨率 - 格式", - 2365886561: "恢复出厂设置并重新启动?", - 3091105710: "返回二维码查看器", - 1662254634: "审查扫描的数据,如有必要请编辑", - 1963678224: "右", - 770350922: "掷骰子至少 %d 次以生成助记词。", - 3271055013: "掷骰子分布:", - 432366011: "掷骰子:", - 3976793317: "SD 卡", - 2736513298: "未检测到 SD 卡。", - 1166743226: "掷骰子的 SHA256:", - 817419367: "快照的 SHA256:", - 699906428: "将二维码图像保存到 SD 卡", - 2163347007: "保存到 SD 卡", - 3531742595: "保存到 SD 卡?", - 2940025484: "保存到 SD 卡", - 763824768: "缩放", - 4117455079: "扫描地址", - 4038076821: "扫描 BIP39 密码", - 923277590: "扫描密钥二维码", - 4006316572: "重新扫描词 1-12", - 2736506158: "扫描词 13-24", - 2029624154: "屏保时间", - 289960586: "脚本类型", - 1022211991: "安全", - 4255182430: "自转或找零 (%d):", - 3753172956: "自行转账:", - 473154195: "设置", - 563836138: "设置存储在闪存的内部。", - 712533907: "设置存储在SD卡上。", - 2377955518: "香农熵:", - 1825881236: "关机", - 3656120779: "关机时间", - 2120776272: "关机中..", - 1061961408: "签名", - 2293863356: "签名到二维码", - 2879966040: "签名到 SD 卡", - 4282338366: "签名?", - 746161122: "签名", - 1988416729: "签名消息", - 3672006076: "已签名 PSBT", - 3406791302: "签名中..", - 2281377987: "单签", - 2019512665: "大小:", - 2344747135: "无法执行某些检查。", - 2090568351: "花费 (%d):", - 1260825919: "支出", - 1232757391: "极客统计数据", - 3303592908: "存储到闪存", - 720041451: "存储到 SD 卡", - 3514476519: "滑动切换模式", - 1898550184: "点击或按下 ENTER 捕获", - 4228215415: "TX 引脚", - 2612594937: "文本", - 1454688268: "主题", - 1180180513: "热敏", - 2258131455: "要确保数据不可恢复,请使用擦除设备功能", - 2700207481: "切换亮度", - 725348723: "工具", - 3684696112: "触摸阈值", - 2978718564: "触摸屏", - 2732611775: "再试一次?", - 401829098: "输入 BIP39 密码", - 2061556020: "输入密钥", - 2089395053: "单位", - 2786714360: "升级完成。", - 2674953168: "使用黑色背景表面。", - 2402455261: "使用相机的熵创建新助记词", - 3336226318: "已用:", - 4003084591: "值 %s 超出范围:[ %s,%s ]", - 989428076: "值必须是 %s 的倍数", - 3429519584: "验证中..", - 1889659487: "版本", - 4191058607: "通过相机", - 1254681955: "通过 D20", - 525309547: "通过 D6", - 590330112: "通过手动输入", - 1947603760: "通过词", - 2504354847: "等待捕获", - 2076481321: "钱包", - 2297028319: "钱包描述符", - 4232654916: "钱包输出描述符", - 2587172867: "钱包输出描述符已加载!", - 2499782468: "未找到钱包输出描述符。", - 2671738224: "警告:", - 262410364: "清除设备", - 3522794335: "清除设备中..", - 797660533: "词 %d", - 3742424146: "词数字", - 2965123464: "词", - 1303016265: "是", - 2171149824: " 不是一个有效地址", - 1875891934: "在前%d个地址中未找到", - }, -} diff --git a/src/krux/translations/__init__.py b/src/krux/translations/__init__.py new file mode 100644 index 00000000..9eaf47f5 --- /dev/null +++ b/src/krux/translations/__init__.py @@ -0,0 +1,33 @@ +# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +available_languages = [ + "de-DE", + "es-MX", + "fr-FR", + "ko-KR", + "nl-NL", + "pt-BR", + "ru-RU", + "tr-TR", + "vi-VN", + "zh-CN", +] diff --git a/src/krux/translations/de_DE.py b/src/krux/translations/de_DE.py new file mode 100644 index 00000000..16706306 --- /dev/null +++ b/src/krux/translations/de_DE.py @@ -0,0 +1,317 @@ +# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +# pylint: disable=C0301 +translation_table = { + 232475068: "% des Betrags.", + 1185266064: "%d von %d Multisig", + 1503087751: "%d bis %d ", + 1178563089: "%s wurde entfernt.", + 1092222515: "(%d insgesamt)", + 3348584292: "(Experimental)", + 1099786887: "(nur zur Betrachtung)", + 2739590230: "12 Wörter", + 1310058127: "24 Wörter", + 1949634023: "Über", + 4287534872: "Annahme akzeptieren?", + 2995482424: "Konto", + 2415648848: "Konto #0 würde angenommen", + 1043817877: "Kontoindex", + 3439746594: "Wallet-Passphrase hinzufügen oder ändern?", + 2143824150: "Zusätzliche Entropie von der Kamera für den AES-CBC-Modus erforderlich", + 3270727197: "Adresse", + 900375497: "Richte Kamera und Sicherungsplatte richtig aus.", + 88746165: "Blendschutz deaktiviert", + 1521033296: "Blendschutz aktiviert", + 3857613120: "Aussehen", + 1056821534: "Bist Du sicher?", + 1868069640: "BGR-Farben", + 3455872521: "Zurück", + 4151330982: "Zurück zum Menü", + 2756316330: "Mnemonik-Backup", + 2256777600: "Ungültige Signatur", + 3937333362: "Baudrate", + 2046615409: "Binäres Gitter", + 928727036: "Randpolsterung", + 2519455027: "Helligkeit", + 2363604010: "Tasten", + 2038226551: "Entprellung der Tasten", + 3138204438: "Aufnahme abgebrochen", + 1207696150: "Change Adresse", + 3126552510: "Change Adressen", + 1583186953: "Thema ändern und neu starten?", + 3768416405: "Change:", + 388908871: "Änderungen bleiben bis zum Herunterfahren bestehen.", + 3442025874: "Prüfe SD-Karte", + 3119547911: "Überprüfen, ob diese Adresse zu dieser Wallet gehört?", + 1187826970: "Überprüfte %d Adresse ohne Übereinstimmungen.", + 2470115694: "Suche nach SD-Karte..", + 1851578965: "Untergeordneter Index", + 4094072796: "Erstelle QR-Code", + 167798282: "QR-Code aus Text erzeugen?", + 678449760: "Erstellt:", + 3513215254: "Benutzerdefinierte QR-Code", + 3585411775: "Anpassen", + 534274978: "Wenn Sie Ihr Wallet anpassen, wird ein neuer Schlüssel generiert.", + 124617190: "Schnitttiefe", + 597912140: "Cut-Methode", + 2504034831: "Dezimal", + 2751113454: "Entschlüsseln?", + 1272005728: "Standard-Wallet", + 4102535566: "Tiefe pro Durchgang", + 1712856005: "Deskriptor-Adressen", + 3278654271: "Bildschirm", + 3895447625: "Schalten Sie das Gerät nicht aus, es kann eine Weile dauern.", + 3836852788: "Fertig?", + 690625786: "Doppelte Gedächtnisstütze", + 382368239: "Driver", + 3582575312: "Verschlüsselt", + 1244124409: "Verschlüsselter QR-Code", + 2968548114: "Verschlüsselte Mnemonic wurde nicht gespeichert", + 781419966: "Speicherung der verschlüsselten Mnemonic mit ID:", + 350279787: "Verschlüsselung", + 2601598799: "Verschlüsselungsmodus", + 1821513079: "Geben Sie %d BIP-39 Wörter ein.", + 3504179008: "Gib jedes Wort Deiner BIP-39 Mnemonic als Zahl von 1 bis 2048 ein.", + 1100685007: "Gib jedes Wort Deiner BIP-39 Mnemonic als Hexadezimalzahl von 1 bis 800 ein.", + 4090266642: "Gib jedes Wort Deiner BIP-39 Mnemonic als Oktalzahl von 1 bis 4000 ein.", + 2780625730: "Gib jedes Wort Deiner BIP-39 Mnemonic ein.", + 889040671: "Fehler:", + 1505332462: "Esc", + 3838465623: "Dateien durchsuchen?", + 4170881190: "Auf SD-Karte exportieren..", + 1711312434: "Öffentlicher Schlüssel", + 3981762528: "Werkeinstellungen", + 383371114: "Entschlüsselung fehlgeschlagen", + 3048830188: "PSBT konnte nicht geladen werden", + 4192663412: "Adresse konnte nicht geladen werden", + 1996021743: "Schlüssel konnte nicht geladen werden", + 1108715658: "Nachricht konnte nicht geladen werden", + 1081425878: "Mnemonic konnte nicht geladen werden", + 928667220: "Ausgabedeskriptor konnte nicht geladen werden", + 1620572516: "Passphrase konnte nicht geladen werden", + 2946146830: "Mnemonic konnte nicht gespeichert werden", + 262248294: "Gebühr:", + 104500973: "Vorschubgeschwindigkeit", + 3313339187: "Dateiname", + 1982637349: "Dateiname %s existiert auf SD-Karte, überschreiben?", + 4006602858: "Fingerabdruck in PSBT deaktiviert", + 2542772894: "Die Firmware übersteigt die maximale Größe: %d", + 3748840176: "Umgedrehte X-Koordinaten", + 1406590538: "Flötendurchmesser", + 1077771640: "Frei:", + 1893243331: "Vom Speicher", + 1871146425: "Löschen Sie Ihre SD-Karte vollständig in einem anderen Gerät, um sicherzustellen, dass die Daten nicht wiederhergestellt werden können", + 3549015533: "Mnemonik erzeugen", + 3524220994: "BIP85-Untermnemonik generieren?", + 299338213: "Dieser Mnemonic eine benutzerdefinierte ID zuteilen? Andernfalls wird der aktuelle Fingerabdruck verwendet", + 602716148: "Go", + 1198393582: "Gute Entropie", + 133139382: "Hardware", + 3580020863: "Hex öffentlicher Schlüssel", + 2691246967: "Hexadezimal", + 3903754133: "Mnemonics ausblenden", + 3876651191: "Hohe Gebühren!", + 2880010062: "ID existiert bereits", + 3242179508: "Input (%d):", + 3034883011: "Installieren?", + 3755547839: "Unzureichende Entropie!", + 2032416055: "Unzureichende Entropie", + 2585599782: "Ungültige Adresse", + 2874529150: "Ungültiger Bootloader", + 4093416954: "Ungültige mnemonische Lange", + 1422874211: "Ungültiger öffentlicher Schlüssel", + 237577215: "Ungültige Wallet:", + 4122897393: "Umkehren", + 640219121: "Invertierte Farben", + 3000888649: "Schlüssel", + 3264569915: "Schlüssel wurde nicht zur Verfügung gestellt", + 3835918229: "Krux Drucker Test-QR", + 911419226: "LCD-Typ", + 766317539: "Sprache", + 4180141032: "Lassen Sie das Feld leer, wenn Sie möchten, dass Krux ein gültiges letztes Wort auswählt", + 3663022166: "Links", + 972436696: "Leitungsverzögerung", + 2176866982: "Linie:", + 2820726296: "Mnemonic laden", + 2369474953: "Wallet laden", + 2256441194: "Einen vertrauenswürdigen Wallet-Deskriptor laden, um Adressen anzuzeigen?", + 237136240: "Von SD-Karte laden", + 879727077: "Von SD-Karte laden?", + 1936877965: "Von der Kamera laden", + 669106195: "Eine laden?", + 3330705289: "Laden?", + 2596531078: "Lade Kamera..", + 2488179069: "Lade Change Adressen..", + 336702608: "Drucker wird geladen..", + 1201104769: "Lade Empfangsadressen..", + 3159494909: "Wird geladen..", + 1177338798: "Spracheinstellung", + 2817059741: "Speicherort", + 2917810189: "Maximale Länge überschritten (%s)", + 2030045667: "Nachricht", + 762611188: "Nachricht:", + 3928301843: "Fehlende Signaturdatei", + 1948316555: "Mnemonic", + 2123991188: "Mnemonische ID", + 1443208255: "Mnemotechnik und Passphrase werden beibehalten.", + 1746030071: "Mnemonic wurde nicht verschlüsselt", + 1237332019: "Geändert:", + 1845376098: "Multisig", + 4265479636: "Native Segwit - 84 würde angenommen", + 2939797024: "Netzwerk", + 73574491: "Neue Mnemonic", + 3634967631: "Neue Firmware erkannt.", + 4063104189: "Nein", + 2325721074: "Keine Passphrase", + 4092516657: "Nicht genug Würfe!", + 3089363813: "Zahlen", + 1577637745: "Oktal", + 391304453: "Andere Formate", + 3312581301: "PBKDF2-Iter.", + 995862913: "Male gestanzte Punkte schwarz an, damit sie erkannt werden können.", + 2987800462: "Papierbreite", + 3913146360: "Teil", + 3559456868: "Teilegröße", + 4249903283: "Passphrase", + 3745269737: "Pfad stimmt nicht überein", + 500286397: "Muster erkannt!", + 3040011773: "Alle gespeicherten verschlüsselten Mnemoniken und Einstellungen dauerhaft vom Flash-Speicher entfernen?", + 140802882: "Speicher", + 2578106186: "Pixelabweichungsindex:", + 1703779997: "Klartext-QR", + 3561756278: "Bitte lade einen Wallet Ausgabedeskriptor", + 784609464: "Tauchrate", + 3761518438: "Schlechte Entropie", + 3639136476: "Schlechte Entropie erkannt!", + 3037062877: "Drucke Test-QR", + 2362732578: "Tiny Seed drucken?", + 3123770978: "Als QR-Code drucken", + 3345150514: "Als QR-Code drucken?", + 3339507095: "Drucken?", + 1123106929: "Drucker", + 3903571079: "Druckertreiber nicht gesetzt!", + 3586624216: "Wird gedruckt..", + 3593149291: "Trotzdem fortfahren?", + 2580599003: "Weiter?", + 3108881025: "Wird bearbeitet..", + 1848310591: "QR-Code", + 710709610: "RX Pin", + 2697857197: "Empfangen", + 1746677167: "Empfangsadresse", + 1658501467: "Region:", + 3739634002: "Löschen %s?", + 1476462492: "Mnemonic löschen", + 1557093280: "Firmware-Dateien von der SD-Karte entfernen?", + 2817311427: "Res. - Format", + 2365886561: "Werkseinstellungen wiederherstellen und neu starten?", + 3091105710: "Zurück zum QR-Viewer", + 1662254634: "Überprüfe gescannte Daten und bearbeite sie bei Bedarf", + 1963678224: "Rechts", + 770350922: "Würfel mindestens %d Mal, um eine Mnemonic zu erzeugen.", + 3271055013: "Rollenverteilung:", + 432366011: "Würfe:", + 3976793317: "SD-Karte", + 2736513298: "SD-Karte nicht erkannt.", + 1166743226: "SHA256 der Würfe:", + 817419367: "SHA256 des Snapshots:", + 699906428: "QR-Bild auf SD-Karte speichern", + 2163347007: "Auf SD-Karte speichern?", + 3531742595: "Auf SD-Karte speichern?", + 2940025484: "Auf SD-Karte gespeichert", + 763824768: "Skala", + 4117455079: "Adresse\nscannen", + 4038076821: "Scan BIP39 Passphrase", + 923277590: "Schlüssel QR-Code Scannen", + 4006316572: "Wörter 1-12 erneut scannen", + 2736506158: "Wörter 13-24 scannen", + 2029624154: "Bildschirmschonerzeit", + 289960586: "Script-Art", + 1022211991: "Sicherheit", + 4255182430: "Selbstübertragung oder Change (%d):", + 3753172956: "Selbstübertragung:", + 473154195: "Einstellungen", + 563836138: "Die Einstellungen werden intern auf Flash gespeichert.", + 712533907: "Einstellungen auf SD-Karte gespeichert.", + 2377955518: "Shannons Entropie:", + 1825881236: "Ausschalten", + 3656120779: "Abschaltzeit:", + 2120776272: "Herunterfahren..", + 1061961408: "Signieren", + 2293863356: "Am QR-Code unterschreiben", + 2879966040: "Auf SD-Karte signieren", + 4282338366: "Signieren?", + 746161122: "Signatur", + 1988416729: "Signierte Nachricht", + 3672006076: "Signierte PSBT", + 3406791302: "Unterschreiben..", + 2281377987: "Single-Sig", + 2019512665: "Größe:", + 2344747135: "Einige Schecks können nicht durchgeführt werden.", + 2090568351: "Ausgabe (%d):", + 1260825919: "Ausgaben:", + 1232757391: "Statistiken für Nerds", + 3303592908: "Auf Flash speichern", + 720041451: "Auf der SD-Karte speichern", + 3514476519: "Wischen um den Modus zu ändern", + 1898550184: "TOUCH oder ENTER zum Erfassen", + 4228215415: "TX Pin", + 2612594937: "Text", + 1454688268: "Thema", + 1180180513: "Thermisch", + 2258131455: "Um sicherzustellen, dass die Daten nicht wiederhergestellt werden können, verwenden Sie die Funktion 'Gerät löschen'", + 2700207481: "Helligkeit umschalten", + 725348723: "Werkzeuge", + 3684696112: "Berühre Schwellenwert", + 2978718564: "Touchscreen", + 2732611775: "Weiter versuchen?", + 401829098: "BIP39 Passphrase eingeben", + 2061556020: "Schlüssel eingeben", + 2089395053: "Einheit", + 2786714360: "Upgrade abgeschlossen.", + 2674953168: "Verwende eine schwarze Hintergrundfläche.", + 2402455261: "Verwende die Entropie der Kamera, um eine neue Mnemonic zu erstellen", + 3336226318: "Belegt:", + 4003084591: "Wert %S außerhalb des Bereichs: [ %s, %s]", + 989428076: "Der Wert muss ein Vielfaches von %s sein", + 3429519584: "Überprüfung..", + 1889659487: "Version", + 4191058607: "Via Kamera", + 1254681955: "Via D20", + 525309547: "Via D6", + 590330112: "Via manueller Eingabe", + 1947603760: "Via Wörter", + 2504354847: "Warte auf die Erfassung", + 2076481321: "Wallet", + 2297028319: "Wallet-Deskriptor", + 4232654916: "Wallet Ausgabedeskriptor", + 2587172867: "Wallet Ausgabedeskriptor geladen!", + 2499782468: "Wallet Ausgabedeskriptor nicht gefunden.", + 2671738224: "Warnung:", + 262410364: "Gerät löschen", + 3522794335: "Gerät wird gewischt..", + 797660533: "Wort %d", + 3742424146: "Wortnummern", + 2965123464: "Wörter", + 1303016265: "Ja", + 2171149824: "ist eine gültige Adresse!", + 1875891934: "wurde in den ersten %d Adressen nicht gefunden", +} diff --git a/src/krux/translations/es_MX.py b/src/krux/translations/es_MX.py new file mode 100644 index 00000000..dc74fb50 --- /dev/null +++ b/src/krux/translations/es_MX.py @@ -0,0 +1,317 @@ +# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +# pylint: disable=C0301 +translation_table = { + 232475068: "% del monto.", + 1185266064: "%d de %d multisig", + 1503087751: "%d a %d", + 1178563089: "%s eliminado.", + 1092222515: "(%d total)", + 3348584292: "(Experimental)", + 1099786887: "(Solo para observación)", + 2739590230: "12 palabras", + 1310058127: "24 palabras", + 1949634023: "Nosotros", + 4287534872: "¿Aceptar la suposición?", + 2995482424: "Cuenta", + 2415648848: "Se supondría que la cuenta #0", + 1043817877: "Índice de la cuenta", + 3439746594: "¿Añadir o cambiar passphrase de la cartera?", + 2143824150: "Se requiere entropía adicional de la cámara para el modo AES-CBC", + 3270727197: "Dirección", + 900375497: "Alinea la cámara y la placa de respaldo correctamente.", + 88746165: "Anti-reflejo desactivado", + 1521033296: "Anti-reflejo habilitado", + 3857613120: "Apariencia", + 1056821534: "¿Estás seguro?", + 1868069640: "Colores BGR", + 3455872521: "Atrás", + 4151330982: "Volver al Menú", + 2756316330: "Backup del Mnemónico", + 2256777600: "Firma incorrecta", + 3937333362: "Baudrate", + 2046615409: "Cuadrícula binaria", + 928727036: "Grosor del Borde", + 2519455027: "Brillo", + 2363604010: "Botones", + 2038226551: "Rebote de Botones", + 3138204438: "Captura cancelada", + 1207696150: "Cambio", + 3126552510: "Direcciones de Cambio", + 1583186953: "¿Cambiar de tema y reiniciar?", + 3768416405: "Cambio:", + 388908871: "Los cambios durarán hasta que el dispositivo se apague.", + 3442025874: "Verifica Tarjeta SD", + 3119547911: "¿Verificar que la dirección pertenece a esta cartera?", + 1187826970: "Comprobado %d direcciones sin coincidencias.", + 2470115694: "Comprobación de la tarjeta SD..", + 1851578965: "Índice Derivado", + 4094072796: "Crear Código QR", + 167798282: "¿Crear código QR desde texto?", + 678449760: "Creado:", + 3513215254: "Código QR Personalizado", + 3585411775: "Personalizar", + 534274978: "Personalizar tu cartera generará una nueva clave", + 124617190: "Profundidad de Corte", + 597912140: "Método de Corte", + 2504034831: "Decimal", + 2751113454: "¿Descifrar?", + 1272005728: "Cartera Predeterminada", + 4102535566: "Profundidad por Pasada", + 1712856005: "Direcciones del descriptor", + 3278654271: "Pantalla", + 3895447625: "No apagues el dispositivo, puede tardar un tiempo en completarse.", + 3836852788: "¿Listo?", + 690625786: "Doble mnemónico", + 382368239: "Operador", + 3582575312: "Cifrado", + 1244124409: "Código QR Cifrado", + 2968548114: "Mnemónico cifrado no se almacenó", + 781419966: "Mnemónico cifrado fue almacenado con ID:", + 350279787: "Cifrado", + 2601598799: "Modo de Cifrado", + 1821513079: "Ingrese %d palabras BIP-39.", + 3504179008: "Ingresa cada palabra de tu mnemónico BIP-39 como un número del 1 al 2048.", + 1100685007: "Ingresa cada palabra de tu mnemónico BIP-39 como un número en hexadecimal del 1 al 800.", + 4090266642: "Ingresa cada palabra de tu mnemónico BIP-39 como un número en octal del 1 al 4000.", + 2780625730: "Ingresa cada palabra de tu mnemónico BIP-39.", + 889040671: "Error:", + 1505332462: "Esc", + 3838465623: "¿Explorar archivos?", + 4170881190: "Exportando a la tarjeta SD..", + 1711312434: "Clave Pública Extendida", + 3981762528: "Ajustes de Fábrica", + 383371114: "Error al descifrar", + 3048830188: "No se pudo cargar la PSBT", + 4192663412: "No se pudo cargar la dirección", + 1996021743: "No se pudo cargar la clave", + 1108715658: "No se pudo cargar el mensaje", + 1081425878: "No se pudo importar el mnemónico", + 928667220: "No se pudo cargar el descriptor de salida", + 1620572516: "No se pudo cargar el passphrase", + 2946146830: "No pudo almacenar mnemónico", + 262248294: "Comisión:", + 104500973: "Feed Rate", + 3313339187: "Nombre del Archivo", + 1982637349: "El nombre de archivo %s existe en la tarjeta SD, ¿sobrescribir?", + 4006602858: "Huella dactilar no establecida en PSBT", + 2542772894: "El firmware supera el tamaño máximo: %d", + 3748840176: "Coordenadas X Invertidas", + 1406590538: "Diámetro de la Flauta", + 1077771640: "Libre:", + 1893243331: "Desde el Almacenamiento", + 1871146425: "Borra completamente su tarjeta SD en otro dispositivo para asegurarse de que los datos sean irrecuperables", + 3549015533: "Generar Mnemónico", + 3524220994: "¿Generar un mnemónico derivado BIP85?", + 299338213: "¿Darle a este mnemónico una identificación personalizada? De lo contrario se utilizará el fingerprint actual", + 602716148: "Ir", + 1198393582: "Buena entropía", + 133139382: "Hardware", + 3580020863: "Clave Pública Hexadecimal", + 2691246967: "Hexadecimal", + 3903754133: "Ocultar Mnemónicos", + 3876651191: "¡Tarifas altas!", + 2880010062: "ID ya existe", + 3242179508: "Entradas (%d):", + 3034883011: "¿Instalar?", + 3755547839: "¡Entropía Insuficiente!", + 2032416055: "Entropía insuficiente", + 2585599782: "Dirección inválida", + 2874529150: "Bootloader inválido", + 4093416954: "Longitud mnemónica no válida", + 1422874211: "Clave pública inválida", + 237577215: "Cartera inválida:", + 4122897393: "Invertir", + 640219121: "Colores Invertidos", + 3000888649: "Clave", + 3264569915: "No se proporcionó la clave", + 3835918229: "Test de impresión QR", + 911419226: "Tipo de LCD", + 766317539: "Idioma", + 4180141032: "Déjalo en blanco si quieres que Krux elija una última palabra válida", + 3663022166: "Izquierda", + 972436696: "Retraso de Línea", + 2176866982: "Línea:", + 2820726296: "Importar Mnemónico", + 2369474953: "Cargar Cartera", + 2256441194: "¿Cargar un descriptor de monedero de confianza para ver las direcciones?", + 237136240: "Cargar desde tarjeta SD", + 879727077: "¿Cargar desde la tarjeta SD?", + 1936877965: "Cargar desde la cámara", + 669106195: "¿Cargar algo?", + 3330705289: "¿Cargar?", + 2596531078: "Cargando Camara..", + 2488179069: "Cargando direcciones de cambio..", + 336702608: "Cargando impresora..", + 1201104769: "Cargando direcciones de recepción..", + 3159494909: "Cargando..", + 1177338798: "Idioma", + 2817059741: "Ubicación", + 2917810189: "Longitud máxima excedida (%s)", + 2030045667: "Mensaje", + 762611188: "Mensaje:", + 3928301843: "Falta archivo de firma", + 1948316555: "Mnemónico", + 2123991188: "Identificación del Mnemónico", + 1443208255: "Mnemónico y passphrase se mantendrán.", + 1746030071: "Mnemónico no fue descifrado", + 1237332019: "Modificado:", + 1845376098: "Multisig", + 4265479636: "Segwit nativo - 84 se supondría", + 2939797024: "Red", + 73574491: "Nuevo Mnemónico", + 3634967631: "Nuevo firmware detectado.", + 4063104189: "No", + 2325721074: "Sin Passphrase", + 4092516657: "¡No hay suficientes tiradas!", + 3089363813: "Números", + 1577637745: "Octales", + 391304453: "Otros Formatos", + 3312581301: "Iter. PBKDF2", + 995862913: "Pinte los puntos perforados de negro para que puedan ser detectados.", + 2987800462: "Ancho del Papel", + 3913146360: "Parte", + 3559456868: "Tamaño de la Pieza", + 4249903283: "Passphrase", + 3745269737: "La ruta no coincide", + 500286397: "¡Patrón detectado!", + 3040011773: "¿Eliminar permanentemente todos los mnemónicos y configuraciones cifradas almacenadas del flash?", + 140802882: "Guardar", + 2578106186: "Índice de desviación de píxeles:", + 1703779997: "QR de Texto", + 3561756278: "Carga un descriptor de cartera", + 784609464: "Tasa de Caída", + 3761518438: "Baja entropía", + 3639136476: "Mala entropía detectada!", + 3037062877: "Prueba de Impresión QR", + 2362732578: "¿Imprimir Tiny Seed?", + 3123770978: "Imprimir como Código QR", + 3345150514: "¿Imprimir con Codigo QR?", + 3339507095: "¿Impresión?", + 1123106929: "Impresora", + 3903571079: "¡El controlador de impresora no está configurado!", + 3586624216: "Imprimiendo..", + 3593149291: "¿Proceder de todas maneras?", + 2580599003: "¿Continuar?", + 3108881025: "Procesando..", + 1848310591: "Código QR", + 710709610: "RX Pin", + 2697857197: "Recepción", + 1746677167: "Direcciones de Recepción", + 1658501467: "Región:", + 3739634002: "Eliminar %s?", + 1476462492: "Eliminar Mnemónico", + 1557093280: "¿Eliminar archivos de firmware de la tarjeta SD?", + 2817311427: "Res. - Formato", + 2365886561: "¿Restablecer a la configuración de fábrica y reiniciar?", + 3091105710: "Volver al QR", + 1662254634: "Revisa los datos escaneados, edítalos si es necesario", + 1963678224: "Derecha", + 770350922: "Tira el dado al menos %d veces para generar un mnemónico.", + 3271055013: "Distribución de tiradas:", + 432366011: "Tiradas:", + 3976793317: "Tarjeta SD", + 2736513298: "Tarjeta SD no detectada.", + 1166743226: "SHA256 de las tiradas:", + 817419367: "SHA256 de la instantánea:", + 699906428: "Guardar Imagen QR en la Tarjeta SD", + 2163347007: "Guardar en tarjeta SD", + 3531742595: "¿Guardar en la tarjeta SD?", + 2940025484: "Guardado en la tarjeta SD", + 763824768: "Escala", + 4117455079: "Escanear Dirección", + 4038076821: "Escanear Passphrase BIP39", + 923277590: "Escanear el Código QR", + 4006316572: "Escaneo de palabras 1-12 de nuevo", + 2736506158: "Escaneo de palabras 13-24", + 2029624154: "Tiempo de Espera del Protector de Pantalla", + 289960586: "Tipo de Script", + 1022211991: "Seguridad", + 4255182430: "Autotransferencia o Cambio (%d):", + 3753172956: "Autotransferencia:", + 473154195: "Ajustes", + 563836138: "Ajustes almacenados internamente en flash.", + 712533907: "Configuración almacenada en la tarjeta SD.", + 2377955518: "Entropía de Shannon:", + 1825881236: "Apagar", + 3656120779: "Tiempo de Apagado", + 2120776272: "Apagando..", + 1061961408: "Firmar", + 2293863356: "Firmar en Código QR", + 2879966040: "Firmar en la Tarjeta SD", + 4282338366: "¿Firmar?", + 746161122: "Firma", + 1988416729: "Mensaje Firmado", + 3672006076: "PSBT Firmado", + 3406791302: "Firmando..", + 2281377987: "Single-sig", + 2019512665: "Tamaño:", + 2344747135: "Algunas comprobaciones no se pueden realizar.", + 2090568351: "Gastos (%d):", + 1260825919: "Gasto:", + 1232757391: "Estadísticas para Entendidos", + 3303592908: "Almacenar en Flash", + 720041451: "Almacenar en la Tarjeta SD", + 3514476519: "Deslizar para cambiar de modo", + 1898550184: "TOCA o ENTER para capturar", + 4228215415: "TX Pin", + 2612594937: "Texto", + 1454688268: "Tema", + 1180180513: "Térmico", + 2258131455: "Para garantizar que los datos no se puedan recuperar, utiliza la función de borrar dispositivo", + 2700207481: "Alternar Brillo", + 725348723: "Herramientas", + 3684696112: "Umbral Táctil", + 2978718564: "Pantalla Táctil", + 2732611775: "¿Intentar con mas?", + 401829098: "Escribe la Passphrase BIP39", + 2061556020: "Introduce la clave", + 2089395053: "Unidad", + 2786714360: "Actualización completa.", + 2674953168: "Usa una superficie de fondo negra.", + 2402455261: "Usa la entropía de la cámara para crear una nueva mnemónica", + 3336226318: "Usado:", + 4003084591: "Valor %s fuera del rango: [ %s, %s]", + 989428076: "El valor debe ser múltiple de %s", + 3429519584: "Verificando..", + 1889659487: "Versión", + 4191058607: "Desde Cámara", + 1254681955: "Vía D20", + 525309547: "Vía D6", + 590330112: "Introducción Manual", + 1947603760: "A Través de Palabras", + 2504354847: "Espera la captura", + 2076481321: "Cartera", + 2297028319: "Descriptor de Cartera", + 4232654916: "Descriptor de salida de cartera", + 2587172867: "¡Se ha cargado el descriptor de salida de la cartera!", + 2499782468: "No se encontró el descriptor de salida de la cartera.", + 2671738224: "Advertencia:", + 262410364: "Borrar Dispositivo", + 3522794335: "Borrando dispositivo..", + 797660533: "Palabra %d", + 3742424146: "Números de Palabra", + 2965123464: "Palabras", + 1303016265: "Sí", + 2171149824: "es una dirección válida!", + 1875891934: "NO FUE ENCONTRADO en las primeras %d direcciones", +} diff --git a/src/krux/translations/fr_FR.py b/src/krux/translations/fr_FR.py new file mode 100644 index 00000000..49452026 --- /dev/null +++ b/src/krux/translations/fr_FR.py @@ -0,0 +1,317 @@ +# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +# pylint: disable=C0301 +translation_table = { + 232475068: "% du montant.", + 1185266064: "%d de %d multisignature", + 1503087751: "%d à %d", + 1178563089: "%s supprimé.", + 1092222515: "(%d au total)", + 3348584292: "(Expérimental)", + 1099786887: "(consultation)", + 2739590230: "12 mots", + 1310058127: "24 mots", + 1949634023: "À propos", + 4287534872: "Accepter supposition\xa0?", + 2995482424: "Compte", + 2415648848: "Le compte n °0 serait supposé", + 1043817877: "Index du compte", + 3439746594: "Ajoutez ou modifiez la phrase secrète\u2009?", + 2143824150: "Entropie supplémentaire de la caméra requise pour le mode AES-CBC", + 3270727197: "Adresse", + 900375497: "Alignez correctement la caméra et plaque de sauvegarde.", + 88746165: "Anti-éblouissement désactivé", + 1521033296: "Anti-éblouissement activé", + 3857613120: "Apparence", + 1056821534: "Es-tu sûr\u2009?", + 1868069640: "Couleurs BGR", + 3455872521: "Retour", + 4151330982: "Retour au menu", + 2756316330: "Sauvegarde mnémonique", + 2256777600: "Mauvaise signature", + 3937333362: "Débit en bauds", + 2046615409: "Grille binaire", + 928727036: "Rembourrage de bordure", + 2519455027: "Luminosité", + 2363604010: "Boutons", + 2038226551: "Anti-rebond des boutons", + 3138204438: "Capture annulée", + 1207696150: "Changement", + 3126552510: "Adresses de Changement", + 1583186953: "Changer de thème et redémarrer\u2009?", + 3768416405: "La monnaie\u2009:", + 388908871: "Les modifications dureront jusqu'à l'arrêt.", + 3442025874: "Vérifiez la carte SD", + 3119547911: "Vérifiez que l'adresse appartient à cette portefeuille\u2009?", + 1187826970: "%d adresses vérifiées sans correspondance.", + 2470115694: "Vérification de la carte SD..", + 1851578965: "Indice enfant", + 4094072796: "Créer du code QR", + 167798282: "Créer du code QR à partir du texte\u2009?", + 678449760: "Créé\u2009:", + 3513215254: "Code QR personnalisé", + 3585411775: "Personnaliser", + 534274978: "La personnalisation de votre portefeuille générera une nouvelle clé.", + 124617190: "Profondeur de coupe", + 597912140: "Méthode de coupe", + 2504034831: "Décimal", + 2751113454: "Décrypter\u2009?", + 1272005728: "Portefeuille par défaut", + 4102535566: "Profondeur par passage", + 1712856005: "Adresses des descripteurs", + 3278654271: "Affichage", + 3895447625: "Ne pas éteindre, cela peut prendre un certain temps.", + 3836852788: "Terminé\u2009?", + 690625786: "Double mnémonique", + 382368239: "Conducteur", + 3582575312: "Chiffré", + 1244124409: "Code QR crypté", + 2968548114: "Le mnémonique crypté n'a pas été stocké", + 781419966: "Mnémonique cryptée a été stockée avec ID\u2009:", + 350279787: "Chiffrement", + 2601598799: "Mode de chiffrement", + 1821513079: "Entrez %d mots BIP-39.", + 3504179008: "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre de 1 à 2048.", + 1100685007: "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en hexadécimal de 1 à 800.", + 4090266642: "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en octal de 1 à 4000.", + 2780625730: "Entrez chaque mot de votre mnémonique BIP-39.", + 889040671: "Erreur\u2009:", + 1505332462: "Esc", + 3838465623: "Explorer des fichiers\u2009?", + 4170881190: "Exportation vers la carte SD..", + 1711312434: "Clé publique", + 3981762528: "Paramètres d'usine", + 383371114: "Échec de décrypter", + 3048830188: "Erreur de chargement PSBT", + 4192663412: "Erreur de chargement d'adresse", + 1996021743: "Échec du chargement de la clé", + 1108715658: "Échec du chargement du message", + 1081425878: "Erreur de chargement mnémonique", + 928667220: "Échec du chargement du descripteur de sortie", + 1620572516: "Échec du chargement de la phrase secrète", + 2946146830: "Échec de stocker mnémonique", + 262248294: "Frais\u2009:", + 104500973: "Taux d'alimentation", + 3313339187: "Nom de fichier", + 1982637349: "Le nom de fichier %s existe sur la carte SD, écraser\u2009?", + 4006602858: "Empreinte digitale manquante dans PSBT", + 2542772894: "Le micrologiciel dépasse la taille maximale\u2009: %d", + 3748840176: "Coordonnées X inversées", + 1406590538: "Diamètre de flûte", + 1077771640: "Libre\u2009:", + 1893243331: "Du stockage", + 1871146425: "Effacez complètement votre carte SD dans un autre appareil pour assurer que les données soient irrécupérables", + 3549015533: "Générer une mnémonique", + 3524220994: "Générer un mnémonique dérivé BIP-85\u2009?", + 299338213: "Donnez à ce mnémonique un identifiant personnalisé\u2009? Sinon l'empreinte actuelle sera utilisée", + 602716148: "Go", + 1198393582: "Bonne entropie", + 133139382: "Matériel", + 3580020863: "Clé public hexadécimal", + 2691246967: "Hexadécimal", + 3903754133: "Masquer les mnémoniques", + 3876651191: "Frais élevés\u2009!", + 2880010062: "Id existe déjà", + 3242179508: "Entrées (%d)\u2009:", + 3034883011: "Installer\u2009?", + 3755547839: "Entropie insuffisante\u2009!", + 2032416055: "Entropie insuffisante", + 2585599782: "Adresse invalide", + 2874529150: "Chargeur de démarrage invalide", + 4093416954: "Longueur mnémonique invalide", + 1422874211: "Clé publique non valide", + 237577215: "Portefeuille invalide\u2009:", + 4122897393: "Inverser", + 640219121: "Couleurs inversées", + 3000888649: "Clé", + 3264569915: "La clé n'a pas été fournie", + 3835918229: "Test de l'imprimante Krux QR", + 911419226: "Type d'écran LCD", + 766317539: "Langue", + 4180141032: "Laissez vide si vous souhaitez que Krux choisisse un dernier mot valide", + 3663022166: "Gauche", + 972436696: "Délai de Ligne", + 2176866982: "Ligne\u2009:", + 2820726296: "Charger mnémonique", + 2369474953: "Charger le portefeuille", + 2256441194: "Charger un descripteur de portefeuille de confiance pour afficher les adresses\u2009?", + 237136240: "Charger depuis la carte SD", + 879727077: "Charger depuis la carte SD\u2009?", + 1936877965: "Charger depuis une caméra", + 669106195: "En charger qu'un\u2009?", + 3330705289: "Charger\u2009?", + 2596531078: "Caméra de Chargement..", + 2488179069: "Chargement des adresses de monnaie..", + 336702608: "Chargement de l'imprimante..", + 1201104769: "Chargement des adresses de réception ..", + 3159494909: "Chargement..", + 1177338798: "Paramètres régionaux", + 2817059741: "Emplacement", + 2917810189: "Longueur maximale dépassée (%s)", + 2030045667: "Message", + 762611188: "Message\u2009:", + 3928301843: "Fichier de signature manquant", + 1948316555: "Mnémonique", + 2123991188: "ID mnémonique", + 1443208255: "Mnémonique et phrase secrète seront conservés.", + 1746030071: "Mnémonique n'était pas cryptée", + 1237332019: "Modifié\u2009:", + 1845376098: "Multi\nsignature", + 4265479636: "Native Segwit - 84 serait supposé", + 2939797024: "Réseau", + 73574491: "Nouveau mnémonique", + 3634967631: "Nouveau micrologiciel détecté.", + 4063104189: "Non", + 2325721074: "Pas de phrase secrète", + 4092516657: "Pas assez de jets\u2009!", + 3089363813: "Nombres", + 1577637745: "Octale", + 391304453: "Autres formats", + 3312581301: "Itér. PBKDF2", + 995862913: "Noircissez les points perforés afin qu'ils puissent être détectés.", + 2987800462: "Largeur du papier", + 3913146360: "Partie", + 3559456868: "Taille de la pièce", + 4249903283: "Phrase secréte", + 3745269737: "Inadéquation du chemin", + 500286397: "Structure détecté\u2009!", + 3040011773: "Supprimer définitivement tous les mnémoniques et paramètres chiffrés stockés dans le flash\u2009?", + 140802882: "Persister", + 2578106186: "Indice de déviation des pixels\u2009:", + 1703779997: "QR en Texte Brut", + 3561756278: "Veuillez charger un descripteur de sortie de portefeuille", + 784609464: "Taux de plongée", + 3761518438: "Mauvaise entropie", + 3639136476: "Faible entropie détectée\u2009!", + 3037062877: "Test d'impression QR", + 2362732578: "Imprimer Tiny Seed\u2009?", + 3123770978: "Imprimer en QR", + 3345150514: "Imprimer en QR\u2009?", + 3339507095: "Imprimer\u2009?", + 1123106929: "Imprimante", + 3903571079: "Le conducteur d'imprimante n'est pas défini\u2009!", + 3586624216: "Impression..", + 3593149291: "Procéder quand même\u2009?", + 2580599003: "Procéder\u2009?", + 3108881025: "Traitement..", + 1848310591: "QR Code", + 710709610: "RX Fiche", + 2697857197: "Recevoir", + 1746677167: "Adresses de Réception", + 1658501467: "Région\u2009:", + 3739634002: "Supprimer %s\u2009?", + 1476462492: "Supprimer mnémonique", + 1557093280: "Supprimer les fichiers micrologiciel de la carte SD\u2009?", + 2817311427: "Rés. - Format", + 2365886561: "Restaurer les paramètres d'usine et redémarrer\u2009?", + 3091105710: "Retour au visualiseur QR", + 1662254634: "Examinez les données numérisées, modifiez-les si nécessaire", + 1963678224: "À droite", + 770350922: "Lancez le dé au moins %d fois pour générer un mnémonique.", + 3271055013: "Distribution des jets\u2009:", + 432366011: "Jets\u2009:", + 3976793317: "Carte SD", + 2736513298: "Carte SD non détectée.", + 1166743226: "SHA256 de jets\u2009:", + 817419367: "SHA256 de snapshot\u2009:", + 699906428: "Enregistrer l'image QR sur la carte SD", + 2163347007: "Enregistrer sur la carte SD", + 3531742595: "Enregistrer sur la carte SD\u2009?", + 2940025484: "Enregistré sur la carte SD", + 763824768: "L'échelle", + 4117455079: "Scannez l'adresse", + 4038076821: "Scannez la phrase secrète BIP-39", + 923277590: "Scannez le Code QR de la clé", + 4006316572: "Analyser à nouveau les mots 1 à 12", + 2736506158: "Analyser les mots 13 à 24", + 2029624154: "Delai d'Inactivité", + 289960586: "Type de Script", + 1022211991: "Sécurité", + 4255182430: "Auto-transfert ou monnaie (%d)\u2009:", + 3753172956: "Auto-transfert\u2009:", + 473154195: "Paramètres", + 563836138: "Paramètres stockés en interne sur flash.", + 712533907: "Paramètres stockés sur la carte SD.", + 2377955518: "Entropie de Shannon\u2009:", + 1825881236: "Fermer", + 3656120779: "Delai d'Arrêt", + 2120776272: "Éteindre..", + 1061961408: "Signer", + 2293863356: "Signer avec le code QR", + 2879966040: "Signer sur la carte SD", + 4282338366: "Signer\u2009?", + 746161122: "Signature", + 1988416729: "Message signé", + 3672006076: "PSBT signé", + 3406791302: "Signature..", + 2281377987: "Clé unique", + 2019512665: "Capacité\u2009:", + 2344747135: "Certains chèques ne peuvent pas être effectués.", + 2090568351: "Dépense (%d)\u2009:", + 1260825919: "Dépense\u2009:", + 1232757391: "Statistiques pour les geeks", + 3303592908: "Stocker sur flash", + 720041451: "Stocker sur la carte SD", + 3514476519: "Faites glisser pour changer de mode", + 1898550184: "TOUCHEZ ou ENTER pour capturer", + 4228215415: "TX Fiche", + 2612594937: "Texte", + 1454688268: "Thème", + 1180180513: "Thermique", + 2258131455: "Pour assurer que les données soient irrécupérables, utilisez la fonctionnalité 'Effacer l'appareil'", + 2700207481: "Ajuster la luminosité", + 725348723: "Outils", + 3684696112: "Seuil Tactile", + 2978718564: "Écran Tactile", + 2732611775: "Réessayer\u2009?", + 401829098: "Entrez la phrase secrète BIP-39", + 2061556020: "Clé de type", + 2089395053: "Unité", + 2786714360: "Mise à niveau complète.", + 2674953168: "Utilisez une surface de fond noire.", + 2402455261: "Utilisez l'entropie de la caméra pour créer un nouveau mnémonique", + 3336226318: "Utilisé\u2009:", + 4003084591: "Valeur %s hors de portée: [%s, %s]", + 989428076: "La valeur doit être un multiple de %s", + 3429519584: "Vérification..", + 1889659487: "Version", + 4191058607: "Par caméra", + 1254681955: "Via D20", + 525309547: "Via D6", + 590330112: "Par saisie manuelle", + 1947603760: "Via Mots", + 2504354847: "Attendez la capture", + 2076481321: "Portefeuille", + 2297028319: "Descripteur de Portefeuille", + 4232654916: "Descripteur de sortie du portefeuille", + 2587172867: "Descripteur de sortie du portefeuille chargé\u2009!", + 2499782468: "Descripteur de sortie du portefeuille introuvable.", + 2671738224: "Avertissement\u2009:", + 262410364: "Effacer l'appareil", + 3522794335: "Effacement de l'appareil en cours..", + 797660533: "Mot %d", + 3742424146: "Numéros de mots", + 2965123464: "Mots", + 1303016265: "Oui", + 2171149824: "Adresse non valide\xa0!", + 1875891934: "n'A PAS ÉTÉ TROUVÉ dans les %d premières adresses", +} diff --git a/src/krux/translations/ko_KR.py b/src/krux/translations/ko_KR.py new file mode 100644 index 00000000..efa9f670 --- /dev/null +++ b/src/krux/translations/ko_KR.py @@ -0,0 +1,317 @@ +# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +# pylint: disable=C0301 +translation_table = { + 232475068: "수량: %", + 1185266064: "%d의 %d 멀티시그", + 1503087751: "%d 부터 %d", + 1178563089: "%s 제거되었습니다.", + 1092222515: "(총 %d)", + 3348584292: "(실험적 기능)", + 1099786887: "(잔액조회 전용)", + 2739590230: "12단어", + 1310058127: "24단어", + 1949634023: "기본 정보", + 4287534872: "가정을 수락하시겠습니까?", + 2995482424: "계정", + 2415648848: "계정 #0이 가정됩니다", + 1043817877: "계정 인덱스", + 3439746594: "패스프레이즈를 추가하거나 변경하시겠습니까?", + 2143824150: "AES-CBC 모드를 위해 카메라의 추가 엔트로피가 필요합니다", + 3270727197: "주소", + 900375497: "카메라와 보조 플레이트를 올바르게 정렬하십시오.", + 88746165: "눈부심방지 비활성화", + 1521033296: "눈부심방지 활성화", + 3857613120: "디스플레이", + 1056821534: "계속하시겠습니까?", + 1868069640: "BGR 색상", + 3455872521: "뒤로", + 4151330982: "메뉴로 돌아가기", + 2756316330: "니모닉 백업", + 2256777600: "잘못된 서명", + 3937333362: "Baudrate", + 2046615409: "이진수 그리드", + 928727036: "테두리 여백", + 2519455027: "밝기", + 2363604010: "버튼", + 2038226551: "버튼 바운스 방지", + 3138204438: "캡처 취소됨", + 1207696150: "잔돈", + 3126552510: "잔돈 주소", + 1583186953: "테마를 변경하고 재부팅하시겠습니까?", + 3768416405: "변경", + 388908871: "변경 사항은 종료될때까지 유지됩니다.", + 3442025874: "SD카드 확인", + 3119547911: "해당 주소가 이 지갑에 속하는지 확인하시겠습니까?", + 1187826970: "일치하는 주소가 없는 %d 개를 확인했습니다.", + 2470115694: "SD카드 확인 중..", + 1851578965: "차일드 인덱스", + 4094072796: "QR 코드 생성", + 167798282: "텍스트로부터 QR코드를 생성하시겠습니까?", + 678449760: "생성됨:", + 3513215254: "사용자 정의 QR코드", + 3585411775: "사용자 정의", + 534274978: "지갑을 커스터마이징하면 새로운 비밀키가 생성됩니다.", + 124617190: "Cut Depth", + 597912140: "Cut Method", + 2504034831: "10진수", + 2751113454: "복호화하시겠습니까?", + 1272005728: "지갑 기본설정", + 4102535566: "Depth Per Pass", + 1712856005: "디스크립터 주소", + 3278654271: "디스플레이", + 3895447625: "전원을 끄지 마십시오. 완료하는 데 시간이 걸릴 수 있습니다.", + 3836852788: "완료되었습니까?", + 690625786: "이중 니모닉", + 382368239: "드라이버", + 3582575312: "암호화 후 저장", + 1244124409: "암호화된 QR 코드", + 2968548114: "암호화된 니모닉을 저장하지 못했습니다", + 781419966: "암호화된 니모닉을 다음 아이디와 함께 저장했습니다:", + 350279787: "암호화", + 2601598799: "암호화 모드", + 1821513079: "%d개의 BIP-39 단어를 입력하십시오.", + 3504179008: "BIP-39 니모닉의 각 단어를 1에서 2048 사이의 숫자로 입력하십시오.", + 1100685007: "BIP-39 니모닉의 각 단어를 1에서 800 사이의 16진수 숫자로 입력하십시오.", + 4090266642: "BIP-39 니모닉의 각 단어를 1에서 4000 사이의 8진수 숫자로 입력하십시오.", + 2780625730: "BIP-39 니모닉의 각 단어를 입력하십시오.", + 889040671: "오류:", + 1505332462: "Esc", + 3838465623: "파일을 탐색하시겠습니까?", + 4170881190: "SD카드로 내보내는 중..", + 1711312434: "XPUB 내보내기", + 3981762528: "공장 초기 설정", + 383371114: "복호화에 실패했습니다", + 3048830188: "PSBT를 불러오지 못했습니다", + 4192663412: "주소를 불러오지 못했습니다", + 1996021743: "키 로드에 실패했습니다", + 1108715658: "메시지를 불러오지 못했습니다", + 1081425878: "니모닉을 불러오지 못했습니다", + 928667220: "아웃풋 디스크립터를 불러오지 못했습니다", + 1620572516: "패스프레이즈를 불러오지 못했습니다", + 2946146830: "니모닉을 저장하지 못했습니다", + 262248294: "수수료:", + 104500973: "Feed Rate", + 3313339187: "파일명", + 1982637349: "%s 파일명이 SD카드에 이미 존재합니다. 덮어쓰시겠습니까?", + 4006602858: "PSBT에서 지문이 설정되지 않았습니다", + 2542772894: "펌웨어가 최대 크기를 초과했습니다: %d", + 3748840176: "X 좌표 반전", + 1406590538: "플루트 직경", + 1077771640: "여유 공간:", + 1893243331: "저장공간에서 불러오기", + 1871146425: "다른 장치에서 데이터 복구가 불가능하도록 SD카드를 완전히 지우십시오", + 3549015533: "니모닉 생성", + 3524220994: "BIP85 파생 니모닉을 생성하시겠습니까?", + 299338213: "이 니모닉에 별도 아이디를 지정하시겠습니까? 지정하지 않으면 현재 지문을 사용합니다", + 602716148: "선택", + 1198393582: "엔트로피가 충분합니다", + 133139382: "하드웨어", + 3580020863: "16진수 공개키", + 2691246967: "16진수", + 3903754133: "니모닉 숨기기", + 3876651191: "수수료가 높습니다!", + 2880010062: "아이디가 이미 존재합니다", + 3242179508: "Input (%d):", + 3034883011: "설치하시겠습니까?", + 3755547839: "엔트로피가 충분하지 않습니다!", + 2032416055: "엔트로피가 충분하지 않습니다", + 2585599782: "주소가 잘못되었습니다", + 2874529150: "부트로더가 잘못되었습니다", + 4093416954: "니모닉 길이가 잘못되었습니다", + 1422874211: "공개키가 잘못되었습니다", + 237577215: "지갑이 잘못되었습니다:", + 4122897393: "반전", + 640219121: "반전된 색상", + 3000888649: "키", + 3264569915: "키가 제공되지 않았습니다", + 3835918229: "Krux 프린터 테스트 QR", + 911419226: "LCD 유형", + 766317539: "언어", + 4180141032: "마지막 단어를 Krux가 선택하도록 하려면 비워두십시오", + 3663022166: "왼쪽", + 972436696: "줄 지연", + 2176866982: "줄:", + 2820726296: "니모닉 불러오기", + 2369474953: "이대로 불러오기", + 2256441194: "주소를 보기위해 신뢰할 수 있는 월렛 디스크립터를 불러오시겠습니까?", + 237136240: "SD카드에서 불러오기", + 879727077: "SD카드에서 불러오시겠습니까?", + 1936877965: "카메라로 불러오기", + 669106195: "불러오시겠습니까?", + 3330705289: "불러오시겠습니까?", + 2596531078: "카메라를 구동 중입니다..", + 2488179069: "잔돈 주소를 불러옵니다..", + 336702608: "프린터를 로딩 중입니다..", + 1201104769: "수신 주소 불러옵니다..", + 3159494909: "로딩 중..", + 1177338798: "언어 설정", + 2817059741: "기본 저장소", + 2917810189: "최대 길이를 초과함 (%s)", + 2030045667: "메시지", + 762611188: "메시지:", + 3928301843: "서명 파일이 누락되었습니다", + 1948316555: "니모닉", + 2123991188: "니모닉 ID", + 1443208255: "니모닉과 암호는 유지됩니다.", + 1746030071: "니모닉이 암호화되지 않았습니다", + 1237332019: "수정되었습니다:", + 1845376098: "멀티시그", + 4265479636: "네이티브 세그윗 - BIP84를 적용합니다", + 2939797024: "네트워크", + 73574491: "새로운 니모닉", + 3634967631: "새로운 펌웨어가 감지되었습니다.", + 4063104189: "아니요", + 2325721074: "패스프레이즈 없음", + 4092516657: "주사위 횟수가 충분하지 않습니다!", + 3089363813: "시드문구 순번", + 1577637745: "8진수", + 391304453: "기타 형식", + 3312581301: "PBKDF2 Iter.", + 995862913: "카메라가 감지할 수 있도록 펀치된 점을 검게 칠하십시오.", + 2987800462: "종이 너비", + 3913146360: "파트", + 3559456868: "파트 사이즈", + 4249903283: "패스프레이즈", + 3745269737: "경로 불일치", + 500286397: "패턴이 감지되었습니다!", + 3040011773: "저장된 모든 니모닉 및 설정값을 영구적으로 제거하시겠습니까?", + 140802882: "저장", + 2578106186: "픽셀 편차 지수:", + 1703779997: "일반텍스트 QR", + 3561756278: "지갑 출력 디스크립터를 불러오십시오", + 784609464: "침수율", + 3761518438: "엔트로피가 부족합니다", + 3639136476: "엔트로피가 부족합니다!", + 3037062877: "QR 테스트 인쇄", + 2362732578: "Tiny Seed를 인쇄하시겠습니까?", + 3123770978: "QR로 인쇄", + 3345150514: "QR로 인쇄하시겠습니까?", + 3339507095: "인쇄하시겠습니까?", + 1123106929: "프린터", + 3903571079: "프린터 드라이버가 설정되지 않았습니다!", + 3586624216: "출력중", + 3593149291: "계속하시겠습니까?", + 2580599003: "계속하시겠습니까?", + 3108881025: "처리...", + 1848310591: "QR 코드", + 710709610: "RX 핀", + 2697857197: "받기", + 1746677167: "주소", + 1658501467: "지역:", + 3739634002: "%s을 제거하시겠습니까?", + 1476462492: "니모닉 제거", + 1557093280: "SD카드에서 펌웨어 파일을 제거하시겠습니까?", + 2817311427: "Res. - 형식", + 2365886561: "공장 설정을 복원하고 재부팅하시겠습니까?", + 3091105710: "QR 뷰어로 돌아가기", + 1662254634: "스캔된 데이터를 검토하고 필요한 경우 수정하십시오", + 1963678224: "오른쪽", + 770350922: "니모닉을 생성하려면 주사위를 최소 %d번 굴리십시오.", + 3271055013: "주사위값 분포:", + 432366011: "주사위 횟수:", + 3976793317: "SD카드", + 2736513298: "SD카드가 감지되지 않았습니다.", + 1166743226: "주사위의 SHA256:", + 817419367: "SHA256 스냅샷:", + 699906428: "QR 이미지를 SD카드에 저장", + 2163347007: "SD카드에 저장", + 3531742595: "SD카드에 저장하시겠습니까?", + 2940025484: "SD카드에 저장됨", + 763824768: "스케일", + 4117455079: "주소 스캔하기", + 4038076821: "BIP39 패스프레이즈 스캔하기", + 923277590: "비밀번호 QR 스캔", + 4006316572: "1번째부터 12번째 단어를 스캔 중입니다", + 2736506158: "13번째부터 24번째 단어를 스캔 중입니다", + 2029624154: "화면보호기 시간", + 289960586: "지갑 형식", + 1022211991: "보안", + 4255182430: "본인주소 전송 또는 잔돈 (%d):", + 3753172956: "자가 이체:", + 473154195: "설정", + 563836138: "설정은 플래시에서 내부적으로 저장됩니다.", + 712533907: "SD 카드에 저장된 설정.", + 2377955518: "Shannon의 엔트로피:", + 1825881236: "종료", + 3656120779: "자동 종료시간", + 2120776272: "종료 중..", + 1061961408: "서명하기", + 2293863356: "QR코드로 내보내기", + 2879966040: "SD카드로 내보내기", + 4282338366: "서명하시겠습니까?", + 746161122: "서명", + 1988416729: "서명된 메시지", + 3672006076: "서명된 PSBT", + 3406791302: "서명 중..", + 2281377987: "단일서명", + 2019512665: "크기:", + 2344747135: "일부 검사를 수행할 수 없습니다.", + 2090568351: "Spend (%d):", + 1260825919: "지출", + 1232757391: "전문가를 위한 통계", + 3303592908: "플래시 메모리에 저장", + 720041451: "SD카드에 저장", + 3514476519: "모드를 변경하려면 화면을 옆으로 쓸어내리세요", + 1898550184: "터치하거나 엔터를 눌러 캡처하십시오", + 4228215415: "TX 핀", + 2612594937: "텍스트", + 1454688268: "테마", + 1180180513: "Thermal", + 2258131455: "데이터 복구가 불가능하도록 장치 전체지우기 기능을 사용하십시오", + 2700207481: "밝기 전환", + 725348723: "도구", + 3684696112: "터치 민감도", + 2978718564: "터치스크린", + 2732611775: "더 하시겠습니까?", + 401829098: "BIP39 패스프레이즈 입력", + 2061556020: "비밀번호 입력", + 2089395053: "단위", + 2786714360: "업그레이드가 완료되었습니다", + 2674953168: "검은색 배경 화면을 사용하십시오.", + 2402455261: "카메라의 엔트로피를 사용하여 새로운 니모닉을 생성하십시오", + 3336226318: "이미 사용됨:", + 4003084591: "%s는 [%s, %s] 범위를 벗어났습니다", + 989428076: "값은 %s의 배수여야 합니다", + 3429519584: "검증 중..", + 1889659487: "버전", + 4191058607: "카메라", + 1254681955: "20면체 주사위", + 525309547: "일반 주사위", + 590330112: "직접 입력", + 1947603760: "니모닉 단어 입력", + 2504354847: "캡처될때까지 기다리십시오", + 2076481321: "지갑 설정", + 2297028319: "지갑 디스크립터", + 4232654916: "지갑 출력 디스크립터", + 2587172867: "지갑 출력 디스크립터가 로드되었습니다!", + 2499782468: "지갑 출력 디스크립터를 찾을 수 없습니다.", + 2671738224: "경고:", + 262410364: "기기 초기화", + 3522794335: "기기를 초기화하는 중입니다..", + 797660533: "%d 단어", + 3742424146: "단어 번호(1-2048)", + 2965123464: "시드문구", + 1303016265: "예", + 2171149824: " 은 유효한 주소가 아닙니다", + 1875891934: "첫 번째 %d 주소에서 찾을 수 없습니다", +} diff --git a/src/krux/translations/nl_NL.py b/src/krux/translations/nl_NL.py new file mode 100644 index 00000000..9ecf8bca --- /dev/null +++ b/src/krux/translations/nl_NL.py @@ -0,0 +1,317 @@ +# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +# pylint: disable=C0301 +translation_table = { + 232475068: "% van het bedrag.", + 1185266064: "%d van %d multisig", + 1503087751: "%d tot %d", + 1178563089: "%s verwijderd.", + 1092222515: "(%d totaal)", + 3348584292: "(Experimenteel)", + 1099786887: "(alleen inzien)", + 2739590230: "12 woorden", + 1310058127: "24 woorden", + 1949634023: "Over", + 4287534872: "Aanname accepteren?", + 2995482424: "Account", + 2415648848: "Account #0 zou worden aangenomen", + 1043817877: "Accountindex", + 3439746594: "Wachtwoordzin voor portemonnee toevoegen of wijzigen?", + 2143824150: "Extra entropie van de camera vereist voor AES-CBC-modus", + 3270727197: "Adres", + 900375497: "Richt de camera en back-upplaat op de juiste manier.", + 88746165: "Anti reflecterend uitgeschakeld", + 1521033296: "Anti reflecterend ingeschakeld", + 3857613120: "Uiterlijk", + 1056821534: "Weet je het zeker?", + 1868069640: "BGR-kleuren", + 3455872521: "Terug", + 4151330982: "Terug naar menu", + 2756316330: "Backup geheugensteun", + 2256777600: "Ongeldige handtekening", + 3937333362: "Baudratio", + 2046615409: "Binair raster", + 928727036: "Rand opvulling", + 2519455027: "Helderheid", + 2363604010: "Knoppen", + 2038226551: "Debounce van knoppen", + 3138204438: "Opname geannuleerd", + 1207696150: "Change", + 3126552510: "Wisselgeldadres", + 1583186953: "Thema veranderen en opnieuw opstarten?", + 3768416405: "Wisselgeld:", + 388908871: "Wijzigingen blijven van kracht tot afsluiten.", + 3442025874: "Controleer SD kaart", + 3119547911: "Controleer of dit adres bij deze portemonnee hoort?", + 1187826970: "%d adressen gecontroleerd zonder overeenkomsten.", + 2470115694: "SD kaart controleren..", + 1851578965: "Onderliggende index", + 4094072796: "QR code maken", + 167798282: "QR code maken van tekst?", + 678449760: "Aangemaakt:", + 3513215254: "Aangepaste QR code", + 3585411775: "Aanpassen", + 534274978: "Bij aanpassen van de portemonnee zal er een nieuwe sleutel gegenereerd worden.", + 124617190: "Snijdiepte", + 597912140: "Snijmethode", + 2504034831: "Decimaal", + 2751113454: "Ontsleutelen?", + 1272005728: "Standaard portemonnee", + 4102535566: "Diepte per pas", + 1712856005: "Descriptoradressen", + 3278654271: "Weergave", + 3895447625: "Schakel het apparaat niet uit, het kan even duren voordat het klaar is.", + 3836852788: "Klaar?", + 690625786: "Dubbel geheugensteuntje", + 382368239: "Driver", + 3582575312: "Versleuteld", + 1244124409: "Versleutelde QR code", + 2968548114: "Versleutelde geheugensteun was niet opgeslagen", + 781419966: "Versleutelde geheugensteun is opgeslagen met ID:", + 350279787: "Versleutelen", + 2601598799: "Versleutel modus", + 1821513079: "Voer %d BIP-39 woorden in.", + 3504179008: "Voer elk woord van jouw BIP-39 geheugensteun in als een nummer van 1 tot 2048.", + 1100685007: "Voer elk woord van jouw BIP-39 geheugensteun in als een hexadecimaal van 1 tot 800.", + 4090266642: "Voer elk woord van jouw BIP-39 geheugensteun in als een octaal van 1 tot 4000.", + 2780625730: "Voer elk woord van jouw BIP-39 geheugensteun in.", + 889040671: "Fout:", + 1505332462: "Esc", + 3838465623: "Bestanden verkennen?", + 4170881190: "Exporteren naar SD kaart..", + 1711312434: "Uitgebreide publieke sleutel", + 3981762528: "Fabrieksinstellingen", + 383371114: "Ontsleutelen is niet gelukt", + 3048830188: "PSBT laden is niet gelukt", + 4192663412: "Adres laden is niet gelukt", + 1996021743: "Sleutel laden is niet gelukt", + 1108715658: "Bericht laden is niet gelukt", + 1081425878: "Geheugensteun laden is niet gelukt", + 928667220: "Descriptor laden is niet gelukt", + 1620572516: "Wachtwoord laden is niet gelukt", + 2946146830: "Geheugensteun opslaan is niet gelukt", + 262248294: "Tarief:", + 104500973: "Voedingssnelheid", + 3313339187: "Bestandsnaam", + 1982637349: "Bestandsnaam %s OVERSCHRIJVEN op SD kaart?", + 4006602858: "Vingerafdruk niet ingesteld in PSBT", + 2542772894: "Firmware overschrijdt de maximale grootte: %d", + 3748840176: "Geflipte X-coördinaten", + 1406590538: "Fluit diameter", + 1077771640: "Vrij:", + 1893243331: "Uit data-opslag", + 1871146425: "Wis uw SD kaart volledig in een ander apparaat om te zorgen dat de gegevens onherstelbaar zijn", + 3549015533: "Geheugensteun genereren", + 3524220994: "Een BIP85 afgeleide geheugensteun genereren?", + 299338213: "Eigen ID gebruiken voor geheugensteun? Anders vingerafdruk gebruiken", + 602716148: "Ga", + 1198393582: "Goede entropie", + 133139382: "Hardware", + 3580020863: "Hex publieke sleutel", + 2691246967: "Hexadecimaal", + 3903754133: "Verberg geheugensteunen", + 3876651191: "Hoge kosten!", + 2880010062: "ID bestaat al", + 3242179508: "Invoer (%d):", + 3034883011: "Installeren?", + 3755547839: "Onvoldoende Entropie!", + 2032416055: "Onvoldoende entropie", + 2585599782: "Ongeldig adres", + 2874529150: "Ongeldige bootloader", + 4093416954: "Ongeldige geheugensteun lengte", + 1422874211: "Ongeldige publieke sleutel", + 237577215: "Ongeldige portemonnee:", + 4122897393: "Omkeren", + 640219121: "Omgekeerde kleuren", + 3000888649: "Sleutel", + 3264569915: "Sleutel niet verstrekt", + 3835918229: "Krux printer test QR", + 911419226: "LCD-type", + 766317539: "Taal", + 4180141032: "Laat leeg als je wilt dat Krux een geldig laatste woord kiest", + 3663022166: "Links", + 972436696: "Lijn vertraging", + 2176866982: "Lijn:", + 2820726296: "Geheugensteun laden", + 2369474953: "Portemonnee laden", + 2256441194: "Een vertrouwde portemonnee descriptor laden om adressen te bekijken?", + 237136240: "Laden vanaf SD kaart", + 879727077: "Laden vanaf SD kaart?", + 1936877965: "Laden van camera", + 669106195: "Laden?", + 3330705289: "Laden?", + 2596531078: "Camera laden..", + 2488179069: "Wijzigingsadressen laden..", + 336702608: "Laadprinter..", + 1201104769: "Ontvangstadressen laden..", + 3159494909: "Laden..", + 1177338798: "Taal", + 2817059741: "Opslaglocatie", + 2917810189: "Maximale lengte overschreden (%s)", + 2030045667: "Bericht", + 762611188: "Bericht:", + 3928301843: "Handtekening bestand mist", + 1948316555: "Geheugensteun", + 2123991188: "Geheugensteun ID", + 1443208255: "Geheugensteun en wachtwoord worden bewaard.", + 1746030071: "Geheugensteun is niet versleuteld", + 1237332019: "Aangepast:", + 1845376098: "Multisig", + 4265479636: "Native Segwit - 84 zal worden gebruikt", + 2939797024: "Netwerk", + 73574491: "Geheugensteun aanmaken", + 3634967631: "Nieuwe firmware gevonden.", + 4063104189: "Nee", + 2325721074: "Geen wachtwoordzin", + 4092516657: "Niet genoeg gedobbeld!", + 3089363813: "Nummers", + 1577637745: "Octaal", + 391304453: "Andere indelingen", + 3312581301: "PBKDF2 iter.", + 995862913: "Maak geperforeerde stippen zwart zodat ze worden gedetecteerd.", + 2987800462: "Papier breedte", + 3913146360: "Deel", + 3559456868: "Deel grootte", + 4249903283: "Wachtwoord", + 3745269737: "Pad komt niet overeen", + 500286397: "Patroon gevonden!", + 3040011773: "Alle opgeslagen versleutelde mnemonics en instellingen permanent uit het flashgeheugen verwijderen?", + 140802882: "Opslag", + 2578106186: "Pixelafwijkingsindex:", + 1703779997: "Platte tekst QR", + 3561756278: "Laadt een portemonnee descriptor in", + 784609464: "Duik tarief", + 3761518438: "Slechte entropie", + 3639136476: "Lage entropie gedetecteerd!", + 3037062877: "Test QR afdrukken", + 2362732578: "Tiny Seed afdrukken?", + 3123770978: "Afdrukken naar QR", + 3345150514: "Afdrukken naar QR?", + 3339507095: "Afdrukken?", + 1123106929: "Printer", + 3903571079: "Printer driver niet ingesteld!", + 3586624216: "Afdrukken..", + 3593149291: "Toch doorgaan?", + 2580599003: "Doorgaan?", + 3108881025: "Verwerken..", + 1848310591: "QR code", + 710709610: "RX pin", + 2697857197: "Ontvangen", + 1746677167: "Ontvangstadres", + 1658501467: "Regio:", + 3739634002: "Verwijderen %s?", + 1476462492: "Geheugensteun verwijderen", + 1557093280: "Firmwarebestanden van SD kaart verwijderen?", + 2817311427: "Res. - Formaat", + 2365886561: "Fabrieksinstellingen herstellen en opnieuw opstarten?", + 3091105710: "Terug naar QR-lezer", + 1662254634: "Controleer gescande gegevens en bewerk indien nodig", + 1963678224: "Rechts", + 770350922: "Dobbel een dobbelsteen minstens %d keer voor het genereren van een geheugensteun.", + 3271055013: "Roldistributie:", + 432366011: "Gedobbeld:", + 3976793317: "SD kaart", + 2736513298: "SD kaart niet gedetecteerd.", + 1166743226: "Gedobbelde SHA256:", + 817419367: "Momentopname van SHA256:", + 699906428: "QR-afbeelding opslaan op SD kaart", + 2163347007: "Opslaan op SD kaart", + 3531742595: "Opslaan op SD kaart?", + 2940025484: "Opgeslagen op SD kaart", + 763824768: "Schaal", + 4117455079: "Adres scannen", + 4038076821: "BIP-39 Wachtwoord Scannen", + 923277590: "QR Code Sleutel Scannen", + 4006316572: "Woorden 1 t/m 12 opnieuw scannen", + 2736506158: "Woorden 13 t/m 24 scannen", + 2029624154: "Schermbeveiligingstijd", + 289960586: "Scripttype", + 1022211991: "Beveiliging", + 4255182430: "Overschrijving naar jezelf, of wisselgeld (%d):", + 3753172956: "Zelf overschrijving:", + 473154195: "Instellingen", + 563836138: "Instellingen intern opgeslagen op flitser.", + 712533907: "Instellingen opgeslagen op SD kaart.", + 2377955518: "Shannon's entropie:", + 1825881236: "Afsluiten", + 3656120779: "Uitschakelingstijd:", + 2120776272: "Bezig met afsluiten..", + 1061961408: "Ondertekenen", + 2293863356: "Teken op QR-code", + 2879966040: "Teken op SD kaart", + 4282338366: "Ondertekenen?", + 746161122: "Handtekening", + 1988416729: "Bericht ondertekend", + 3672006076: "PSBT ondertekend", + 3406791302: "Ondertekenen..", + 2281377987: "Enkele sleutel", + 2019512665: "Grootte:", + 2344747135: "Sommige controles kunnen niet worden uitgevoerd.", + 2090568351: "Uitgaven (%d):", + 1260825919: "Uitgaven:", + 1232757391: "Statistieken voor nerds", + 3303592908: "Opslaan op apparaat", + 720041451: "Opslaan op SD kaart", + 3514476519: "Verander modus", + 1898550184: "TIK of ENTER voor opname", + 4228215415: "TX pin", + 2612594937: "Tekst", + 1454688268: "Thema", + 1180180513: "Thermisch", + 2258131455: "Gebruik de functie 'Apparaat wissen' om te zorgen dat de gegevens onherstelbaar zijn", + 2700207481: "Helderheid schakelen", + 725348723: "Hulpmiddelen", + 3684696112: "Aanraak gevoeligheid", + 2978718564: "Aanraakscherm", + 2732611775: "Meer proberen?", + 401829098: "Voer een BIP-39 wachtwoord in", + 2061556020: "Voer sleutel in", + 2089395053: "Eenheid", + 2786714360: "Upgrade afgerond.", + 2674953168: "Gebruik een donker achergrond.", + 2402455261: "Gebruik de camera als entropie voor het aanmaken van een nieuwe geheugensteun", + 3336226318: "Gebruikt:", + 4003084591: "Waarde %s is buiten bereik: [%s, %s]", + 989428076: "Waarde moet meerdere van %s zijn", + 3429519584: "Bezig met verifiëren..", + 1889659487: "Versie", + 4191058607: "Via camera", + 1254681955: "Via D20", + 525309547: "Via D6", + 590330112: "Via handmatige invoer", + 1947603760: "Via woorden", + 2504354847: "Wacht op opname", + 2076481321: "Portemonnee", + 2297028319: "Descriptor", + 4232654916: "Portemonnee descriptor", + 2587172867: "Portemonnee descriptor geladen!", + 2499782468: "Portemonnee descriptor niet gevonden.", + 2671738224: "Waarschuwing:", + 262410364: "Apparaat wissen", + 3522794335: "Apparaat wissen..", + 797660533: "Woord %d", + 3742424146: "Woord nummers", + 2965123464: "Woorden", + 1303016265: "Yes", + 2171149824: "is geen geldig adres", + 1875891934: "werd NIET GEVONDEN in de eerste %d adressen", +} diff --git a/src/krux/translations/pt_BR.py b/src/krux/translations/pt_BR.py new file mode 100644 index 00000000..7e32c1d2 --- /dev/null +++ b/src/krux/translations/pt_BR.py @@ -0,0 +1,317 @@ +# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +# pylint: disable=C0301 +translation_table = { + 232475068: "% do valor.", + 1185266064: "%d da %d multisig", + 1503087751: "%d a %d", + 1178563089: "removido.", + 1092222515: "(%d total)", + 3348584292: "(Experimental)", + 1099786887: "(Somente visualização)", + 2739590230: "12 palavras", + 1310058127: "24 palavras", + 1949634023: "Sobre", + 4287534872: "Aceitar suposições?", + 2995482424: "Conta", + 2415648848: "A conta #0 seria assumida", + 1043817877: "Índice da Conta", + 3439746594: "Adicionar ou alterar senha da carteira?", + 2143824150: "Entropia adicional da câmera necessária para o modo AES-CBC", + 3270727197: "Endereço", + 900375497: "Alinhe a câmera e a placa de backup corretamente.", + 88746165: "Antirreflexo desativado", + 1521033296: "Antirreflexo ativado", + 3857613120: "Aparência", + 1056821534: "Tem certeza?", + 1868069640: "Cores BGR", + 3455872521: "Voltar", + 4151330982: "Voltar ao Menu", + 2756316330: "Backup de Mnemônico", + 2256777600: "Assinatura Inválida", + 3937333362: "Baudrate", + 2046615409: "Grade binária", + 928727036: "Borda", + 2519455027: "Brilho", + 2363604010: "Botões", + 2038226551: "Debounce dos Botões", + 3138204438: "Captura cancelada", + 1207696150: "Troco", + 3126552510: "Endereços de Troco", + 1583186953: "Mudar o tema e reiniciar?", + 3768416405: "Troco:", + 388908871: "Alterações só durarão até o desligamento.", + 3442025874: "Verifique o cartão SD", + 3119547911: "Verificar se este endereço pertence a carteira?", + 1187826970: "Verificado %d endereços sem correspondências.", + 2470115694: "Verificando o cartão SD..", + 1851578965: "Índice Derivado", + 4094072796: "Gerar Código QR", + 167798282: "Gerar código QR do texto?", + 678449760: "Criado:", + 3513215254: "Código QR Customizado", + 3585411775: "Customizar", + 534274978: "Personalizar sua carteira gerará uma nova chave.", + 124617190: "Profundidade de Corte", + 597912140: "Método de Corte", + 2504034831: "Decimal", + 2751113454: "Descriptografar?", + 1272005728: "Carteira Padrão", + 4102535566: "Profundidade da Passagem", + 1712856005: "Endereços do Descritor", + 3278654271: "Display", + 3895447625: "Não desligue, pode demorar um pouco para concluir.", + 3836852788: "Feito?", + 690625786: "Duplo mnemônico", + 382368239: "Driver", + 3582575312: "Criptografado", + 1244124409: "Código QR Criptografado", + 2968548114: "Mnemonic criptografado não foi armazenado", + 781419966: "Mnemônico criptografado foi armazenado com ID:", + 350279787: "Criptografia", + 2601598799: "Modo de Criptografia", + 1821513079: "Insira %d palavras BIP-39.", + 3504179008: "Digite o número de cada palavra do seu mnemônico BIP-39, de 1 a 2048.", + 1100685007: "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em hexadecimal, de 1 a 800.", + 4090266642: "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em octal, de 1 a 4000.", + 2780625730: "Digite cada palavra do seu mnemônico BIP-39.", + 889040671: "Erro:", + 1505332462: "Esc", + 3838465623: "Explorar arquivos?", + 4170881190: "Exportando para o cartão SD..", + 1711312434: "Chave Pública Estendida", + 3981762528: "Configurações de Fábrica", + 383371114: "Falhou em descriptografar", + 3048830188: "Falhou ao carregar PSBT", + 4192663412: "Falhou ao carregar endereço", + 1996021743: "Falha ao carregar a chave", + 1108715658: "Falhou ao carregar mensagem", + 1081425878: "Falhou ao carregar mnemônico", + 928667220: "Falha ao carregar o descritor de saída", + 1620572516: "Falha ao carregar a senha", + 2946146830: "Falhou ao armazenar mnemônico", + 262248294: "Taxa:", + 104500973: "Taxa de Alimentação", + 3313339187: "Nome do arquivo", + 1982637349: "O nome do arquivo %s existe no cartão SD, substituir?", + 4006602858: "Impressão digital não definida no PSBT", + 2542772894: "Firmware excede o tamanho máximo: %d", + 3748840176: "Coordenadas X invertidas", + 1406590538: "Diâmetro da Fresa", + 1077771640: "Livre:", + 1893243331: "Do Armazenamento", + 1871146425: "Apague totalmente seu cartão SD em outro dispositivo para garantir que os dados sejam irrecuperáveis", + 3549015533: "Gerar Mnemônico", + 3524220994: "Gerar um mnemônico derivado BIP85?", + 299338213: "Dê a este mnemônico um ID personalizado? Caso contrário, a impressão digital atual será usada", + 602716148: "Ir", + 1198393582: "Boa entropia", + 133139382: "Hardware", + 3580020863: "Chave pública hexadecimal", + 2691246967: "Hexadecimal", + 3903754133: "Ocultar Mnemônicos", + 3876651191: "Taxas altas!", + 2880010062: "Id já existe", + 3242179508: "Entradas (%d):", + 3034883011: "Instalar?", + 3755547839: "Entropia insuficiente!", + 2032416055: "Entropia insuficiente", + 2585599782: "Endereço inválido", + 2874529150: "Bootloader inválido", + 4093416954: "Comprimento de mnemônico inválido", + 1422874211: "Chave pública inválida", + 237577215: "Carteira inválida:", + 4122897393: "Invertido", + 640219121: "Cores invertidas", + 3000888649: "Chave", + 3264569915: "A chave não foi fornecida", + 3835918229: "Teste de impressão de QR krux", + 911419226: "Tipo de LCD", + 766317539: "Língua", + 4180141032: "Deixe em branco se quiser que o Krux escolha uma palavra final válida", + 3663022166: "Esquerda", + 972436696: "Atraso de Linha", + 2176866982: "Linha:", + 2820726296: "Carregar Mnemônico", + 2369474953: "Carregar Carteira", + 2256441194: "Carregar um descritor de carteira confiável para visualizar endereços?", + 237136240: "Carregar do cartão SD", + 879727077: "Carregar do cartão SD?", + 1936877965: "Carregar da câmera", + 669106195: "Carregar um?", + 3330705289: "Carregar?", + 2596531078: "Carregando Câmera..", + 2488179069: "Carregando endereços de troco..", + 336702608: "Carregando impressora..", + 1201104769: "Carregando endereços de recebimento..", + 3159494909: "Carregando..", + 1177338798: "Idioma", + 2817059741: "Local", + 2917810189: "Comprimento máximo excedido (%s)", + 2030045667: "Mensagem", + 762611188: "Mensagem:", + 3928301843: "Arquivo de assinatura faltando", + 1948316555: "Mnemônico", + 2123991188: "ID do mnemônico", + 1443208255: "Mnemônico e senha serão mantidos.", + 1746030071: "Mnemônico não foi criptografado", + 1237332019: "Modificado:", + 1845376098: "Multisig", + 4265479636: "Segwit nativo - 84 seria assumido", + 2939797024: "Rede", + 73574491: "Novo Mnemônico", + 3634967631: "Novo firmware detectado.", + 4063104189: "Não", + 2325721074: "Sem Senha", + 4092516657: "Jogadas insuficientes!", + 3089363813: "Números", + 1577637745: "Octal", + 391304453: "Outros Formatos", + 3312581301: "Iter. PBKDF2", + 995862913: "Pinte os pontos perfurados de preto para que possam ser detectados.", + 2987800462: "Largura do papel", + 3913146360: "Parte", + 3559456868: "Tamanho da peça", + 4249903283: "Senha", + 3745269737: "Incompatibilidade de caminho", + 500286397: "Padrão detectado!", + 3040011773: "Remover permanentemente todos os mnemônicos criptografados e configurações armazenados da memória flash?", + 140802882: "Salvar", + 2578106186: "Índice de desvio de pixels:", + 1703779997: "QR em Texto", + 3561756278: "Carregue um descritor da carteira", + 784609464: "Taxa de Mergulho", + 3761518438: "Entropia fraca", + 3639136476: "Baixa entropia detectada!", + 3037062877: "Imprimir QR de teste", + 2362732578: "Imprimir Tiny Seed?", + 3123770978: "Imprimir QR", + 3345150514: "Imprimir QR?", + 3339507095: "Imprimir?", + 1123106929: "Impressora", + 3903571079: "Driver de impressora não está definido!", + 3586624216: "Imprimindo..", + 3593149291: "Continuar mesmo assim?", + 2580599003: "Seguir?", + 3108881025: "Processando..", + 1848310591: "Código QR", + 710709610: "Pino RX", + 2697857197: "Recebimento", + 1746677167: "Endereços de Recebimento", + 1658501467: "Região:", + 3739634002: "Excluir %s?", + 1476462492: "Excluir Mnemônico", + 1557093280: "Remover arquivos de firmware do cartão SD?", + 2817311427: "Res. - Formato", + 2365886561: "Restaurar as configurações de fábrica e reiniciar?", + 3091105710: "Retornar ao Visualizador de QR", + 1662254634: "Revise os dados, edite se necessário", + 1963678224: "Direita", + 770350922: "Role o dado pelo menos %d vezes para gerar um mnemônico.", + 3271055013: "Distribuição de jogadas:", + 432366011: "Jogadas:", + 3976793317: "Cartão SD", + 2736513298: "Cartão SD não detectado.", + 1166743226: "SHA256 de jogadas:", + 817419367: "Sha256 da imagem:", + 699906428: "Salvar imagem do QR no cartão SD", + 2163347007: "Salvar no cartão SD", + 3531742595: "Salvar no cartão SD?", + 2940025484: "Salvo no cartão SD", + 763824768: "Escala", + 4117455079: "Escanear Endereço", + 4038076821: "Escanear a senha BIP39", + 923277590: "Escanear Código QR da Chave", + 4006316572: "Escaneando as palavras 1-12 novamente", + 2736506158: "Escaneando as palavras 13-24", + 2029624154: "Tempo para protetor de tela", + 289960586: "Tipo de Script", + 1022211991: "Segurança", + 4255182430: "Autotransferência ou Troco (%d):", + 3753172956: "Autotransferência:", + 473154195: "Configurações", + 563836138: "Configurações armazenadas internamente no flash.", + 712533907: "Configurações armazenadas no cartão SD.", + 2377955518: "Entropia de Shannon:", + 1825881236: "Desligar", + 3656120779: "Tempo de desligamento", + 2120776272: "Desligando..", + 1061961408: "Assinar", + 2293863356: "Assinar para código QR", + 2879966040: "Assinar para cartão SD", + 4282338366: "Assinar?", + 746161122: "Assinatura", + 1988416729: "Mensagem Assinada", + 3672006076: "PSBT Assinada", + 3406791302: "Assinando..", + 2281377987: "Single-sig", + 2019512665: "Total:", + 2344747135: "Algumas verificações não podem ser realizadas.", + 2090568351: "Gastos (%d):", + 1260825919: "Gasto:", + 1232757391: "Estatísticas para Nerds", + 3303592908: "Armazene na Flash", + 720041451: "Armazene no Cartão SD", + 3514476519: "Deslize para mudar de modo", + 1898550184: "TOQUE ou ENTER para capturar", + 4228215415: "Pino TX", + 2612594937: "Texto", + 1454688268: "Tema", + 1180180513: "Térmica", + 2258131455: "Para garantir que os dados sejam irrecuperáveis, use o recurso Limpar Dispositivo", + 2700207481: "Alternar brilho", + 725348723: "Ferramentas", + 3684696112: "Limiar de Toque", + 2978718564: "Touchscreen", + 2732611775: "Tentar mais?", + 401829098: "Digitar a senha BIP39", + 2061556020: "Digite a Chave", + 2089395053: "Unidade", + 2786714360: "Atualização completa.", + 2674953168: "Use uma superfície de fundo preta.", + 2402455261: "Use a entropia da câmera para criar um novo mnemônico", + 3336226318: "Usado:", + 4003084591: "Valor %s fora do alcance: [ %s, %s]", + 989428076: "O valor deve ser múltiplo de %s", + 3429519584: "Verificando..", + 1889659487: "Versão", + 4191058607: "Pela Câmera", + 1254681955: "Via D20", + 525309547: "Via D6", + 590330112: "Por entrada manual", + 1947603760: "Via Palavras", + 2504354847: "Aguarde a captura", + 2076481321: "Carteira", + 2297028319: "Descritor de Carteira", + 4232654916: "Descritor da carteira", + 2587172867: "Descritor de saída da carteira carregado!", + 2499782468: "O descritor de saída da carteira não foi encontrado.", + 2671738224: "Aviso:", + 262410364: "Limpar Dispositivo", + 3522794335: "Limpando Dispositivo..", + 797660533: "Palavra %d", + 3742424146: "Números das Palavras", + 2965123464: "Palavras", + 1303016265: "Sim", + 2171149824: "é um endereço válido!", + 1875891934: "NÃO FOI ENCONTRADO nos primeiros %d endereços", +} diff --git a/src/krux/translations/ru_RU.py b/src/krux/translations/ru_RU.py new file mode 100644 index 00000000..25482eff --- /dev/null +++ b/src/krux/translations/ru_RU.py @@ -0,0 +1,317 @@ +# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +# pylint: disable=C0301 +translation_table = { + 232475068: "% от суммы.", + 1185266064: "%d из %d мультиподпись", + 1503087751: "%d к %d", + 1178563089: "%s удален.", + 1092222515: "(%d всего)", + 3348584292: "(Эксперементальный)", + 1099786887: "(Только часы)", + 2739590230: "12 слов", + 1310058127: "24 слова", + 1949634023: "О Программе", + 4287534872: "Принять предположение?", + 2995482424: "Учетная запись", + 2415648848: "Будет принят счет №0", + 1043817877: "Индекс счета", + 3439746594: "Добавить или изменить пароль кошелька?", + 2143824150: "Для режима AES-CBC требуется дополнительная энтропия от камеры", + 3270727197: "Адрес", + 900375497: "Правильно совместите камеру и резервную пластину.", + 88746165: "Антиблик отключен", + 1521033296: "Антиблик включен", + 3857613120: "Внешний Вид", + 1056821534: "Вы уверены?", + 1868069640: "Цвета BGR", + 3455872521: "Назад", + 4151330982: "Назад в Mеню", + 2756316330: "Резервная мнемоника", + 2256777600: "Плохая подпись", + 3937333362: "Скорость Передачи Данных", + 2046615409: "Двоичная сетка", + 928727036: "Заполнение Границ", + 2519455027: "Яркость", + 2363604010: "Кнопки", + 2038226551: "Антидребезг кнопок", + 3138204438: "Захват отменен", + 1207696150: "Сдача", + 3126552510: "Адрес Сдачи", + 1583186953: "Сменить тему и перезагрузить?", + 3768416405: "Сдача:", + 388908871: "Изменения будут храниться до выключения.", + 3442025874: "Проверить SD Карту", + 3119547911: "Проверить, что адрес принадлежит этому кошельку?", + 1187826970: "Проверено %d адресов без совпадений.", + 2470115694: "Проверка SD карты..", + 1851578965: "Дочерний индекс", + 4094072796: "Создать QR Код", + 167798282: "Создать QR код из текста?", + 678449760: "Создано:", + 3513215254: "Пользовательский QR Код", + 3585411775: "Настроить", + 534274978: "Настройка вашего кошелька создаст новый ключ.", + 124617190: "Глубина Резки", + 597912140: "Метод Резки", + 2504034831: "Десятичный", + 2751113454: "Расшифровать?", + 1272005728: "Кошелек по умолчанию", + 4102535566: "Глубина за Проход", + 1712856005: "Адреса дескрипторов", + 3278654271: "Дисплеи", + 3895447625: "Не выключайте питание, это может занять некоторое время.", + 3836852788: "Готово?", + 690625786: "Двойная мнемоника", + 382368239: "Драйвер", + 3582575312: "Зашифровано", + 1244124409: "Зашифрованный QR Код", + 2968548114: "Зашифрованная мнемоника не была сохранена", + 781419966: "Зашифрованная мнемоника была сохранена с ID:", + 350279787: "Шифрование", + 2601598799: "Метод Шифрования", + 1821513079: "Введите %d слов BIP-39.", + 3504179008: "Введите каждое слово вашей мнемоники BIP-39 в виде числа от 1 до 2048.", + 1100685007: "Введите каждое слово вашей мнемоники BIP-39 в виде шестнадцатеричного числа от 1 до 800.", + 4090266642: "Введите каждое слово вашей мнемоники BIP-39 в виде восьмеричного числа от 1 до 4000.", + 2780625730: "Введите каждое слово вашей BIP-39 мнемоники.", + 889040671: "Ошибка:", + 1505332462: "Выйти", + 3838465623: "Исследовать файлы?", + 4170881190: "Экспортирование на SD карту..", + 1711312434: "Расширенный Публичный Ключ", + 3981762528: "Заводские Настройки", + 383371114: "Не удалось расшифровать", + 3048830188: "Не удалось загрузить PSBT", + 4192663412: "Не удалось загрузить адрес", + 1996021743: "Не удалось загрузить ключ", + 1108715658: "Не удалось загрузить сообщение", + 1081425878: "Не удалось загрузить мнемонику", + 928667220: "Не удалось загрузить выходной дескриптор", + 1620572516: "Не удалось загрузить фразу-пароль", + 2946146830: "Не удалось сохранить мнемонику", + 262248294: "Комиссия:", + 104500973: "Скорость Подачи", + 3313339187: "Имя файла", + 1982637349: "Файл %s существует на SD карте, перезаписать?", + 4006602858: "Отпечаток пальца не установлен в PSBT", + 2542772894: "Прошивка превышает максимальный размер: %d", + 3748840176: "Перевернутые координаты X", + 1406590538: "Диаметр Флюта", + 1077771640: "Свободно:", + 1893243331: "Из Памяти", + 1871146425: "Полностью стерите SD-карту в другом устройстве, чтобы убедиться, что данные не восстановимы", + 3549015533: "Создать Мнемонику", + 3524220994: "Сгенерировать дочернюю мнемонику BIP85?", + 299338213: "Назначить этой мнемоники кастомный ID? В ином случае будет использован текущий фингерпринт", + 602716148: "OK", + 1198393582: "Хорошая энтропия", + 133139382: "Аппаратное Обеспечение", + 3580020863: "Шестнадцатеричный Публичный Ключ", + 2691246967: "Шестнадцатеричный", + 3903754133: "Скрыть мнемоники", + 3876651191: "Высокие комиссии!", + 2880010062: "ID уже существует", + 3242179508: "Входы (%d):", + 3034883011: "Установить?", + 3755547839: "Недостаточная Энтропия!", + 2032416055: "Недостаточная энтропия", + 2585599782: "Неверный адрес", + 2874529150: "Неверный загрузчик", + 4093416954: "Неверная длина мнемоники", + 1422874211: "Неверный публичный ключ", + 237577215: "Неверный кошелек:", + 4122897393: "Инвертировать", + 640219121: "Перевернутые цвета", + 3000888649: "Ключ", + 3264569915: "Ключ не предоставлен", + 3835918229: "Тестовый QR Принтера Krux", + 911419226: "Тип ЖК-дисплея", + 766317539: "Язык", + 4180141032: "Оставьте пустым, если хотите, чтобы Krux выбрал подходящее последнее слово", + 3663022166: "Влево", + 972436696: "Задержка Линии", + 2176866982: "Линия:", + 2820726296: "Загрузить Мнемонику", + 2369474953: "Загрузить кошелек", + 2256441194: "Загрузить дескриптор доверенного кошелька для просмотра адресов?", + 237136240: "Загрузка с SD-карты", + 879727077: "Загрузить с SD карты?", + 1936877965: "Из камеры", + 669106195: "Загрузить один?", + 3330705289: "Загрузить?", + 2596531078: "Загрузка Камеры..", + 2488179069: "Загрузка адресов изменения..", + 336702608: "Загрузка принтера..", + 1201104769: "Загрузка адресов получения..", + 3159494909: "Загрузка..", + 1177338798: "Локаль", + 2817059741: "Расположение", + 2917810189: "Максимальная длина превышена (%s)", + 2030045667: "Сообщение", + 762611188: "Сообщение:", + 3928301843: "Отсутствует файл подписи", + 1948316555: "Мнемоника", + 2123991188: "ID Мнемоники", + 1443208255: "Мнемоника и парольная фраза будут сохранены.", + 1746030071: "Мнемоника не была зашифрована", + 1237332019: "Изменено:", + 1845376098: "Мультиподпись", + 4265479636: "Native Segwit - 84 будет принято", + 2939797024: "Сеть", + 73574491: "Новая Мнемоника", + 3634967631: "Обнаружена новая прошивка.", + 4063104189: "Нет", + 2325721074: "Нет Фраза-пароль", + 4092516657: "Недостаточно бросков!", + 3089363813: "Числа", + 1577637745: "Восьмеричный", + 391304453: "Другие форматы", + 3312581301: "PBKDF2 Итерации", + 995862913: "Закрасьте перфорированные точки черным цветом, чтобы их можно было обнаружить.", + 2987800462: "Ширина Бумаги", + 3913146360: "Часть", + 3559456868: "Размер Части", + 4249903283: "Фраза-пароль", + 3745269737: "Несоответствие пути", + 500286397: "Образец обнаружен!", + 3040011773: "Окончательно удалить все сохраненные зашифрованные мнемоники и настройки из флеш-памяти?", + 140802882: "Постоянная Память", + 2578106186: "Индекс отклонения пикселей:", + 1703779997: "QR Открытым Текстом", + 3561756278: "Пожалуйста загрузите выходной дескриптор кошелька", + 784609464: "Скорость Погружения", + 3761518438: "Плохая энтропия", + 3639136476: "Обнаружена плохая энтропия!", + 3037062877: "Напечатать Тестовый QR", + 2362732578: "Распечатать Tiny Seed?", + 3123770978: "Печать в QR", + 3345150514: "Напечатать в виде QR?", + 3339507095: "Печатать?", + 1123106929: "Принтер", + 3903571079: "Драйвер Принтера не установлен!", + 3586624216: "Идет печать..", + 3593149291: "Все равно продолжить?", + 2580599003: "Продолжить?", + 3108881025: "Обработка..", + 1848310591: "QR Код", + 710709610: "RX Пин", + 2697857197: "Получить", + 1746677167: "Адрес Получения", + 1658501467: "Регион:", + 3739634002: "Удалить %s?", + 1476462492: "Удалить Мнемонику", + 1557093280: "Удалить файлы прошивки с SD-карты?", + 2817311427: "Разреш. - Формат", + 2365886561: "Восстановить заводские настройки и перезагрузить?", + 3091105710: "Вернуться к QR-просмотрщику", + 1662254634: "Просмотрите отсканированные данные, отредактируйте при необходимости", + 1963678224: "Вправо", + 770350922: "Бросьте кубик не менее %d раз, чтобы сгенерировать мнемонику.", + 3271055013: "Распределение бросков:", + 432366011: "Броски:", + 3976793317: "SD карта", + 2736513298: "SD карта не обнаружена.", + 1166743226: "SHA256 бросков:", + 817419367: "SHA256 снэпшота:", + 699906428: "Сохранить QR-изображение на SD-карту", + 2163347007: "Сохранить на SD-карту", + 3531742595: "Сохранить на SD карту?", + 2940025484: "Сохранено на SD карту", + 763824768: "Шкала", + 4117455079: "Отсканировать Адрес", + 4038076821: "Отсканировать BIP39 фразу-пароль", + 923277590: "Отсканировать Ключ QR код", + 4006316572: "Сканирование слов 1-12 снова", + 2736506158: "Сканирование слов 13-24", + 2029624154: "Время Экранной Заставки", + 289960586: "Тип скрипта", + 1022211991: "Охрана", + 4255182430: "Трансфер самому себе или Сдача (%d):", + 3753172956: "Перевод самому себе:", + 473154195: "Настройки", + 563836138: "Настройки хранятся во флэш-памяти.", + 712533907: "Настройки сохранены на SD-карте.", + 2377955518: "Энтропия Шеннона:", + 1825881236: "Выключить", + 3656120779: "Время выключения", + 2120776272: "Выключение..", + 1061961408: "Подписать", + 2293863356: "Подписать QR-код", + 2879966040: "Подписать на SD-карте", + 4282338366: "Подписать?", + 746161122: "Подпись", + 1988416729: "Подписанное Сообщение", + 3672006076: "Подписанное PSBT", + 3406791302: "Подписание..", + 2281377987: "Одна подпись", + 2019512665: "Размер:", + 2344747135: "Некоторые проверки не могут быть выполнены.", + 2090568351: "Расход (%d):", + 1260825919: "Расход:", + 1232757391: "Статистика для Гиков", + 3303592908: "Сохранить на Флэш Память", + 720041451: "Сохранить на SD Карту", + 3514476519: "Свайпните, чтобы сменить режим", + 1898550184: "ПРИКОСНИТЕСЬ или нажмите ВВОД, чтобы захватить", + 4228215415: "TX Пин", + 2612594937: "Текст", + 1454688268: "Тема", + 1180180513: "Термальный", + 2258131455: "Для гарантии невосстановления данных используйте функцию Очистки Устройства", + 2700207481: "Регулировка Яркости", + 725348723: "Инструменты", + 3684696112: "Чувствительность", + 2978718564: "Тачскрин", + 2732611775: "Попробовать ещё?", + 401829098: "Ввести BIP39 фразу-пароль", + 2061556020: "Ввести Ключ", + 2089395053: "Единица Измерения", + 2786714360: "Обновление завершено.", + 2674953168: "Использовать черную фоновую поверхность.", + 2402455261: "Использовать энтропию камеры, чтобы создать новую мнемонику", + 3336226318: "Использовано:", + 4003084591: "Значение %s вне диапозона: [%s, %s]", + 989428076: "Значение должно быть кратным %s", + 3429519584: "Проверка..", + 1889659487: "Версия", + 4191058607: "С Помощью Камеры", + 1254681955: "С Помощью D20", + 525309547: "С Помощью D6", + 590330112: "С Помощью Ручного Ввода", + 1947603760: "Через Слово", + 2504354847: "Дождитесь Захвата", + 2076481321: "Кошелек", + 2297028319: "Дескриптор Кошелька", + 4232654916: "Выходной дескриптор кошелька", + 2587172867: "Выходной дескриптор кошелька загружен!", + 2499782468: "Выходной дескриптор кошелька не найден.", + 2671738224: "Предупреждение:", + 262410364: "Очистка Устройства", + 3522794335: "Очистка Устройства..", + 797660533: "Слово %d", + 3742424146: "Числа Слов", + 2965123464: "Слова", + 1303016265: "Да", + 2171149824: "некорректный адрес", + 1875891934: "нЕ НАЙДЕНО в первых %d адресах", +} diff --git a/src/krux/translations/tr_TR.py b/src/krux/translations/tr_TR.py new file mode 100644 index 00000000..393b8405 --- /dev/null +++ b/src/krux/translations/tr_TR.py @@ -0,0 +1,317 @@ +# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +# pylint: disable=C0301 +translation_table = { + 232475068: "tutarın %'si.", + 1185266064: "%d / %d çoklu imza", + 1503087751: "%d to %d", + 1178563089: "%s kaldırıldı.", + 1092222515: "(toplam %d)", + 3348584292: "(Deneysel)", + 1099786887: "(sadece izle)", + 2739590230: "12 kelime", + 1310058127: "24 kelime", + 1949634023: "Hakkında", + 4287534872: "Varsayım kabul edilsin mi?", + 2995482424: "Hesap", + 2415648848: "#0 numaralı hesap varsayılacaktır", + 1043817877: "Hesap Endeksi", + 3439746594: "Cüzdan parolası eklensin mi veya değiştirilsin mi?", + 2143824150: "AES-CBC modu için kameradan ek entropi gereklidir", + 3270727197: "Adres", + 900375497: "Kamerayı ve yedek plakay'ı düzgün bir şekilde hizalayın.", + 88746165: "Parlama önleyici devre dışı", + 1521033296: "Parlama önleyici etkin", + 3857613120: "Görünüm", + 1056821534: "Emin misiniz?", + 1868069640: "BGR Renkleri", + 3455872521: "Geri", + 4151330982: "Menüye Dön", + 2756316330: "Yedek Mnemonic", + 2256777600: "Geçersiz imza", + 3937333362: "Baud Hızı", + 2046615409: "İkili Izgara", + 928727036: "Kenarlık Dolgusu", + 2519455027: "Parlaklık", + 2363604010: "Butonlar", + 2038226551: "Buton Geri-sekmesi", + 3138204438: "Yakalama iptal edildi", + 1207696150: "Para Üstü", + 3126552510: "Para Üstü Adresleri", + 1583186953: "Temayı değiştir ve yeniden başlat?", + 3768416405: "Para Üstü:", + 388908871: "Değişiklikler kapanışa kadar devam edecek.", + 3442025874: "SD Kartı Kontrol Et", + 3119547911: "Bu adresin, bu cüzdana ait olduğunu kontrol et?", + 1187826970: "Eşleşmeyen %d adres kontrol edildi.", + 2470115694: "SD kart kontrol ediliyor..", + 1851578965: "Türev Dizini", + 4094072796: "QR Kodu Oluştur", + 167798282: "Metinden QR kodu oluşturulsun mu?", + 678449760: "Oluşturuldu:", + 3513215254: "Özel QR Kodu", + 3585411775: "Özelleştir", + 534274978: "Cüzdanınızı özelleştirmek yeni bir Anahtar oluşturacaktır.", + 124617190: "Kesim Derinliği", + 597912140: "Kesim Yöntemi", + 2504034831: "Ondalık", + 2751113454: "Şifre çözülsün mü?", + 1272005728: "Varsayılan Cüzdan", + 4102535566: "Geçiş Başına Derinlik", + 1712856005: "Tanımlayıcı Adresler", + 3278654271: "Ekran", + 3895447625: "Kapatmayın, tamamlanması biraz zaman alabilir.", + 3836852788: "Tamamlandı mı?", + 690625786: "Çifte anımsatıcı", + 382368239: "Sürücü", + 3582575312: "Şifrelenmiş", + 1244124409: "Şifrelenmiş QR Kodu", + 2968548114: "Şifrelenmiş mnemonic depolanmadı", + 781419966: "Şifrelenmiş mnemonic ID ile depolandı:", + 350279787: "Şifreleme", + 2601598799: "Şifreleme Modu", + 1821513079: "%d BIP-39 kelime girin.", + 3504179008: "BIP-39 mnemonic'inizin her kelimesini 1'den 2048'e kadar bir sayı olarak girin.", + 1100685007: "BIP-39 mnemonic'inizin her kelimesini 1'den 800'e kadar onaltılık bir sayı olarak girin.", + 4090266642: "BIP-39 mnemonic'inizin her kelimesini 1'den 4000'e kadar sekizlik bir sayı olarak girin.", + 2780625730: "BIP-39 mnemonic'inizin her kelimesini girin.", + 889040671: "Hata:", + 1505332462: "Çıkış", + 3838465623: "Dosyaları ara?", + 4170881190: "SD karta aktarılıyor..", + 1711312434: "Genişletilmiş Public Key", + 3981762528: "Fabrika Ayarları", + 383371114: "Şifre çözme başarısız", + 3048830188: "PSBT yükleme başarısız", + 4192663412: "Adres yükleme başarısız", + 1996021743: "Anahtar yükleme başarısız", + 1108715658: "Mesaj yükleme başarısız", + 1081425878: "Mnemonic yükleme başarısız", + 928667220: "Çıktı tanımlayıcısı yüklemesi başarısız", + 1620572516: "Parola yükleme başarısız", + 2946146830: "Mnemonic depolama başarısız", + 262248294: "Ücret:", + 104500973: "Besleme Hızı", + 3313339187: "Dosya adı", + 1982637349: "%s dosya adı SD kartta var, üzerine yazılsın mı?", + 4006602858: "PSBT'de parmak izi ayarı kaldırıldı", + 2542772894: "Donanım yazılımı maksimum boyutu aşıyor: %d", + 3748840176: "X Koordinatları Tersine Çevrildi", + 1406590538: "Flute Çapı", + 1077771640: "Boş:", + 1893243331: "Depolamadan Seç", + 1871146425: "Verilerin geri kullanılamaz olduğundan emin olmak için SD kartınızı başka bir cihazda tamamen silin", + 3549015533: "Mnemonic Oluştur", + 3524220994: "BIP85 türevi anımsatıcı oluşturulsun mu?", + 299338213: "Bu mnemonic'e özel bir ID verilsin mi? Aksi takdirde mevcut parmak izi kullanılacaktır", + 602716148: "Seç", + 1198393582: "Yeterli entropi", + 133139382: "Donanım", + 3580020863: "Hex Public Key", + 2691246967: "Onaltılık", + 3903754133: "Mnemonic'leri Gizle", + 3876651191: "Yüksek ücret!", + 2880010062: "ID zaten var", + 3242179508: "Girişler (%d):", + 3034883011: "Yükle?", + 3755547839: "Yetersiz Entropi!", + 2032416055: "Yetersiz entropi", + 2585599782: "Geçersiz adres", + 2874529150: "Geçersiz önyükleyici", + 4093416954: "Geçersiz mnemonic uzunluğu", + 1422874211: "Geçersiz public key", + 237577215: "Geçersiz cüzdan:", + 4122897393: "Ters Çevir", + 640219121: "Ters Renkler", + 3000888649: "Anahtar", + 3264569915: "Anahtar sağlanmadı", + 3835918229: "Krux Yazıcı Test QR'ı", + 911419226: "LCD Tipi", + 766317539: "Dil", + 4180141032: "Krux'un geçerli bir son kelime seçmesini istiyorsanız boş bırakın", + 3663022166: "Sol", + 972436696: "Satır Gecikmesi", + 2176866982: "Satır:", + 2820726296: "Mnemonic Yükle", + 2369474953: "Cüzdan Yükle", + 2256441194: "Adresleri görüntülemek için güvenilir bir cüzdan tanımlayıcısı yüklensin mi?", + 237136240: "SD karttan yükle", + 879727077: "SD karttan yüklensin mi?", + 1936877965: "Kameradan yükle", + 669106195: "Bir tane mi yüklensin?", + 3330705289: "Yüklensin mi?", + 2596531078: "Kamera Yükleniyor..", + 2488179069: "Para üstü adresler yükleniyor..", + 336702608: "Yazıcı yükleniyor..", + 1201104769: "Alım adresler yükleniyor..", + 3159494909: "Yükleniyor..", + 1177338798: "Yerel", + 2817059741: "Konum", + 2917810189: "Maksimum uzunluk aşıldı (%s)", + 2030045667: "Mesaj", + 762611188: "Mesaj:", + 3928301843: "İmza dosyası eksik", + 1948316555: "Mnemonic", + 2123991188: "Mnemonic ID", + 1443208255: "Mnemonik ve parola tutulacaktır.", + 1746030071: "Mnemonic şifrelenmedi", + 1237332019: "Değiştirildi:", + 1845376098: "Çoklu imza", + 4265479636: "Yerel Segwit - 84 varsayılacaktır", + 2939797024: "Ağ", + 73574491: "Yeni Mnemonic", + 3634967631: "Yeni donanım yazılımı tespit edildi.", + 4063104189: "Hayır", + 2325721074: "Parola Yok", + 4092516657: "Yeterli zar atışı yok!", + 3089363813: "Numaralar", + 1577637745: "Sekizlik", + 391304453: "Diğer Formatlar", + 3312581301: "PBKDF2 Yinelemesi", + 995862913: "İşaretlenmiş noktaları siyaha boyayın ki tespit edilebilsinler.", + 2987800462: "Kağıt Genişliği", + 3913146360: "Parça", + 3559456868: "Parça Boyutu", + 4249903283: "Parola", + 3745269737: "Yol uyuşmazlığı", + 500286397: "Örüntü algılandı!", + 3040011773: "Tüm depolanmış ve şifrelenmiş mnemonic'ler ve ayarlar flash'tan kalıcı olarak kaldırılsın mı?", + 140802882: "Kalıcı Depolama", + 2578106186: "Piksel sapma indeksi:", + 1703779997: "Düz Metin QR'ı", + 3561756278: "Lütfen bir cüzdan çıktı tanımlayıcısı yükleyin", + 784609464: "Dalış Hızı", + 3761518438: "Düşük entropi", + 3639136476: "Düşük entropi tespit edildi!", + 3037062877: "Test QR'ını Yazdır", + 2362732578: "Tiny Seed Yazdırılsın mı?", + 3123770978: "QR'a Yazdır", + 3345150514: "QR'a yazdırılsın mı?", + 3339507095: "Yazdırılsın mı?", + 1123106929: "Yazıcı", + 3903571079: "Yazıcı Sürücüsü ayarlanmadı!", + 3586624216: "Yazdırılıyor..", + 3593149291: "Yine de devam edilsin mi?", + 2580599003: "Devam edilsin mi?", + 3108881025: "İşleniyor..", + 1848310591: "QR Kodu", + 710709610: "RX Pini", + 2697857197: "Al", + 1746677167: "Adresleri Al", + 1658501467: "Bölge:", + 3739634002: "%s kaldırılsın mı?", + 1476462492: "Mnemonic'i Kaldır", + 1557093280: "SD Karttan donanım yazılımı dosyaları kaldırılsın mı?", + 2817311427: "Çözünürlüğü Sıfırla", + 2365886561: "Fabrika ayarlarına geri dönüp ve yeniden başlatılsın mı?", + 3091105710: "QR Görüntüleyiciye Dön", + 1662254634: "Taranan verileri gözden geçirin, gerekirse düzenleyin", + 1963678224: "Sağ", + 770350922: "Bir mnemonic oluşturmak için zarı en az %d kez atın.", + 3271055013: "Zar atış dağılımı:", + 432366011: "Zar atışları:", + 3976793317: "SD kart", + 2736513298: "SD kart algılanmadı.", + 1166743226: "Zar atışlarının SHA256'sı:", + 817419367: "Snapshot'ın SHA256'sı:", + 699906428: "QR Görüntüsünü SD Karta Kaydet", + 2163347007: "SD karta kaydet", + 3531742595: "SD karta kaydedilsin mi?", + 2940025484: "SD karta kaydedildi", + 763824768: "Ölçek", + 4117455079: "Adresi Tara", + 4038076821: "BIP39 Parolasını Tara", + 923277590: "Anahtar QR Kodunu Tara", + 4006316572: "1-12 kelimeleri tekrar taranıyor", + 2736506158: "13-24 kelimeleri taranıyor", + 2029624154: "Ekran Koruyucu Süresi", + 289960586: "Betik Türü", + 1022211991: "Güvenlik", + 4255182430: "Kendine-transfer veya Para Üstü (%d):", + 3753172956: "Kendine-transfer:", + 473154195: "Ayarlar", + 563836138: "Ayarlar dahili olarak flaşta saklanır.", + 712533907: "Ayarlar SD karta kaydedildi.", + 2377955518: "Shannon Entropisi:", + 1825881236: "Kapat", + 3656120779: "Kapanma Süresi", + 2120776272: "Kapatılıyor..", + 1061961408: "İmzala", + 2293863356: "QR koduna imzala", + 2879966040: "SD karta imzala", + 4282338366: "İmzalansın mı?", + 746161122: "İmza", + 1988416729: "İmzalı Mesaj", + 3672006076: "İmzalı PSBT", + 3406791302: "İmzalanıyor..", + 2281377987: "Tek-imza", + 2019512665: "Boyut:", + 2344747135: "Bazı kontroller yerine getirilemedi.", + 2090568351: "Harcama (%d):", + 1260825919: "Harcama:", + 1232757391: "İnekler İçin İstatistikler", + 3303592908: "Flash'ta Sakla", + 720041451: "SD Kartta Sakla", + 3514476519: "Modu değiştirmek için kaydırın", + 1898550184: "Yakalamak için DOKUN veya GİR", + 4228215415: "TX Pini", + 2612594937: "Metin", + 1454688268: "Tema", + 1180180513: "Termal", + 2258131455: "Verilerin geri kullanılamaz olduğundan emin olmak için Cihazı Sil özelliğini kullanın", + 2700207481: "Parlaklığı Değiştir", + 725348723: "Araçlar", + 3684696112: "Dokunma Eşiği", + 2978718564: "Dokunmatik ekran", + 2732611775: "Daha fazla kez denensin mi?", + 401829098: "BIP39 parolasını yazın", + 2061556020: "Anahtar Yaz", + 2089395053: "Birim", + 2786714360: "Güncelleme tamamlandı.", + 2674953168: "Siyah bir arka plan yüzeyi kullanın.", + 2402455261: "Yeni bir mnemonic oluşturmak için kameranın entropisini kullanın", + 3336226318: "Kullanılan:", + 4003084591: "%s değeri aralık dışında: [%s, %s]", + 989428076: "Değer %s'nin katı olmalıdır", + 3429519584: "Doğrulanıyor..", + 1889659487: "Sürüm", + 4191058607: "Kamera Aracılığıyla", + 1254681955: "D20 Aracılığıyla", + 525309547: "D6 Aracılığıyla", + 590330112: "Manuel Giriş Aracılığıyla", + 1947603760: "Sözcüklerle", + 2504354847: "Yakalamanın tamamlanmasını bekleyin", + 2076481321: "Cüzdan", + 2297028319: "Cüzdan Tanımlayıcısı", + 4232654916: "Cüzdan çıktı tanımlayıcısı", + 2587172867: "Cüzdan çıktı tanımlayıcısı yüklendi!", + 2499782468: "Cüzdan çıktı tanımlayıcısı bulunamadı.", + 2671738224: "Uyarı:", + 262410364: "Cihazı Sil", + 3522794335: "Cihaz Siliniyor..", + 797660533: "Kelime %d", + 3742424146: "Kelime Numaraları", + 2965123464: "Kelimeler", + 1303016265: "Evet", + 2171149824: "geçerli bir adres!", + 1875891934: "ilk %d adreste BULUNAMADI", +} diff --git a/src/krux/translations/vi_VN.py b/src/krux/translations/vi_VN.py new file mode 100644 index 00000000..a5ec3c55 --- /dev/null +++ b/src/krux/translations/vi_VN.py @@ -0,0 +1,317 @@ +# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +# pylint: disable=C0301 +translation_table = { + 232475068: "% của số tiền.", + 1185266064: "%d của %d đa chữ kí", + 1503087751: "%d đến %d", + 1178563089: "%s Đã bỏ.", + 1092222515: "(tổng cộng %d)", + 3348584292: "(Thực nghiệm)", + 1099786887: "(chỉ xem)", + 2739590230: "12 từ", + 1310058127: "24 từ", + 1949634023: "Về chúng tôi", + 4287534872: "Chấp nhận giả định?", + 2995482424: "Tài khoản", + 2415648848: "Tài khoản #0 sẽ được giả định", + 1043817877: "Chỉ mục tài khoản", + 3439746594: "Thêm hoặc thay đổi cụm mật khẩu ví?", + 2143824150: "Cần thêm entropy từ camera cho chế độ AES-CBC", + 3270727197: "Địa chỉ", + 900375497: "Căn chỉnh camera và tấm dự phòng đúng cách.", + 88746165: "Chống lóa bị vô hiệu hóa", + 1521033296: "Đã bật chống lóa", + 3857613120: "Giao diện", + 1056821534: "Bạn có chắc không?", + 1868069640: "Màu BGR", + 3455872521: "Trở lại", + 4151330982: "Quay lại Menu", + 2756316330: "Sao lưu Mnemonic", + 2256777600: "Chữ ký xấu", + 3937333362: "Tốc độ baud", + 2046615409: "Lưới nhị phân", + 928727036: "Đệm viền", + 2519455027: "Độ sáng", + 2363604010: "Nút", + 2038226551: "Loại bỏ nhiễu nút", + 3138204438: "Hủy chụp hình", + 1207696150: "Thay đổi", + 3126552510: "Các địa chỉ tiền thối", + 1583186953: "Thay đổi giao diện và khởi động lại?", + 3768416405: "Thay đổi:", + 388908871: "Thay đổi sẽ kéo dài cho đến khi tắt máy.", + 3442025874: "Kiểm tra thẻ SD", + 3119547911: "Kiểm tra địa chỉ đó có thuộc về ví này không?", + 1187826970: "Đã kiểm tra %d địa chỉ không khớp.", + 2470115694: "Kiểm tra thẻ SD..", + 1851578965: "Chỉ mục phụ", + 4094072796: "Tạo mã QR", + 167798282: "Tạo mã QR từ văn bản?", + 678449760: "Tạo:", + 3513215254: "Mã QR tùy chỉnh", + 3585411775: "Tùy chỉnh", + 534274978: "Tùy chỉnh ví của bạn sẽ tạo một Khóa mới.", + 124617190: "Chiều sâu cắt", + 597912140: "Phương pháp cắt", + 2504034831: "Số thập phân", + 2751113454: "Giải mã?", + 1272005728: "Ví mặc định", + 4102535566: "Độ sâu mỗi lần cắt CNC", + 1712856005: "Địa chỉ người mô tả", + 3278654271: "Hiển thị", + 3895447625: "Không được tắt máy, có thể mất một lúc để hoàn thành.", + 3836852788: "Hoàn tất?", + 690625786: "Từ gợi nhớ kép", + 382368239: "Driver", + 3582575312: "Đã mã hóa", + 1244124409: "Mã QR được mã hóa", + 2968548114: "Mnemonic được mã hóa không được lưu trữ", + 781419966: "Mnemonic được mã hóa không được lưu trữ với ID:", + 350279787: "Mã hóa", + 2601598799: "Chế độ mã hóa", + 1821513079: "Nhập %d từ BIP-39.", + 3504179008: "Nhập từng từ của Mnemonic BIP-39 của bạn dưới dạng số từ 1 đến 2048.", + 1100685007: "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số thập lục phân từ 1 đến 800.", + 4090266642: "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số bát phân từ 1 đến 4000.", + 2780625730: "Nhập từng từ của Mnemonic BIP-39 của bạn.", + 889040671: "Lỗi:", + 1505332462: "Esc", + 3838465623: "Khám phá các tập tin?", + 4170881190: "Xuất vào thẻ SD ..", + 1711312434: "Khóa công cộng", + 3981762528: "Cài đặt Gốc", + 383371114: "Không giải mã được", + 3048830188: "Tải PSBT thất bại", + 4192663412: "Tải địa chỉ thất bại", + 1996021743: "Không tải được khóa", + 1108715658: "Không tải được tin nhắn", + 1081425878: "Tải mã Mnemonic thất bại", + 928667220: "Không tải được bộ mô tả đầu ra", + 1620572516: "Không tải được cụm mật khẩu", + 2946146830: "Không lưu trữ Mnemonic được", + 262248294: "Phí:", + 104500973: "Tốc độ cắt CNC", + 3313339187: "Tên tệp", + 1982637349: "Tên tệp %s tồn tại trên thẻ SD, ghi đè lên?", + 4006602858: "Bỏ dấu vân tay trong PSBT", + 2542772894: "Phần mềm vượt quá kích thước tối đa: %d", + 3748840176: "Tọa độ X bị lật", + 1406590538: "Đường kính mũi cắt CNC", + 1077771640: "Khả dụng:", + 1893243331: "Từ bộ lưu trữ", + 1871146425: "Xóa hoàn toàn thẻ SD trong một thiết bị khác để đảm bảo dữ liệu không thể phục hồi", + 3549015533: "Tạo Mnemonic", + 3524220994: "Tạo một Mnemonic phụ thuộc BIP85?", + 299338213: "Cung cấp cho Mnemonic này một ID tùy chỉnh? Nếu không thì fingerprint hiện tại sẽ được sử dụng", + 602716148: "Chọn", + 1198393582: "Entropy tốt", + 133139382: "Phần cứng", + 3580020863: "Khóa công cộng Hex", + 2691246967: "Thập lục phân", + 3903754133: "Ẩn Mnemonics", + 3876651191: "Phí cao!", + 2880010062: "Id đã tồn tại", + 3242179508: "Đầu vào (%d):", + 3034883011: "Cài đặt phần mềm?", + 3755547839: "Entropy không đủ!", + 2032416055: "Không đủ entropy", + 2585599782: "Địa chỉ không hợp lệ", + 2874529150: "Bộ tải khởi động không hợp lệ", + 4093416954: "Độ dài mã Mnemonic không hợp lệ", + 1422874211: "Khóa công cộng không hợp lệ", + 237577215: "Ví không hợp lệ:", + 4122897393: "Đảo ngược", + 640219121: "Màu đảo ngược", + 3000888649: "Chìa khóa", + 3264569915: "Khóa không được cung cấp", + 3835918229: "QR kiểm tra máy in Krux", + 911419226: "Loại LCD", + 766317539: "Ngôn ngữ", + 4180141032: "Để trống nếu bạn muốn Krux chọn một từ cuối cùng hợp lệ", + 3663022166: "Trái", + 972436696: "Độ trễ Dòng", + 2176866982: "Đường kẻ:", + 2820726296: "Tải mã mnemonic", + 2369474953: "Nạp Ví", + 2256441194: "Tải mô tả ví đáng tin cậy để xem địa chỉ?", + 237136240: "Tải từ thẻ SD", + 879727077: "Tải từ thẻ SD?", + 1936877965: "Tải từ máy ảnh", + 669106195: "Tải một?", + 3330705289: "Tải?", + 2596531078: "Đang tải máy ảnh..", + 2488179069: "Đang tải địa chỉ tiền thối..", + 336702608: "Đang tải máy in ..", + 1201104769: "Đang tải địa chỉ nhận..", + 3159494909: "Đang tải..", + 1177338798: "Ngôn ngữ", + 2817059741: "Vị trí lưu", + 2917810189: "Chiều dài tối đa vượt quá (%s)", + 2030045667: "Tin nhắn", + 762611188: "Tin nhắn:", + 3928301843: "Thiếu tập tin chữ ký", + 1948316555: "Mã mnemonic", + 2123991188: "Mnemonic ID ", + 1443208255: "Từ gợi nhớ và cụm mật khẩu sẽ được lưu giữ.", + 1746030071: "Mnemonic không được mã hóa", + 1237332019: "Đã sửa đổi:", + 1845376098: "Đa chữ kí", + 4265479636: "Native Segwit - 84 sẽ được giả định", + 2939797024: "Mạng lưới", + 73574491: "Mnemonic mới", + 3634967631: "Phát hiện phần sụn mới.", + 4063104189: "Không", + 2325721074: "Không có cụm mật khẩu", + 4092516657: "Không đủ số lần quay!", + 3089363813: "Số", + 1577637745: "Bát phân", + 391304453: "Các định dạng khác", + 3312581301: "Lặp lại PBKDF2", + 995862913: "Tô các chấm đục lỗ màu đen để chúng có thể được phát hiện.", + 2987800462: "Chiều rộng giấy", + 3913146360: "Phần", + 3559456868: "Kích thước một phần", + 4249903283: "Cụm mật khẩu", + 3745269737: "Đường dẫn không khớp", + 500286397: "Đã phát hiện mẫu!", + 3040011773: "Xóa vĩnh viễn mọi Mnemonics và cài đặt được mã hóa lưu trữ trong flash?", + 140802882: "Vị trí lưu", + 2578106186: "Chỉ số độ lệch điểm ảnh:", + 1703779997: "QR dạng văn bản", + 3561756278: "Vui lòng tải bộ mô tả đầu ra ví", + 784609464: "Tỷ lệ sụt giảm", + 3761518438: "Entropy kém", + 3639136476: "Phát hiện entropy yếu!", + 3037062877: "In kiểm tra QR", + 2362732578: "In Tiny Seed?", + 3123770978: "In ra QR", + 3345150514: "In ra mã QR?", + 3339507095: "In?", + 1123106929: "Máy in", + 3903571079: "Trình điều khiển máy in chưa được cài đặt!", + 3586624216: "Đang in..", + 3593149291: "Vẫn tiếp tục?", + 2580599003: "Thực hiện?", + 3108881025: "Đang xử lý..", + 1848310591: "Mã QR", + 710709610: "RX Pin", + 2697857197: "Nhận được", + 1746677167: "Các địa chỉ nhận", + 1658501467: "Vùng:", + 3739634002: "Xóa %s?", + 1476462492: "Xóa Mnemonic", + 1557093280: "Xóa các tệp firmware khỏi Thẻ SD?", + 2817311427: "Độ phân giải - Định dạng", + 2365886561: "Khôi phục cài đặt gốc và khởi động lại?", + 3091105710: "Quay lại Trình xem QR", + 1662254634: "Xem lại dữ liệu đã quét, chỉnh sửa nếu cần", + 1963678224: "Phải", + 770350922: "Lăn xúc xắc ít nhất %d lần để tạo Mnemonic.", + 3271055013: "Phân bổ xúc xắc:", + 432366011: "Tổng số lần quay xúc xắc:", + 3976793317: "Thẻ SD", + 2736513298: "Thẻ SD không được phát hiện.", + 1166743226: "SHA256 của xúc xắc:", + 817419367: "Sha256 của ảnh chụp:", + 699906428: "Lưu Ảnh QR vào Thẻ SD", + 2163347007: "Lưu vào thẻ SD", + 3531742595: "Lưu vào thẻ SD?", + 2940025484: "Đã lưu vào thẻ SD", + 763824768: "Tỉ lệ", + 4117455079: "Quét địa chỉ", + 4038076821: "Quét cụm mật khẩu BIP39", + 923277590: "Quét mã QR khóa", + 4006316572: "Đang quét lại từ 1-12", + 2736506158: "Đang quét từ 13-24", + 2029624154: "Thời gian chế độ bảo vệ màn hình", + 289960586: "Kiểu văn lệnh", + 1022211991: "Bảo mật", + 4255182430: "Tự chuyển nhượng hoặc giao dịch (%d):", + 3753172956: "Tự chuyển nhượng:", + 473154195: "Cài đặt", + 563836138: "Cài đặt được lưu trữ nội bộ trên đèn flash.", + 712533907: "Cài đặt được lưu trên thẻ SD.", + 2377955518: "Entropy của Shannon:", + 1825881236: "Tắt máy", + 3656120779: "Thời gian tắt máy", + 2120776272: "Đang tắt..", + 1061961408: "Chữ kí", + 2293863356: "Ký vào mã QR", + 2879966040: "Ký vào thẻ SD", + 4282338366: "Kí?", + 746161122: "Chữ ký", + 1988416729: "Tin nhắn đã ký", + 3672006076: "Đã ký PSBT", + 3406791302: "Đang ký..", + 2281377987: "Khóa đơn", + 2019512665: "Dung lượng:", + 2344747135: "Một số kiểm tra không thể được thực hiện.", + 2090568351: "Chi tiêu (%d):", + 1260825919: "Chi tiêu:", + 1232757391: "Số liệu thống kê cho Mọt sách", + 3303592908: "Lưu trữ trên flash", + 720041451: "Lưu trữ trên thẻ SD", + 3514476519: "Vuốt để thay đổi chế độ", + 1898550184: "Chạm màn hình hoặc nhấn nút ENTER để chụp", + 4228215415: "TX Pin", + 2612594937: "Chữ", + 1454688268: "Chủ đề", + 1180180513: "Nhiệt", + 2258131455: "Sử dụng tính năng Xóa dữ liệu trên thiết bị để đảm bảo dữ liệu không thể phục hồi", + 2700207481: "Chuyển đổi độ sáng", + 725348723: "Công cụ", + 3684696112: "Ngưỡng cảm ứng", + 2978718564: "Màn hình cảm ứng", + 2732611775: "Thử thêm nữa?", + 401829098: "Nhập cụm mật khẩu BIP39", + 2061556020: "Nhập khóa", + 2089395053: "Đơn vị", + 2786714360: "Nâng cấp hoàn tất.", + 2674953168: "Sử dụng bề mặt nền đen.", + 2402455261: "Sử dụng sự ngẫu nhiên của máy ảnh để tạo ra một Mnemonic mới", + 3336226318: "Đã sử dụng:", + 4003084591: "Giá trị %s ngoài phạm vi: [ %s, %s]", + 989428076: "Giá trị phải là bội của %s", + 3429519584: "Đang xác minh..", + 1889659487: "Phiên Bản", + 4191058607: "Qua máy ảnh", + 1254681955: "Qua xúc xắc 20 mặt", + 525309547: "Qua xúc xắc 6 mặt", + 590330112: "Thông qua đầu vào thủ công", + 1947603760: "Thông qua từ ngữ", + 2504354847: "Chờ bắt", + 2076481321: "Ví", + 2297028319: "Trình mô tả ví", + 4232654916: "Ví đầu ra mô tả", + 2587172867: "Đã tải bộ mô tả đầu ra của ví!", + 2499782468: "Không tìm thấy bộ mô tả đầu ra ví.", + 2671738224: "Cảnh báo:", + 262410364: "Xóa dữ liệu trên thiết bị", + 3522794335: "Đang xóa dữ liệu trên thiết bị..", + 797660533: "Kí tự %d", + 3742424146: "Từ số", + 2965123464: "Từ ngữ", + 1303016265: "Đúng", + 2171149824: "là một địa chỉ hợp lệ!", + 1875891934: "kHÔNG TÌM THẤY trong %d địa chỉ đầu tiên", +} diff --git a/src/krux/translations/zh_CN.py b/src/krux/translations/zh_CN.py new file mode 100644 index 00000000..942fa134 --- /dev/null +++ b/src/krux/translations/zh_CN.py @@ -0,0 +1,317 @@ +# The MIT License (MIT) + +# Copyright (c) 2021-2024 Krux contributors + +# 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. +# pylint: disable=C0301 +translation_table = { + 232475068: "% 的金额。", + 1185266064: "%d/%d 多签", + 1503087751: "%d到%d", + 1178563089: "已移除%s", + 1092222515: "(总计 %d)", + 3348584292: "(实验性)", + 1099786887: "(仅观察)", + 2739590230: "12 单词", + 1310058127: "24 单词", + 1949634023: "关于", + 4287534872: "接受假设?", + 2995482424: "账户", + 2415648848: "将假定为账户 #0", + 1043817877: "账户索引", + 3439746594: "添加或更改钱包密码?", + 2143824150: "AES-CBC 模式需要相机的额外熵", + 3270727197: "地址", + 900375497: "正确对齐摄像头和背板。", + 88746165: "防眩光已禁用", + 1521033296: "防眩光已启用", + 3857613120: "界面", + 1056821534: "确定?", + 1868069640: "BGR 颜色", + 3455872521: "返回", + 4151330982: "返回菜单", + 2756316330: "备份助记词", + 2256777600: "签名无效", + 3937333362: "波特率", + 2046615409: "二进制网格", + 928727036: "边框填充", + 2519455027: "亮度", + 2363604010: "按钮", + 2038226551: "按钮去抖动", + 3138204438: "截取已取消", + 1207696150: "找零", + 3126552510: "找零地址", + 1583186953: "更改主题并重新启动?", + 3768416405: "找零", + 388908871: "更改将在关机前保持。", + 3442025874: "检查 SD 卡", + 3119547911: "检查该地址是否属于此钱包?", + 1187826970: "已检查 %d 个不匹配的地址。", + 2470115694: "检查 SD 卡..", + 1851578965: "子索引", + 4094072796: "创建二维码", + 167798282: "从文本创建二维码?", + 678449760: "已创建:", + 3513215254: "自定义二维码", + 3585411775: "自定义", + 534274978: "自定义您的钱包将生成新私钥。", + 124617190: "切割深度", + 597912140: "切割方法", + 2504034831: "十进制", + 2751113454: "解密?", + 1272005728: "默认钱包", + 4102535566: "每次通过的深度", + 1712856005: "描述符地址", + 3278654271: "显示", + 3895447625: "请勿断电,可能需要一段时间完成。", + 3836852788: "完成了吗?", + 690625786: "双重助记词", + 382368239: "驱动程序", + 3582575312: "已加密", + 1244124409: "加密二维码", + 2968548114: "加密助记词未存储", + 781419966: "加密助记词已存储,ID 为:", + 350279787: "加密", + 2601598799: "加密模式", + 1821513079: "输入 %d 个 BIP-39 词。", + 3504179008: "将 BIP-39 助记词的每个词作为 1 到 2048 的数字输入。", + 1100685007: "将 BIP-39 助记词的每个词作为 1 到 800 的十六进制数输入。", + 4090266642: "将 BIP-39 助记词的每个词作为 1 到 4000 的八进制数输入。", + 2780625730: "输入每个 BIP-39 助记词。", + 889040671: "错误:", + 1505332462: "退出", + 3838465623: "浏览文件?", + 4170881190: "导出到 SD 卡..", + 1711312434: "扩展公钥", + 3981762528: "出厂设置", + 383371114: "解密失败", + 3048830188: "加载 PSBT 失败", + 4192663412: "加载地址失败", + 1996021743: "加载密钥失败", + 1108715658: "加载消息失败", + 1081425878: "加载助记词失败", + 928667220: "加载输出描述符失败", + 1620572516: "加载密码失败", + 2946146830: "存储助记词失败", + 262248294: "费用:", + 104500973: "进给速度", + 3313339187: "文件名", + 1982637349: "文件名 %s 存在于 SD 卡上,覆盖?", + 4006602858: "PSBT 中未设置指纹", + 2542772894: "固件超过最大尺寸:%d", + 3748840176: "翻转 X 坐标", + 1406590538: "刀具直径", + 1077771640: "空闲:", + 1893243331: "从存储中", + 1871146425: "在其他设备中完全擦除您的 SD 卡以确保数据不可恢复", + 3549015533: "生成助记词", + 3524220994: "生成 BIP85 子助记词?", + 299338213: "为此助记词设置自定义 ID?否则将使用当前指纹", + 602716148: "去", + 1198393582: "良好的熵", + 133139382: "硬件", + 3580020863: "十六进制公钥", + 2691246967: "十六进制", + 3903754133: "隐藏助记词", + 3876651191: "高费用!", + 2880010062: "ID 已存在", + 3242179508: "输入 (%d):", + 3034883011: "安装?", + 3755547839: "熵不足!", + 2032416055: "熵不足", + 2585599782: "无效地址", + 2874529150: "无效的 ootloader ", + 4093416954: "助记词长度无效", + 1422874211: "无效公钥", + 237577215: "无效钱包:", + 4122897393: "反转", + 640219121: "反转颜色", + 3000888649: "密钥", + 3264569915: "未提供密钥", + 3835918229: "Krux 打印机测试二维码", + 911419226: "LCD 类型", + 766317539: "语言", + 4180141032: "如果希望 Krux 自动计算最后一位 Checksum,请留空", + 3663022166: "左", + 972436696: "行延迟", + 2176866982: "行:", + 2820726296: "加载助记词", + 2369474953: "加载钱包", + 2256441194: "加载受信任的钱包描述符以查看地址?", + 237136240: "从 SD 卡加载", + 879727077: "从 SD 卡加载?", + 1936877965: "从相机加载", + 669106195: "加载一个?", + 3330705289: "加载?", + 2596531078: "加载相机..", + 2488179069: "加载找零地址..", + 336702608: "加载打印机..", + 1201104769: "加载接收地址..", + 3159494909: "加载中..", + 1177338798: "语言环境", + 2817059741: "位置", + 2917810189: "超过最大长度(%s)", + 2030045667: "消息", + 762611188: "消息:", + 3928301843: "缺少签名文件", + 1948316555: "助记词", + 2123991188: "助记词 ID", + 1443208255: "助记词和密码将被保留。", + 1746030071: "助记词未加密", + 1237332019: "修改时间:", + 1845376098: "多签", + 4265479636: "假定为原生 Segwit - 84", + 2939797024: "网络", + 73574491: "新助记词", + 3634967631: "检测到新固件。", + 4063104189: "否", + 2325721074: "无 Passphrase ", + 4092516657: "投掷次数不足!", + 3089363813: "数字", + 1577637745: "八进制", + 391304453: "其他格式", + 3312581301: "PBKDF2 迭代", + 995862913: "将打孔点涂黑,以便它们能被检测到。", + 2987800462: "纸张宽度", + 3913146360: "部分", + 3559456868: "部件尺寸", + 4249903283: "Passphrase", + 3745269737: "路径不匹配", + 500286397: "检测到模式!", + 3040011773: "从 Flash 中永久删除所有存储的加密助记词和设置?", + 140802882: "保存", + 2578106186: "像素偏差指数:", + 1703779997: "明文二维码", + 3561756278: "请加载钱包输出描述符", + 784609464: "下刀速度", + 3761518438: "熵值低", + 3639136476: "检测到低熵!", + 3037062877: "打印测试二维码", + 2362732578: "打印 Tiny Seed?", + 3123770978: "打印到二维码", + 3345150514: "打印到二维码?", + 3339507095: "打印?", + 1123106929: "打印机", + 3903571079: "打印机驱动程序未设置!", + 3586624216: "正在打印", + 3593149291: "继续吗?", + 2580599003: "继续?", + 3108881025: "正在处理..", + 1848310591: "二维码", + 710709610: "RX 引脚", + 2697857197: "接收", + 1746677167: "接收地址", + 1658501467: "区域:", + 3739634002: "删除 %s?", + 1476462492: "删除助记词", + 1557093280: "从 SD 卡中删除固件文件?", + 2817311427: "分辨率 - 格式", + 2365886561: "恢复出厂设置并重新设备?", + 3091105710: "返回二维码查看器", + 1662254634: "请检查扫描的数据,如有必要请编辑", + 1963678224: "右", + 770350922: "掷骰子至少 %d 次以生成助记词。", + 3271055013: "掷骰子分布:", + 432366011: "掷骰子:", + 3976793317: "SD 卡", + 2736513298: "未检测到 SD 卡。", + 1166743226: "掷骰子的 SHA256:", + 817419367: "快照的 SHA256:", + 699906428: "将二维码图像保存到 SD 卡", + 2163347007: "保存到 SD 卡", + 3531742595: "保存到 SD 卡?", + 2940025484: "保存到 SD 卡", + 763824768: "缩放", + 4117455079: "扫描地址", + 4038076821: "扫描 BIP39 Passphrase", + 923277590: "扫描私钥二维码", + 4006316572: "重新扫扫描第 1-12 个单词", + 2736506158: "扫描第 13-24 个单词", + 2029624154: "屏保时间", + 289960586: "脚本类型", + 1022211991: "安全", + 4255182430: "自转或找零 (%d):", + 3753172956: "自行转账:", + 473154195: "设置", + 563836138: "设置存储在 Flash 内部。", + 712533907: "设置存储在SD卡上。", + 2377955518: "香农熵:", + 1825881236: "关机", + 3656120779: "关机时间", + 2120776272: "关机中..", + 1061961408: "签名", + 2293863356: "二维码签名", + 2879966040: " SD 卡签名", + 4282338366: "是否签名?", + 746161122: "签名", + 1988416729: "签名消息", + 3672006076: "已签名 PSBT", + 3406791302: "签名中..", + 2281377987: "单签", + 2019512665: "大小:", + 2344747135: "无法执行某些检查。", + 2090568351: "花费 (%d):", + 1260825919: "花费", + 1232757391: "极客统计数据", + 3303592908: "存储到 Flash", + 720041451: "存储到 SD 卡", + 3514476519: "滑动切换模式", + 1898550184: "点击或按下 ENTER 截图", + 4228215415: "TX 引脚", + 2612594937: "文本", + 1454688268: "主题", + 1180180513: "热敏", + 2258131455: "要确保数据不可恢复,请使用擦除设备功能", + 2700207481: "调整亮度", + 725348723: "工具", + 3684696112: "触摸阈值", + 2978718564: "触摸屏", + 2732611775: "再次尝试?", + 401829098: "输入 BIP39 Phrasephrase", + 2061556020: "输入私钥", + 2089395053: "单位", + 2786714360: "升级已完成。", + 2674953168: "使用黑色背景界面。", + 2402455261: "使用摄像头的熵创建新助记词", + 3336226318: "已用:", + 4003084591: "值 %s 超出范围:[ %s,%s ]", + 989428076: "值必须是 %s 的倍数", + 3429519584: "验证中..", + 1889659487: "版本", + 4191058607: "通过摄像头", + 1254681955: "通过 D20", + 525309547: "通过 D6", + 590330112: "通过手动输入", + 1947603760: "通过单词", + 2504354847: "等待截取", + 2076481321: "钱包", + 2297028319: "钱包描述", + 4232654916: "钱包输出描述符", + 2587172867: "钱包输出描述符加载重复!", + 2499782468: "未找到钱包输出描述符。", + 2671738224: "警告:", + 262410364: "擦除设备", + 3522794335: "擦除设备中..", + 797660533: "词 %d", + 3742424146: "单词序号", + 2965123464: "单词", + 1303016265: "是", + 2171149824: " 非有效地址", + 1875891934: "在前 %d 个地址中未找到", +} From b947b5e09aa078250ede241543a4f062ca2e26ea Mon Sep 17 00:00:00 2001 From: odudex Date: Tue, 17 Sep 2024 13:47:55 -0300 Subject: [PATCH 07/20] i18n: replace tables by 1d arrays/index system --- i18n/i18n.py | 24 +- src/boot.py | 8 + src/krux/krux_settings.py | 18 +- src/krux/translations/__init__.py | 310 +++++++++++++++ src/krux/translations/de_DE.py | 605 +++++++++++++++--------------- src/krux/translations/es_MX.py | 605 +++++++++++++++--------------- src/krux/translations/fr_FR.py | 605 +++++++++++++++--------------- src/krux/translations/ko_KR.py | 605 +++++++++++++++--------------- src/krux/translations/nl_NL.py | 605 +++++++++++++++--------------- src/krux/translations/pt_BR.py | 605 +++++++++++++++--------------- src/krux/translations/ru_RU.py | 605 +++++++++++++++--------------- src/krux/translations/tr_TR.py | 605 +++++++++++++++--------------- src/krux/translations/vi_VN.py | 605 +++++++++++++++--------------- src/krux/translations/zh_CN.py | 605 +++++++++++++++--------------- 14 files changed, 3447 insertions(+), 2963 deletions(-) diff --git a/i18n/i18n.py b/i18n/i18n.py index 24ed79fb..dea98eca 100644 --- a/i18n/i18n.py +++ b/i18n/i18n.py @@ -203,15 +203,18 @@ def bake_translations(): if isfile(join(TRANSLATION_FILES_DIR, f)) ] translation_filenames.sort() + code_slugs = find_translation_slugs() for translation_filename in translation_filenames: with open( join(TRANSLATION_FILES_DIR, translation_filename), "r", encoding="utf8" ) as translation_file: translations = json.load(translation_file) - lookup = {} - for slug, translation in list(translations.items()): - lookup[binascii.crc32(slug.encode("utf-8"))] = translation - + translations_array = [] + for slug in code_slugs: + if slug not in translations: + translations_array.append(slug) + else: + translations_array.append(translations[slug]) language_code = ( basename(translation_filename).split(".")[0].replace("-", "_") ) @@ -225,11 +228,15 @@ def bake_translations(): ) as language_file: language_file.write(KRUX_LICENSE) language_file.write("# pylint: disable=C0301\n") - language_file.write(f"translation_table = ") - language_file.write(repr(lookup)) + language_file.write(f"translation_array = ") + language_file.write(repr(translations_array)) language_file.write("\n") print("Baked: " + translations_dir + f"/{language_code}.py") - # Create a file with a list of all available languages + # Create an reference array for index lookup + reference_array = [] + for slug in code_slugs: + reference_array.append(binascii.crc32(slug.encode("utf-8"))) + # Create a file with a list of all available languages and index lookup array with open(join(translations_dir, "__init__.py"), "w", encoding="utf8") as init_file: init_file.write(KRUX_LICENSE) init_file.write("available_languages = [") @@ -238,6 +245,9 @@ def bake_translations(): ) init_file.write("]") init_file.write("\n") + init_file.write("ref_array = ") + init_file.write(repr(reference_array)) + init_file.write("\n") def create_translation_file(locale): diff --git a/src/boot.py b/src/boot.py index 6109627f..138e7652 100644 --- a/src/boot.py +++ b/src/boot.py @@ -24,6 +24,7 @@ import sys import time import gc +import os sys.path.append("") sys.path.append(".") @@ -44,6 +45,13 @@ def draw_splash(): def check_for_updates(): """Checks SD card, if a valid firmware is found asks if user wants to update the device""" + + # Check if the SD card is inserted and contains a firmware before loading the firmware module + try: + os.stat("/sd/firmware.bin") + except OSError: + return + from krux import firmware if firmware.upgrade(): diff --git a/src/krux/krux_settings.py b/src/krux/krux_settings.py index 7c857cef..5d861641 100644 --- a/src/krux/krux_settings.py +++ b/src/krux/krux_settings.py @@ -59,15 +59,15 @@ def t(slug): if not locale_control.translation: return slug slug_id = binascii.crc32(slug.encode("utf-8")) - if slug_id not in locale_control.translation: - return slug - return locale_control.translation[slug_id] + translation_index = locale_control.reference.index(slug_id) + return locale_control.translation[translation_index] class LocaleControl: """Manages the current locale and available translations""" def __init__(self): + self.reference = None self.translation = None self.locales = [] self.update_locales() @@ -84,15 +84,20 @@ def load_locale(self, locale): """Loads translation based on the given locale""" if locale == DEFAULT_LOCALE: + self.reference = None self.translation = None return - module_path = "krux.translations.{}".format(locale.replace('-', '_')) + module_path = "krux.translations.{}".format(locale.replace("-", "_")) translation_module = __import__(module_path) # Navigate to the nested module (translations.) for part in module_path.split(".")[1:]: translation_module = getattr(translation_module, part) - self.translation = getattr(translation_module, "translation_table") + self.translation = getattr(translation_module, "translation_array") + if self.reference is None: + from .translations import ref_array + + self.reference = ref_array locale_control = LocaleControl() @@ -445,5 +450,6 @@ def label(self, attr): } return main_menu[attr] - + + locale_control.load_locale(Settings().i18n.locale) diff --git a/src/krux/translations/__init__.py b/src/krux/translations/__init__.py index 9eaf47f5..d7ef7a17 100644 --- a/src/krux/translations/__init__.py +++ b/src/krux/translations/__init__.py @@ -31,3 +31,313 @@ "vi-VN", "zh-CN", ] +ref_array = [ + 3634967631, + 3429519584, + 3034883011, + 2542772894, + 1422874211, + 3928301843, + 2256777600, + 2874529150, + 3108881025, + 2786714360, + 1557093280, + 2120776272, + 2281377987, + 1185266064, + 4265479636, + 2415648848, + 1177338798, + 2939797024, + 1845376098, + 289960586, + 3937333362, + 2987800462, + 4228215415, + 710709610, + 972436696, + 763824768, + 4122897393, + 597912140, + 2089395053, + 1406590538, + 784609464, + 104500973, + 124617190, + 4102535566, + 3559456868, + 928727036, + 1180180513, + 382368239, + 2038226551, + 3684696112, + 3748840176, + 640219121, + 1868069640, + 911419226, + 2519455027, + 1123106929, + 2363604010, + 2978718564, + 3278654271, + 2817059741, + 2601598799, + 3312581301, + 1454688268, + 2029624154, + 3656120779, + 3903754133, + 2433276713, + 1272005728, + 1022211991, + 133139382, + 766317539, + 350279787, + 140802882, + 3857613120, + 3242179508, + 2090568351, + 4255182430, + 262248294, + 1260825919, + 3753172956, + 3768416405, + 602716148, + 2365886561, + 167100211, + 1257161524, + 3285413280, + 3954726429, + 2741273573, + 1038288324, + 2470115694, + 712533907, + 2736513298, + 388908871, + 563836138, + 3981762528, + 2808868327, + 3138902155, + 3663022166, + 1963678224, + 1583186953, + 989428076, + 4003084591, + 1948316555, + 1505332462, + 797660533, + 1056821534, + 1936877965, + 237136240, + 3913146360, + 1303016265, + 4063104189, + 3455872521, + 889040671, + 2739590230, + 1310058127, + 690625786, + 2669588306, + 589459321, + 3847882980, + 1198393582, + 3761518438, + 2032416055, + 1898550184, + 3138204438, + 2377955518, + 1092222515, + 2578106186, + 3755547839, + 3345150514, + 879727077, + 3330705289, + 3531742595, + 2940025484, + 3313339187, + 1982637349, + 401829098, + 4038076821, + 4249903283, + 1620572516, + 2917810189, + 2995482424, + 1043817877, + 2820726296, + 73574491, + 473154195, + 725348723, + 1949634023, + 1825881236, + 4191058607, + 590330112, + 1893243331, + 1848310591, + 2046615409, + 2965123464, + 3742424146, + 1947603760, + 525309547, + 1254681955, + 2402455261, + 3348584292, + 2580599003, + 817419367, + 2325721074, + 2369474953, + 3585411775, + 3159494909, + 2751113454, + 3264569915, + 383371114, + 1081425878, + 4093416954, + 4180141032, + 3836852788, + 1821513079, + 2780625730, + 2504034831, + 2691246967, + 1577637745, + 4090266642, + 1100685007, + 3504179008, + 995862913, + 2674953168, + 900375497, + 1889659487, + 1521033296, + 88746165, + 2596531078, + 2019512665, + 678449760, + 1237332019, + 3586624216, + 1662254634, + 4006316572, + 2504354847, + 2736506158, + 2061556020, + 923277590, + 3000888649, + 1996021743, + 3303592908, + 720041451, + 1244124409, + 1746030071, + 2143824150, + 299338213, + 2123991188, + 2880010062, + 2968548114, + 781419966, + 2946146830, + 3739634002, + 1178563089, + 1871146425, + 2258131455, + 2940953674, + 2115024667, + 3442025874, + 3037062877, + 4094072796, + 1712856005, + 1476462492, + 262410364, + 4286144962, + 3976793317, + 3336226318, + 1077771640, + 3838465623, + 3040011773, + 3522794335, + 3895447625, + 3835918229, + 167798282, + 2612594937, + 3513215254, + 1658501467, + 2176866982, + 2817311427, + 3514476519, + 3091105710, + 2700207481, + 699906428, + 3123770978, + 4151330982, + 336702608, + 4170881190, + 3903571079, + 762611188, + 3270727197, + 4282338366, + 746161122, + 1108715658, + 2293863356, + 2879966040, + 1988416729, + 3580020863, + 4232654916, + 2256441194, + 1099786887, + 2499782468, + 669106195, + 928667220, + 4287534872, + 237577215, + 2587172867, + 3561756278, + 4117455079, + 1746677167, + 3126552510, + 2488179069, + 1201104769, + 2697857197, + 1207696150, + 4192663412, + 2585599782, + 3119547911, + 1503087751, + 1187826970, + 2171149824, + 1875891934, + 2732611775, + 1851578965, + 2756316330, + 1711312434, + 2076481321, + 1061961408, + 3439746594, + 534274978, + 1443208255, + 3524220994, + 2297028319, + 2030045667, + 2671738224, + 2344747135, + 3048830188, + 3745269737, + 4006602858, + 3876651191, + 232475068, + 3406791302, + 3672006076, + 2163347007, + 3582575312, + 391304453, + 1703779997, + 3089363813, + 3339507095, + 2362732578, + 3271055013, + 770350922, + 432366011, + 4092516657, + 3639136476, + 500286397, + 3593149291, + 1232757391, + 3549015533, + 1166743226, +] diff --git a/src/krux/translations/de_DE.py b/src/krux/translations/de_DE.py index 16706306..2ea31670 100644 --- a/src/krux/translations/de_DE.py +++ b/src/krux/translations/de_DE.py @@ -20,298 +20,313 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # pylint: disable=C0301 -translation_table = { - 232475068: "% des Betrags.", - 1185266064: "%d von %d Multisig", - 1503087751: "%d bis %d ", - 1178563089: "%s wurde entfernt.", - 1092222515: "(%d insgesamt)", - 3348584292: "(Experimental)", - 1099786887: "(nur zur Betrachtung)", - 2739590230: "12 Wörter", - 1310058127: "24 Wörter", - 1949634023: "Über", - 4287534872: "Annahme akzeptieren?", - 2995482424: "Konto", - 2415648848: "Konto #0 würde angenommen", - 1043817877: "Kontoindex", - 3439746594: "Wallet-Passphrase hinzufügen oder ändern?", - 2143824150: "Zusätzliche Entropie von der Kamera für den AES-CBC-Modus erforderlich", - 3270727197: "Adresse", - 900375497: "Richte Kamera und Sicherungsplatte richtig aus.", - 88746165: "Blendschutz deaktiviert", - 1521033296: "Blendschutz aktiviert", - 3857613120: "Aussehen", - 1056821534: "Bist Du sicher?", - 1868069640: "BGR-Farben", - 3455872521: "Zurück", - 4151330982: "Zurück zum Menü", - 2756316330: "Mnemonik-Backup", - 2256777600: "Ungültige Signatur", - 3937333362: "Baudrate", - 2046615409: "Binäres Gitter", - 928727036: "Randpolsterung", - 2519455027: "Helligkeit", - 2363604010: "Tasten", - 2038226551: "Entprellung der Tasten", - 3138204438: "Aufnahme abgebrochen", - 1207696150: "Change Adresse", - 3126552510: "Change Adressen", - 1583186953: "Thema ändern und neu starten?", - 3768416405: "Change:", - 388908871: "Änderungen bleiben bis zum Herunterfahren bestehen.", - 3442025874: "Prüfe SD-Karte", - 3119547911: "Überprüfen, ob diese Adresse zu dieser Wallet gehört?", - 1187826970: "Überprüfte %d Adresse ohne Übereinstimmungen.", - 2470115694: "Suche nach SD-Karte..", - 1851578965: "Untergeordneter Index", - 4094072796: "Erstelle QR-Code", - 167798282: "QR-Code aus Text erzeugen?", - 678449760: "Erstellt:", - 3513215254: "Benutzerdefinierte QR-Code", - 3585411775: "Anpassen", - 534274978: "Wenn Sie Ihr Wallet anpassen, wird ein neuer Schlüssel generiert.", - 124617190: "Schnitttiefe", - 597912140: "Cut-Methode", - 2504034831: "Dezimal", - 2751113454: "Entschlüsseln?", - 1272005728: "Standard-Wallet", - 4102535566: "Tiefe pro Durchgang", - 1712856005: "Deskriptor-Adressen", - 3278654271: "Bildschirm", - 3895447625: "Schalten Sie das Gerät nicht aus, es kann eine Weile dauern.", - 3836852788: "Fertig?", - 690625786: "Doppelte Gedächtnisstütze", - 382368239: "Driver", - 3582575312: "Verschlüsselt", - 1244124409: "Verschlüsselter QR-Code", - 2968548114: "Verschlüsselte Mnemonic wurde nicht gespeichert", - 781419966: "Speicherung der verschlüsselten Mnemonic mit ID:", - 350279787: "Verschlüsselung", - 2601598799: "Verschlüsselungsmodus", - 1821513079: "Geben Sie %d BIP-39 Wörter ein.", - 3504179008: "Gib jedes Wort Deiner BIP-39 Mnemonic als Zahl von 1 bis 2048 ein.", - 1100685007: "Gib jedes Wort Deiner BIP-39 Mnemonic als Hexadezimalzahl von 1 bis 800 ein.", - 4090266642: "Gib jedes Wort Deiner BIP-39 Mnemonic als Oktalzahl von 1 bis 4000 ein.", - 2780625730: "Gib jedes Wort Deiner BIP-39 Mnemonic ein.", - 889040671: "Fehler:", - 1505332462: "Esc", - 3838465623: "Dateien durchsuchen?", - 4170881190: "Auf SD-Karte exportieren..", - 1711312434: "Öffentlicher Schlüssel", - 3981762528: "Werkeinstellungen", - 383371114: "Entschlüsselung fehlgeschlagen", - 3048830188: "PSBT konnte nicht geladen werden", - 4192663412: "Adresse konnte nicht geladen werden", - 1996021743: "Schlüssel konnte nicht geladen werden", - 1108715658: "Nachricht konnte nicht geladen werden", - 1081425878: "Mnemonic konnte nicht geladen werden", - 928667220: "Ausgabedeskriptor konnte nicht geladen werden", - 1620572516: "Passphrase konnte nicht geladen werden", - 2946146830: "Mnemonic konnte nicht gespeichert werden", - 262248294: "Gebühr:", - 104500973: "Vorschubgeschwindigkeit", - 3313339187: "Dateiname", - 1982637349: "Dateiname %s existiert auf SD-Karte, überschreiben?", - 4006602858: "Fingerabdruck in PSBT deaktiviert", - 2542772894: "Die Firmware übersteigt die maximale Größe: %d", - 3748840176: "Umgedrehte X-Koordinaten", - 1406590538: "Flötendurchmesser", - 1077771640: "Frei:", - 1893243331: "Vom Speicher", - 1871146425: "Löschen Sie Ihre SD-Karte vollständig in einem anderen Gerät, um sicherzustellen, dass die Daten nicht wiederhergestellt werden können", - 3549015533: "Mnemonik erzeugen", - 3524220994: "BIP85-Untermnemonik generieren?", - 299338213: "Dieser Mnemonic eine benutzerdefinierte ID zuteilen? Andernfalls wird der aktuelle Fingerabdruck verwendet", - 602716148: "Go", - 1198393582: "Gute Entropie", - 133139382: "Hardware", - 3580020863: "Hex öffentlicher Schlüssel", - 2691246967: "Hexadezimal", - 3903754133: "Mnemonics ausblenden", - 3876651191: "Hohe Gebühren!", - 2880010062: "ID existiert bereits", - 3242179508: "Input (%d):", - 3034883011: "Installieren?", - 3755547839: "Unzureichende Entropie!", - 2032416055: "Unzureichende Entropie", - 2585599782: "Ungültige Adresse", - 2874529150: "Ungültiger Bootloader", - 4093416954: "Ungültige mnemonische Lange", - 1422874211: "Ungültiger öffentlicher Schlüssel", - 237577215: "Ungültige Wallet:", - 4122897393: "Umkehren", - 640219121: "Invertierte Farben", - 3000888649: "Schlüssel", - 3264569915: "Schlüssel wurde nicht zur Verfügung gestellt", - 3835918229: "Krux Drucker Test-QR", - 911419226: "LCD-Typ", - 766317539: "Sprache", - 4180141032: "Lassen Sie das Feld leer, wenn Sie möchten, dass Krux ein gültiges letztes Wort auswählt", - 3663022166: "Links", - 972436696: "Leitungsverzögerung", - 2176866982: "Linie:", - 2820726296: "Mnemonic laden", - 2369474953: "Wallet laden", - 2256441194: "Einen vertrauenswürdigen Wallet-Deskriptor laden, um Adressen anzuzeigen?", - 237136240: "Von SD-Karte laden", - 879727077: "Von SD-Karte laden?", - 1936877965: "Von der Kamera laden", - 669106195: "Eine laden?", - 3330705289: "Laden?", - 2596531078: "Lade Kamera..", - 2488179069: "Lade Change Adressen..", - 336702608: "Drucker wird geladen..", - 1201104769: "Lade Empfangsadressen..", - 3159494909: "Wird geladen..", - 1177338798: "Spracheinstellung", - 2817059741: "Speicherort", - 2917810189: "Maximale Länge überschritten (%s)", - 2030045667: "Nachricht", - 762611188: "Nachricht:", - 3928301843: "Fehlende Signaturdatei", - 1948316555: "Mnemonic", - 2123991188: "Mnemonische ID", - 1443208255: "Mnemotechnik und Passphrase werden beibehalten.", - 1746030071: "Mnemonic wurde nicht verschlüsselt", - 1237332019: "Geändert:", - 1845376098: "Multisig", - 4265479636: "Native Segwit - 84 würde angenommen", - 2939797024: "Netzwerk", - 73574491: "Neue Mnemonic", - 3634967631: "Neue Firmware erkannt.", - 4063104189: "Nein", - 2325721074: "Keine Passphrase", - 4092516657: "Nicht genug Würfe!", - 3089363813: "Zahlen", - 1577637745: "Oktal", - 391304453: "Andere Formate", - 3312581301: "PBKDF2-Iter.", - 995862913: "Male gestanzte Punkte schwarz an, damit sie erkannt werden können.", - 2987800462: "Papierbreite", - 3913146360: "Teil", - 3559456868: "Teilegröße", - 4249903283: "Passphrase", - 3745269737: "Pfad stimmt nicht überein", - 500286397: "Muster erkannt!", - 3040011773: "Alle gespeicherten verschlüsselten Mnemoniken und Einstellungen dauerhaft vom Flash-Speicher entfernen?", - 140802882: "Speicher", - 2578106186: "Pixelabweichungsindex:", - 1703779997: "Klartext-QR", - 3561756278: "Bitte lade einen Wallet Ausgabedeskriptor", - 784609464: "Tauchrate", - 3761518438: "Schlechte Entropie", - 3639136476: "Schlechte Entropie erkannt!", - 3037062877: "Drucke Test-QR", - 2362732578: "Tiny Seed drucken?", - 3123770978: "Als QR-Code drucken", - 3345150514: "Als QR-Code drucken?", - 3339507095: "Drucken?", - 1123106929: "Drucker", - 3903571079: "Druckertreiber nicht gesetzt!", - 3586624216: "Wird gedruckt..", - 3593149291: "Trotzdem fortfahren?", - 2580599003: "Weiter?", - 3108881025: "Wird bearbeitet..", - 1848310591: "QR-Code", - 710709610: "RX Pin", - 2697857197: "Empfangen", - 1746677167: "Empfangsadresse", - 1658501467: "Region:", - 3739634002: "Löschen %s?", - 1476462492: "Mnemonic löschen", - 1557093280: "Firmware-Dateien von der SD-Karte entfernen?", - 2817311427: "Res. - Format", - 2365886561: "Werkseinstellungen wiederherstellen und neu starten?", - 3091105710: "Zurück zum QR-Viewer", - 1662254634: "Überprüfe gescannte Daten und bearbeite sie bei Bedarf", - 1963678224: "Rechts", - 770350922: "Würfel mindestens %d Mal, um eine Mnemonic zu erzeugen.", - 3271055013: "Rollenverteilung:", - 432366011: "Würfe:", - 3976793317: "SD-Karte", - 2736513298: "SD-Karte nicht erkannt.", - 1166743226: "SHA256 der Würfe:", - 817419367: "SHA256 des Snapshots:", - 699906428: "QR-Bild auf SD-Karte speichern", - 2163347007: "Auf SD-Karte speichern?", - 3531742595: "Auf SD-Karte speichern?", - 2940025484: "Auf SD-Karte gespeichert", - 763824768: "Skala", - 4117455079: "Adresse\nscannen", - 4038076821: "Scan BIP39 Passphrase", - 923277590: "Schlüssel QR-Code Scannen", - 4006316572: "Wörter 1-12 erneut scannen", - 2736506158: "Wörter 13-24 scannen", - 2029624154: "Bildschirmschonerzeit", - 289960586: "Script-Art", - 1022211991: "Sicherheit", - 4255182430: "Selbstübertragung oder Change (%d):", - 3753172956: "Selbstübertragung:", - 473154195: "Einstellungen", - 563836138: "Die Einstellungen werden intern auf Flash gespeichert.", - 712533907: "Einstellungen auf SD-Karte gespeichert.", - 2377955518: "Shannons Entropie:", - 1825881236: "Ausschalten", - 3656120779: "Abschaltzeit:", - 2120776272: "Herunterfahren..", - 1061961408: "Signieren", - 2293863356: "Am QR-Code unterschreiben", - 2879966040: "Auf SD-Karte signieren", - 4282338366: "Signieren?", - 746161122: "Signatur", - 1988416729: "Signierte Nachricht", - 3672006076: "Signierte PSBT", - 3406791302: "Unterschreiben..", - 2281377987: "Single-Sig", - 2019512665: "Größe:", - 2344747135: "Einige Schecks können nicht durchgeführt werden.", - 2090568351: "Ausgabe (%d):", - 1260825919: "Ausgaben:", - 1232757391: "Statistiken für Nerds", - 3303592908: "Auf Flash speichern", - 720041451: "Auf der SD-Karte speichern", - 3514476519: "Wischen um den Modus zu ändern", - 1898550184: "TOUCH oder ENTER zum Erfassen", - 4228215415: "TX Pin", - 2612594937: "Text", - 1454688268: "Thema", - 1180180513: "Thermisch", - 2258131455: "Um sicherzustellen, dass die Daten nicht wiederhergestellt werden können, verwenden Sie die Funktion 'Gerät löschen'", - 2700207481: "Helligkeit umschalten", - 725348723: "Werkzeuge", - 3684696112: "Berühre Schwellenwert", - 2978718564: "Touchscreen", - 2732611775: "Weiter versuchen?", - 401829098: "BIP39 Passphrase eingeben", - 2061556020: "Schlüssel eingeben", - 2089395053: "Einheit", - 2786714360: "Upgrade abgeschlossen.", - 2674953168: "Verwende eine schwarze Hintergrundfläche.", - 2402455261: "Verwende die Entropie der Kamera, um eine neue Mnemonic zu erstellen", - 3336226318: "Belegt:", - 4003084591: "Wert %S außerhalb des Bereichs: [ %s, %s]", - 989428076: "Der Wert muss ein Vielfaches von %s sein", - 3429519584: "Überprüfung..", - 1889659487: "Version", - 4191058607: "Via Kamera", - 1254681955: "Via D20", - 525309547: "Via D6", - 590330112: "Via manueller Eingabe", - 1947603760: "Via Wörter", - 2504354847: "Warte auf die Erfassung", - 2076481321: "Wallet", - 2297028319: "Wallet-Deskriptor", - 4232654916: "Wallet Ausgabedeskriptor", - 2587172867: "Wallet Ausgabedeskriptor geladen!", - 2499782468: "Wallet Ausgabedeskriptor nicht gefunden.", - 2671738224: "Warnung:", - 262410364: "Gerät löschen", - 3522794335: "Gerät wird gewischt..", - 797660533: "Wort %d", - 3742424146: "Wortnummern", - 2965123464: "Wörter", - 1303016265: "Ja", - 2171149824: "ist eine gültige Adresse!", - 1875891934: "wurde in den ersten %d Adressen nicht gefunden", -} +translation_array = [ + "Neue Firmware erkannt.", + "Überprüfung..", + "Installieren?", + "Die Firmware übersteigt die maximale Größe: %d", + "Ungültiger öffentlicher Schlüssel", + "Fehlende Signaturdatei", + "Ungültige Signatur", + "Ungültiger Bootloader", + "Wird bearbeitet..", + "Upgrade abgeschlossen.", + "Firmware-Dateien von der SD-Karte entfernen?", + "Herunterfahren..", + "Single-Sig", + "%d von %d Multisig", + "Native Segwit - 84 würde angenommen", + "Konto #0 würde angenommen", + "Spracheinstellung", + "Netzwerk", + "Multisig", + "Script-Art", + "Baudrate", + "Papierbreite", + "TX Pin", + "RX Pin", + "Leitungsverzögerung", + "Skala", + "Umkehren", + "Cut-Methode", + "Einheit", + "Flötendurchmesser", + "Tauchrate", + "Vorschubgeschwindigkeit", + "Schnitttiefe", + "Tiefe pro Durchgang", + "Teilegröße", + "Randpolsterung", + "Thermisch", + "Driver", + "Entprellung der Tasten", + "Berühre Schwellenwert", + "Umgedrehte X-Koordinaten", + "Invertierte Farben", + "BGR-Farben", + "LCD-Typ", + "Helligkeit", + "Drucker", + "Tasten", + "Touchscreen", + "Bildschirm", + "Speicherort", + "Verschlüsselungsmodus", + "PBKDF2-Iter.", + "Thema", + "Bildschirmschonerzeit", + "Abschaltzeit:", + "Mnemonics ausblenden", + "Hash Flash at Boot", + "Standard-Wallet", + "Sicherheit", + "Hardware", + "Sprache", + "Verschlüsselung", + "Speicher", + "Aussehen", + "Input (%d):", + "Ausgabe (%d):", + "Selbstübertragung oder Change (%d):", + "Gebühr:", + "Ausgaben:", + "Selbstübertragung:", + "Change:", + "Go", + "Werkseinstellungen wiederherstellen und neu starten?", + "PIN disabled", + "Enter a 6+ characters PIN", + "Confirm PIN", + "PINs do not match", + "PIN set successfully", + "Error saving PIN", + "Suche nach SD-Karte..", + "Einstellungen auf SD-Karte gespeichert.", + "SD-Karte nicht erkannt.", + "Änderungen bleiben bis zum Herunterfahren bestehen.", + "Die Einstellungen werden intern auf Flash gespeichert.", + "Werkeinstellungen", + "Set PIN", + "Disable PIN", + "Links", + "Rechts", + "Thema ändern und neu starten?", + "Der Wert muss ein Vielfaches von %s sein", + "Wert %S außerhalb des Bereichs: [ %s, %s]", + "Mnemonic", + "Esc", + "Wort %d", + "Bist Du sicher?", + "Von der Kamera laden", + "Von SD-Karte laden", + "Teil", + "Ja", + "Nein", + "Zurück", + "Fehler:", + "12 Wörter", + "24 Wörter", + "Doppelte Gedächtnisstütze", + "Current PIN", + "PIN", + "Invalid PIN", + "Gute Entropie", + "Schlechte Entropie", + "Unzureichende Entropie", + "TOUCH oder ENTER zum Erfassen", + "Aufnahme abgebrochen", + "Shannons Entropie:", + "(%d insgesamt)", + "Pixelabweichungsindex:", + "Unzureichende Entropie!", + "Als QR-Code drucken?", + "Von SD-Karte laden?", + "Laden?", + "Auf SD-Karte speichern?", + "Auf SD-Karte gespeichert", + "Dateiname", + "Dateiname %s existiert auf SD-Karte, überschreiben?", + "BIP39 Passphrase eingeben", + "Scan BIP39 Passphrase", + "Passphrase", + "Passphrase konnte nicht geladen werden", + "Maximale Länge überschritten (%s)", + "Konto", + "Kontoindex", + "Mnemonic laden", + "Neue Mnemonic", + "Einstellungen", + "Werkzeuge", + "Über", + "Ausschalten", + "Via Kamera", + "Via manueller Eingabe", + "Vom Speicher", + "QR-Code", + "Binäres Gitter", + "Wörter", + "Wortnummern", + "Via Wörter", + "Via D6", + "Via D20", + "Verwende die Entropie der Kamera, um eine neue Mnemonic zu erstellen", + "(Experimental)", + "Weiter?", + "SHA256 des Snapshots:", + "Keine Passphrase", + "Wallet laden", + "Anpassen", + "Wird geladen..", + "Entschlüsseln?", + "Schlüssel wurde nicht zur Verfügung gestellt", + "Entschlüsselung fehlgeschlagen", + "Mnemonic konnte nicht geladen werden", + "Ungültige mnemonische Lange", + "Lassen Sie das Feld leer, wenn Sie möchten, dass Krux ein gültiges letztes Wort auswählt", + "Fertig?", + "Geben Sie %d BIP-39 Wörter ein.", + "Gib jedes Wort Deiner BIP-39 Mnemonic ein.", + "Dezimal", + "Hexadezimal", + "Oktal", + "Gib jedes Wort Deiner BIP-39 Mnemonic als Oktalzahl von 1 bis 4000 ein.", + "Gib jedes Wort Deiner BIP-39 Mnemonic als Hexadezimalzahl von 1 bis 800 ein.", + "Gib jedes Wort Deiner BIP-39 Mnemonic als Zahl von 1 bis 2048 ein.", + "Male gestanzte Punkte schwarz an, damit sie erkannt werden können.", + "Verwende eine schwarze Hintergrundfläche.", + "Richte Kamera und Sicherungsplatte richtig aus.", + "Version", + "Blendschutz aktiviert", + "Blendschutz deaktiviert", + "Lade Kamera..", + "Größe:", + "Erstellt:", + "Geändert:", + "Wird gedruckt..", + "Überprüfe gescannte Daten und bearbeite sie bei Bedarf", + "Wörter 1-12 erneut scannen", + "Warte auf die Erfassung", + "Wörter 13-24 scannen", + "Schlüssel eingeben", + "Schlüssel QR-Code Scannen", + "Schlüssel", + "Schlüssel konnte nicht geladen werden", + "Auf Flash speichern", + "Auf der SD-Karte speichern", + "Verschlüsselter QR-Code", + "Mnemonic wurde nicht verschlüsselt", + "Zusätzliche Entropie von der Kamera für den AES-CBC-Modus erforderlich", + "Dieser Mnemonic eine benutzerdefinierte ID zuteilen? Andernfalls wird der aktuelle Fingerabdruck verwendet", + "Mnemonische ID", + "ID existiert bereits", + "Verschlüsselte Mnemonic wurde nicht gespeichert", + "Speicherung der verschlüsselten Mnemonic mit ID:", + "Mnemonic konnte nicht gespeichert werden", + "Löschen %s?", + "%s wurde entfernt.", + "Löschen Sie Ihre SD-Karte vollständig in einem anderen Gerät, um sicherzustellen, dass die Daten nicht wiederhergestellt werden können", + "Um sicherzustellen, dass die Daten nicht wiederhergestellt werden können, verwenden Sie die Funktion 'Gerät löschen'", + "Generating Flash Hash..", + "Flash Hash", + "Prüfe SD-Karte", + "Drucke Test-QR", + "Erstelle QR-Code", + "Deskriptor-Adressen", + "Mnemonic löschen", + "Gerät löschen", + "Set a PIN first", + "SD-Karte", + "Belegt:", + "Frei:", + "Dateien durchsuchen?", + "Alle gespeicherten verschlüsselten Mnemoniken und Einstellungen dauerhaft vom Flash-Speicher entfernen?", + "Gerät wird gewischt..", + "Schalten Sie das Gerät nicht aus, es kann eine Weile dauern.", + "Krux Drucker Test-QR", + "QR-Code aus Text erzeugen?", + "Text", + "Benutzerdefinierte QR-Code", + "Region:", + "Linie:", + "Res. - Format", + "Wischen um den Modus zu ändern", + "Zurück zum QR-Viewer", + "Helligkeit umschalten", + "QR-Bild auf SD-Karte speichern", + "Als QR-Code drucken", + "Zurück zum Menü", + "Drucker wird geladen..", + "Auf SD-Karte exportieren..", + "Druckertreiber nicht gesetzt!", + "Nachricht:", + "Adresse", + "Signieren?", + "Signatur", + "Nachricht konnte nicht geladen werden", + "Am QR-Code unterschreiben", + "Auf SD-Karte signieren", + "Signierte Nachricht", + "Hex öffentlicher Schlüssel", + "Wallet Ausgabedeskriptor", + "Einen vertrauenswürdigen Wallet-Deskriptor laden, um Adressen anzuzeigen?", + "(nur zur Betrachtung)", + "Wallet Ausgabedeskriptor nicht gefunden.", + "Eine laden?", + "Ausgabedeskriptor konnte nicht geladen werden", + "Annahme akzeptieren?", + "Ungültige Wallet:", + "Wallet Ausgabedeskriptor geladen!", + "Bitte lade einen Wallet Ausgabedeskriptor", + "Adresse\nscannen", + "Empfangsadresse", + "Change Adressen", + "Lade Change Adressen..", + "Lade Empfangsadressen..", + "Empfangen", + "Change Adresse", + "Adresse konnte nicht geladen werden", + "Ungültige Adresse", + "Überprüfen, ob diese Adresse zu dieser Wallet gehört?", + "%d bis %d ", + "Überprüfte %d Adresse ohne Übereinstimmungen.", + "ist eine gültige Adresse!", + "wurde in den ersten %d Adressen nicht gefunden", + "Weiter versuchen?", + "Untergeordneter Index", + "Mnemonik-Backup", + "Öffentlicher Schlüssel", + "Wallet", + "Signieren", + "Wallet-Passphrase hinzufügen oder ändern?", + "Wenn Sie Ihr Wallet anpassen, wird ein neuer Schlüssel generiert.", + "Mnemotechnik und Passphrase werden beibehalten.", + "BIP85-Untermnemonik generieren?", + "Wallet-Deskriptor", + "Nachricht", + "Warnung:", + "Einige Schecks können nicht durchgeführt werden.", + "PSBT konnte nicht geladen werden", + "Pfad stimmt nicht überein", + "Fingerabdruck in PSBT deaktiviert", + "Hohe Gebühren!", + "% des Betrags.", + "Unterschreiben..", + "Signierte PSBT", + "Auf SD-Karte speichern?", + "Verschlüsselt", + "Andere Formate", + "Klartext-QR", + "Zahlen", + "Drucken?", + "Tiny Seed drucken?", + "Rollenverteilung:", + "Würfel mindestens %d Mal, um eine Mnemonic zu erzeugen.", + "Würfe:", + "Nicht genug Würfe!", + "Schlechte Entropie erkannt!", + "Muster erkannt!", + "Trotzdem fortfahren?", + "Statistiken für Nerds", + "Mnemonik erzeugen", + "SHA256 der Würfe:", +] diff --git a/src/krux/translations/es_MX.py b/src/krux/translations/es_MX.py index dc74fb50..55bad8e5 100644 --- a/src/krux/translations/es_MX.py +++ b/src/krux/translations/es_MX.py @@ -20,298 +20,313 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # pylint: disable=C0301 -translation_table = { - 232475068: "% del monto.", - 1185266064: "%d de %d multisig", - 1503087751: "%d a %d", - 1178563089: "%s eliminado.", - 1092222515: "(%d total)", - 3348584292: "(Experimental)", - 1099786887: "(Solo para observación)", - 2739590230: "12 palabras", - 1310058127: "24 palabras", - 1949634023: "Nosotros", - 4287534872: "¿Aceptar la suposición?", - 2995482424: "Cuenta", - 2415648848: "Se supondría que la cuenta #0", - 1043817877: "Índice de la cuenta", - 3439746594: "¿Añadir o cambiar passphrase de la cartera?", - 2143824150: "Se requiere entropía adicional de la cámara para el modo AES-CBC", - 3270727197: "Dirección", - 900375497: "Alinea la cámara y la placa de respaldo correctamente.", - 88746165: "Anti-reflejo desactivado", - 1521033296: "Anti-reflejo habilitado", - 3857613120: "Apariencia", - 1056821534: "¿Estás seguro?", - 1868069640: "Colores BGR", - 3455872521: "Atrás", - 4151330982: "Volver al Menú", - 2756316330: "Backup del Mnemónico", - 2256777600: "Firma incorrecta", - 3937333362: "Baudrate", - 2046615409: "Cuadrícula binaria", - 928727036: "Grosor del Borde", - 2519455027: "Brillo", - 2363604010: "Botones", - 2038226551: "Rebote de Botones", - 3138204438: "Captura cancelada", - 1207696150: "Cambio", - 3126552510: "Direcciones de Cambio", - 1583186953: "¿Cambiar de tema y reiniciar?", - 3768416405: "Cambio:", - 388908871: "Los cambios durarán hasta que el dispositivo se apague.", - 3442025874: "Verifica Tarjeta SD", - 3119547911: "¿Verificar que la dirección pertenece a esta cartera?", - 1187826970: "Comprobado %d direcciones sin coincidencias.", - 2470115694: "Comprobación de la tarjeta SD..", - 1851578965: "Índice Derivado", - 4094072796: "Crear Código QR", - 167798282: "¿Crear código QR desde texto?", - 678449760: "Creado:", - 3513215254: "Código QR Personalizado", - 3585411775: "Personalizar", - 534274978: "Personalizar tu cartera generará una nueva clave", - 124617190: "Profundidad de Corte", - 597912140: "Método de Corte", - 2504034831: "Decimal", - 2751113454: "¿Descifrar?", - 1272005728: "Cartera Predeterminada", - 4102535566: "Profundidad por Pasada", - 1712856005: "Direcciones del descriptor", - 3278654271: "Pantalla", - 3895447625: "No apagues el dispositivo, puede tardar un tiempo en completarse.", - 3836852788: "¿Listo?", - 690625786: "Doble mnemónico", - 382368239: "Operador", - 3582575312: "Cifrado", - 1244124409: "Código QR Cifrado", - 2968548114: "Mnemónico cifrado no se almacenó", - 781419966: "Mnemónico cifrado fue almacenado con ID:", - 350279787: "Cifrado", - 2601598799: "Modo de Cifrado", - 1821513079: "Ingrese %d palabras BIP-39.", - 3504179008: "Ingresa cada palabra de tu mnemónico BIP-39 como un número del 1 al 2048.", - 1100685007: "Ingresa cada palabra de tu mnemónico BIP-39 como un número en hexadecimal del 1 al 800.", - 4090266642: "Ingresa cada palabra de tu mnemónico BIP-39 como un número en octal del 1 al 4000.", - 2780625730: "Ingresa cada palabra de tu mnemónico BIP-39.", - 889040671: "Error:", - 1505332462: "Esc", - 3838465623: "¿Explorar archivos?", - 4170881190: "Exportando a la tarjeta SD..", - 1711312434: "Clave Pública Extendida", - 3981762528: "Ajustes de Fábrica", - 383371114: "Error al descifrar", - 3048830188: "No se pudo cargar la PSBT", - 4192663412: "No se pudo cargar la dirección", - 1996021743: "No se pudo cargar la clave", - 1108715658: "No se pudo cargar el mensaje", - 1081425878: "No se pudo importar el mnemónico", - 928667220: "No se pudo cargar el descriptor de salida", - 1620572516: "No se pudo cargar el passphrase", - 2946146830: "No pudo almacenar mnemónico", - 262248294: "Comisión:", - 104500973: "Feed Rate", - 3313339187: "Nombre del Archivo", - 1982637349: "El nombre de archivo %s existe en la tarjeta SD, ¿sobrescribir?", - 4006602858: "Huella dactilar no establecida en PSBT", - 2542772894: "El firmware supera el tamaño máximo: %d", - 3748840176: "Coordenadas X Invertidas", - 1406590538: "Diámetro de la Flauta", - 1077771640: "Libre:", - 1893243331: "Desde el Almacenamiento", - 1871146425: "Borra completamente su tarjeta SD en otro dispositivo para asegurarse de que los datos sean irrecuperables", - 3549015533: "Generar Mnemónico", - 3524220994: "¿Generar un mnemónico derivado BIP85?", - 299338213: "¿Darle a este mnemónico una identificación personalizada? De lo contrario se utilizará el fingerprint actual", - 602716148: "Ir", - 1198393582: "Buena entropía", - 133139382: "Hardware", - 3580020863: "Clave Pública Hexadecimal", - 2691246967: "Hexadecimal", - 3903754133: "Ocultar Mnemónicos", - 3876651191: "¡Tarifas altas!", - 2880010062: "ID ya existe", - 3242179508: "Entradas (%d):", - 3034883011: "¿Instalar?", - 3755547839: "¡Entropía Insuficiente!", - 2032416055: "Entropía insuficiente", - 2585599782: "Dirección inválida", - 2874529150: "Bootloader inválido", - 4093416954: "Longitud mnemónica no válida", - 1422874211: "Clave pública inválida", - 237577215: "Cartera inválida:", - 4122897393: "Invertir", - 640219121: "Colores Invertidos", - 3000888649: "Clave", - 3264569915: "No se proporcionó la clave", - 3835918229: "Test de impresión QR", - 911419226: "Tipo de LCD", - 766317539: "Idioma", - 4180141032: "Déjalo en blanco si quieres que Krux elija una última palabra válida", - 3663022166: "Izquierda", - 972436696: "Retraso de Línea", - 2176866982: "Línea:", - 2820726296: "Importar Mnemónico", - 2369474953: "Cargar Cartera", - 2256441194: "¿Cargar un descriptor de monedero de confianza para ver las direcciones?", - 237136240: "Cargar desde tarjeta SD", - 879727077: "¿Cargar desde la tarjeta SD?", - 1936877965: "Cargar desde la cámara", - 669106195: "¿Cargar algo?", - 3330705289: "¿Cargar?", - 2596531078: "Cargando Camara..", - 2488179069: "Cargando direcciones de cambio..", - 336702608: "Cargando impresora..", - 1201104769: "Cargando direcciones de recepción..", - 3159494909: "Cargando..", - 1177338798: "Idioma", - 2817059741: "Ubicación", - 2917810189: "Longitud máxima excedida (%s)", - 2030045667: "Mensaje", - 762611188: "Mensaje:", - 3928301843: "Falta archivo de firma", - 1948316555: "Mnemónico", - 2123991188: "Identificación del Mnemónico", - 1443208255: "Mnemónico y passphrase se mantendrán.", - 1746030071: "Mnemónico no fue descifrado", - 1237332019: "Modificado:", - 1845376098: "Multisig", - 4265479636: "Segwit nativo - 84 se supondría", - 2939797024: "Red", - 73574491: "Nuevo Mnemónico", - 3634967631: "Nuevo firmware detectado.", - 4063104189: "No", - 2325721074: "Sin Passphrase", - 4092516657: "¡No hay suficientes tiradas!", - 3089363813: "Números", - 1577637745: "Octales", - 391304453: "Otros Formatos", - 3312581301: "Iter. PBKDF2", - 995862913: "Pinte los puntos perforados de negro para que puedan ser detectados.", - 2987800462: "Ancho del Papel", - 3913146360: "Parte", - 3559456868: "Tamaño de la Pieza", - 4249903283: "Passphrase", - 3745269737: "La ruta no coincide", - 500286397: "¡Patrón detectado!", - 3040011773: "¿Eliminar permanentemente todos los mnemónicos y configuraciones cifradas almacenadas del flash?", - 140802882: "Guardar", - 2578106186: "Índice de desviación de píxeles:", - 1703779997: "QR de Texto", - 3561756278: "Carga un descriptor de cartera", - 784609464: "Tasa de Caída", - 3761518438: "Baja entropía", - 3639136476: "Mala entropía detectada!", - 3037062877: "Prueba de Impresión QR", - 2362732578: "¿Imprimir Tiny Seed?", - 3123770978: "Imprimir como Código QR", - 3345150514: "¿Imprimir con Codigo QR?", - 3339507095: "¿Impresión?", - 1123106929: "Impresora", - 3903571079: "¡El controlador de impresora no está configurado!", - 3586624216: "Imprimiendo..", - 3593149291: "¿Proceder de todas maneras?", - 2580599003: "¿Continuar?", - 3108881025: "Procesando..", - 1848310591: "Código QR", - 710709610: "RX Pin", - 2697857197: "Recepción", - 1746677167: "Direcciones de Recepción", - 1658501467: "Región:", - 3739634002: "Eliminar %s?", - 1476462492: "Eliminar Mnemónico", - 1557093280: "¿Eliminar archivos de firmware de la tarjeta SD?", - 2817311427: "Res. - Formato", - 2365886561: "¿Restablecer a la configuración de fábrica y reiniciar?", - 3091105710: "Volver al QR", - 1662254634: "Revisa los datos escaneados, edítalos si es necesario", - 1963678224: "Derecha", - 770350922: "Tira el dado al menos %d veces para generar un mnemónico.", - 3271055013: "Distribución de tiradas:", - 432366011: "Tiradas:", - 3976793317: "Tarjeta SD", - 2736513298: "Tarjeta SD no detectada.", - 1166743226: "SHA256 de las tiradas:", - 817419367: "SHA256 de la instantánea:", - 699906428: "Guardar Imagen QR en la Tarjeta SD", - 2163347007: "Guardar en tarjeta SD", - 3531742595: "¿Guardar en la tarjeta SD?", - 2940025484: "Guardado en la tarjeta SD", - 763824768: "Escala", - 4117455079: "Escanear Dirección", - 4038076821: "Escanear Passphrase BIP39", - 923277590: "Escanear el Código QR", - 4006316572: "Escaneo de palabras 1-12 de nuevo", - 2736506158: "Escaneo de palabras 13-24", - 2029624154: "Tiempo de Espera del Protector de Pantalla", - 289960586: "Tipo de Script", - 1022211991: "Seguridad", - 4255182430: "Autotransferencia o Cambio (%d):", - 3753172956: "Autotransferencia:", - 473154195: "Ajustes", - 563836138: "Ajustes almacenados internamente en flash.", - 712533907: "Configuración almacenada en la tarjeta SD.", - 2377955518: "Entropía de Shannon:", - 1825881236: "Apagar", - 3656120779: "Tiempo de Apagado", - 2120776272: "Apagando..", - 1061961408: "Firmar", - 2293863356: "Firmar en Código QR", - 2879966040: "Firmar en la Tarjeta SD", - 4282338366: "¿Firmar?", - 746161122: "Firma", - 1988416729: "Mensaje Firmado", - 3672006076: "PSBT Firmado", - 3406791302: "Firmando..", - 2281377987: "Single-sig", - 2019512665: "Tamaño:", - 2344747135: "Algunas comprobaciones no se pueden realizar.", - 2090568351: "Gastos (%d):", - 1260825919: "Gasto:", - 1232757391: "Estadísticas para Entendidos", - 3303592908: "Almacenar en Flash", - 720041451: "Almacenar en la Tarjeta SD", - 3514476519: "Deslizar para cambiar de modo", - 1898550184: "TOCA o ENTER para capturar", - 4228215415: "TX Pin", - 2612594937: "Texto", - 1454688268: "Tema", - 1180180513: "Térmico", - 2258131455: "Para garantizar que los datos no se puedan recuperar, utiliza la función de borrar dispositivo", - 2700207481: "Alternar Brillo", - 725348723: "Herramientas", - 3684696112: "Umbral Táctil", - 2978718564: "Pantalla Táctil", - 2732611775: "¿Intentar con mas?", - 401829098: "Escribe la Passphrase BIP39", - 2061556020: "Introduce la clave", - 2089395053: "Unidad", - 2786714360: "Actualización completa.", - 2674953168: "Usa una superficie de fondo negra.", - 2402455261: "Usa la entropía de la cámara para crear una nueva mnemónica", - 3336226318: "Usado:", - 4003084591: "Valor %s fuera del rango: [ %s, %s]", - 989428076: "El valor debe ser múltiple de %s", - 3429519584: "Verificando..", - 1889659487: "Versión", - 4191058607: "Desde Cámara", - 1254681955: "Vía D20", - 525309547: "Vía D6", - 590330112: "Introducción Manual", - 1947603760: "A Través de Palabras", - 2504354847: "Espera la captura", - 2076481321: "Cartera", - 2297028319: "Descriptor de Cartera", - 4232654916: "Descriptor de salida de cartera", - 2587172867: "¡Se ha cargado el descriptor de salida de la cartera!", - 2499782468: "No se encontró el descriptor de salida de la cartera.", - 2671738224: "Advertencia:", - 262410364: "Borrar Dispositivo", - 3522794335: "Borrando dispositivo..", - 797660533: "Palabra %d", - 3742424146: "Números de Palabra", - 2965123464: "Palabras", - 1303016265: "Sí", - 2171149824: "es una dirección válida!", - 1875891934: "NO FUE ENCONTRADO en las primeras %d direcciones", -} +translation_array = [ + "Nuevo firmware detectado.", + "Verificando..", + "¿Instalar?", + "El firmware supera el tamaño máximo: %d", + "Clave pública inválida", + "Falta archivo de firma", + "Firma incorrecta", + "Bootloader inválido", + "Procesando..", + "Actualización completa.", + "¿Eliminar archivos de firmware de la tarjeta SD?", + "Apagando..", + "Single-sig", + "%d de %d multisig", + "Segwit nativo - 84 se supondría", + "Se supondría que la cuenta #0", + "Idioma", + "Red", + "Multisig", + "Tipo de Script", + "Baudrate", + "Ancho del Papel", + "TX Pin", + "RX Pin", + "Retraso de Línea", + "Escala", + "Invertir", + "Método de Corte", + "Unidad", + "Diámetro de la Flauta", + "Tasa de Caída", + "Feed Rate", + "Profundidad de Corte", + "Profundidad por Pasada", + "Tamaño de la Pieza", + "Grosor del Borde", + "Térmico", + "Operador", + "Rebote de Botones", + "Umbral Táctil", + "Coordenadas X Invertidas", + "Colores Invertidos", + "Colores BGR", + "Tipo de LCD", + "Brillo", + "Impresora", + "Botones", + "Pantalla Táctil", + "Pantalla", + "Ubicación", + "Modo de Cifrado", + "Iter. PBKDF2", + "Tema", + "Tiempo de Espera del Protector de Pantalla", + "Tiempo de Apagado", + "Ocultar Mnemónicos", + "Hash Flash at Boot", + "Cartera Predeterminada", + "Seguridad", + "Hardware", + "Idioma", + "Cifrado", + "Guardar", + "Apariencia", + "Entradas (%d):", + "Gastos (%d):", + "Autotransferencia o Cambio (%d):", + "Comisión:", + "Gasto:", + "Autotransferencia:", + "Cambio:", + "Ir", + "¿Restablecer a la configuración de fábrica y reiniciar?", + "PIN disabled", + "Enter a 6+ characters PIN", + "Confirm PIN", + "PINs do not match", + "PIN set successfully", + "Error saving PIN", + "Comprobación de la tarjeta SD..", + "Configuración almacenada en la tarjeta SD.", + "Tarjeta SD no detectada.", + "Los cambios durarán hasta que el dispositivo se apague.", + "Ajustes almacenados internamente en flash.", + "Ajustes de Fábrica", + "Set PIN", + "Disable PIN", + "Izquierda", + "Derecha", + "¿Cambiar de tema y reiniciar?", + "El valor debe ser múltiple de %s", + "Valor %s fuera del rango: [ %s, %s]", + "Mnemónico", + "Esc", + "Palabra %d", + "¿Estás seguro?", + "Cargar desde la cámara", + "Cargar desde tarjeta SD", + "Parte", + "Sí", + "No", + "Atrás", + "Error:", + "12 palabras", + "24 palabras", + "Doble mnemónico", + "Current PIN", + "PIN", + "Invalid PIN", + "Buena entropía", + "Baja entropía", + "Entropía insuficiente", + "TOCA o ENTER para capturar", + "Captura cancelada", + "Entropía de Shannon:", + "(%d total)", + "Índice de desviación de píxeles:", + "¡Entropía Insuficiente!", + "¿Imprimir con Codigo QR?", + "¿Cargar desde la tarjeta SD?", + "¿Cargar?", + "¿Guardar en la tarjeta SD?", + "Guardado en la tarjeta SD", + "Nombre del Archivo", + "El nombre de archivo %s existe en la tarjeta SD, ¿sobrescribir?", + "Escribe la Passphrase BIP39", + "Escanear Passphrase BIP39", + "Passphrase", + "No se pudo cargar el passphrase", + "Longitud máxima excedida (%s)", + "Cuenta", + "Índice de la cuenta", + "Importar Mnemónico", + "Nuevo Mnemónico", + "Ajustes", + "Herramientas", + "Nosotros", + "Apagar", + "Desde Cámara", + "Introducción Manual", + "Desde el Almacenamiento", + "Código QR", + "Cuadrícula binaria", + "Palabras", + "Números de Palabra", + "A Través de Palabras", + "Vía D6", + "Vía D20", + "Usa la entropía de la cámara para crear una nueva mnemónica", + "(Experimental)", + "¿Continuar?", + "SHA256 de la instantánea:", + "Sin Passphrase", + "Cargar Cartera", + "Personalizar", + "Cargando..", + "¿Descifrar?", + "No se proporcionó la clave", + "Error al descifrar", + "No se pudo importar el mnemónico", + "Longitud mnemónica no válida", + "Déjalo en blanco si quieres que Krux elija una última palabra válida", + "¿Listo?", + "Ingrese %d palabras BIP-39.", + "Ingresa cada palabra de tu mnemónico BIP-39.", + "Decimal", + "Hexadecimal", + "Octales", + "Ingresa cada palabra de tu mnemónico BIP-39 como un número en octal del 1 al 4000.", + "Ingresa cada palabra de tu mnemónico BIP-39 como un número en hexadecimal del 1 al 800.", + "Ingresa cada palabra de tu mnemónico BIP-39 como un número del 1 al 2048.", + "Pinte los puntos perforados de negro para que puedan ser detectados.", + "Usa una superficie de fondo negra.", + "Alinea la cámara y la placa de respaldo correctamente.", + "Versión", + "Anti-reflejo habilitado", + "Anti-reflejo desactivado", + "Cargando Camara..", + "Tamaño:", + "Creado:", + "Modificado:", + "Imprimiendo..", + "Revisa los datos escaneados, edítalos si es necesario", + "Escaneo de palabras 1-12 de nuevo", + "Espera la captura", + "Escaneo de palabras 13-24", + "Introduce la clave", + "Escanear el Código QR", + "Clave", + "No se pudo cargar la clave", + "Almacenar en Flash", + "Almacenar en la Tarjeta SD", + "Código QR Cifrado", + "Mnemónico no fue descifrado", + "Se requiere entropía adicional de la cámara para el modo AES-CBC", + "¿Darle a este mnemónico una identificación personalizada? De lo contrario se utilizará el fingerprint actual", + "Identificación del Mnemónico", + "ID ya existe", + "Mnemónico cifrado no se almacenó", + "Mnemónico cifrado fue almacenado con ID:", + "No pudo almacenar mnemónico", + "Eliminar %s?", + "%s eliminado.", + "Borra completamente su tarjeta SD en otro dispositivo para asegurarse de que los datos sean irrecuperables", + "Para garantizar que los datos no se puedan recuperar, utiliza la función de borrar dispositivo", + "Generating Flash Hash..", + "Flash Hash", + "Verifica Tarjeta SD", + "Prueba de Impresión QR", + "Crear Código QR", + "Direcciones del descriptor", + "Eliminar Mnemónico", + "Borrar Dispositivo", + "Set a PIN first", + "Tarjeta SD", + "Usado:", + "Libre:", + "¿Explorar archivos?", + "¿Eliminar permanentemente todos los mnemónicos y configuraciones cifradas almacenadas del flash?", + "Borrando dispositivo..", + "No apagues el dispositivo, puede tardar un tiempo en completarse.", + "Test de impresión QR", + "¿Crear código QR desde texto?", + "Texto", + "Código QR Personalizado", + "Región:", + "Línea:", + "Res. - Formato", + "Deslizar para cambiar de modo", + "Volver al QR", + "Alternar Brillo", + "Guardar Imagen QR en la Tarjeta SD", + "Imprimir como Código QR", + "Volver al Menú", + "Cargando impresora..", + "Exportando a la tarjeta SD..", + "¡El controlador de impresora no está configurado!", + "Mensaje:", + "Dirección", + "¿Firmar?", + "Firma", + "No se pudo cargar el mensaje", + "Firmar en Código QR", + "Firmar en la Tarjeta SD", + "Mensaje Firmado", + "Clave Pública Hexadecimal", + "Descriptor de salida de cartera", + "¿Cargar un descriptor de monedero de confianza para ver las direcciones?", + "(Solo para observación)", + "No se encontró el descriptor de salida de la cartera.", + "¿Cargar algo?", + "No se pudo cargar el descriptor de salida", + "¿Aceptar la suposición?", + "Cartera inválida:", + "¡Se ha cargado el descriptor de salida de la cartera!", + "Carga un descriptor de cartera", + "Escanear Dirección", + "Direcciones de Recepción", + "Direcciones de Cambio", + "Cargando direcciones de cambio..", + "Cargando direcciones de recepción..", + "Recepción", + "Cambio", + "No se pudo cargar la dirección", + "Dirección inválida", + "¿Verificar que la dirección pertenece a esta cartera?", + "%d a %d", + "Comprobado %d direcciones sin coincidencias.", + "es una dirección válida!", + "NO FUE ENCONTRADO en las primeras %d direcciones", + "¿Intentar con mas?", + "Índice Derivado", + "Backup del Mnemónico", + "Clave Pública Extendida", + "Cartera", + "Firmar", + "¿Añadir o cambiar passphrase de la cartera?", + "Personalizar tu cartera generará una nueva clave", + "Mnemónico y passphrase se mantendrán.", + "¿Generar un mnemónico derivado BIP85?", + "Descriptor de Cartera", + "Mensaje", + "Advertencia:", + "Algunas comprobaciones no se pueden realizar.", + "No se pudo cargar la PSBT", + "La ruta no coincide", + "Huella dactilar no establecida en PSBT", + "¡Tarifas altas!", + "% del monto.", + "Firmando..", + "PSBT Firmado", + "Guardar en tarjeta SD", + "Cifrado", + "Otros Formatos", + "QR de Texto", + "Números", + "¿Impresión?", + "¿Imprimir Tiny Seed?", + "Distribución de tiradas:", + "Tira el dado al menos %d veces para generar un mnemónico.", + "Tiradas:", + "¡No hay suficientes tiradas!", + "Mala entropía detectada!", + "¡Patrón detectado!", + "¿Proceder de todas maneras?", + "Estadísticas para Entendidos", + "Generar Mnemónico", + "SHA256 de las tiradas:", +] diff --git a/src/krux/translations/fr_FR.py b/src/krux/translations/fr_FR.py index 49452026..615e8d99 100644 --- a/src/krux/translations/fr_FR.py +++ b/src/krux/translations/fr_FR.py @@ -20,298 +20,313 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # pylint: disable=C0301 -translation_table = { - 232475068: "% du montant.", - 1185266064: "%d de %d multisignature", - 1503087751: "%d à %d", - 1178563089: "%s supprimé.", - 1092222515: "(%d au total)", - 3348584292: "(Expérimental)", - 1099786887: "(consultation)", - 2739590230: "12 mots", - 1310058127: "24 mots", - 1949634023: "À propos", - 4287534872: "Accepter supposition\xa0?", - 2995482424: "Compte", - 2415648848: "Le compte n °0 serait supposé", - 1043817877: "Index du compte", - 3439746594: "Ajoutez ou modifiez la phrase secrète\u2009?", - 2143824150: "Entropie supplémentaire de la caméra requise pour le mode AES-CBC", - 3270727197: "Adresse", - 900375497: "Alignez correctement la caméra et plaque de sauvegarde.", - 88746165: "Anti-éblouissement désactivé", - 1521033296: "Anti-éblouissement activé", - 3857613120: "Apparence", - 1056821534: "Es-tu sûr\u2009?", - 1868069640: "Couleurs BGR", - 3455872521: "Retour", - 4151330982: "Retour au menu", - 2756316330: "Sauvegarde mnémonique", - 2256777600: "Mauvaise signature", - 3937333362: "Débit en bauds", - 2046615409: "Grille binaire", - 928727036: "Rembourrage de bordure", - 2519455027: "Luminosité", - 2363604010: "Boutons", - 2038226551: "Anti-rebond des boutons", - 3138204438: "Capture annulée", - 1207696150: "Changement", - 3126552510: "Adresses de Changement", - 1583186953: "Changer de thème et redémarrer\u2009?", - 3768416405: "La monnaie\u2009:", - 388908871: "Les modifications dureront jusqu'à l'arrêt.", - 3442025874: "Vérifiez la carte SD", - 3119547911: "Vérifiez que l'adresse appartient à cette portefeuille\u2009?", - 1187826970: "%d adresses vérifiées sans correspondance.", - 2470115694: "Vérification de la carte SD..", - 1851578965: "Indice enfant", - 4094072796: "Créer du code QR", - 167798282: "Créer du code QR à partir du texte\u2009?", - 678449760: "Créé\u2009:", - 3513215254: "Code QR personnalisé", - 3585411775: "Personnaliser", - 534274978: "La personnalisation de votre portefeuille générera une nouvelle clé.", - 124617190: "Profondeur de coupe", - 597912140: "Méthode de coupe", - 2504034831: "Décimal", - 2751113454: "Décrypter\u2009?", - 1272005728: "Portefeuille par défaut", - 4102535566: "Profondeur par passage", - 1712856005: "Adresses des descripteurs", - 3278654271: "Affichage", - 3895447625: "Ne pas éteindre, cela peut prendre un certain temps.", - 3836852788: "Terminé\u2009?", - 690625786: "Double mnémonique", - 382368239: "Conducteur", - 3582575312: "Chiffré", - 1244124409: "Code QR crypté", - 2968548114: "Le mnémonique crypté n'a pas été stocké", - 781419966: "Mnémonique cryptée a été stockée avec ID\u2009:", - 350279787: "Chiffrement", - 2601598799: "Mode de chiffrement", - 1821513079: "Entrez %d mots BIP-39.", - 3504179008: "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre de 1 à 2048.", - 1100685007: "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en hexadécimal de 1 à 800.", - 4090266642: "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en octal de 1 à 4000.", - 2780625730: "Entrez chaque mot de votre mnémonique BIP-39.", - 889040671: "Erreur\u2009:", - 1505332462: "Esc", - 3838465623: "Explorer des fichiers\u2009?", - 4170881190: "Exportation vers la carte SD..", - 1711312434: "Clé publique", - 3981762528: "Paramètres d'usine", - 383371114: "Échec de décrypter", - 3048830188: "Erreur de chargement PSBT", - 4192663412: "Erreur de chargement d'adresse", - 1996021743: "Échec du chargement de la clé", - 1108715658: "Échec du chargement du message", - 1081425878: "Erreur de chargement mnémonique", - 928667220: "Échec du chargement du descripteur de sortie", - 1620572516: "Échec du chargement de la phrase secrète", - 2946146830: "Échec de stocker mnémonique", - 262248294: "Frais\u2009:", - 104500973: "Taux d'alimentation", - 3313339187: "Nom de fichier", - 1982637349: "Le nom de fichier %s existe sur la carte SD, écraser\u2009?", - 4006602858: "Empreinte digitale manquante dans PSBT", - 2542772894: "Le micrologiciel dépasse la taille maximale\u2009: %d", - 3748840176: "Coordonnées X inversées", - 1406590538: "Diamètre de flûte", - 1077771640: "Libre\u2009:", - 1893243331: "Du stockage", - 1871146425: "Effacez complètement votre carte SD dans un autre appareil pour assurer que les données soient irrécupérables", - 3549015533: "Générer une mnémonique", - 3524220994: "Générer un mnémonique dérivé BIP-85\u2009?", - 299338213: "Donnez à ce mnémonique un identifiant personnalisé\u2009? Sinon l'empreinte actuelle sera utilisée", - 602716148: "Go", - 1198393582: "Bonne entropie", - 133139382: "Matériel", - 3580020863: "Clé public hexadécimal", - 2691246967: "Hexadécimal", - 3903754133: "Masquer les mnémoniques", - 3876651191: "Frais élevés\u2009!", - 2880010062: "Id existe déjà", - 3242179508: "Entrées (%d)\u2009:", - 3034883011: "Installer\u2009?", - 3755547839: "Entropie insuffisante\u2009!", - 2032416055: "Entropie insuffisante", - 2585599782: "Adresse invalide", - 2874529150: "Chargeur de démarrage invalide", - 4093416954: "Longueur mnémonique invalide", - 1422874211: "Clé publique non valide", - 237577215: "Portefeuille invalide\u2009:", - 4122897393: "Inverser", - 640219121: "Couleurs inversées", - 3000888649: "Clé", - 3264569915: "La clé n'a pas été fournie", - 3835918229: "Test de l'imprimante Krux QR", - 911419226: "Type d'écran LCD", - 766317539: "Langue", - 4180141032: "Laissez vide si vous souhaitez que Krux choisisse un dernier mot valide", - 3663022166: "Gauche", - 972436696: "Délai de Ligne", - 2176866982: "Ligne\u2009:", - 2820726296: "Charger mnémonique", - 2369474953: "Charger le portefeuille", - 2256441194: "Charger un descripteur de portefeuille de confiance pour afficher les adresses\u2009?", - 237136240: "Charger depuis la carte SD", - 879727077: "Charger depuis la carte SD\u2009?", - 1936877965: "Charger depuis une caméra", - 669106195: "En charger qu'un\u2009?", - 3330705289: "Charger\u2009?", - 2596531078: "Caméra de Chargement..", - 2488179069: "Chargement des adresses de monnaie..", - 336702608: "Chargement de l'imprimante..", - 1201104769: "Chargement des adresses de réception ..", - 3159494909: "Chargement..", - 1177338798: "Paramètres régionaux", - 2817059741: "Emplacement", - 2917810189: "Longueur maximale dépassée (%s)", - 2030045667: "Message", - 762611188: "Message\u2009:", - 3928301843: "Fichier de signature manquant", - 1948316555: "Mnémonique", - 2123991188: "ID mnémonique", - 1443208255: "Mnémonique et phrase secrète seront conservés.", - 1746030071: "Mnémonique n'était pas cryptée", - 1237332019: "Modifié\u2009:", - 1845376098: "Multi\nsignature", - 4265479636: "Native Segwit - 84 serait supposé", - 2939797024: "Réseau", - 73574491: "Nouveau mnémonique", - 3634967631: "Nouveau micrologiciel détecté.", - 4063104189: "Non", - 2325721074: "Pas de phrase secrète", - 4092516657: "Pas assez de jets\u2009!", - 3089363813: "Nombres", - 1577637745: "Octale", - 391304453: "Autres formats", - 3312581301: "Itér. PBKDF2", - 995862913: "Noircissez les points perforés afin qu'ils puissent être détectés.", - 2987800462: "Largeur du papier", - 3913146360: "Partie", - 3559456868: "Taille de la pièce", - 4249903283: "Phrase secréte", - 3745269737: "Inadéquation du chemin", - 500286397: "Structure détecté\u2009!", - 3040011773: "Supprimer définitivement tous les mnémoniques et paramètres chiffrés stockés dans le flash\u2009?", - 140802882: "Persister", - 2578106186: "Indice de déviation des pixels\u2009:", - 1703779997: "QR en Texte Brut", - 3561756278: "Veuillez charger un descripteur de sortie de portefeuille", - 784609464: "Taux de plongée", - 3761518438: "Mauvaise entropie", - 3639136476: "Faible entropie détectée\u2009!", - 3037062877: "Test d'impression QR", - 2362732578: "Imprimer Tiny Seed\u2009?", - 3123770978: "Imprimer en QR", - 3345150514: "Imprimer en QR\u2009?", - 3339507095: "Imprimer\u2009?", - 1123106929: "Imprimante", - 3903571079: "Le conducteur d'imprimante n'est pas défini\u2009!", - 3586624216: "Impression..", - 3593149291: "Procéder quand même\u2009?", - 2580599003: "Procéder\u2009?", - 3108881025: "Traitement..", - 1848310591: "QR Code", - 710709610: "RX Fiche", - 2697857197: "Recevoir", - 1746677167: "Adresses de Réception", - 1658501467: "Région\u2009:", - 3739634002: "Supprimer %s\u2009?", - 1476462492: "Supprimer mnémonique", - 1557093280: "Supprimer les fichiers micrologiciel de la carte SD\u2009?", - 2817311427: "Rés. - Format", - 2365886561: "Restaurer les paramètres d'usine et redémarrer\u2009?", - 3091105710: "Retour au visualiseur QR", - 1662254634: "Examinez les données numérisées, modifiez-les si nécessaire", - 1963678224: "À droite", - 770350922: "Lancez le dé au moins %d fois pour générer un mnémonique.", - 3271055013: "Distribution des jets\u2009:", - 432366011: "Jets\u2009:", - 3976793317: "Carte SD", - 2736513298: "Carte SD non détectée.", - 1166743226: "SHA256 de jets\u2009:", - 817419367: "SHA256 de snapshot\u2009:", - 699906428: "Enregistrer l'image QR sur la carte SD", - 2163347007: "Enregistrer sur la carte SD", - 3531742595: "Enregistrer sur la carte SD\u2009?", - 2940025484: "Enregistré sur la carte SD", - 763824768: "L'échelle", - 4117455079: "Scannez l'adresse", - 4038076821: "Scannez la phrase secrète BIP-39", - 923277590: "Scannez le Code QR de la clé", - 4006316572: "Analyser à nouveau les mots 1 à 12", - 2736506158: "Analyser les mots 13 à 24", - 2029624154: "Delai d'Inactivité", - 289960586: "Type de Script", - 1022211991: "Sécurité", - 4255182430: "Auto-transfert ou monnaie (%d)\u2009:", - 3753172956: "Auto-transfert\u2009:", - 473154195: "Paramètres", - 563836138: "Paramètres stockés en interne sur flash.", - 712533907: "Paramètres stockés sur la carte SD.", - 2377955518: "Entropie de Shannon\u2009:", - 1825881236: "Fermer", - 3656120779: "Delai d'Arrêt", - 2120776272: "Éteindre..", - 1061961408: "Signer", - 2293863356: "Signer avec le code QR", - 2879966040: "Signer sur la carte SD", - 4282338366: "Signer\u2009?", - 746161122: "Signature", - 1988416729: "Message signé", - 3672006076: "PSBT signé", - 3406791302: "Signature..", - 2281377987: "Clé unique", - 2019512665: "Capacité\u2009:", - 2344747135: "Certains chèques ne peuvent pas être effectués.", - 2090568351: "Dépense (%d)\u2009:", - 1260825919: "Dépense\u2009:", - 1232757391: "Statistiques pour les geeks", - 3303592908: "Stocker sur flash", - 720041451: "Stocker sur la carte SD", - 3514476519: "Faites glisser pour changer de mode", - 1898550184: "TOUCHEZ ou ENTER pour capturer", - 4228215415: "TX Fiche", - 2612594937: "Texte", - 1454688268: "Thème", - 1180180513: "Thermique", - 2258131455: "Pour assurer que les données soient irrécupérables, utilisez la fonctionnalité 'Effacer l'appareil'", - 2700207481: "Ajuster la luminosité", - 725348723: "Outils", - 3684696112: "Seuil Tactile", - 2978718564: "Écran Tactile", - 2732611775: "Réessayer\u2009?", - 401829098: "Entrez la phrase secrète BIP-39", - 2061556020: "Clé de type", - 2089395053: "Unité", - 2786714360: "Mise à niveau complète.", - 2674953168: "Utilisez une surface de fond noire.", - 2402455261: "Utilisez l'entropie de la caméra pour créer un nouveau mnémonique", - 3336226318: "Utilisé\u2009:", - 4003084591: "Valeur %s hors de portée: [%s, %s]", - 989428076: "La valeur doit être un multiple de %s", - 3429519584: "Vérification..", - 1889659487: "Version", - 4191058607: "Par caméra", - 1254681955: "Via D20", - 525309547: "Via D6", - 590330112: "Par saisie manuelle", - 1947603760: "Via Mots", - 2504354847: "Attendez la capture", - 2076481321: "Portefeuille", - 2297028319: "Descripteur de Portefeuille", - 4232654916: "Descripteur de sortie du portefeuille", - 2587172867: "Descripteur de sortie du portefeuille chargé\u2009!", - 2499782468: "Descripteur de sortie du portefeuille introuvable.", - 2671738224: "Avertissement\u2009:", - 262410364: "Effacer l'appareil", - 3522794335: "Effacement de l'appareil en cours..", - 797660533: "Mot %d", - 3742424146: "Numéros de mots", - 2965123464: "Mots", - 1303016265: "Oui", - 2171149824: "Adresse non valide\xa0!", - 1875891934: "n'A PAS ÉTÉ TROUVÉ dans les %d premières adresses", -} +translation_array = [ + "Nouveau micrologiciel détecté.", + "Vérification..", + "Installer\u2009?", + "Le micrologiciel dépasse la taille maximale\u2009: %d", + "Clé publique non valide", + "Fichier de signature manquant", + "Mauvaise signature", + "Chargeur de démarrage invalide", + "Traitement..", + "Mise à niveau complète.", + "Supprimer les fichiers micrologiciel de la carte SD\u2009?", + "Éteindre..", + "Clé unique", + "%d de %d multisignature", + "Native Segwit - 84 serait supposé", + "Le compte n °0 serait supposé", + "Paramètres régionaux", + "Réseau", + "Multi\nsignature", + "Type de Script", + "Débit en bauds", + "Largeur du papier", + "TX Fiche", + "RX Fiche", + "Délai de Ligne", + "L'échelle", + "Inverser", + "Méthode de coupe", + "Unité", + "Diamètre de flûte", + "Taux de plongée", + "Taux d'alimentation", + "Profondeur de coupe", + "Profondeur par passage", + "Taille de la pièce", + "Rembourrage de bordure", + "Thermique", + "Conducteur", + "Anti-rebond des boutons", + "Seuil Tactile", + "Coordonnées X inversées", + "Couleurs inversées", + "Couleurs BGR", + "Type d'écran LCD", + "Luminosité", + "Imprimante", + "Boutons", + "Écran Tactile", + "Affichage", + "Emplacement", + "Mode de chiffrement", + "Itér. PBKDF2", + "Thème", + "Delai d'Inactivité", + "Delai d'Arrêt", + "Masquer les mnémoniques", + "Hash Flash at Boot", + "Portefeuille par défaut", + "Sécurité", + "Matériel", + "Langue", + "Chiffrement", + "Persister", + "Apparence", + "Entrées (%d)\u2009:", + "Dépense (%d)\u2009:", + "Auto-transfert ou monnaie (%d)\u2009:", + "Frais\u2009:", + "Dépense\u2009:", + "Auto-transfert\u2009:", + "La monnaie\u2009:", + "Go", + "Restaurer les paramètres d'usine et redémarrer\u2009?", + "PIN disabled", + "Enter a 6+ characters PIN", + "Confirm PIN", + "PINs do not match", + "PIN set successfully", + "Error saving PIN", + "Vérification de la carte SD..", + "Paramètres stockés sur la carte SD.", + "Carte SD non détectée.", + "Les modifications dureront jusqu'à l'arrêt.", + "Paramètres stockés en interne sur flash.", + "Paramètres d'usine", + "Set PIN", + "Disable PIN", + "Gauche", + "À droite", + "Changer de thème et redémarrer\u2009?", + "La valeur doit être un multiple de %s", + "Valeur %s hors de portée: [%s, %s]", + "Mnémonique", + "Esc", + "Mot %d", + "Es-tu sûr\u2009?", + "Charger depuis une caméra", + "Charger depuis la carte SD", + "Partie", + "Oui", + "Non", + "Retour", + "Erreur\u2009:", + "12 mots", + "24 mots", + "Double mnémonique", + "Current PIN", + "PIN", + "Invalid PIN", + "Bonne entropie", + "Mauvaise entropie", + "Entropie insuffisante", + "TOUCHEZ ou ENTER pour capturer", + "Capture annulée", + "Entropie de Shannon\u2009:", + "(%d au total)", + "Indice de déviation des pixels\u2009:", + "Entropie insuffisante\u2009!", + "Imprimer en QR\u2009?", + "Charger depuis la carte SD\u2009?", + "Charger\u2009?", + "Enregistrer sur la carte SD\u2009?", + "Enregistré sur la carte SD", + "Nom de fichier", + "Le nom de fichier %s existe sur la carte SD, écraser\u2009?", + "Entrez la phrase secrète BIP-39", + "Scannez la phrase secrète BIP-39", + "Phrase secréte", + "Échec du chargement de la phrase secrète", + "Longueur maximale dépassée (%s)", + "Compte", + "Index du compte", + "Charger mnémonique", + "Nouveau mnémonique", + "Paramètres", + "Outils", + "À propos", + "Fermer", + "Par caméra", + "Par saisie manuelle", + "Du stockage", + "QR Code", + "Grille binaire", + "Mots", + "Numéros de mots", + "Via Mots", + "Via D6", + "Via D20", + "Utilisez l'entropie de la caméra pour créer un nouveau mnémonique", + "(Expérimental)", + "Procéder\u2009?", + "SHA256 de snapshot\u2009:", + "Pas de phrase secrète", + "Charger le portefeuille", + "Personnaliser", + "Chargement..", + "Décrypter\u2009?", + "La clé n'a pas été fournie", + "Échec de décrypter", + "Erreur de chargement mnémonique", + "Longueur mnémonique invalide", + "Laissez vide si vous souhaitez que Krux choisisse un dernier mot valide", + "Terminé\u2009?", + "Entrez %d mots BIP-39.", + "Entrez chaque mot de votre mnémonique BIP-39.", + "Décimal", + "Hexadécimal", + "Octale", + "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en octal de 1 à 4000.", + "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en hexadécimal de 1 à 800.", + "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre de 1 à 2048.", + "Noircissez les points perforés afin qu'ils puissent être détectés.", + "Utilisez une surface de fond noire.", + "Alignez correctement la caméra et plaque de sauvegarde.", + "Version", + "Anti-éblouissement activé", + "Anti-éblouissement désactivé", + "Caméra de Chargement..", + "Capacité\u2009:", + "Créé\u2009:", + "Modifié\u2009:", + "Impression..", + "Examinez les données numérisées, modifiez-les si nécessaire", + "Analyser à nouveau les mots 1 à 12", + "Attendez la capture", + "Analyser les mots 13 à 24", + "Clé de type", + "Scannez le Code QR de la clé", + "Clé", + "Échec du chargement de la clé", + "Stocker sur flash", + "Stocker sur la carte SD", + "Code QR crypté", + "Mnémonique n'était pas cryptée", + "Entropie supplémentaire de la caméra requise pour le mode AES-CBC", + "Donnez à ce mnémonique un identifiant personnalisé\u2009? Sinon l'empreinte actuelle sera utilisée", + "ID mnémonique", + "Id existe déjà", + "Le mnémonique crypté n'a pas été stocké", + "Mnémonique cryptée a été stockée avec ID\u2009:", + "Échec de stocker mnémonique", + "Supprimer %s\u2009?", + "%s supprimé.", + "Effacez complètement votre carte SD dans un autre appareil pour assurer que les données soient irrécupérables", + "Pour assurer que les données soient irrécupérables, utilisez la fonctionnalité 'Effacer l'appareil'", + "Generating Flash Hash..", + "Flash Hash", + "Vérifiez la carte SD", + "Test d'impression QR", + "Créer du code QR", + "Adresses des descripteurs", + "Supprimer mnémonique", + "Effacer l'appareil", + "Set a PIN first", + "Carte SD", + "Utilisé\u2009:", + "Libre\u2009:", + "Explorer des fichiers\u2009?", + "Supprimer définitivement tous les mnémoniques et paramètres chiffrés stockés dans le flash\u2009?", + "Effacement de l'appareil en cours..", + "Ne pas éteindre, cela peut prendre un certain temps.", + "Test de l'imprimante Krux QR", + "Créer du code QR à partir du texte\u2009?", + "Texte", + "Code QR personnalisé", + "Région\u2009:", + "Ligne\u2009:", + "Rés. - Format", + "Faites glisser pour changer de mode", + "Retour au visualiseur QR", + "Ajuster la luminosité", + "Enregistrer l'image QR sur la carte SD", + "Imprimer en QR", + "Retour au menu", + "Chargement de l'imprimante..", + "Exportation vers la carte SD..", + "Le conducteur d'imprimante n'est pas défini\u2009!", + "Message\u2009:", + "Adresse", + "Signer\u2009?", + "Signature", + "Échec du chargement du message", + "Signer avec le code QR", + "Signer sur la carte SD", + "Message signé", + "Clé public hexadécimal", + "Descripteur de sortie du portefeuille", + "Charger un descripteur de portefeuille de confiance pour afficher les adresses\u2009?", + "(consultation)", + "Descripteur de sortie du portefeuille introuvable.", + "En charger qu'un\u2009?", + "Échec du chargement du descripteur de sortie", + "Accepter supposition\xa0?", + "Portefeuille invalide\u2009:", + "Descripteur de sortie du portefeuille chargé\u2009!", + "Veuillez charger un descripteur de sortie de portefeuille", + "Scannez l'adresse", + "Adresses de Réception", + "Adresses de Changement", + "Chargement des adresses de monnaie..", + "Chargement des adresses de réception ..", + "Recevoir", + "Changement", + "Erreur de chargement d'adresse", + "Adresse invalide", + "Vérifiez que l'adresse appartient à cette portefeuille\u2009?", + "%d à %d", + "%d adresses vérifiées sans correspondance.", + "Adresse non valide\xa0!", + "n'A PAS ÉTÉ TROUVÉ dans les %d premières adresses", + "Réessayer\u2009?", + "Indice enfant", + "Sauvegarde mnémonique", + "Clé publique", + "Portefeuille", + "Signer", + "Ajoutez ou modifiez la phrase secrète\u2009?", + "La personnalisation de votre portefeuille générera une nouvelle clé.", + "Mnémonique et phrase secrète seront conservés.", + "Générer un mnémonique dérivé BIP-85\u2009?", + "Descripteur de Portefeuille", + "Message", + "Avertissement\u2009:", + "Certains chèques ne peuvent pas être effectués.", + "Erreur de chargement PSBT", + "Inadéquation du chemin", + "Empreinte digitale manquante dans PSBT", + "Frais élevés\u2009!", + "% du montant.", + "Signature..", + "PSBT signé", + "Enregistrer sur la carte SD", + "Chiffré", + "Autres formats", + "QR en Texte Brut", + "Nombres", + "Imprimer\u2009?", + "Imprimer Tiny Seed\u2009?", + "Distribution des jets\u2009:", + "Lancez le dé au moins %d fois pour générer un mnémonique.", + "Jets\u2009:", + "Pas assez de jets\u2009!", + "Faible entropie détectée\u2009!", + "Structure détecté\u2009!", + "Procéder quand même\u2009?", + "Statistiques pour les geeks", + "Générer une mnémonique", + "SHA256 de jets\u2009:", +] diff --git a/src/krux/translations/ko_KR.py b/src/krux/translations/ko_KR.py index efa9f670..d9f3092d 100644 --- a/src/krux/translations/ko_KR.py +++ b/src/krux/translations/ko_KR.py @@ -20,298 +20,313 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # pylint: disable=C0301 -translation_table = { - 232475068: "수량: %", - 1185266064: "%d의 %d 멀티시그", - 1503087751: "%d 부터 %d", - 1178563089: "%s 제거되었습니다.", - 1092222515: "(총 %d)", - 3348584292: "(실험적 기능)", - 1099786887: "(잔액조회 전용)", - 2739590230: "12단어", - 1310058127: "24단어", - 1949634023: "기본 정보", - 4287534872: "가정을 수락하시겠습니까?", - 2995482424: "계정", - 2415648848: "계정 #0이 가정됩니다", - 1043817877: "계정 인덱스", - 3439746594: "패스프레이즈를 추가하거나 변경하시겠습니까?", - 2143824150: "AES-CBC 모드를 위해 카메라의 추가 엔트로피가 필요합니다", - 3270727197: "주소", - 900375497: "카메라와 보조 플레이트를 올바르게 정렬하십시오.", - 88746165: "눈부심방지 비활성화", - 1521033296: "눈부심방지 활성화", - 3857613120: "디스플레이", - 1056821534: "계속하시겠습니까?", - 1868069640: "BGR 색상", - 3455872521: "뒤로", - 4151330982: "메뉴로 돌아가기", - 2756316330: "니모닉 백업", - 2256777600: "잘못된 서명", - 3937333362: "Baudrate", - 2046615409: "이진수 그리드", - 928727036: "테두리 여백", - 2519455027: "밝기", - 2363604010: "버튼", - 2038226551: "버튼 바운스 방지", - 3138204438: "캡처 취소됨", - 1207696150: "잔돈", - 3126552510: "잔돈 주소", - 1583186953: "테마를 변경하고 재부팅하시겠습니까?", - 3768416405: "변경", - 388908871: "변경 사항은 종료될때까지 유지됩니다.", - 3442025874: "SD카드 확인", - 3119547911: "해당 주소가 이 지갑에 속하는지 확인하시겠습니까?", - 1187826970: "일치하는 주소가 없는 %d 개를 확인했습니다.", - 2470115694: "SD카드 확인 중..", - 1851578965: "차일드 인덱스", - 4094072796: "QR 코드 생성", - 167798282: "텍스트로부터 QR코드를 생성하시겠습니까?", - 678449760: "생성됨:", - 3513215254: "사용자 정의 QR코드", - 3585411775: "사용자 정의", - 534274978: "지갑을 커스터마이징하면 새로운 비밀키가 생성됩니다.", - 124617190: "Cut Depth", - 597912140: "Cut Method", - 2504034831: "10진수", - 2751113454: "복호화하시겠습니까?", - 1272005728: "지갑 기본설정", - 4102535566: "Depth Per Pass", - 1712856005: "디스크립터 주소", - 3278654271: "디스플레이", - 3895447625: "전원을 끄지 마십시오. 완료하는 데 시간이 걸릴 수 있습니다.", - 3836852788: "완료되었습니까?", - 690625786: "이중 니모닉", - 382368239: "드라이버", - 3582575312: "암호화 후 저장", - 1244124409: "암호화된 QR 코드", - 2968548114: "암호화된 니모닉을 저장하지 못했습니다", - 781419966: "암호화된 니모닉을 다음 아이디와 함께 저장했습니다:", - 350279787: "암호화", - 2601598799: "암호화 모드", - 1821513079: "%d개의 BIP-39 단어를 입력하십시오.", - 3504179008: "BIP-39 니모닉의 각 단어를 1에서 2048 사이의 숫자로 입력하십시오.", - 1100685007: "BIP-39 니모닉의 각 단어를 1에서 800 사이의 16진수 숫자로 입력하십시오.", - 4090266642: "BIP-39 니모닉의 각 단어를 1에서 4000 사이의 8진수 숫자로 입력하십시오.", - 2780625730: "BIP-39 니모닉의 각 단어를 입력하십시오.", - 889040671: "오류:", - 1505332462: "Esc", - 3838465623: "파일을 탐색하시겠습니까?", - 4170881190: "SD카드로 내보내는 중..", - 1711312434: "XPUB 내보내기", - 3981762528: "공장 초기 설정", - 383371114: "복호화에 실패했습니다", - 3048830188: "PSBT를 불러오지 못했습니다", - 4192663412: "주소를 불러오지 못했습니다", - 1996021743: "키 로드에 실패했습니다", - 1108715658: "메시지를 불러오지 못했습니다", - 1081425878: "니모닉을 불러오지 못했습니다", - 928667220: "아웃풋 디스크립터를 불러오지 못했습니다", - 1620572516: "패스프레이즈를 불러오지 못했습니다", - 2946146830: "니모닉을 저장하지 못했습니다", - 262248294: "수수료:", - 104500973: "Feed Rate", - 3313339187: "파일명", - 1982637349: "%s 파일명이 SD카드에 이미 존재합니다. 덮어쓰시겠습니까?", - 4006602858: "PSBT에서 지문이 설정되지 않았습니다", - 2542772894: "펌웨어가 최대 크기를 초과했습니다: %d", - 3748840176: "X 좌표 반전", - 1406590538: "플루트 직경", - 1077771640: "여유 공간:", - 1893243331: "저장공간에서 불러오기", - 1871146425: "다른 장치에서 데이터 복구가 불가능하도록 SD카드를 완전히 지우십시오", - 3549015533: "니모닉 생성", - 3524220994: "BIP85 파생 니모닉을 생성하시겠습니까?", - 299338213: "이 니모닉에 별도 아이디를 지정하시겠습니까? 지정하지 않으면 현재 지문을 사용합니다", - 602716148: "선택", - 1198393582: "엔트로피가 충분합니다", - 133139382: "하드웨어", - 3580020863: "16진수 공개키", - 2691246967: "16진수", - 3903754133: "니모닉 숨기기", - 3876651191: "수수료가 높습니다!", - 2880010062: "아이디가 이미 존재합니다", - 3242179508: "Input (%d):", - 3034883011: "설치하시겠습니까?", - 3755547839: "엔트로피가 충분하지 않습니다!", - 2032416055: "엔트로피가 충분하지 않습니다", - 2585599782: "주소가 잘못되었습니다", - 2874529150: "부트로더가 잘못되었습니다", - 4093416954: "니모닉 길이가 잘못되었습니다", - 1422874211: "공개키가 잘못되었습니다", - 237577215: "지갑이 잘못되었습니다:", - 4122897393: "반전", - 640219121: "반전된 색상", - 3000888649: "키", - 3264569915: "키가 제공되지 않았습니다", - 3835918229: "Krux 프린터 테스트 QR", - 911419226: "LCD 유형", - 766317539: "언어", - 4180141032: "마지막 단어를 Krux가 선택하도록 하려면 비워두십시오", - 3663022166: "왼쪽", - 972436696: "줄 지연", - 2176866982: "줄:", - 2820726296: "니모닉 불러오기", - 2369474953: "이대로 불러오기", - 2256441194: "주소를 보기위해 신뢰할 수 있는 월렛 디스크립터를 불러오시겠습니까?", - 237136240: "SD카드에서 불러오기", - 879727077: "SD카드에서 불러오시겠습니까?", - 1936877965: "카메라로 불러오기", - 669106195: "불러오시겠습니까?", - 3330705289: "불러오시겠습니까?", - 2596531078: "카메라를 구동 중입니다..", - 2488179069: "잔돈 주소를 불러옵니다..", - 336702608: "프린터를 로딩 중입니다..", - 1201104769: "수신 주소 불러옵니다..", - 3159494909: "로딩 중..", - 1177338798: "언어 설정", - 2817059741: "기본 저장소", - 2917810189: "최대 길이를 초과함 (%s)", - 2030045667: "메시지", - 762611188: "메시지:", - 3928301843: "서명 파일이 누락되었습니다", - 1948316555: "니모닉", - 2123991188: "니모닉 ID", - 1443208255: "니모닉과 암호는 유지됩니다.", - 1746030071: "니모닉이 암호화되지 않았습니다", - 1237332019: "수정되었습니다:", - 1845376098: "멀티시그", - 4265479636: "네이티브 세그윗 - BIP84를 적용합니다", - 2939797024: "네트워크", - 73574491: "새로운 니모닉", - 3634967631: "새로운 펌웨어가 감지되었습니다.", - 4063104189: "아니요", - 2325721074: "패스프레이즈 없음", - 4092516657: "주사위 횟수가 충분하지 않습니다!", - 3089363813: "시드문구 순번", - 1577637745: "8진수", - 391304453: "기타 형식", - 3312581301: "PBKDF2 Iter.", - 995862913: "카메라가 감지할 수 있도록 펀치된 점을 검게 칠하십시오.", - 2987800462: "종이 너비", - 3913146360: "파트", - 3559456868: "파트 사이즈", - 4249903283: "패스프레이즈", - 3745269737: "경로 불일치", - 500286397: "패턴이 감지되었습니다!", - 3040011773: "저장된 모든 니모닉 및 설정값을 영구적으로 제거하시겠습니까?", - 140802882: "저장", - 2578106186: "픽셀 편차 지수:", - 1703779997: "일반텍스트 QR", - 3561756278: "지갑 출력 디스크립터를 불러오십시오", - 784609464: "침수율", - 3761518438: "엔트로피가 부족합니다", - 3639136476: "엔트로피가 부족합니다!", - 3037062877: "QR 테스트 인쇄", - 2362732578: "Tiny Seed를 인쇄하시겠습니까?", - 3123770978: "QR로 인쇄", - 3345150514: "QR로 인쇄하시겠습니까?", - 3339507095: "인쇄하시겠습니까?", - 1123106929: "프린터", - 3903571079: "프린터 드라이버가 설정되지 않았습니다!", - 3586624216: "출력중", - 3593149291: "계속하시겠습니까?", - 2580599003: "계속하시겠습니까?", - 3108881025: "처리...", - 1848310591: "QR 코드", - 710709610: "RX 핀", - 2697857197: "받기", - 1746677167: "주소", - 1658501467: "지역:", - 3739634002: "%s을 제거하시겠습니까?", - 1476462492: "니모닉 제거", - 1557093280: "SD카드에서 펌웨어 파일을 제거하시겠습니까?", - 2817311427: "Res. - 형식", - 2365886561: "공장 설정을 복원하고 재부팅하시겠습니까?", - 3091105710: "QR 뷰어로 돌아가기", - 1662254634: "스캔된 데이터를 검토하고 필요한 경우 수정하십시오", - 1963678224: "오른쪽", - 770350922: "니모닉을 생성하려면 주사위를 최소 %d번 굴리십시오.", - 3271055013: "주사위값 분포:", - 432366011: "주사위 횟수:", - 3976793317: "SD카드", - 2736513298: "SD카드가 감지되지 않았습니다.", - 1166743226: "주사위의 SHA256:", - 817419367: "SHA256 스냅샷:", - 699906428: "QR 이미지를 SD카드에 저장", - 2163347007: "SD카드에 저장", - 3531742595: "SD카드에 저장하시겠습니까?", - 2940025484: "SD카드에 저장됨", - 763824768: "스케일", - 4117455079: "주소 스캔하기", - 4038076821: "BIP39 패스프레이즈 스캔하기", - 923277590: "비밀번호 QR 스캔", - 4006316572: "1번째부터 12번째 단어를 스캔 중입니다", - 2736506158: "13번째부터 24번째 단어를 스캔 중입니다", - 2029624154: "화면보호기 시간", - 289960586: "지갑 형식", - 1022211991: "보안", - 4255182430: "본인주소 전송 또는 잔돈 (%d):", - 3753172956: "자가 이체:", - 473154195: "설정", - 563836138: "설정은 플래시에서 내부적으로 저장됩니다.", - 712533907: "SD 카드에 저장된 설정.", - 2377955518: "Shannon의 엔트로피:", - 1825881236: "종료", - 3656120779: "자동 종료시간", - 2120776272: "종료 중..", - 1061961408: "서명하기", - 2293863356: "QR코드로 내보내기", - 2879966040: "SD카드로 내보내기", - 4282338366: "서명하시겠습니까?", - 746161122: "서명", - 1988416729: "서명된 메시지", - 3672006076: "서명된 PSBT", - 3406791302: "서명 중..", - 2281377987: "단일서명", - 2019512665: "크기:", - 2344747135: "일부 검사를 수행할 수 없습니다.", - 2090568351: "Spend (%d):", - 1260825919: "지출", - 1232757391: "전문가를 위한 통계", - 3303592908: "플래시 메모리에 저장", - 720041451: "SD카드에 저장", - 3514476519: "모드를 변경하려면 화면을 옆으로 쓸어내리세요", - 1898550184: "터치하거나 엔터를 눌러 캡처하십시오", - 4228215415: "TX 핀", - 2612594937: "텍스트", - 1454688268: "테마", - 1180180513: "Thermal", - 2258131455: "데이터 복구가 불가능하도록 장치 전체지우기 기능을 사용하십시오", - 2700207481: "밝기 전환", - 725348723: "도구", - 3684696112: "터치 민감도", - 2978718564: "터치스크린", - 2732611775: "더 하시겠습니까?", - 401829098: "BIP39 패스프레이즈 입력", - 2061556020: "비밀번호 입력", - 2089395053: "단위", - 2786714360: "업그레이드가 완료되었습니다", - 2674953168: "검은색 배경 화면을 사용하십시오.", - 2402455261: "카메라의 엔트로피를 사용하여 새로운 니모닉을 생성하십시오", - 3336226318: "이미 사용됨:", - 4003084591: "%s는 [%s, %s] 범위를 벗어났습니다", - 989428076: "값은 %s의 배수여야 합니다", - 3429519584: "검증 중..", - 1889659487: "버전", - 4191058607: "카메라", - 1254681955: "20면체 주사위", - 525309547: "일반 주사위", - 590330112: "직접 입력", - 1947603760: "니모닉 단어 입력", - 2504354847: "캡처될때까지 기다리십시오", - 2076481321: "지갑 설정", - 2297028319: "지갑 디스크립터", - 4232654916: "지갑 출력 디스크립터", - 2587172867: "지갑 출력 디스크립터가 로드되었습니다!", - 2499782468: "지갑 출력 디스크립터를 찾을 수 없습니다.", - 2671738224: "경고:", - 262410364: "기기 초기화", - 3522794335: "기기를 초기화하는 중입니다..", - 797660533: "%d 단어", - 3742424146: "단어 번호(1-2048)", - 2965123464: "시드문구", - 1303016265: "예", - 2171149824: " 은 유효한 주소가 아닙니다", - 1875891934: "첫 번째 %d 주소에서 찾을 수 없습니다", -} +translation_array = [ + "새로운 펌웨어가 감지되었습니다.", + "검증 중..", + "설치하시겠습니까?", + "펌웨어가 최대 크기를 초과했습니다: %d", + "공개키가 잘못되었습니다", + "서명 파일이 누락되었습니다", + "잘못된 서명", + "부트로더가 잘못되었습니다", + "처리...", + "업그레이드가 완료되었습니다", + "SD카드에서 펌웨어 파일을 제거하시겠습니까?", + "종료 중..", + "단일서명", + "%d의 %d 멀티시그", + "네이티브 세그윗 - BIP84를 적용합니다", + "계정 #0이 가정됩니다", + "언어 설정", + "네트워크", + "멀티시그", + "지갑 형식", + "Baudrate", + "종이 너비", + "TX 핀", + "RX 핀", + "줄 지연", + "스케일", + "반전", + "Cut Method", + "단위", + "플루트 직경", + "침수율", + "Feed Rate", + "Cut Depth", + "Depth Per Pass", + "파트 사이즈", + "테두리 여백", + "Thermal", + "드라이버", + "버튼 바운스 방지", + "터치 민감도", + "X 좌표 반전", + "반전된 색상", + "BGR 색상", + "LCD 유형", + "밝기", + "프린터", + "버튼", + "터치스크린", + "디스플레이", + "기본 저장소", + "암호화 모드", + "PBKDF2 Iter.", + "테마", + "화면보호기 시간", + "자동 종료시간", + "니모닉 숨기기", + "Hash Flash at Boot", + "지갑 기본설정", + "보안", + "하드웨어", + "언어", + "암호화", + "저장", + "디스플레이", + "Input (%d):", + "Spend (%d):", + "본인주소 전송 또는 잔돈 (%d):", + "수수료:", + "지출", + "자가 이체:", + "변경", + "선택", + "공장 설정을 복원하고 재부팅하시겠습니까?", + "PIN disabled", + "Enter a 6+ characters PIN", + "Confirm PIN", + "PINs do not match", + "PIN set successfully", + "Error saving PIN", + "SD카드 확인 중..", + "SD 카드에 저장된 설정.", + "SD카드가 감지되지 않았습니다.", + "변경 사항은 종료될때까지 유지됩니다.", + "설정은 플래시에서 내부적으로 저장됩니다.", + "공장 초기 설정", + "Set PIN", + "Disable PIN", + "왼쪽", + "오른쪽", + "테마를 변경하고 재부팅하시겠습니까?", + "값은 %s의 배수여야 합니다", + "%s는 [%s, %s] 범위를 벗어났습니다", + "니모닉", + "Esc", + "%d 단어", + "계속하시겠습니까?", + "카메라로 불러오기", + "SD카드에서 불러오기", + "파트", + "예", + "아니요", + "뒤로", + "오류:", + "12단어", + "24단어", + "이중 니모닉", + "Current PIN", + "PIN", + "Invalid PIN", + "엔트로피가 충분합니다", + "엔트로피가 부족합니다", + "엔트로피가 충분하지 않습니다", + "터치하거나 엔터를 눌러 캡처하십시오", + "캡처 취소됨", + "Shannon의 엔트로피:", + "(총 %d)", + "픽셀 편차 지수:", + "엔트로피가 충분하지 않습니다!", + "QR로 인쇄하시겠습니까?", + "SD카드에서 불러오시겠습니까?", + "불러오시겠습니까?", + "SD카드에 저장하시겠습니까?", + "SD카드에 저장됨", + "파일명", + "%s 파일명이 SD카드에 이미 존재합니다. 덮어쓰시겠습니까?", + "BIP39 패스프레이즈 입력", + "BIP39 패스프레이즈 스캔하기", + "패스프레이즈", + "패스프레이즈를 불러오지 못했습니다", + "최대 길이를 초과함 (%s)", + "계정", + "계정 인덱스", + "니모닉 불러오기", + "새로운 니모닉", + "설정", + "도구", + "기본 정보", + "종료", + "카메라", + "직접 입력", + "저장공간에서 불러오기", + "QR 코드", + "이진수 그리드", + "시드문구", + "단어 번호(1-2048)", + "니모닉 단어 입력", + "일반 주사위", + "20면체 주사위", + "카메라의 엔트로피를 사용하여 새로운 니모닉을 생성하십시오", + "(실험적 기능)", + "계속하시겠습니까?", + "SHA256 스냅샷:", + "패스프레이즈 없음", + "이대로 불러오기", + "사용자 정의", + "로딩 중..", + "복호화하시겠습니까?", + "키가 제공되지 않았습니다", + "복호화에 실패했습니다", + "니모닉을 불러오지 못했습니다", + "니모닉 길이가 잘못되었습니다", + "마지막 단어를 Krux가 선택하도록 하려면 비워두십시오", + "완료되었습니까?", + "%d개의 BIP-39 단어를 입력하십시오.", + "BIP-39 니모닉의 각 단어를 입력하십시오.", + "10진수", + "16진수", + "8진수", + "BIP-39 니모닉의 각 단어를 1에서 4000 사이의 8진수 숫자로 입력하십시오.", + "BIP-39 니모닉의 각 단어를 1에서 800 사이의 16진수 숫자로 입력하십시오.", + "BIP-39 니모닉의 각 단어를 1에서 2048 사이의 숫자로 입력하십시오.", + "카메라가 감지할 수 있도록 펀치된 점을 검게 칠하십시오.", + "검은색 배경 화면을 사용하십시오.", + "카메라와 보조 플레이트를 올바르게 정렬하십시오.", + "버전", + "눈부심방지 활성화", + "눈부심방지 비활성화", + "카메라를 구동 중입니다..", + "크기:", + "생성됨:", + "수정되었습니다:", + "출력중", + "스캔된 데이터를 검토하고 필요한 경우 수정하십시오", + "1번째부터 12번째 단어를 스캔 중입니다", + "캡처될때까지 기다리십시오", + "13번째부터 24번째 단어를 스캔 중입니다", + "비밀번호 입력", + "비밀번호 QR 스캔", + "키", + "키 로드에 실패했습니다", + "플래시 메모리에 저장", + "SD카드에 저장", + "암호화된 QR 코드", + "니모닉이 암호화되지 않았습니다", + "AES-CBC 모드를 위해 카메라의 추가 엔트로피가 필요합니다", + "이 니모닉에 별도 아이디를 지정하시겠습니까? 지정하지 않으면 현재 지문을 사용합니다", + "니모닉 ID", + "아이디가 이미 존재합니다", + "암호화된 니모닉을 저장하지 못했습니다", + "암호화된 니모닉을 다음 아이디와 함께 저장했습니다:", + "니모닉을 저장하지 못했습니다", + "%s을 제거하시겠습니까?", + "%s 제거되었습니다.", + "다른 장치에서 데이터 복구가 불가능하도록 SD카드를 완전히 지우십시오", + "데이터 복구가 불가능하도록 장치 전체지우기 기능을 사용하십시오", + "Generating Flash Hash..", + "Flash Hash", + "SD카드 확인", + "QR 테스트 인쇄", + "QR 코드 생성", + "디스크립터 주소", + "니모닉 제거", + "기기 초기화", + "Set a PIN first", + "SD카드", + "이미 사용됨:", + "여유 공간:", + "파일을 탐색하시겠습니까?", + "저장된 모든 니모닉 및 설정값을 영구적으로 제거하시겠습니까?", + "기기를 초기화하는 중입니다..", + "전원을 끄지 마십시오. 완료하는 데 시간이 걸릴 수 있습니다.", + "Krux 프린터 테스트 QR", + "텍스트로부터 QR코드를 생성하시겠습니까?", + "텍스트", + "사용자 정의 QR코드", + "지역:", + "줄:", + "Res. - 형식", + "모드를 변경하려면 화면을 옆으로 쓸어내리세요", + "QR 뷰어로 돌아가기", + "밝기 전환", + "QR 이미지를 SD카드에 저장", + "QR로 인쇄", + "메뉴로 돌아가기", + "프린터를 로딩 중입니다..", + "SD카드로 내보내는 중..", + "프린터 드라이버가 설정되지 않았습니다!", + "메시지:", + "주소", + "서명하시겠습니까?", + "서명", + "메시지를 불러오지 못했습니다", + "QR코드로 내보내기", + "SD카드로 내보내기", + "서명된 메시지", + "16진수 공개키", + "지갑 출력 디스크립터", + "주소를 보기위해 신뢰할 수 있는 월렛 디스크립터를 불러오시겠습니까?", + "(잔액조회 전용)", + "지갑 출력 디스크립터를 찾을 수 없습니다.", + "불러오시겠습니까?", + "아웃풋 디스크립터를 불러오지 못했습니다", + "가정을 수락하시겠습니까?", + "지갑이 잘못되었습니다:", + "지갑 출력 디스크립터가 로드되었습니다!", + "지갑 출력 디스크립터를 불러오십시오", + "주소 스캔하기", + "주소", + "잔돈 주소", + "잔돈 주소를 불러옵니다..", + "수신 주소 불러옵니다..", + "받기", + "잔돈", + "주소를 불러오지 못했습니다", + "주소가 잘못되었습니다", + "해당 주소가 이 지갑에 속하는지 확인하시겠습니까?", + "%d 부터 %d", + "일치하는 주소가 없는 %d 개를 확인했습니다.", + " 은 유효한 주소가 아닙니다", + "첫 번째 %d 주소에서 찾을 수 없습니다", + "더 하시겠습니까?", + "차일드 인덱스", + "니모닉 백업", + "XPUB 내보내기", + "지갑 설정", + "서명하기", + "패스프레이즈를 추가하거나 변경하시겠습니까?", + "지갑을 커스터마이징하면 새로운 비밀키가 생성됩니다.", + "니모닉과 암호는 유지됩니다.", + "BIP85 파생 니모닉을 생성하시겠습니까?", + "지갑 디스크립터", + "메시지", + "경고:", + "일부 검사를 수행할 수 없습니다.", + "PSBT를 불러오지 못했습니다", + "경로 불일치", + "PSBT에서 지문이 설정되지 않았습니다", + "수수료가 높습니다!", + "수량: %", + "서명 중..", + "서명된 PSBT", + "SD카드에 저장", + "암호화 후 저장", + "기타 형식", + "일반텍스트 QR", + "시드문구 순번", + "인쇄하시겠습니까?", + "Tiny Seed를 인쇄하시겠습니까?", + "주사위값 분포:", + "니모닉을 생성하려면 주사위를 최소 %d번 굴리십시오.", + "주사위 횟수:", + "주사위 횟수가 충분하지 않습니다!", + "엔트로피가 부족합니다!", + "패턴이 감지되었습니다!", + "계속하시겠습니까?", + "전문가를 위한 통계", + "니모닉 생성", + "주사위의 SHA256:", +] diff --git a/src/krux/translations/nl_NL.py b/src/krux/translations/nl_NL.py index 9ecf8bca..4b379d22 100644 --- a/src/krux/translations/nl_NL.py +++ b/src/krux/translations/nl_NL.py @@ -20,298 +20,313 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # pylint: disable=C0301 -translation_table = { - 232475068: "% van het bedrag.", - 1185266064: "%d van %d multisig", - 1503087751: "%d tot %d", - 1178563089: "%s verwijderd.", - 1092222515: "(%d totaal)", - 3348584292: "(Experimenteel)", - 1099786887: "(alleen inzien)", - 2739590230: "12 woorden", - 1310058127: "24 woorden", - 1949634023: "Over", - 4287534872: "Aanname accepteren?", - 2995482424: "Account", - 2415648848: "Account #0 zou worden aangenomen", - 1043817877: "Accountindex", - 3439746594: "Wachtwoordzin voor portemonnee toevoegen of wijzigen?", - 2143824150: "Extra entropie van de camera vereist voor AES-CBC-modus", - 3270727197: "Adres", - 900375497: "Richt de camera en back-upplaat op de juiste manier.", - 88746165: "Anti reflecterend uitgeschakeld", - 1521033296: "Anti reflecterend ingeschakeld", - 3857613120: "Uiterlijk", - 1056821534: "Weet je het zeker?", - 1868069640: "BGR-kleuren", - 3455872521: "Terug", - 4151330982: "Terug naar menu", - 2756316330: "Backup geheugensteun", - 2256777600: "Ongeldige handtekening", - 3937333362: "Baudratio", - 2046615409: "Binair raster", - 928727036: "Rand opvulling", - 2519455027: "Helderheid", - 2363604010: "Knoppen", - 2038226551: "Debounce van knoppen", - 3138204438: "Opname geannuleerd", - 1207696150: "Change", - 3126552510: "Wisselgeldadres", - 1583186953: "Thema veranderen en opnieuw opstarten?", - 3768416405: "Wisselgeld:", - 388908871: "Wijzigingen blijven van kracht tot afsluiten.", - 3442025874: "Controleer SD kaart", - 3119547911: "Controleer of dit adres bij deze portemonnee hoort?", - 1187826970: "%d adressen gecontroleerd zonder overeenkomsten.", - 2470115694: "SD kaart controleren..", - 1851578965: "Onderliggende index", - 4094072796: "QR code maken", - 167798282: "QR code maken van tekst?", - 678449760: "Aangemaakt:", - 3513215254: "Aangepaste QR code", - 3585411775: "Aanpassen", - 534274978: "Bij aanpassen van de portemonnee zal er een nieuwe sleutel gegenereerd worden.", - 124617190: "Snijdiepte", - 597912140: "Snijmethode", - 2504034831: "Decimaal", - 2751113454: "Ontsleutelen?", - 1272005728: "Standaard portemonnee", - 4102535566: "Diepte per pas", - 1712856005: "Descriptoradressen", - 3278654271: "Weergave", - 3895447625: "Schakel het apparaat niet uit, het kan even duren voordat het klaar is.", - 3836852788: "Klaar?", - 690625786: "Dubbel geheugensteuntje", - 382368239: "Driver", - 3582575312: "Versleuteld", - 1244124409: "Versleutelde QR code", - 2968548114: "Versleutelde geheugensteun was niet opgeslagen", - 781419966: "Versleutelde geheugensteun is opgeslagen met ID:", - 350279787: "Versleutelen", - 2601598799: "Versleutel modus", - 1821513079: "Voer %d BIP-39 woorden in.", - 3504179008: "Voer elk woord van jouw BIP-39 geheugensteun in als een nummer van 1 tot 2048.", - 1100685007: "Voer elk woord van jouw BIP-39 geheugensteun in als een hexadecimaal van 1 tot 800.", - 4090266642: "Voer elk woord van jouw BIP-39 geheugensteun in als een octaal van 1 tot 4000.", - 2780625730: "Voer elk woord van jouw BIP-39 geheugensteun in.", - 889040671: "Fout:", - 1505332462: "Esc", - 3838465623: "Bestanden verkennen?", - 4170881190: "Exporteren naar SD kaart..", - 1711312434: "Uitgebreide publieke sleutel", - 3981762528: "Fabrieksinstellingen", - 383371114: "Ontsleutelen is niet gelukt", - 3048830188: "PSBT laden is niet gelukt", - 4192663412: "Adres laden is niet gelukt", - 1996021743: "Sleutel laden is niet gelukt", - 1108715658: "Bericht laden is niet gelukt", - 1081425878: "Geheugensteun laden is niet gelukt", - 928667220: "Descriptor laden is niet gelukt", - 1620572516: "Wachtwoord laden is niet gelukt", - 2946146830: "Geheugensteun opslaan is niet gelukt", - 262248294: "Tarief:", - 104500973: "Voedingssnelheid", - 3313339187: "Bestandsnaam", - 1982637349: "Bestandsnaam %s OVERSCHRIJVEN op SD kaart?", - 4006602858: "Vingerafdruk niet ingesteld in PSBT", - 2542772894: "Firmware overschrijdt de maximale grootte: %d", - 3748840176: "Geflipte X-coördinaten", - 1406590538: "Fluit diameter", - 1077771640: "Vrij:", - 1893243331: "Uit data-opslag", - 1871146425: "Wis uw SD kaart volledig in een ander apparaat om te zorgen dat de gegevens onherstelbaar zijn", - 3549015533: "Geheugensteun genereren", - 3524220994: "Een BIP85 afgeleide geheugensteun genereren?", - 299338213: "Eigen ID gebruiken voor geheugensteun? Anders vingerafdruk gebruiken", - 602716148: "Ga", - 1198393582: "Goede entropie", - 133139382: "Hardware", - 3580020863: "Hex publieke sleutel", - 2691246967: "Hexadecimaal", - 3903754133: "Verberg geheugensteunen", - 3876651191: "Hoge kosten!", - 2880010062: "ID bestaat al", - 3242179508: "Invoer (%d):", - 3034883011: "Installeren?", - 3755547839: "Onvoldoende Entropie!", - 2032416055: "Onvoldoende entropie", - 2585599782: "Ongeldig adres", - 2874529150: "Ongeldige bootloader", - 4093416954: "Ongeldige geheugensteun lengte", - 1422874211: "Ongeldige publieke sleutel", - 237577215: "Ongeldige portemonnee:", - 4122897393: "Omkeren", - 640219121: "Omgekeerde kleuren", - 3000888649: "Sleutel", - 3264569915: "Sleutel niet verstrekt", - 3835918229: "Krux printer test QR", - 911419226: "LCD-type", - 766317539: "Taal", - 4180141032: "Laat leeg als je wilt dat Krux een geldig laatste woord kiest", - 3663022166: "Links", - 972436696: "Lijn vertraging", - 2176866982: "Lijn:", - 2820726296: "Geheugensteun laden", - 2369474953: "Portemonnee laden", - 2256441194: "Een vertrouwde portemonnee descriptor laden om adressen te bekijken?", - 237136240: "Laden vanaf SD kaart", - 879727077: "Laden vanaf SD kaart?", - 1936877965: "Laden van camera", - 669106195: "Laden?", - 3330705289: "Laden?", - 2596531078: "Camera laden..", - 2488179069: "Wijzigingsadressen laden..", - 336702608: "Laadprinter..", - 1201104769: "Ontvangstadressen laden..", - 3159494909: "Laden..", - 1177338798: "Taal", - 2817059741: "Opslaglocatie", - 2917810189: "Maximale lengte overschreden (%s)", - 2030045667: "Bericht", - 762611188: "Bericht:", - 3928301843: "Handtekening bestand mist", - 1948316555: "Geheugensteun", - 2123991188: "Geheugensteun ID", - 1443208255: "Geheugensteun en wachtwoord worden bewaard.", - 1746030071: "Geheugensteun is niet versleuteld", - 1237332019: "Aangepast:", - 1845376098: "Multisig", - 4265479636: "Native Segwit - 84 zal worden gebruikt", - 2939797024: "Netwerk", - 73574491: "Geheugensteun aanmaken", - 3634967631: "Nieuwe firmware gevonden.", - 4063104189: "Nee", - 2325721074: "Geen wachtwoordzin", - 4092516657: "Niet genoeg gedobbeld!", - 3089363813: "Nummers", - 1577637745: "Octaal", - 391304453: "Andere indelingen", - 3312581301: "PBKDF2 iter.", - 995862913: "Maak geperforeerde stippen zwart zodat ze worden gedetecteerd.", - 2987800462: "Papier breedte", - 3913146360: "Deel", - 3559456868: "Deel grootte", - 4249903283: "Wachtwoord", - 3745269737: "Pad komt niet overeen", - 500286397: "Patroon gevonden!", - 3040011773: "Alle opgeslagen versleutelde mnemonics en instellingen permanent uit het flashgeheugen verwijderen?", - 140802882: "Opslag", - 2578106186: "Pixelafwijkingsindex:", - 1703779997: "Platte tekst QR", - 3561756278: "Laadt een portemonnee descriptor in", - 784609464: "Duik tarief", - 3761518438: "Slechte entropie", - 3639136476: "Lage entropie gedetecteerd!", - 3037062877: "Test QR afdrukken", - 2362732578: "Tiny Seed afdrukken?", - 3123770978: "Afdrukken naar QR", - 3345150514: "Afdrukken naar QR?", - 3339507095: "Afdrukken?", - 1123106929: "Printer", - 3903571079: "Printer driver niet ingesteld!", - 3586624216: "Afdrukken..", - 3593149291: "Toch doorgaan?", - 2580599003: "Doorgaan?", - 3108881025: "Verwerken..", - 1848310591: "QR code", - 710709610: "RX pin", - 2697857197: "Ontvangen", - 1746677167: "Ontvangstadres", - 1658501467: "Regio:", - 3739634002: "Verwijderen %s?", - 1476462492: "Geheugensteun verwijderen", - 1557093280: "Firmwarebestanden van SD kaart verwijderen?", - 2817311427: "Res. - Formaat", - 2365886561: "Fabrieksinstellingen herstellen en opnieuw opstarten?", - 3091105710: "Terug naar QR-lezer", - 1662254634: "Controleer gescande gegevens en bewerk indien nodig", - 1963678224: "Rechts", - 770350922: "Dobbel een dobbelsteen minstens %d keer voor het genereren van een geheugensteun.", - 3271055013: "Roldistributie:", - 432366011: "Gedobbeld:", - 3976793317: "SD kaart", - 2736513298: "SD kaart niet gedetecteerd.", - 1166743226: "Gedobbelde SHA256:", - 817419367: "Momentopname van SHA256:", - 699906428: "QR-afbeelding opslaan op SD kaart", - 2163347007: "Opslaan op SD kaart", - 3531742595: "Opslaan op SD kaart?", - 2940025484: "Opgeslagen op SD kaart", - 763824768: "Schaal", - 4117455079: "Adres scannen", - 4038076821: "BIP-39 Wachtwoord Scannen", - 923277590: "QR Code Sleutel Scannen", - 4006316572: "Woorden 1 t/m 12 opnieuw scannen", - 2736506158: "Woorden 13 t/m 24 scannen", - 2029624154: "Schermbeveiligingstijd", - 289960586: "Scripttype", - 1022211991: "Beveiliging", - 4255182430: "Overschrijving naar jezelf, of wisselgeld (%d):", - 3753172956: "Zelf overschrijving:", - 473154195: "Instellingen", - 563836138: "Instellingen intern opgeslagen op flitser.", - 712533907: "Instellingen opgeslagen op SD kaart.", - 2377955518: "Shannon's entropie:", - 1825881236: "Afsluiten", - 3656120779: "Uitschakelingstijd:", - 2120776272: "Bezig met afsluiten..", - 1061961408: "Ondertekenen", - 2293863356: "Teken op QR-code", - 2879966040: "Teken op SD kaart", - 4282338366: "Ondertekenen?", - 746161122: "Handtekening", - 1988416729: "Bericht ondertekend", - 3672006076: "PSBT ondertekend", - 3406791302: "Ondertekenen..", - 2281377987: "Enkele sleutel", - 2019512665: "Grootte:", - 2344747135: "Sommige controles kunnen niet worden uitgevoerd.", - 2090568351: "Uitgaven (%d):", - 1260825919: "Uitgaven:", - 1232757391: "Statistieken voor nerds", - 3303592908: "Opslaan op apparaat", - 720041451: "Opslaan op SD kaart", - 3514476519: "Verander modus", - 1898550184: "TIK of ENTER voor opname", - 4228215415: "TX pin", - 2612594937: "Tekst", - 1454688268: "Thema", - 1180180513: "Thermisch", - 2258131455: "Gebruik de functie 'Apparaat wissen' om te zorgen dat de gegevens onherstelbaar zijn", - 2700207481: "Helderheid schakelen", - 725348723: "Hulpmiddelen", - 3684696112: "Aanraak gevoeligheid", - 2978718564: "Aanraakscherm", - 2732611775: "Meer proberen?", - 401829098: "Voer een BIP-39 wachtwoord in", - 2061556020: "Voer sleutel in", - 2089395053: "Eenheid", - 2786714360: "Upgrade afgerond.", - 2674953168: "Gebruik een donker achergrond.", - 2402455261: "Gebruik de camera als entropie voor het aanmaken van een nieuwe geheugensteun", - 3336226318: "Gebruikt:", - 4003084591: "Waarde %s is buiten bereik: [%s, %s]", - 989428076: "Waarde moet meerdere van %s zijn", - 3429519584: "Bezig met verifiëren..", - 1889659487: "Versie", - 4191058607: "Via camera", - 1254681955: "Via D20", - 525309547: "Via D6", - 590330112: "Via handmatige invoer", - 1947603760: "Via woorden", - 2504354847: "Wacht op opname", - 2076481321: "Portemonnee", - 2297028319: "Descriptor", - 4232654916: "Portemonnee descriptor", - 2587172867: "Portemonnee descriptor geladen!", - 2499782468: "Portemonnee descriptor niet gevonden.", - 2671738224: "Waarschuwing:", - 262410364: "Apparaat wissen", - 3522794335: "Apparaat wissen..", - 797660533: "Woord %d", - 3742424146: "Woord nummers", - 2965123464: "Woorden", - 1303016265: "Yes", - 2171149824: "is geen geldig adres", - 1875891934: "werd NIET GEVONDEN in de eerste %d adressen", -} +translation_array = [ + "Nieuwe firmware gevonden.", + "Bezig met verifiëren..", + "Installeren?", + "Firmware overschrijdt de maximale grootte: %d", + "Ongeldige publieke sleutel", + "Handtekening bestand mist", + "Ongeldige handtekening", + "Ongeldige bootloader", + "Verwerken..", + "Upgrade afgerond.", + "Firmwarebestanden van SD kaart verwijderen?", + "Bezig met afsluiten..", + "Enkele sleutel", + "%d van %d multisig", + "Native Segwit - 84 zal worden gebruikt", + "Account #0 zou worden aangenomen", + "Taal", + "Netwerk", + "Multisig", + "Scripttype", + "Baudratio", + "Papier breedte", + "TX pin", + "RX pin", + "Lijn vertraging", + "Schaal", + "Omkeren", + "Snijmethode", + "Eenheid", + "Fluit diameter", + "Duik tarief", + "Voedingssnelheid", + "Snijdiepte", + "Diepte per pas", + "Deel grootte", + "Rand opvulling", + "Thermisch", + "Driver", + "Debounce van knoppen", + "Aanraak gevoeligheid", + "Geflipte X-coördinaten", + "Omgekeerde kleuren", + "BGR-kleuren", + "LCD-type", + "Helderheid", + "Printer", + "Knoppen", + "Aanraakscherm", + "Weergave", + "Opslaglocatie", + "Versleutel modus", + "PBKDF2 iter.", + "Thema", + "Schermbeveiligingstijd", + "Uitschakelingstijd:", + "Verberg geheugensteunen", + "Hash Flash at Boot", + "Standaard portemonnee", + "Beveiliging", + "Hardware", + "Taal", + "Versleutelen", + "Opslag", + "Uiterlijk", + "Invoer (%d):", + "Uitgaven (%d):", + "Overschrijving naar jezelf, of wisselgeld (%d):", + "Tarief:", + "Uitgaven:", + "Zelf overschrijving:", + "Wisselgeld:", + "Ga", + "Fabrieksinstellingen herstellen en opnieuw opstarten?", + "PIN disabled", + "Enter a 6+ characters PIN", + "Confirm PIN", + "PINs do not match", + "PIN set successfully", + "Error saving PIN", + "SD kaart controleren..", + "Instellingen opgeslagen op SD kaart.", + "SD kaart niet gedetecteerd.", + "Wijzigingen blijven van kracht tot afsluiten.", + "Instellingen intern opgeslagen op flitser.", + "Fabrieksinstellingen", + "Set PIN", + "Disable PIN", + "Links", + "Rechts", + "Thema veranderen en opnieuw opstarten?", + "Waarde moet meerdere van %s zijn", + "Waarde %s is buiten bereik: [%s, %s]", + "Geheugensteun", + "Esc", + "Woord %d", + "Weet je het zeker?", + "Laden van camera", + "Laden vanaf SD kaart", + "Deel", + "Yes", + "Nee", + "Terug", + "Fout:", + "12 woorden", + "24 woorden", + "Dubbel geheugensteuntje", + "Current PIN", + "PIN", + "Invalid PIN", + "Goede entropie", + "Slechte entropie", + "Onvoldoende entropie", + "TIK of ENTER voor opname", + "Opname geannuleerd", + "Shannon's entropie:", + "(%d totaal)", + "Pixelafwijkingsindex:", + "Onvoldoende Entropie!", + "Afdrukken naar QR?", + "Laden vanaf SD kaart?", + "Laden?", + "Opslaan op SD kaart?", + "Opgeslagen op SD kaart", + "Bestandsnaam", + "Bestandsnaam %s OVERSCHRIJVEN op SD kaart?", + "Voer een BIP-39 wachtwoord in", + "BIP-39 Wachtwoord Scannen", + "Wachtwoord", + "Wachtwoord laden is niet gelukt", + "Maximale lengte overschreden (%s)", + "Account", + "Accountindex", + "Geheugensteun laden", + "Geheugensteun aanmaken", + "Instellingen", + "Hulpmiddelen", + "Over", + "Afsluiten", + "Via camera", + "Via handmatige invoer", + "Uit data-opslag", + "QR code", + "Binair raster", + "Woorden", + "Woord nummers", + "Via woorden", + "Via D6", + "Via D20", + "Gebruik de camera als entropie voor het aanmaken van een nieuwe geheugensteun", + "(Experimenteel)", + "Doorgaan?", + "Momentopname van SHA256:", + "Geen wachtwoordzin", + "Portemonnee laden", + "Aanpassen", + "Laden..", + "Ontsleutelen?", + "Sleutel niet verstrekt", + "Ontsleutelen is niet gelukt", + "Geheugensteun laden is niet gelukt", + "Ongeldige geheugensteun lengte", + "Laat leeg als je wilt dat Krux een geldig laatste woord kiest", + "Klaar?", + "Voer %d BIP-39 woorden in.", + "Voer elk woord van jouw BIP-39 geheugensteun in.", + "Decimaal", + "Hexadecimaal", + "Octaal", + "Voer elk woord van jouw BIP-39 geheugensteun in als een octaal van 1 tot 4000.", + "Voer elk woord van jouw BIP-39 geheugensteun in als een hexadecimaal van 1 tot 800.", + "Voer elk woord van jouw BIP-39 geheugensteun in als een nummer van 1 tot 2048.", + "Maak geperforeerde stippen zwart zodat ze worden gedetecteerd.", + "Gebruik een donker achergrond.", + "Richt de camera en back-upplaat op de juiste manier.", + "Versie", + "Anti reflecterend ingeschakeld", + "Anti reflecterend uitgeschakeld", + "Camera laden..", + "Grootte:", + "Aangemaakt:", + "Aangepast:", + "Afdrukken..", + "Controleer gescande gegevens en bewerk indien nodig", + "Woorden 1 t/m 12 opnieuw scannen", + "Wacht op opname", + "Woorden 13 t/m 24 scannen", + "Voer sleutel in", + "QR Code Sleutel Scannen", + "Sleutel", + "Sleutel laden is niet gelukt", + "Opslaan op apparaat", + "Opslaan op SD kaart", + "Versleutelde QR code", + "Geheugensteun is niet versleuteld", + "Extra entropie van de camera vereist voor AES-CBC-modus", + "Eigen ID gebruiken voor geheugensteun? Anders vingerafdruk gebruiken", + "Geheugensteun ID", + "ID bestaat al", + "Versleutelde geheugensteun was niet opgeslagen", + "Versleutelde geheugensteun is opgeslagen met ID:", + "Geheugensteun opslaan is niet gelukt", + "Verwijderen %s?", + "%s verwijderd.", + "Wis uw SD kaart volledig in een ander apparaat om te zorgen dat de gegevens onherstelbaar zijn", + "Gebruik de functie 'Apparaat wissen' om te zorgen dat de gegevens onherstelbaar zijn", + "Generating Flash Hash..", + "Flash Hash", + "Controleer SD kaart", + "Test QR afdrukken", + "QR code maken", + "Descriptoradressen", + "Geheugensteun verwijderen", + "Apparaat wissen", + "Set a PIN first", + "SD kaart", + "Gebruikt:", + "Vrij:", + "Bestanden verkennen?", + "Alle opgeslagen versleutelde mnemonics en instellingen permanent uit het flashgeheugen verwijderen?", + "Apparaat wissen..", + "Schakel het apparaat niet uit, het kan even duren voordat het klaar is.", + "Krux printer test QR", + "QR code maken van tekst?", + "Tekst", + "Aangepaste QR code", + "Regio:", + "Lijn:", + "Res. - Formaat", + "Verander modus", + "Terug naar QR-lezer", + "Helderheid schakelen", + "QR-afbeelding opslaan op SD kaart", + "Afdrukken naar QR", + "Terug naar menu", + "Laadprinter..", + "Exporteren naar SD kaart..", + "Printer driver niet ingesteld!", + "Bericht:", + "Adres", + "Ondertekenen?", + "Handtekening", + "Bericht laden is niet gelukt", + "Teken op QR-code", + "Teken op SD kaart", + "Bericht ondertekend", + "Hex publieke sleutel", + "Portemonnee descriptor", + "Een vertrouwde portemonnee descriptor laden om adressen te bekijken?", + "(alleen inzien)", + "Portemonnee descriptor niet gevonden.", + "Laden?", + "Descriptor laden is niet gelukt", + "Aanname accepteren?", + "Ongeldige portemonnee:", + "Portemonnee descriptor geladen!", + "Laadt een portemonnee descriptor in", + "Adres scannen", + "Ontvangstadres", + "Wisselgeldadres", + "Wijzigingsadressen laden..", + "Ontvangstadressen laden..", + "Ontvangen", + "Change", + "Adres laden is niet gelukt", + "Ongeldig adres", + "Controleer of dit adres bij deze portemonnee hoort?", + "%d tot %d", + "%d adressen gecontroleerd zonder overeenkomsten.", + "is geen geldig adres", + "werd NIET GEVONDEN in de eerste %d adressen", + "Meer proberen?", + "Onderliggende index", + "Backup geheugensteun", + "Uitgebreide publieke sleutel", + "Portemonnee", + "Ondertekenen", + "Wachtwoordzin voor portemonnee toevoegen of wijzigen?", + "Bij aanpassen van de portemonnee zal er een nieuwe sleutel gegenereerd worden.", + "Geheugensteun en wachtwoord worden bewaard.", + "Een BIP85 afgeleide geheugensteun genereren?", + "Descriptor", + "Bericht", + "Waarschuwing:", + "Sommige controles kunnen niet worden uitgevoerd.", + "PSBT laden is niet gelukt", + "Pad komt niet overeen", + "Vingerafdruk niet ingesteld in PSBT", + "Hoge kosten!", + "% van het bedrag.", + "Ondertekenen..", + "PSBT ondertekend", + "Opslaan op SD kaart", + "Versleuteld", + "Andere indelingen", + "Platte tekst QR", + "Nummers", + "Afdrukken?", + "Tiny Seed afdrukken?", + "Roldistributie:", + "Dobbel een dobbelsteen minstens %d keer voor het genereren van een geheugensteun.", + "Gedobbeld:", + "Niet genoeg gedobbeld!", + "Lage entropie gedetecteerd!", + "Patroon gevonden!", + "Toch doorgaan?", + "Statistieken voor nerds", + "Geheugensteun genereren", + "Gedobbelde SHA256:", +] diff --git a/src/krux/translations/pt_BR.py b/src/krux/translations/pt_BR.py index 7e32c1d2..ee0bda86 100644 --- a/src/krux/translations/pt_BR.py +++ b/src/krux/translations/pt_BR.py @@ -20,298 +20,313 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # pylint: disable=C0301 -translation_table = { - 232475068: "% do valor.", - 1185266064: "%d da %d multisig", - 1503087751: "%d a %d", - 1178563089: "removido.", - 1092222515: "(%d total)", - 3348584292: "(Experimental)", - 1099786887: "(Somente visualização)", - 2739590230: "12 palavras", - 1310058127: "24 palavras", - 1949634023: "Sobre", - 4287534872: "Aceitar suposições?", - 2995482424: "Conta", - 2415648848: "A conta #0 seria assumida", - 1043817877: "Índice da Conta", - 3439746594: "Adicionar ou alterar senha da carteira?", - 2143824150: "Entropia adicional da câmera necessária para o modo AES-CBC", - 3270727197: "Endereço", - 900375497: "Alinhe a câmera e a placa de backup corretamente.", - 88746165: "Antirreflexo desativado", - 1521033296: "Antirreflexo ativado", - 3857613120: "Aparência", - 1056821534: "Tem certeza?", - 1868069640: "Cores BGR", - 3455872521: "Voltar", - 4151330982: "Voltar ao Menu", - 2756316330: "Backup de Mnemônico", - 2256777600: "Assinatura Inválida", - 3937333362: "Baudrate", - 2046615409: "Grade binária", - 928727036: "Borda", - 2519455027: "Brilho", - 2363604010: "Botões", - 2038226551: "Debounce dos Botões", - 3138204438: "Captura cancelada", - 1207696150: "Troco", - 3126552510: "Endereços de Troco", - 1583186953: "Mudar o tema e reiniciar?", - 3768416405: "Troco:", - 388908871: "Alterações só durarão até o desligamento.", - 3442025874: "Verifique o cartão SD", - 3119547911: "Verificar se este endereço pertence a carteira?", - 1187826970: "Verificado %d endereços sem correspondências.", - 2470115694: "Verificando o cartão SD..", - 1851578965: "Índice Derivado", - 4094072796: "Gerar Código QR", - 167798282: "Gerar código QR do texto?", - 678449760: "Criado:", - 3513215254: "Código QR Customizado", - 3585411775: "Customizar", - 534274978: "Personalizar sua carteira gerará uma nova chave.", - 124617190: "Profundidade de Corte", - 597912140: "Método de Corte", - 2504034831: "Decimal", - 2751113454: "Descriptografar?", - 1272005728: "Carteira Padrão", - 4102535566: "Profundidade da Passagem", - 1712856005: "Endereços do Descritor", - 3278654271: "Display", - 3895447625: "Não desligue, pode demorar um pouco para concluir.", - 3836852788: "Feito?", - 690625786: "Duplo mnemônico", - 382368239: "Driver", - 3582575312: "Criptografado", - 1244124409: "Código QR Criptografado", - 2968548114: "Mnemonic criptografado não foi armazenado", - 781419966: "Mnemônico criptografado foi armazenado com ID:", - 350279787: "Criptografia", - 2601598799: "Modo de Criptografia", - 1821513079: "Insira %d palavras BIP-39.", - 3504179008: "Digite o número de cada palavra do seu mnemônico BIP-39, de 1 a 2048.", - 1100685007: "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em hexadecimal, de 1 a 800.", - 4090266642: "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em octal, de 1 a 4000.", - 2780625730: "Digite cada palavra do seu mnemônico BIP-39.", - 889040671: "Erro:", - 1505332462: "Esc", - 3838465623: "Explorar arquivos?", - 4170881190: "Exportando para o cartão SD..", - 1711312434: "Chave Pública Estendida", - 3981762528: "Configurações de Fábrica", - 383371114: "Falhou em descriptografar", - 3048830188: "Falhou ao carregar PSBT", - 4192663412: "Falhou ao carregar endereço", - 1996021743: "Falha ao carregar a chave", - 1108715658: "Falhou ao carregar mensagem", - 1081425878: "Falhou ao carregar mnemônico", - 928667220: "Falha ao carregar o descritor de saída", - 1620572516: "Falha ao carregar a senha", - 2946146830: "Falhou ao armazenar mnemônico", - 262248294: "Taxa:", - 104500973: "Taxa de Alimentação", - 3313339187: "Nome do arquivo", - 1982637349: "O nome do arquivo %s existe no cartão SD, substituir?", - 4006602858: "Impressão digital não definida no PSBT", - 2542772894: "Firmware excede o tamanho máximo: %d", - 3748840176: "Coordenadas X invertidas", - 1406590538: "Diâmetro da Fresa", - 1077771640: "Livre:", - 1893243331: "Do Armazenamento", - 1871146425: "Apague totalmente seu cartão SD em outro dispositivo para garantir que os dados sejam irrecuperáveis", - 3549015533: "Gerar Mnemônico", - 3524220994: "Gerar um mnemônico derivado BIP85?", - 299338213: "Dê a este mnemônico um ID personalizado? Caso contrário, a impressão digital atual será usada", - 602716148: "Ir", - 1198393582: "Boa entropia", - 133139382: "Hardware", - 3580020863: "Chave pública hexadecimal", - 2691246967: "Hexadecimal", - 3903754133: "Ocultar Mnemônicos", - 3876651191: "Taxas altas!", - 2880010062: "Id já existe", - 3242179508: "Entradas (%d):", - 3034883011: "Instalar?", - 3755547839: "Entropia insuficiente!", - 2032416055: "Entropia insuficiente", - 2585599782: "Endereço inválido", - 2874529150: "Bootloader inválido", - 4093416954: "Comprimento de mnemônico inválido", - 1422874211: "Chave pública inválida", - 237577215: "Carteira inválida:", - 4122897393: "Invertido", - 640219121: "Cores invertidas", - 3000888649: "Chave", - 3264569915: "A chave não foi fornecida", - 3835918229: "Teste de impressão de QR krux", - 911419226: "Tipo de LCD", - 766317539: "Língua", - 4180141032: "Deixe em branco se quiser que o Krux escolha uma palavra final válida", - 3663022166: "Esquerda", - 972436696: "Atraso de Linha", - 2176866982: "Linha:", - 2820726296: "Carregar Mnemônico", - 2369474953: "Carregar Carteira", - 2256441194: "Carregar um descritor de carteira confiável para visualizar endereços?", - 237136240: "Carregar do cartão SD", - 879727077: "Carregar do cartão SD?", - 1936877965: "Carregar da câmera", - 669106195: "Carregar um?", - 3330705289: "Carregar?", - 2596531078: "Carregando Câmera..", - 2488179069: "Carregando endereços de troco..", - 336702608: "Carregando impressora..", - 1201104769: "Carregando endereços de recebimento..", - 3159494909: "Carregando..", - 1177338798: "Idioma", - 2817059741: "Local", - 2917810189: "Comprimento máximo excedido (%s)", - 2030045667: "Mensagem", - 762611188: "Mensagem:", - 3928301843: "Arquivo de assinatura faltando", - 1948316555: "Mnemônico", - 2123991188: "ID do mnemônico", - 1443208255: "Mnemônico e senha serão mantidos.", - 1746030071: "Mnemônico não foi criptografado", - 1237332019: "Modificado:", - 1845376098: "Multisig", - 4265479636: "Segwit nativo - 84 seria assumido", - 2939797024: "Rede", - 73574491: "Novo Mnemônico", - 3634967631: "Novo firmware detectado.", - 4063104189: "Não", - 2325721074: "Sem Senha", - 4092516657: "Jogadas insuficientes!", - 3089363813: "Números", - 1577637745: "Octal", - 391304453: "Outros Formatos", - 3312581301: "Iter. PBKDF2", - 995862913: "Pinte os pontos perfurados de preto para que possam ser detectados.", - 2987800462: "Largura do papel", - 3913146360: "Parte", - 3559456868: "Tamanho da peça", - 4249903283: "Senha", - 3745269737: "Incompatibilidade de caminho", - 500286397: "Padrão detectado!", - 3040011773: "Remover permanentemente todos os mnemônicos criptografados e configurações armazenados da memória flash?", - 140802882: "Salvar", - 2578106186: "Índice de desvio de pixels:", - 1703779997: "QR em Texto", - 3561756278: "Carregue um descritor da carteira", - 784609464: "Taxa de Mergulho", - 3761518438: "Entropia fraca", - 3639136476: "Baixa entropia detectada!", - 3037062877: "Imprimir QR de teste", - 2362732578: "Imprimir Tiny Seed?", - 3123770978: "Imprimir QR", - 3345150514: "Imprimir QR?", - 3339507095: "Imprimir?", - 1123106929: "Impressora", - 3903571079: "Driver de impressora não está definido!", - 3586624216: "Imprimindo..", - 3593149291: "Continuar mesmo assim?", - 2580599003: "Seguir?", - 3108881025: "Processando..", - 1848310591: "Código QR", - 710709610: "Pino RX", - 2697857197: "Recebimento", - 1746677167: "Endereços de Recebimento", - 1658501467: "Região:", - 3739634002: "Excluir %s?", - 1476462492: "Excluir Mnemônico", - 1557093280: "Remover arquivos de firmware do cartão SD?", - 2817311427: "Res. - Formato", - 2365886561: "Restaurar as configurações de fábrica e reiniciar?", - 3091105710: "Retornar ao Visualizador de QR", - 1662254634: "Revise os dados, edite se necessário", - 1963678224: "Direita", - 770350922: "Role o dado pelo menos %d vezes para gerar um mnemônico.", - 3271055013: "Distribuição de jogadas:", - 432366011: "Jogadas:", - 3976793317: "Cartão SD", - 2736513298: "Cartão SD não detectado.", - 1166743226: "SHA256 de jogadas:", - 817419367: "Sha256 da imagem:", - 699906428: "Salvar imagem do QR no cartão SD", - 2163347007: "Salvar no cartão SD", - 3531742595: "Salvar no cartão SD?", - 2940025484: "Salvo no cartão SD", - 763824768: "Escala", - 4117455079: "Escanear Endereço", - 4038076821: "Escanear a senha BIP39", - 923277590: "Escanear Código QR da Chave", - 4006316572: "Escaneando as palavras 1-12 novamente", - 2736506158: "Escaneando as palavras 13-24", - 2029624154: "Tempo para protetor de tela", - 289960586: "Tipo de Script", - 1022211991: "Segurança", - 4255182430: "Autotransferência ou Troco (%d):", - 3753172956: "Autotransferência:", - 473154195: "Configurações", - 563836138: "Configurações armazenadas internamente no flash.", - 712533907: "Configurações armazenadas no cartão SD.", - 2377955518: "Entropia de Shannon:", - 1825881236: "Desligar", - 3656120779: "Tempo de desligamento", - 2120776272: "Desligando..", - 1061961408: "Assinar", - 2293863356: "Assinar para código QR", - 2879966040: "Assinar para cartão SD", - 4282338366: "Assinar?", - 746161122: "Assinatura", - 1988416729: "Mensagem Assinada", - 3672006076: "PSBT Assinada", - 3406791302: "Assinando..", - 2281377987: "Single-sig", - 2019512665: "Total:", - 2344747135: "Algumas verificações não podem ser realizadas.", - 2090568351: "Gastos (%d):", - 1260825919: "Gasto:", - 1232757391: "Estatísticas para Nerds", - 3303592908: "Armazene na Flash", - 720041451: "Armazene no Cartão SD", - 3514476519: "Deslize para mudar de modo", - 1898550184: "TOQUE ou ENTER para capturar", - 4228215415: "Pino TX", - 2612594937: "Texto", - 1454688268: "Tema", - 1180180513: "Térmica", - 2258131455: "Para garantir que os dados sejam irrecuperáveis, use o recurso Limpar Dispositivo", - 2700207481: "Alternar brilho", - 725348723: "Ferramentas", - 3684696112: "Limiar de Toque", - 2978718564: "Touchscreen", - 2732611775: "Tentar mais?", - 401829098: "Digitar a senha BIP39", - 2061556020: "Digite a Chave", - 2089395053: "Unidade", - 2786714360: "Atualização completa.", - 2674953168: "Use uma superfície de fundo preta.", - 2402455261: "Use a entropia da câmera para criar um novo mnemônico", - 3336226318: "Usado:", - 4003084591: "Valor %s fora do alcance: [ %s, %s]", - 989428076: "O valor deve ser múltiplo de %s", - 3429519584: "Verificando..", - 1889659487: "Versão", - 4191058607: "Pela Câmera", - 1254681955: "Via D20", - 525309547: "Via D6", - 590330112: "Por entrada manual", - 1947603760: "Via Palavras", - 2504354847: "Aguarde a captura", - 2076481321: "Carteira", - 2297028319: "Descritor de Carteira", - 4232654916: "Descritor da carteira", - 2587172867: "Descritor de saída da carteira carregado!", - 2499782468: "O descritor de saída da carteira não foi encontrado.", - 2671738224: "Aviso:", - 262410364: "Limpar Dispositivo", - 3522794335: "Limpando Dispositivo..", - 797660533: "Palavra %d", - 3742424146: "Números das Palavras", - 2965123464: "Palavras", - 1303016265: "Sim", - 2171149824: "é um endereço válido!", - 1875891934: "NÃO FOI ENCONTRADO nos primeiros %d endereços", -} +translation_array = [ + "Novo firmware detectado.", + "Verificando..", + "Instalar?", + "Firmware excede o tamanho máximo: %d", + "Chave pública inválida", + "Arquivo de assinatura faltando", + "Assinatura Inválida", + "Bootloader inválido", + "Processando..", + "Atualização completa.", + "Remover arquivos de firmware do cartão SD?", + "Desligando..", + "Single-sig", + "%d da %d multisig", + "Segwit nativo - 84 seria assumido", + "A conta #0 seria assumida", + "Idioma", + "Rede", + "Multisig", + "Tipo de Script", + "Baudrate", + "Largura do papel", + "Pino TX", + "Pino RX", + "Atraso de Linha", + "Escala", + "Invertido", + "Método de Corte", + "Unidade", + "Diâmetro da Fresa", + "Taxa de Mergulho", + "Taxa de Alimentação", + "Profundidade de Corte", + "Profundidade da Passagem", + "Tamanho da peça", + "Borda", + "Térmica", + "Driver", + "Debounce dos Botões", + "Limiar de Toque", + "Coordenadas X invertidas", + "Cores invertidas", + "Cores BGR", + "Tipo de LCD", + "Brilho", + "Impressora", + "Botões", + "Touchscreen", + "Display", + "Local", + "Modo de Criptografia", + "Iter. PBKDF2", + "Tema", + "Tempo para protetor de tela", + "Tempo de desligamento", + "Ocultar Mnemônicos", + "Hash Flash at Boot", + "Carteira Padrão", + "Segurança", + "Hardware", + "Língua", + "Criptografia", + "Salvar", + "Aparência", + "Entradas (%d):", + "Gastos (%d):", + "Autotransferência ou Troco (%d):", + "Taxa:", + "Gasto:", + "Autotransferência:", + "Troco:", + "Ir", + "Restaurar as configurações de fábrica e reiniciar?", + "PIN disabled", + "Enter a 6+ characters PIN", + "Confirm PIN", + "PINs do not match", + "PIN set successfully", + "Error saving PIN", + "Verificando o cartão SD..", + "Configurações armazenadas no cartão SD.", + "Cartão SD não detectado.", + "Alterações só durarão até o desligamento.", + "Configurações armazenadas internamente no flash.", + "Configurações de Fábrica", + "Set PIN", + "Disable PIN", + "Esquerda", + "Direita", + "Mudar o tema e reiniciar?", + "O valor deve ser múltiplo de %s", + "Valor %s fora do alcance: [ %s, %s]", + "Mnemônico", + "Esc", + "Palavra %d", + "Tem certeza?", + "Carregar da câmera", + "Carregar do cartão SD", + "Parte", + "Sim", + "Não", + "Voltar", + "Erro:", + "12 palavras", + "24 palavras", + "Duplo mnemônico", + "Current PIN", + "PIN", + "Invalid PIN", + "Boa entropia", + "Entropia fraca", + "Entropia insuficiente", + "TOQUE ou ENTER para capturar", + "Captura cancelada", + "Entropia de Shannon:", + "(%d total)", + "Índice de desvio de pixels:", + "Entropia insuficiente!", + "Imprimir QR?", + "Carregar do cartão SD?", + "Carregar?", + "Salvar no cartão SD?", + "Salvo no cartão SD", + "Nome do arquivo", + "O nome do arquivo %s existe no cartão SD, substituir?", + "Digitar a senha BIP39", + "Escanear a senha BIP39", + "Senha", + "Falha ao carregar a senha", + "Comprimento máximo excedido (%s)", + "Conta", + "Índice da Conta", + "Carregar Mnemônico", + "Novo Mnemônico", + "Configurações", + "Ferramentas", + "Sobre", + "Desligar", + "Pela Câmera", + "Por entrada manual", + "Do Armazenamento", + "Código QR", + "Grade binária", + "Palavras", + "Números das Palavras", + "Via Palavras", + "Via D6", + "Via D20", + "Use a entropia da câmera para criar um novo mnemônico", + "(Experimental)", + "Seguir?", + "Sha256 da imagem:", + "Sem Senha", + "Carregar Carteira", + "Customizar", + "Carregando..", + "Descriptografar?", + "A chave não foi fornecida", + "Falhou em descriptografar", + "Falhou ao carregar mnemônico", + "Comprimento de mnemônico inválido", + "Deixe em branco se quiser que o Krux escolha uma palavra final válida", + "Feito?", + "Insira %d palavras BIP-39.", + "Digite cada palavra do seu mnemônico BIP-39.", + "Decimal", + "Hexadecimal", + "Octal", + "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em octal, de 1 a 4000.", + "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em hexadecimal, de 1 a 800.", + "Digite o número de cada palavra do seu mnemônico BIP-39, de 1 a 2048.", + "Pinte os pontos perfurados de preto para que possam ser detectados.", + "Use uma superfície de fundo preta.", + "Alinhe a câmera e a placa de backup corretamente.", + "Versão", + "Antirreflexo ativado", + "Antirreflexo desativado", + "Carregando Câmera..", + "Total:", + "Criado:", + "Modificado:", + "Imprimindo..", + "Revise os dados, edite se necessário", + "Escaneando as palavras 1-12 novamente", + "Aguarde a captura", + "Escaneando as palavras 13-24", + "Digite a Chave", + "Escanear Código QR da Chave", + "Chave", + "Falha ao carregar a chave", + "Armazene na Flash", + "Armazene no Cartão SD", + "Código QR Criptografado", + "Mnemônico não foi criptografado", + "Entropia adicional da câmera necessária para o modo AES-CBC", + "Dê a este mnemônico um ID personalizado? Caso contrário, a impressão digital atual será usada", + "ID do mnemônico", + "Id já existe", + "Mnemonic criptografado não foi armazenado", + "Mnemônico criptografado foi armazenado com ID:", + "Falhou ao armazenar mnemônico", + "Excluir %s?", + "removido.", + "Apague totalmente seu cartão SD em outro dispositivo para garantir que os dados sejam irrecuperáveis", + "Para garantir que os dados sejam irrecuperáveis, use o recurso Limpar Dispositivo", + "Generating Flash Hash..", + "Flash Hash", + "Verifique o cartão SD", + "Imprimir QR de teste", + "Gerar Código QR", + "Endereços do Descritor", + "Excluir Mnemônico", + "Limpar Dispositivo", + "Set a PIN first", + "Cartão SD", + "Usado:", + "Livre:", + "Explorar arquivos?", + "Remover permanentemente todos os mnemônicos criptografados e configurações armazenados da memória flash?", + "Limpando Dispositivo..", + "Não desligue, pode demorar um pouco para concluir.", + "Teste de impressão de QR krux", + "Gerar código QR do texto?", + "Texto", + "Código QR Customizado", + "Região:", + "Linha:", + "Res. - Formato", + "Deslize para mudar de modo", + "Retornar ao Visualizador de QR", + "Alternar brilho", + "Salvar imagem do QR no cartão SD", + "Imprimir QR", + "Voltar ao Menu", + "Carregando impressora..", + "Exportando para o cartão SD..", + "Driver de impressora não está definido!", + "Mensagem:", + "Endereço", + "Assinar?", + "Assinatura", + "Falhou ao carregar mensagem", + "Assinar para código QR", + "Assinar para cartão SD", + "Mensagem Assinada", + "Chave pública hexadecimal", + "Descritor da carteira", + "Carregar um descritor de carteira confiável para visualizar endereços?", + "(Somente visualização)", + "O descritor de saída da carteira não foi encontrado.", + "Carregar um?", + "Falha ao carregar o descritor de saída", + "Aceitar suposições?", + "Carteira inválida:", + "Descritor de saída da carteira carregado!", + "Carregue um descritor da carteira", + "Escanear Endereço", + "Endereços de Recebimento", + "Endereços de Troco", + "Carregando endereços de troco..", + "Carregando endereços de recebimento..", + "Recebimento", + "Troco", + "Falhou ao carregar endereço", + "Endereço inválido", + "Verificar se este endereço pertence a carteira?", + "%d a %d", + "Verificado %d endereços sem correspondências.", + "é um endereço válido!", + "NÃO FOI ENCONTRADO nos primeiros %d endereços", + "Tentar mais?", + "Índice Derivado", + "Backup de Mnemônico", + "Chave Pública Estendida", + "Carteira", + "Assinar", + "Adicionar ou alterar senha da carteira?", + "Personalizar sua carteira gerará uma nova chave.", + "Mnemônico e senha serão mantidos.", + "Gerar um mnemônico derivado BIP85?", + "Descritor de Carteira", + "Mensagem", + "Aviso:", + "Algumas verificações não podem ser realizadas.", + "Falhou ao carregar PSBT", + "Incompatibilidade de caminho", + "Impressão digital não definida no PSBT", + "Taxas altas!", + "% do valor.", + "Assinando..", + "PSBT Assinada", + "Salvar no cartão SD", + "Criptografado", + "Outros Formatos", + "QR em Texto", + "Números", + "Imprimir?", + "Imprimir Tiny Seed?", + "Distribuição de jogadas:", + "Role o dado pelo menos %d vezes para gerar um mnemônico.", + "Jogadas:", + "Jogadas insuficientes!", + "Baixa entropia detectada!", + "Padrão detectado!", + "Continuar mesmo assim?", + "Estatísticas para Nerds", + "Gerar Mnemônico", + "SHA256 de jogadas:", +] diff --git a/src/krux/translations/ru_RU.py b/src/krux/translations/ru_RU.py index 25482eff..1ffe5fbb 100644 --- a/src/krux/translations/ru_RU.py +++ b/src/krux/translations/ru_RU.py @@ -20,298 +20,313 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # pylint: disable=C0301 -translation_table = { - 232475068: "% от суммы.", - 1185266064: "%d из %d мультиподпись", - 1503087751: "%d к %d", - 1178563089: "%s удален.", - 1092222515: "(%d всего)", - 3348584292: "(Эксперементальный)", - 1099786887: "(Только часы)", - 2739590230: "12 слов", - 1310058127: "24 слова", - 1949634023: "О Программе", - 4287534872: "Принять предположение?", - 2995482424: "Учетная запись", - 2415648848: "Будет принят счет №0", - 1043817877: "Индекс счета", - 3439746594: "Добавить или изменить пароль кошелька?", - 2143824150: "Для режима AES-CBC требуется дополнительная энтропия от камеры", - 3270727197: "Адрес", - 900375497: "Правильно совместите камеру и резервную пластину.", - 88746165: "Антиблик отключен", - 1521033296: "Антиблик включен", - 3857613120: "Внешний Вид", - 1056821534: "Вы уверены?", - 1868069640: "Цвета BGR", - 3455872521: "Назад", - 4151330982: "Назад в Mеню", - 2756316330: "Резервная мнемоника", - 2256777600: "Плохая подпись", - 3937333362: "Скорость Передачи Данных", - 2046615409: "Двоичная сетка", - 928727036: "Заполнение Границ", - 2519455027: "Яркость", - 2363604010: "Кнопки", - 2038226551: "Антидребезг кнопок", - 3138204438: "Захват отменен", - 1207696150: "Сдача", - 3126552510: "Адрес Сдачи", - 1583186953: "Сменить тему и перезагрузить?", - 3768416405: "Сдача:", - 388908871: "Изменения будут храниться до выключения.", - 3442025874: "Проверить SD Карту", - 3119547911: "Проверить, что адрес принадлежит этому кошельку?", - 1187826970: "Проверено %d адресов без совпадений.", - 2470115694: "Проверка SD карты..", - 1851578965: "Дочерний индекс", - 4094072796: "Создать QR Код", - 167798282: "Создать QR код из текста?", - 678449760: "Создано:", - 3513215254: "Пользовательский QR Код", - 3585411775: "Настроить", - 534274978: "Настройка вашего кошелька создаст новый ключ.", - 124617190: "Глубина Резки", - 597912140: "Метод Резки", - 2504034831: "Десятичный", - 2751113454: "Расшифровать?", - 1272005728: "Кошелек по умолчанию", - 4102535566: "Глубина за Проход", - 1712856005: "Адреса дескрипторов", - 3278654271: "Дисплеи", - 3895447625: "Не выключайте питание, это может занять некоторое время.", - 3836852788: "Готово?", - 690625786: "Двойная мнемоника", - 382368239: "Драйвер", - 3582575312: "Зашифровано", - 1244124409: "Зашифрованный QR Код", - 2968548114: "Зашифрованная мнемоника не была сохранена", - 781419966: "Зашифрованная мнемоника была сохранена с ID:", - 350279787: "Шифрование", - 2601598799: "Метод Шифрования", - 1821513079: "Введите %d слов BIP-39.", - 3504179008: "Введите каждое слово вашей мнемоники BIP-39 в виде числа от 1 до 2048.", - 1100685007: "Введите каждое слово вашей мнемоники BIP-39 в виде шестнадцатеричного числа от 1 до 800.", - 4090266642: "Введите каждое слово вашей мнемоники BIP-39 в виде восьмеричного числа от 1 до 4000.", - 2780625730: "Введите каждое слово вашей BIP-39 мнемоники.", - 889040671: "Ошибка:", - 1505332462: "Выйти", - 3838465623: "Исследовать файлы?", - 4170881190: "Экспортирование на SD карту..", - 1711312434: "Расширенный Публичный Ключ", - 3981762528: "Заводские Настройки", - 383371114: "Не удалось расшифровать", - 3048830188: "Не удалось загрузить PSBT", - 4192663412: "Не удалось загрузить адрес", - 1996021743: "Не удалось загрузить ключ", - 1108715658: "Не удалось загрузить сообщение", - 1081425878: "Не удалось загрузить мнемонику", - 928667220: "Не удалось загрузить выходной дескриптор", - 1620572516: "Не удалось загрузить фразу-пароль", - 2946146830: "Не удалось сохранить мнемонику", - 262248294: "Комиссия:", - 104500973: "Скорость Подачи", - 3313339187: "Имя файла", - 1982637349: "Файл %s существует на SD карте, перезаписать?", - 4006602858: "Отпечаток пальца не установлен в PSBT", - 2542772894: "Прошивка превышает максимальный размер: %d", - 3748840176: "Перевернутые координаты X", - 1406590538: "Диаметр Флюта", - 1077771640: "Свободно:", - 1893243331: "Из Памяти", - 1871146425: "Полностью стерите SD-карту в другом устройстве, чтобы убедиться, что данные не восстановимы", - 3549015533: "Создать Мнемонику", - 3524220994: "Сгенерировать дочернюю мнемонику BIP85?", - 299338213: "Назначить этой мнемоники кастомный ID? В ином случае будет использован текущий фингерпринт", - 602716148: "OK", - 1198393582: "Хорошая энтропия", - 133139382: "Аппаратное Обеспечение", - 3580020863: "Шестнадцатеричный Публичный Ключ", - 2691246967: "Шестнадцатеричный", - 3903754133: "Скрыть мнемоники", - 3876651191: "Высокие комиссии!", - 2880010062: "ID уже существует", - 3242179508: "Входы (%d):", - 3034883011: "Установить?", - 3755547839: "Недостаточная Энтропия!", - 2032416055: "Недостаточная энтропия", - 2585599782: "Неверный адрес", - 2874529150: "Неверный загрузчик", - 4093416954: "Неверная длина мнемоники", - 1422874211: "Неверный публичный ключ", - 237577215: "Неверный кошелек:", - 4122897393: "Инвертировать", - 640219121: "Перевернутые цвета", - 3000888649: "Ключ", - 3264569915: "Ключ не предоставлен", - 3835918229: "Тестовый QR Принтера Krux", - 911419226: "Тип ЖК-дисплея", - 766317539: "Язык", - 4180141032: "Оставьте пустым, если хотите, чтобы Krux выбрал подходящее последнее слово", - 3663022166: "Влево", - 972436696: "Задержка Линии", - 2176866982: "Линия:", - 2820726296: "Загрузить Мнемонику", - 2369474953: "Загрузить кошелек", - 2256441194: "Загрузить дескриптор доверенного кошелька для просмотра адресов?", - 237136240: "Загрузка с SD-карты", - 879727077: "Загрузить с SD карты?", - 1936877965: "Из камеры", - 669106195: "Загрузить один?", - 3330705289: "Загрузить?", - 2596531078: "Загрузка Камеры..", - 2488179069: "Загрузка адресов изменения..", - 336702608: "Загрузка принтера..", - 1201104769: "Загрузка адресов получения..", - 3159494909: "Загрузка..", - 1177338798: "Локаль", - 2817059741: "Расположение", - 2917810189: "Максимальная длина превышена (%s)", - 2030045667: "Сообщение", - 762611188: "Сообщение:", - 3928301843: "Отсутствует файл подписи", - 1948316555: "Мнемоника", - 2123991188: "ID Мнемоники", - 1443208255: "Мнемоника и парольная фраза будут сохранены.", - 1746030071: "Мнемоника не была зашифрована", - 1237332019: "Изменено:", - 1845376098: "Мультиподпись", - 4265479636: "Native Segwit - 84 будет принято", - 2939797024: "Сеть", - 73574491: "Новая Мнемоника", - 3634967631: "Обнаружена новая прошивка.", - 4063104189: "Нет", - 2325721074: "Нет Фраза-пароль", - 4092516657: "Недостаточно бросков!", - 3089363813: "Числа", - 1577637745: "Восьмеричный", - 391304453: "Другие форматы", - 3312581301: "PBKDF2 Итерации", - 995862913: "Закрасьте перфорированные точки черным цветом, чтобы их можно было обнаружить.", - 2987800462: "Ширина Бумаги", - 3913146360: "Часть", - 3559456868: "Размер Части", - 4249903283: "Фраза-пароль", - 3745269737: "Несоответствие пути", - 500286397: "Образец обнаружен!", - 3040011773: "Окончательно удалить все сохраненные зашифрованные мнемоники и настройки из флеш-памяти?", - 140802882: "Постоянная Память", - 2578106186: "Индекс отклонения пикселей:", - 1703779997: "QR Открытым Текстом", - 3561756278: "Пожалуйста загрузите выходной дескриптор кошелька", - 784609464: "Скорость Погружения", - 3761518438: "Плохая энтропия", - 3639136476: "Обнаружена плохая энтропия!", - 3037062877: "Напечатать Тестовый QR", - 2362732578: "Распечатать Tiny Seed?", - 3123770978: "Печать в QR", - 3345150514: "Напечатать в виде QR?", - 3339507095: "Печатать?", - 1123106929: "Принтер", - 3903571079: "Драйвер Принтера не установлен!", - 3586624216: "Идет печать..", - 3593149291: "Все равно продолжить?", - 2580599003: "Продолжить?", - 3108881025: "Обработка..", - 1848310591: "QR Код", - 710709610: "RX Пин", - 2697857197: "Получить", - 1746677167: "Адрес Получения", - 1658501467: "Регион:", - 3739634002: "Удалить %s?", - 1476462492: "Удалить Мнемонику", - 1557093280: "Удалить файлы прошивки с SD-карты?", - 2817311427: "Разреш. - Формат", - 2365886561: "Восстановить заводские настройки и перезагрузить?", - 3091105710: "Вернуться к QR-просмотрщику", - 1662254634: "Просмотрите отсканированные данные, отредактируйте при необходимости", - 1963678224: "Вправо", - 770350922: "Бросьте кубик не менее %d раз, чтобы сгенерировать мнемонику.", - 3271055013: "Распределение бросков:", - 432366011: "Броски:", - 3976793317: "SD карта", - 2736513298: "SD карта не обнаружена.", - 1166743226: "SHA256 бросков:", - 817419367: "SHA256 снэпшота:", - 699906428: "Сохранить QR-изображение на SD-карту", - 2163347007: "Сохранить на SD-карту", - 3531742595: "Сохранить на SD карту?", - 2940025484: "Сохранено на SD карту", - 763824768: "Шкала", - 4117455079: "Отсканировать Адрес", - 4038076821: "Отсканировать BIP39 фразу-пароль", - 923277590: "Отсканировать Ключ QR код", - 4006316572: "Сканирование слов 1-12 снова", - 2736506158: "Сканирование слов 13-24", - 2029624154: "Время Экранной Заставки", - 289960586: "Тип скрипта", - 1022211991: "Охрана", - 4255182430: "Трансфер самому себе или Сдача (%d):", - 3753172956: "Перевод самому себе:", - 473154195: "Настройки", - 563836138: "Настройки хранятся во флэш-памяти.", - 712533907: "Настройки сохранены на SD-карте.", - 2377955518: "Энтропия Шеннона:", - 1825881236: "Выключить", - 3656120779: "Время выключения", - 2120776272: "Выключение..", - 1061961408: "Подписать", - 2293863356: "Подписать QR-код", - 2879966040: "Подписать на SD-карте", - 4282338366: "Подписать?", - 746161122: "Подпись", - 1988416729: "Подписанное Сообщение", - 3672006076: "Подписанное PSBT", - 3406791302: "Подписание..", - 2281377987: "Одна подпись", - 2019512665: "Размер:", - 2344747135: "Некоторые проверки не могут быть выполнены.", - 2090568351: "Расход (%d):", - 1260825919: "Расход:", - 1232757391: "Статистика для Гиков", - 3303592908: "Сохранить на Флэш Память", - 720041451: "Сохранить на SD Карту", - 3514476519: "Свайпните, чтобы сменить режим", - 1898550184: "ПРИКОСНИТЕСЬ или нажмите ВВОД, чтобы захватить", - 4228215415: "TX Пин", - 2612594937: "Текст", - 1454688268: "Тема", - 1180180513: "Термальный", - 2258131455: "Для гарантии невосстановления данных используйте функцию Очистки Устройства", - 2700207481: "Регулировка Яркости", - 725348723: "Инструменты", - 3684696112: "Чувствительность", - 2978718564: "Тачскрин", - 2732611775: "Попробовать ещё?", - 401829098: "Ввести BIP39 фразу-пароль", - 2061556020: "Ввести Ключ", - 2089395053: "Единица Измерения", - 2786714360: "Обновление завершено.", - 2674953168: "Использовать черную фоновую поверхность.", - 2402455261: "Использовать энтропию камеры, чтобы создать новую мнемонику", - 3336226318: "Использовано:", - 4003084591: "Значение %s вне диапозона: [%s, %s]", - 989428076: "Значение должно быть кратным %s", - 3429519584: "Проверка..", - 1889659487: "Версия", - 4191058607: "С Помощью Камеры", - 1254681955: "С Помощью D20", - 525309547: "С Помощью D6", - 590330112: "С Помощью Ручного Ввода", - 1947603760: "Через Слово", - 2504354847: "Дождитесь Захвата", - 2076481321: "Кошелек", - 2297028319: "Дескриптор Кошелька", - 4232654916: "Выходной дескриптор кошелька", - 2587172867: "Выходной дескриптор кошелька загружен!", - 2499782468: "Выходной дескриптор кошелька не найден.", - 2671738224: "Предупреждение:", - 262410364: "Очистка Устройства", - 3522794335: "Очистка Устройства..", - 797660533: "Слово %d", - 3742424146: "Числа Слов", - 2965123464: "Слова", - 1303016265: "Да", - 2171149824: "некорректный адрес", - 1875891934: "нЕ НАЙДЕНО в первых %d адресах", -} +translation_array = [ + "Обнаружена новая прошивка.", + "Проверка..", + "Установить?", + "Прошивка превышает максимальный размер: %d", + "Неверный публичный ключ", + "Отсутствует файл подписи", + "Плохая подпись", + "Неверный загрузчик", + "Обработка..", + "Обновление завершено.", + "Удалить файлы прошивки с SD-карты?", + "Выключение..", + "Одна подпись", + "%d из %d мультиподпись", + "Native Segwit - 84 будет принято", + "Будет принят счет №0", + "Локаль", + "Сеть", + "Мультиподпись", + "Тип скрипта", + "Скорость Передачи Данных", + "Ширина Бумаги", + "TX Пин", + "RX Пин", + "Задержка Линии", + "Шкала", + "Инвертировать", + "Метод Резки", + "Единица Измерения", + "Диаметр Флюта", + "Скорость Погружения", + "Скорость Подачи", + "Глубина Резки", + "Глубина за Проход", + "Размер Части", + "Заполнение Границ", + "Термальный", + "Драйвер", + "Антидребезг кнопок", + "Чувствительность", + "Перевернутые координаты X", + "Перевернутые цвета", + "Цвета BGR", + "Тип ЖК-дисплея", + "Яркость", + "Принтер", + "Кнопки", + "Тачскрин", + "Дисплеи", + "Расположение", + "Метод Шифрования", + "PBKDF2 Итерации", + "Тема", + "Время Экранной Заставки", + "Время выключения", + "Скрыть мнемоники", + "Hash Flash at Boot", + "Кошелек по умолчанию", + "Охрана", + "Аппаратное Обеспечение", + "Язык", + "Шифрование", + "Постоянная Память", + "Внешний Вид", + "Входы (%d):", + "Расход (%d):", + "Трансфер самому себе или Сдача (%d):", + "Комиссия:", + "Расход:", + "Перевод самому себе:", + "Сдача:", + "OK", + "Восстановить заводские настройки и перезагрузить?", + "PIN disabled", + "Enter a 6+ characters PIN", + "Confirm PIN", + "PINs do not match", + "PIN set successfully", + "Error saving PIN", + "Проверка SD карты..", + "Настройки сохранены на SD-карте.", + "SD карта не обнаружена.", + "Изменения будут храниться до выключения.", + "Настройки хранятся во флэш-памяти.", + "Заводские Настройки", + "Set PIN", + "Disable PIN", + "Влево", + "Вправо", + "Сменить тему и перезагрузить?", + "Значение должно быть кратным %s", + "Значение %s вне диапозона: [%s, %s]", + "Мнемоника", + "Выйти", + "Слово %d", + "Вы уверены?", + "Из камеры", + "Загрузка с SD-карты", + "Часть", + "Да", + "Нет", + "Назад", + "Ошибка:", + "12 слов", + "24 слова", + "Двойная мнемоника", + "Current PIN", + "PIN", + "Invalid PIN", + "Хорошая энтропия", + "Плохая энтропия", + "Недостаточная энтропия", + "ПРИКОСНИТЕСЬ или нажмите ВВОД, чтобы захватить", + "Захват отменен", + "Энтропия Шеннона:", + "(%d всего)", + "Индекс отклонения пикселей:", + "Недостаточная Энтропия!", + "Напечатать в виде QR?", + "Загрузить с SD карты?", + "Загрузить?", + "Сохранить на SD карту?", + "Сохранено на SD карту", + "Имя файла", + "Файл %s существует на SD карте, перезаписать?", + "Ввести BIP39 фразу-пароль", + "Отсканировать BIP39 фразу-пароль", + "Фраза-пароль", + "Не удалось загрузить фразу-пароль", + "Максимальная длина превышена (%s)", + "Учетная запись", + "Индекс счета", + "Загрузить Мнемонику", + "Новая Мнемоника", + "Настройки", + "Инструменты", + "О Программе", + "Выключить", + "С Помощью Камеры", + "С Помощью Ручного Ввода", + "Из Памяти", + "QR Код", + "Двоичная сетка", + "Слова", + "Числа Слов", + "Через Слово", + "С Помощью D6", + "С Помощью D20", + "Использовать энтропию камеры, чтобы создать новую мнемонику", + "(Эксперементальный)", + "Продолжить?", + "SHA256 снэпшота:", + "Нет Фраза-пароль", + "Загрузить кошелек", + "Настроить", + "Загрузка..", + "Расшифровать?", + "Ключ не предоставлен", + "Не удалось расшифровать", + "Не удалось загрузить мнемонику", + "Неверная длина мнемоники", + "Оставьте пустым, если хотите, чтобы Krux выбрал подходящее последнее слово", + "Готово?", + "Введите %d слов BIP-39.", + "Введите каждое слово вашей BIP-39 мнемоники.", + "Десятичный", + "Шестнадцатеричный", + "Восьмеричный", + "Введите каждое слово вашей мнемоники BIP-39 в виде восьмеричного числа от 1 до 4000.", + "Введите каждое слово вашей мнемоники BIP-39 в виде шестнадцатеричного числа от 1 до 800.", + "Введите каждое слово вашей мнемоники BIP-39 в виде числа от 1 до 2048.", + "Закрасьте перфорированные точки черным цветом, чтобы их можно было обнаружить.", + "Использовать черную фоновую поверхность.", + "Правильно совместите камеру и резервную пластину.", + "Версия", + "Антиблик включен", + "Антиблик отключен", + "Загрузка Камеры..", + "Размер:", + "Создано:", + "Изменено:", + "Идет печать..", + "Просмотрите отсканированные данные, отредактируйте при необходимости", + "Сканирование слов 1-12 снова", + "Дождитесь Захвата", + "Сканирование слов 13-24", + "Ввести Ключ", + "Отсканировать Ключ QR код", + "Ключ", + "Не удалось загрузить ключ", + "Сохранить на Флэш Память", + "Сохранить на SD Карту", + "Зашифрованный QR Код", + "Мнемоника не была зашифрована", + "Для режима AES-CBC требуется дополнительная энтропия от камеры", + "Назначить этой мнемоники кастомный ID? В ином случае будет использован текущий фингерпринт", + "ID Мнемоники", + "ID уже существует", + "Зашифрованная мнемоника не была сохранена", + "Зашифрованная мнемоника была сохранена с ID:", + "Не удалось сохранить мнемонику", + "Удалить %s?", + "%s удален.", + "Полностью стерите SD-карту в другом устройстве, чтобы убедиться, что данные не восстановимы", + "Для гарантии невосстановления данных используйте функцию Очистки Устройства", + "Generating Flash Hash..", + "Flash Hash", + "Проверить SD Карту", + "Напечатать Тестовый QR", + "Создать QR Код", + "Адреса дескрипторов", + "Удалить Мнемонику", + "Очистка Устройства", + "Set a PIN first", + "SD карта", + "Использовано:", + "Свободно:", + "Исследовать файлы?", + "Окончательно удалить все сохраненные зашифрованные мнемоники и настройки из флеш-памяти?", + "Очистка Устройства..", + "Не выключайте питание, это может занять некоторое время.", + "Тестовый QR Принтера Krux", + "Создать QR код из текста?", + "Текст", + "Пользовательский QR Код", + "Регион:", + "Линия:", + "Разреш. - Формат", + "Свайпните, чтобы сменить режим", + "Вернуться к QR-просмотрщику", + "Регулировка Яркости", + "Сохранить QR-изображение на SD-карту", + "Печать в QR", + "Назад в Mеню", + "Загрузка принтера..", + "Экспортирование на SD карту..", + "Драйвер Принтера не установлен!", + "Сообщение:", + "Адрес", + "Подписать?", + "Подпись", + "Не удалось загрузить сообщение", + "Подписать QR-код", + "Подписать на SD-карте", + "Подписанное Сообщение", + "Шестнадцатеричный Публичный Ключ", + "Выходной дескриптор кошелька", + "Загрузить дескриптор доверенного кошелька для просмотра адресов?", + "(Только часы)", + "Выходной дескриптор кошелька не найден.", + "Загрузить один?", + "Не удалось загрузить выходной дескриптор", + "Принять предположение?", + "Неверный кошелек:", + "Выходной дескриптор кошелька загружен!", + "Пожалуйста загрузите выходной дескриптор кошелька", + "Отсканировать Адрес", + "Адрес Получения", + "Адрес Сдачи", + "Загрузка адресов изменения..", + "Загрузка адресов получения..", + "Получить", + "Сдача", + "Не удалось загрузить адрес", + "Неверный адрес", + "Проверить, что адрес принадлежит этому кошельку?", + "%d к %d", + "Проверено %d адресов без совпадений.", + "некорректный адрес", + "нЕ НАЙДЕНО в первых %d адресах", + "Попробовать ещё?", + "Дочерний индекс", + "Резервная мнемоника", + "Расширенный Публичный Ключ", + "Кошелек", + "Подписать", + "Добавить или изменить пароль кошелька?", + "Настройка вашего кошелька создаст новый ключ.", + "Мнемоника и парольная фраза будут сохранены.", + "Сгенерировать дочернюю мнемонику BIP85?", + "Дескриптор Кошелька", + "Сообщение", + "Предупреждение:", + "Некоторые проверки не могут быть выполнены.", + "Не удалось загрузить PSBT", + "Несоответствие пути", + "Отпечаток пальца не установлен в PSBT", + "Высокие комиссии!", + "% от суммы.", + "Подписание..", + "Подписанное PSBT", + "Сохранить на SD-карту", + "Зашифровано", + "Другие форматы", + "QR Открытым Текстом", + "Числа", + "Печатать?", + "Распечатать Tiny Seed?", + "Распределение бросков:", + "Бросьте кубик не менее %d раз, чтобы сгенерировать мнемонику.", + "Броски:", + "Недостаточно бросков!", + "Обнаружена плохая энтропия!", + "Образец обнаружен!", + "Все равно продолжить?", + "Статистика для Гиков", + "Создать Мнемонику", + "SHA256 бросков:", +] diff --git a/src/krux/translations/tr_TR.py b/src/krux/translations/tr_TR.py index 393b8405..710ecea4 100644 --- a/src/krux/translations/tr_TR.py +++ b/src/krux/translations/tr_TR.py @@ -20,298 +20,313 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # pylint: disable=C0301 -translation_table = { - 232475068: "tutarın %'si.", - 1185266064: "%d / %d çoklu imza", - 1503087751: "%d to %d", - 1178563089: "%s kaldırıldı.", - 1092222515: "(toplam %d)", - 3348584292: "(Deneysel)", - 1099786887: "(sadece izle)", - 2739590230: "12 kelime", - 1310058127: "24 kelime", - 1949634023: "Hakkında", - 4287534872: "Varsayım kabul edilsin mi?", - 2995482424: "Hesap", - 2415648848: "#0 numaralı hesap varsayılacaktır", - 1043817877: "Hesap Endeksi", - 3439746594: "Cüzdan parolası eklensin mi veya değiştirilsin mi?", - 2143824150: "AES-CBC modu için kameradan ek entropi gereklidir", - 3270727197: "Adres", - 900375497: "Kamerayı ve yedek plakay'ı düzgün bir şekilde hizalayın.", - 88746165: "Parlama önleyici devre dışı", - 1521033296: "Parlama önleyici etkin", - 3857613120: "Görünüm", - 1056821534: "Emin misiniz?", - 1868069640: "BGR Renkleri", - 3455872521: "Geri", - 4151330982: "Menüye Dön", - 2756316330: "Yedek Mnemonic", - 2256777600: "Geçersiz imza", - 3937333362: "Baud Hızı", - 2046615409: "İkili Izgara", - 928727036: "Kenarlık Dolgusu", - 2519455027: "Parlaklık", - 2363604010: "Butonlar", - 2038226551: "Buton Geri-sekmesi", - 3138204438: "Yakalama iptal edildi", - 1207696150: "Para Üstü", - 3126552510: "Para Üstü Adresleri", - 1583186953: "Temayı değiştir ve yeniden başlat?", - 3768416405: "Para Üstü:", - 388908871: "Değişiklikler kapanışa kadar devam edecek.", - 3442025874: "SD Kartı Kontrol Et", - 3119547911: "Bu adresin, bu cüzdana ait olduğunu kontrol et?", - 1187826970: "Eşleşmeyen %d adres kontrol edildi.", - 2470115694: "SD kart kontrol ediliyor..", - 1851578965: "Türev Dizini", - 4094072796: "QR Kodu Oluştur", - 167798282: "Metinden QR kodu oluşturulsun mu?", - 678449760: "Oluşturuldu:", - 3513215254: "Özel QR Kodu", - 3585411775: "Özelleştir", - 534274978: "Cüzdanınızı özelleştirmek yeni bir Anahtar oluşturacaktır.", - 124617190: "Kesim Derinliği", - 597912140: "Kesim Yöntemi", - 2504034831: "Ondalık", - 2751113454: "Şifre çözülsün mü?", - 1272005728: "Varsayılan Cüzdan", - 4102535566: "Geçiş Başına Derinlik", - 1712856005: "Tanımlayıcı Adresler", - 3278654271: "Ekran", - 3895447625: "Kapatmayın, tamamlanması biraz zaman alabilir.", - 3836852788: "Tamamlandı mı?", - 690625786: "Çifte anımsatıcı", - 382368239: "Sürücü", - 3582575312: "Şifrelenmiş", - 1244124409: "Şifrelenmiş QR Kodu", - 2968548114: "Şifrelenmiş mnemonic depolanmadı", - 781419966: "Şifrelenmiş mnemonic ID ile depolandı:", - 350279787: "Şifreleme", - 2601598799: "Şifreleme Modu", - 1821513079: "%d BIP-39 kelime girin.", - 3504179008: "BIP-39 mnemonic'inizin her kelimesini 1'den 2048'e kadar bir sayı olarak girin.", - 1100685007: "BIP-39 mnemonic'inizin her kelimesini 1'den 800'e kadar onaltılık bir sayı olarak girin.", - 4090266642: "BIP-39 mnemonic'inizin her kelimesini 1'den 4000'e kadar sekizlik bir sayı olarak girin.", - 2780625730: "BIP-39 mnemonic'inizin her kelimesini girin.", - 889040671: "Hata:", - 1505332462: "Çıkış", - 3838465623: "Dosyaları ara?", - 4170881190: "SD karta aktarılıyor..", - 1711312434: "Genişletilmiş Public Key", - 3981762528: "Fabrika Ayarları", - 383371114: "Şifre çözme başarısız", - 3048830188: "PSBT yükleme başarısız", - 4192663412: "Adres yükleme başarısız", - 1996021743: "Anahtar yükleme başarısız", - 1108715658: "Mesaj yükleme başarısız", - 1081425878: "Mnemonic yükleme başarısız", - 928667220: "Çıktı tanımlayıcısı yüklemesi başarısız", - 1620572516: "Parola yükleme başarısız", - 2946146830: "Mnemonic depolama başarısız", - 262248294: "Ücret:", - 104500973: "Besleme Hızı", - 3313339187: "Dosya adı", - 1982637349: "%s dosya adı SD kartta var, üzerine yazılsın mı?", - 4006602858: "PSBT'de parmak izi ayarı kaldırıldı", - 2542772894: "Donanım yazılımı maksimum boyutu aşıyor: %d", - 3748840176: "X Koordinatları Tersine Çevrildi", - 1406590538: "Flute Çapı", - 1077771640: "Boş:", - 1893243331: "Depolamadan Seç", - 1871146425: "Verilerin geri kullanılamaz olduğundan emin olmak için SD kartınızı başka bir cihazda tamamen silin", - 3549015533: "Mnemonic Oluştur", - 3524220994: "BIP85 türevi anımsatıcı oluşturulsun mu?", - 299338213: "Bu mnemonic'e özel bir ID verilsin mi? Aksi takdirde mevcut parmak izi kullanılacaktır", - 602716148: "Seç", - 1198393582: "Yeterli entropi", - 133139382: "Donanım", - 3580020863: "Hex Public Key", - 2691246967: "Onaltılık", - 3903754133: "Mnemonic'leri Gizle", - 3876651191: "Yüksek ücret!", - 2880010062: "ID zaten var", - 3242179508: "Girişler (%d):", - 3034883011: "Yükle?", - 3755547839: "Yetersiz Entropi!", - 2032416055: "Yetersiz entropi", - 2585599782: "Geçersiz adres", - 2874529150: "Geçersiz önyükleyici", - 4093416954: "Geçersiz mnemonic uzunluğu", - 1422874211: "Geçersiz public key", - 237577215: "Geçersiz cüzdan:", - 4122897393: "Ters Çevir", - 640219121: "Ters Renkler", - 3000888649: "Anahtar", - 3264569915: "Anahtar sağlanmadı", - 3835918229: "Krux Yazıcı Test QR'ı", - 911419226: "LCD Tipi", - 766317539: "Dil", - 4180141032: "Krux'un geçerli bir son kelime seçmesini istiyorsanız boş bırakın", - 3663022166: "Sol", - 972436696: "Satır Gecikmesi", - 2176866982: "Satır:", - 2820726296: "Mnemonic Yükle", - 2369474953: "Cüzdan Yükle", - 2256441194: "Adresleri görüntülemek için güvenilir bir cüzdan tanımlayıcısı yüklensin mi?", - 237136240: "SD karttan yükle", - 879727077: "SD karttan yüklensin mi?", - 1936877965: "Kameradan yükle", - 669106195: "Bir tane mi yüklensin?", - 3330705289: "Yüklensin mi?", - 2596531078: "Kamera Yükleniyor..", - 2488179069: "Para üstü adresler yükleniyor..", - 336702608: "Yazıcı yükleniyor..", - 1201104769: "Alım adresler yükleniyor..", - 3159494909: "Yükleniyor..", - 1177338798: "Yerel", - 2817059741: "Konum", - 2917810189: "Maksimum uzunluk aşıldı (%s)", - 2030045667: "Mesaj", - 762611188: "Mesaj:", - 3928301843: "İmza dosyası eksik", - 1948316555: "Mnemonic", - 2123991188: "Mnemonic ID", - 1443208255: "Mnemonik ve parola tutulacaktır.", - 1746030071: "Mnemonic şifrelenmedi", - 1237332019: "Değiştirildi:", - 1845376098: "Çoklu imza", - 4265479636: "Yerel Segwit - 84 varsayılacaktır", - 2939797024: "Ağ", - 73574491: "Yeni Mnemonic", - 3634967631: "Yeni donanım yazılımı tespit edildi.", - 4063104189: "Hayır", - 2325721074: "Parola Yok", - 4092516657: "Yeterli zar atışı yok!", - 3089363813: "Numaralar", - 1577637745: "Sekizlik", - 391304453: "Diğer Formatlar", - 3312581301: "PBKDF2 Yinelemesi", - 995862913: "İşaretlenmiş noktaları siyaha boyayın ki tespit edilebilsinler.", - 2987800462: "Kağıt Genişliği", - 3913146360: "Parça", - 3559456868: "Parça Boyutu", - 4249903283: "Parola", - 3745269737: "Yol uyuşmazlığı", - 500286397: "Örüntü algılandı!", - 3040011773: "Tüm depolanmış ve şifrelenmiş mnemonic'ler ve ayarlar flash'tan kalıcı olarak kaldırılsın mı?", - 140802882: "Kalıcı Depolama", - 2578106186: "Piksel sapma indeksi:", - 1703779997: "Düz Metin QR'ı", - 3561756278: "Lütfen bir cüzdan çıktı tanımlayıcısı yükleyin", - 784609464: "Dalış Hızı", - 3761518438: "Düşük entropi", - 3639136476: "Düşük entropi tespit edildi!", - 3037062877: "Test QR'ını Yazdır", - 2362732578: "Tiny Seed Yazdırılsın mı?", - 3123770978: "QR'a Yazdır", - 3345150514: "QR'a yazdırılsın mı?", - 3339507095: "Yazdırılsın mı?", - 1123106929: "Yazıcı", - 3903571079: "Yazıcı Sürücüsü ayarlanmadı!", - 3586624216: "Yazdırılıyor..", - 3593149291: "Yine de devam edilsin mi?", - 2580599003: "Devam edilsin mi?", - 3108881025: "İşleniyor..", - 1848310591: "QR Kodu", - 710709610: "RX Pini", - 2697857197: "Al", - 1746677167: "Adresleri Al", - 1658501467: "Bölge:", - 3739634002: "%s kaldırılsın mı?", - 1476462492: "Mnemonic'i Kaldır", - 1557093280: "SD Karttan donanım yazılımı dosyaları kaldırılsın mı?", - 2817311427: "Çözünürlüğü Sıfırla", - 2365886561: "Fabrika ayarlarına geri dönüp ve yeniden başlatılsın mı?", - 3091105710: "QR Görüntüleyiciye Dön", - 1662254634: "Taranan verileri gözden geçirin, gerekirse düzenleyin", - 1963678224: "Sağ", - 770350922: "Bir mnemonic oluşturmak için zarı en az %d kez atın.", - 3271055013: "Zar atış dağılımı:", - 432366011: "Zar atışları:", - 3976793317: "SD kart", - 2736513298: "SD kart algılanmadı.", - 1166743226: "Zar atışlarının SHA256'sı:", - 817419367: "Snapshot'ın SHA256'sı:", - 699906428: "QR Görüntüsünü SD Karta Kaydet", - 2163347007: "SD karta kaydet", - 3531742595: "SD karta kaydedilsin mi?", - 2940025484: "SD karta kaydedildi", - 763824768: "Ölçek", - 4117455079: "Adresi Tara", - 4038076821: "BIP39 Parolasını Tara", - 923277590: "Anahtar QR Kodunu Tara", - 4006316572: "1-12 kelimeleri tekrar taranıyor", - 2736506158: "13-24 kelimeleri taranıyor", - 2029624154: "Ekran Koruyucu Süresi", - 289960586: "Betik Türü", - 1022211991: "Güvenlik", - 4255182430: "Kendine-transfer veya Para Üstü (%d):", - 3753172956: "Kendine-transfer:", - 473154195: "Ayarlar", - 563836138: "Ayarlar dahili olarak flaşta saklanır.", - 712533907: "Ayarlar SD karta kaydedildi.", - 2377955518: "Shannon Entropisi:", - 1825881236: "Kapat", - 3656120779: "Kapanma Süresi", - 2120776272: "Kapatılıyor..", - 1061961408: "İmzala", - 2293863356: "QR koduna imzala", - 2879966040: "SD karta imzala", - 4282338366: "İmzalansın mı?", - 746161122: "İmza", - 1988416729: "İmzalı Mesaj", - 3672006076: "İmzalı PSBT", - 3406791302: "İmzalanıyor..", - 2281377987: "Tek-imza", - 2019512665: "Boyut:", - 2344747135: "Bazı kontroller yerine getirilemedi.", - 2090568351: "Harcama (%d):", - 1260825919: "Harcama:", - 1232757391: "İnekler İçin İstatistikler", - 3303592908: "Flash'ta Sakla", - 720041451: "SD Kartta Sakla", - 3514476519: "Modu değiştirmek için kaydırın", - 1898550184: "Yakalamak için DOKUN veya GİR", - 4228215415: "TX Pini", - 2612594937: "Metin", - 1454688268: "Tema", - 1180180513: "Termal", - 2258131455: "Verilerin geri kullanılamaz olduğundan emin olmak için Cihazı Sil özelliğini kullanın", - 2700207481: "Parlaklığı Değiştir", - 725348723: "Araçlar", - 3684696112: "Dokunma Eşiği", - 2978718564: "Dokunmatik ekran", - 2732611775: "Daha fazla kez denensin mi?", - 401829098: "BIP39 parolasını yazın", - 2061556020: "Anahtar Yaz", - 2089395053: "Birim", - 2786714360: "Güncelleme tamamlandı.", - 2674953168: "Siyah bir arka plan yüzeyi kullanın.", - 2402455261: "Yeni bir mnemonic oluşturmak için kameranın entropisini kullanın", - 3336226318: "Kullanılan:", - 4003084591: "%s değeri aralık dışında: [%s, %s]", - 989428076: "Değer %s'nin katı olmalıdır", - 3429519584: "Doğrulanıyor..", - 1889659487: "Sürüm", - 4191058607: "Kamera Aracılığıyla", - 1254681955: "D20 Aracılığıyla", - 525309547: "D6 Aracılığıyla", - 590330112: "Manuel Giriş Aracılığıyla", - 1947603760: "Sözcüklerle", - 2504354847: "Yakalamanın tamamlanmasını bekleyin", - 2076481321: "Cüzdan", - 2297028319: "Cüzdan Tanımlayıcısı", - 4232654916: "Cüzdan çıktı tanımlayıcısı", - 2587172867: "Cüzdan çıktı tanımlayıcısı yüklendi!", - 2499782468: "Cüzdan çıktı tanımlayıcısı bulunamadı.", - 2671738224: "Uyarı:", - 262410364: "Cihazı Sil", - 3522794335: "Cihaz Siliniyor..", - 797660533: "Kelime %d", - 3742424146: "Kelime Numaraları", - 2965123464: "Kelimeler", - 1303016265: "Evet", - 2171149824: "geçerli bir adres!", - 1875891934: "ilk %d adreste BULUNAMADI", -} +translation_array = [ + "Yeni donanım yazılımı tespit edildi.", + "Doğrulanıyor..", + "Yükle?", + "Donanım yazılımı maksimum boyutu aşıyor: %d", + "Geçersiz public key", + "İmza dosyası eksik", + "Geçersiz imza", + "Geçersiz önyükleyici", + "İşleniyor..", + "Güncelleme tamamlandı.", + "SD Karttan donanım yazılımı dosyaları kaldırılsın mı?", + "Kapatılıyor..", + "Tek-imza", + "%d / %d çoklu imza", + "Yerel Segwit - 84 varsayılacaktır", + "#0 numaralı hesap varsayılacaktır", + "Yerel", + "Ağ", + "Çoklu imza", + "Betik Türü", + "Baud Hızı", + "Kağıt Genişliği", + "TX Pini", + "RX Pini", + "Satır Gecikmesi", + "Ölçek", + "Ters Çevir", + "Kesim Yöntemi", + "Birim", + "Flute Çapı", + "Dalış Hızı", + "Besleme Hızı", + "Kesim Derinliği", + "Geçiş Başına Derinlik", + "Parça Boyutu", + "Kenarlık Dolgusu", + "Termal", + "Sürücü", + "Buton Geri-sekmesi", + "Dokunma Eşiği", + "X Koordinatları Tersine Çevrildi", + "Ters Renkler", + "BGR Renkleri", + "LCD Tipi", + "Parlaklık", + "Yazıcı", + "Butonlar", + "Dokunmatik ekran", + "Ekran", + "Konum", + "Şifreleme Modu", + "PBKDF2 Yinelemesi", + "Tema", + "Ekran Koruyucu Süresi", + "Kapanma Süresi", + "Mnemonic'leri Gizle", + "Hash Flash at Boot", + "Varsayılan Cüzdan", + "Güvenlik", + "Donanım", + "Dil", + "Şifreleme", + "Kalıcı Depolama", + "Görünüm", + "Girişler (%d):", + "Harcama (%d):", + "Kendine-transfer veya Para Üstü (%d):", + "Ücret:", + "Harcama:", + "Kendine-transfer:", + "Para Üstü:", + "Seç", + "Fabrika ayarlarına geri dönüp ve yeniden başlatılsın mı?", + "PIN disabled", + "Enter a 6+ characters PIN", + "Confirm PIN", + "PINs do not match", + "PIN set successfully", + "Error saving PIN", + "SD kart kontrol ediliyor..", + "Ayarlar SD karta kaydedildi.", + "SD kart algılanmadı.", + "Değişiklikler kapanışa kadar devam edecek.", + "Ayarlar dahili olarak flaşta saklanır.", + "Fabrika Ayarları", + "Set PIN", + "Disable PIN", + "Sol", + "Sağ", + "Temayı değiştir ve yeniden başlat?", + "Değer %s'nin katı olmalıdır", + "%s değeri aralık dışında: [%s, %s]", + "Mnemonic", + "Çıkış", + "Kelime %d", + "Emin misiniz?", + "Kameradan yükle", + "SD karttan yükle", + "Parça", + "Evet", + "Hayır", + "Geri", + "Hata:", + "12 kelime", + "24 kelime", + "Çifte anımsatıcı", + "Current PIN", + "PIN", + "Invalid PIN", + "Yeterli entropi", + "Düşük entropi", + "Yetersiz entropi", + "Yakalamak için DOKUN veya GİR", + "Yakalama iptal edildi", + "Shannon Entropisi:", + "(toplam %d)", + "Piksel sapma indeksi:", + "Yetersiz Entropi!", + "QR'a yazdırılsın mı?", + "SD karttan yüklensin mi?", + "Yüklensin mi?", + "SD karta kaydedilsin mi?", + "SD karta kaydedildi", + "Dosya adı", + "%s dosya adı SD kartta var, üzerine yazılsın mı?", + "BIP39 parolasını yazın", + "BIP39 Parolasını Tara", + "Parola", + "Parola yükleme başarısız", + "Maksimum uzunluk aşıldı (%s)", + "Hesap", + "Hesap Endeksi", + "Mnemonic Yükle", + "Yeni Mnemonic", + "Ayarlar", + "Araçlar", + "Hakkında", + "Kapat", + "Kamera Aracılığıyla", + "Manuel Giriş Aracılığıyla", + "Depolamadan Seç", + "QR Kodu", + "İkili Izgara", + "Kelimeler", + "Kelime Numaraları", + "Sözcüklerle", + "D6 Aracılığıyla", + "D20 Aracılığıyla", + "Yeni bir mnemonic oluşturmak için kameranın entropisini kullanın", + "(Deneysel)", + "Devam edilsin mi?", + "Snapshot'ın SHA256'sı:", + "Parola Yok", + "Cüzdan Yükle", + "Özelleştir", + "Yükleniyor..", + "Şifre çözülsün mü?", + "Anahtar sağlanmadı", + "Şifre çözme başarısız", + "Mnemonic yükleme başarısız", + "Geçersiz mnemonic uzunluğu", + "Krux'un geçerli bir son kelime seçmesini istiyorsanız boş bırakın", + "Tamamlandı mı?", + "%d BIP-39 kelime girin.", + "BIP-39 mnemonic'inizin her kelimesini girin.", + "Ondalık", + "Onaltılık", + "Sekizlik", + "BIP-39 mnemonic'inizin her kelimesini 1'den 4000'e kadar sekizlik bir sayı olarak girin.", + "BIP-39 mnemonic'inizin her kelimesini 1'den 800'e kadar onaltılık bir sayı olarak girin.", + "BIP-39 mnemonic'inizin her kelimesini 1'den 2048'e kadar bir sayı olarak girin.", + "İşaretlenmiş noktaları siyaha boyayın ki tespit edilebilsinler.", + "Siyah bir arka plan yüzeyi kullanın.", + "Kamerayı ve yedek plakay'ı düzgün bir şekilde hizalayın.", + "Sürüm", + "Parlama önleyici etkin", + "Parlama önleyici devre dışı", + "Kamera Yükleniyor..", + "Boyut:", + "Oluşturuldu:", + "Değiştirildi:", + "Yazdırılıyor..", + "Taranan verileri gözden geçirin, gerekirse düzenleyin", + "1-12 kelimeleri tekrar taranıyor", + "Yakalamanın tamamlanmasını bekleyin", + "13-24 kelimeleri taranıyor", + "Anahtar Yaz", + "Anahtar QR Kodunu Tara", + "Anahtar", + "Anahtar yükleme başarısız", + "Flash'ta Sakla", + "SD Kartta Sakla", + "Şifrelenmiş QR Kodu", + "Mnemonic şifrelenmedi", + "AES-CBC modu için kameradan ek entropi gereklidir", + "Bu mnemonic'e özel bir ID verilsin mi? Aksi takdirde mevcut parmak izi kullanılacaktır", + "Mnemonic ID", + "ID zaten var", + "Şifrelenmiş mnemonic depolanmadı", + "Şifrelenmiş mnemonic ID ile depolandı:", + "Mnemonic depolama başarısız", + "%s kaldırılsın mı?", + "%s kaldırıldı.", + "Verilerin geri kullanılamaz olduğundan emin olmak için SD kartınızı başka bir cihazda tamamen silin", + "Verilerin geri kullanılamaz olduğundan emin olmak için Cihazı Sil özelliğini kullanın", + "Generating Flash Hash..", + "Flash Hash", + "SD Kartı Kontrol Et", + "Test QR'ını Yazdır", + "QR Kodu Oluştur", + "Tanımlayıcı Adresler", + "Mnemonic'i Kaldır", + "Cihazı Sil", + "Set a PIN first", + "SD kart", + "Kullanılan:", + "Boş:", + "Dosyaları ara?", + "Tüm depolanmış ve şifrelenmiş mnemonic'ler ve ayarlar flash'tan kalıcı olarak kaldırılsın mı?", + "Cihaz Siliniyor..", + "Kapatmayın, tamamlanması biraz zaman alabilir.", + "Krux Yazıcı Test QR'ı", + "Metinden QR kodu oluşturulsun mu?", + "Metin", + "Özel QR Kodu", + "Bölge:", + "Satır:", + "Çözünürlüğü Sıfırla", + "Modu değiştirmek için kaydırın", + "QR Görüntüleyiciye Dön", + "Parlaklığı Değiştir", + "QR Görüntüsünü SD Karta Kaydet", + "QR'a Yazdır", + "Menüye Dön", + "Yazıcı yükleniyor..", + "SD karta aktarılıyor..", + "Yazıcı Sürücüsü ayarlanmadı!", + "Mesaj:", + "Adres", + "İmzalansın mı?", + "İmza", + "Mesaj yükleme başarısız", + "QR koduna imzala", + "SD karta imzala", + "İmzalı Mesaj", + "Hex Public Key", + "Cüzdan çıktı tanımlayıcısı", + "Adresleri görüntülemek için güvenilir bir cüzdan tanımlayıcısı yüklensin mi?", + "(sadece izle)", + "Cüzdan çıktı tanımlayıcısı bulunamadı.", + "Bir tane mi yüklensin?", + "Çıktı tanımlayıcısı yüklemesi başarısız", + "Varsayım kabul edilsin mi?", + "Geçersiz cüzdan:", + "Cüzdan çıktı tanımlayıcısı yüklendi!", + "Lütfen bir cüzdan çıktı tanımlayıcısı yükleyin", + "Adresi Tara", + "Adresleri Al", + "Para Üstü Adresleri", + "Para üstü adresler yükleniyor..", + "Alım adresler yükleniyor..", + "Al", + "Para Üstü", + "Adres yükleme başarısız", + "Geçersiz adres", + "Bu adresin, bu cüzdana ait olduğunu kontrol et?", + "%d to %d", + "Eşleşmeyen %d adres kontrol edildi.", + "geçerli bir adres!", + "ilk %d adreste BULUNAMADI", + "Daha fazla kez denensin mi?", + "Türev Dizini", + "Yedek Mnemonic", + "Genişletilmiş Public Key", + "Cüzdan", + "İmzala", + "Cüzdan parolası eklensin mi veya değiştirilsin mi?", + "Cüzdanınızı özelleştirmek yeni bir Anahtar oluşturacaktır.", + "Mnemonik ve parola tutulacaktır.", + "BIP85 türevi anımsatıcı oluşturulsun mu?", + "Cüzdan Tanımlayıcısı", + "Mesaj", + "Uyarı:", + "Bazı kontroller yerine getirilemedi.", + "PSBT yükleme başarısız", + "Yol uyuşmazlığı", + "PSBT'de parmak izi ayarı kaldırıldı", + "Yüksek ücret!", + "tutarın %'si.", + "İmzalanıyor..", + "İmzalı PSBT", + "SD karta kaydet", + "Şifrelenmiş", + "Diğer Formatlar", + "Düz Metin QR'ı", + "Numaralar", + "Yazdırılsın mı?", + "Tiny Seed Yazdırılsın mı?", + "Zar atış dağılımı:", + "Bir mnemonic oluşturmak için zarı en az %d kez atın.", + "Zar atışları:", + "Yeterli zar atışı yok!", + "Düşük entropi tespit edildi!", + "Örüntü algılandı!", + "Yine de devam edilsin mi?", + "İnekler İçin İstatistikler", + "Mnemonic Oluştur", + "Zar atışlarının SHA256'sı:", +] diff --git a/src/krux/translations/vi_VN.py b/src/krux/translations/vi_VN.py index a5ec3c55..1b6fed25 100644 --- a/src/krux/translations/vi_VN.py +++ b/src/krux/translations/vi_VN.py @@ -20,298 +20,313 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # pylint: disable=C0301 -translation_table = { - 232475068: "% của số tiền.", - 1185266064: "%d của %d đa chữ kí", - 1503087751: "%d đến %d", - 1178563089: "%s Đã bỏ.", - 1092222515: "(tổng cộng %d)", - 3348584292: "(Thực nghiệm)", - 1099786887: "(chỉ xem)", - 2739590230: "12 từ", - 1310058127: "24 từ", - 1949634023: "Về chúng tôi", - 4287534872: "Chấp nhận giả định?", - 2995482424: "Tài khoản", - 2415648848: "Tài khoản #0 sẽ được giả định", - 1043817877: "Chỉ mục tài khoản", - 3439746594: "Thêm hoặc thay đổi cụm mật khẩu ví?", - 2143824150: "Cần thêm entropy từ camera cho chế độ AES-CBC", - 3270727197: "Địa chỉ", - 900375497: "Căn chỉnh camera và tấm dự phòng đúng cách.", - 88746165: "Chống lóa bị vô hiệu hóa", - 1521033296: "Đã bật chống lóa", - 3857613120: "Giao diện", - 1056821534: "Bạn có chắc không?", - 1868069640: "Màu BGR", - 3455872521: "Trở lại", - 4151330982: "Quay lại Menu", - 2756316330: "Sao lưu Mnemonic", - 2256777600: "Chữ ký xấu", - 3937333362: "Tốc độ baud", - 2046615409: "Lưới nhị phân", - 928727036: "Đệm viền", - 2519455027: "Độ sáng", - 2363604010: "Nút", - 2038226551: "Loại bỏ nhiễu nút", - 3138204438: "Hủy chụp hình", - 1207696150: "Thay đổi", - 3126552510: "Các địa chỉ tiền thối", - 1583186953: "Thay đổi giao diện và khởi động lại?", - 3768416405: "Thay đổi:", - 388908871: "Thay đổi sẽ kéo dài cho đến khi tắt máy.", - 3442025874: "Kiểm tra thẻ SD", - 3119547911: "Kiểm tra địa chỉ đó có thuộc về ví này không?", - 1187826970: "Đã kiểm tra %d địa chỉ không khớp.", - 2470115694: "Kiểm tra thẻ SD..", - 1851578965: "Chỉ mục phụ", - 4094072796: "Tạo mã QR", - 167798282: "Tạo mã QR từ văn bản?", - 678449760: "Tạo:", - 3513215254: "Mã QR tùy chỉnh", - 3585411775: "Tùy chỉnh", - 534274978: "Tùy chỉnh ví của bạn sẽ tạo một Khóa mới.", - 124617190: "Chiều sâu cắt", - 597912140: "Phương pháp cắt", - 2504034831: "Số thập phân", - 2751113454: "Giải mã?", - 1272005728: "Ví mặc định", - 4102535566: "Độ sâu mỗi lần cắt CNC", - 1712856005: "Địa chỉ người mô tả", - 3278654271: "Hiển thị", - 3895447625: "Không được tắt máy, có thể mất một lúc để hoàn thành.", - 3836852788: "Hoàn tất?", - 690625786: "Từ gợi nhớ kép", - 382368239: "Driver", - 3582575312: "Đã mã hóa", - 1244124409: "Mã QR được mã hóa", - 2968548114: "Mnemonic được mã hóa không được lưu trữ", - 781419966: "Mnemonic được mã hóa không được lưu trữ với ID:", - 350279787: "Mã hóa", - 2601598799: "Chế độ mã hóa", - 1821513079: "Nhập %d từ BIP-39.", - 3504179008: "Nhập từng từ của Mnemonic BIP-39 của bạn dưới dạng số từ 1 đến 2048.", - 1100685007: "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số thập lục phân từ 1 đến 800.", - 4090266642: "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số bát phân từ 1 đến 4000.", - 2780625730: "Nhập từng từ của Mnemonic BIP-39 của bạn.", - 889040671: "Lỗi:", - 1505332462: "Esc", - 3838465623: "Khám phá các tập tin?", - 4170881190: "Xuất vào thẻ SD ..", - 1711312434: "Khóa công cộng", - 3981762528: "Cài đặt Gốc", - 383371114: "Không giải mã được", - 3048830188: "Tải PSBT thất bại", - 4192663412: "Tải địa chỉ thất bại", - 1996021743: "Không tải được khóa", - 1108715658: "Không tải được tin nhắn", - 1081425878: "Tải mã Mnemonic thất bại", - 928667220: "Không tải được bộ mô tả đầu ra", - 1620572516: "Không tải được cụm mật khẩu", - 2946146830: "Không lưu trữ Mnemonic được", - 262248294: "Phí:", - 104500973: "Tốc độ cắt CNC", - 3313339187: "Tên tệp", - 1982637349: "Tên tệp %s tồn tại trên thẻ SD, ghi đè lên?", - 4006602858: "Bỏ dấu vân tay trong PSBT", - 2542772894: "Phần mềm vượt quá kích thước tối đa: %d", - 3748840176: "Tọa độ X bị lật", - 1406590538: "Đường kính mũi cắt CNC", - 1077771640: "Khả dụng:", - 1893243331: "Từ bộ lưu trữ", - 1871146425: "Xóa hoàn toàn thẻ SD trong một thiết bị khác để đảm bảo dữ liệu không thể phục hồi", - 3549015533: "Tạo Mnemonic", - 3524220994: "Tạo một Mnemonic phụ thuộc BIP85?", - 299338213: "Cung cấp cho Mnemonic này một ID tùy chỉnh? Nếu không thì fingerprint hiện tại sẽ được sử dụng", - 602716148: "Chọn", - 1198393582: "Entropy tốt", - 133139382: "Phần cứng", - 3580020863: "Khóa công cộng Hex", - 2691246967: "Thập lục phân", - 3903754133: "Ẩn Mnemonics", - 3876651191: "Phí cao!", - 2880010062: "Id đã tồn tại", - 3242179508: "Đầu vào (%d):", - 3034883011: "Cài đặt phần mềm?", - 3755547839: "Entropy không đủ!", - 2032416055: "Không đủ entropy", - 2585599782: "Địa chỉ không hợp lệ", - 2874529150: "Bộ tải khởi động không hợp lệ", - 4093416954: "Độ dài mã Mnemonic không hợp lệ", - 1422874211: "Khóa công cộng không hợp lệ", - 237577215: "Ví không hợp lệ:", - 4122897393: "Đảo ngược", - 640219121: "Màu đảo ngược", - 3000888649: "Chìa khóa", - 3264569915: "Khóa không được cung cấp", - 3835918229: "QR kiểm tra máy in Krux", - 911419226: "Loại LCD", - 766317539: "Ngôn ngữ", - 4180141032: "Để trống nếu bạn muốn Krux chọn một từ cuối cùng hợp lệ", - 3663022166: "Trái", - 972436696: "Độ trễ Dòng", - 2176866982: "Đường kẻ:", - 2820726296: "Tải mã mnemonic", - 2369474953: "Nạp Ví", - 2256441194: "Tải mô tả ví đáng tin cậy để xem địa chỉ?", - 237136240: "Tải từ thẻ SD", - 879727077: "Tải từ thẻ SD?", - 1936877965: "Tải từ máy ảnh", - 669106195: "Tải một?", - 3330705289: "Tải?", - 2596531078: "Đang tải máy ảnh..", - 2488179069: "Đang tải địa chỉ tiền thối..", - 336702608: "Đang tải máy in ..", - 1201104769: "Đang tải địa chỉ nhận..", - 3159494909: "Đang tải..", - 1177338798: "Ngôn ngữ", - 2817059741: "Vị trí lưu", - 2917810189: "Chiều dài tối đa vượt quá (%s)", - 2030045667: "Tin nhắn", - 762611188: "Tin nhắn:", - 3928301843: "Thiếu tập tin chữ ký", - 1948316555: "Mã mnemonic", - 2123991188: "Mnemonic ID ", - 1443208255: "Từ gợi nhớ và cụm mật khẩu sẽ được lưu giữ.", - 1746030071: "Mnemonic không được mã hóa", - 1237332019: "Đã sửa đổi:", - 1845376098: "Đa chữ kí", - 4265479636: "Native Segwit - 84 sẽ được giả định", - 2939797024: "Mạng lưới", - 73574491: "Mnemonic mới", - 3634967631: "Phát hiện phần sụn mới.", - 4063104189: "Không", - 2325721074: "Không có cụm mật khẩu", - 4092516657: "Không đủ số lần quay!", - 3089363813: "Số", - 1577637745: "Bát phân", - 391304453: "Các định dạng khác", - 3312581301: "Lặp lại PBKDF2", - 995862913: "Tô các chấm đục lỗ màu đen để chúng có thể được phát hiện.", - 2987800462: "Chiều rộng giấy", - 3913146360: "Phần", - 3559456868: "Kích thước một phần", - 4249903283: "Cụm mật khẩu", - 3745269737: "Đường dẫn không khớp", - 500286397: "Đã phát hiện mẫu!", - 3040011773: "Xóa vĩnh viễn mọi Mnemonics và cài đặt được mã hóa lưu trữ trong flash?", - 140802882: "Vị trí lưu", - 2578106186: "Chỉ số độ lệch điểm ảnh:", - 1703779997: "QR dạng văn bản", - 3561756278: "Vui lòng tải bộ mô tả đầu ra ví", - 784609464: "Tỷ lệ sụt giảm", - 3761518438: "Entropy kém", - 3639136476: "Phát hiện entropy yếu!", - 3037062877: "In kiểm tra QR", - 2362732578: "In Tiny Seed?", - 3123770978: "In ra QR", - 3345150514: "In ra mã QR?", - 3339507095: "In?", - 1123106929: "Máy in", - 3903571079: "Trình điều khiển máy in chưa được cài đặt!", - 3586624216: "Đang in..", - 3593149291: "Vẫn tiếp tục?", - 2580599003: "Thực hiện?", - 3108881025: "Đang xử lý..", - 1848310591: "Mã QR", - 710709610: "RX Pin", - 2697857197: "Nhận được", - 1746677167: "Các địa chỉ nhận", - 1658501467: "Vùng:", - 3739634002: "Xóa %s?", - 1476462492: "Xóa Mnemonic", - 1557093280: "Xóa các tệp firmware khỏi Thẻ SD?", - 2817311427: "Độ phân giải - Định dạng", - 2365886561: "Khôi phục cài đặt gốc và khởi động lại?", - 3091105710: "Quay lại Trình xem QR", - 1662254634: "Xem lại dữ liệu đã quét, chỉnh sửa nếu cần", - 1963678224: "Phải", - 770350922: "Lăn xúc xắc ít nhất %d lần để tạo Mnemonic.", - 3271055013: "Phân bổ xúc xắc:", - 432366011: "Tổng số lần quay xúc xắc:", - 3976793317: "Thẻ SD", - 2736513298: "Thẻ SD không được phát hiện.", - 1166743226: "SHA256 của xúc xắc:", - 817419367: "Sha256 của ảnh chụp:", - 699906428: "Lưu Ảnh QR vào Thẻ SD", - 2163347007: "Lưu vào thẻ SD", - 3531742595: "Lưu vào thẻ SD?", - 2940025484: "Đã lưu vào thẻ SD", - 763824768: "Tỉ lệ", - 4117455079: "Quét địa chỉ", - 4038076821: "Quét cụm mật khẩu BIP39", - 923277590: "Quét mã QR khóa", - 4006316572: "Đang quét lại từ 1-12", - 2736506158: "Đang quét từ 13-24", - 2029624154: "Thời gian chế độ bảo vệ màn hình", - 289960586: "Kiểu văn lệnh", - 1022211991: "Bảo mật", - 4255182430: "Tự chuyển nhượng hoặc giao dịch (%d):", - 3753172956: "Tự chuyển nhượng:", - 473154195: "Cài đặt", - 563836138: "Cài đặt được lưu trữ nội bộ trên đèn flash.", - 712533907: "Cài đặt được lưu trên thẻ SD.", - 2377955518: "Entropy của Shannon:", - 1825881236: "Tắt máy", - 3656120779: "Thời gian tắt máy", - 2120776272: "Đang tắt..", - 1061961408: "Chữ kí", - 2293863356: "Ký vào mã QR", - 2879966040: "Ký vào thẻ SD", - 4282338366: "Kí?", - 746161122: "Chữ ký", - 1988416729: "Tin nhắn đã ký", - 3672006076: "Đã ký PSBT", - 3406791302: "Đang ký..", - 2281377987: "Khóa đơn", - 2019512665: "Dung lượng:", - 2344747135: "Một số kiểm tra không thể được thực hiện.", - 2090568351: "Chi tiêu (%d):", - 1260825919: "Chi tiêu:", - 1232757391: "Số liệu thống kê cho Mọt sách", - 3303592908: "Lưu trữ trên flash", - 720041451: "Lưu trữ trên thẻ SD", - 3514476519: "Vuốt để thay đổi chế độ", - 1898550184: "Chạm màn hình hoặc nhấn nút ENTER để chụp", - 4228215415: "TX Pin", - 2612594937: "Chữ", - 1454688268: "Chủ đề", - 1180180513: "Nhiệt", - 2258131455: "Sử dụng tính năng Xóa dữ liệu trên thiết bị để đảm bảo dữ liệu không thể phục hồi", - 2700207481: "Chuyển đổi độ sáng", - 725348723: "Công cụ", - 3684696112: "Ngưỡng cảm ứng", - 2978718564: "Màn hình cảm ứng", - 2732611775: "Thử thêm nữa?", - 401829098: "Nhập cụm mật khẩu BIP39", - 2061556020: "Nhập khóa", - 2089395053: "Đơn vị", - 2786714360: "Nâng cấp hoàn tất.", - 2674953168: "Sử dụng bề mặt nền đen.", - 2402455261: "Sử dụng sự ngẫu nhiên của máy ảnh để tạo ra một Mnemonic mới", - 3336226318: "Đã sử dụng:", - 4003084591: "Giá trị %s ngoài phạm vi: [ %s, %s]", - 989428076: "Giá trị phải là bội của %s", - 3429519584: "Đang xác minh..", - 1889659487: "Phiên Bản", - 4191058607: "Qua máy ảnh", - 1254681955: "Qua xúc xắc 20 mặt", - 525309547: "Qua xúc xắc 6 mặt", - 590330112: "Thông qua đầu vào thủ công", - 1947603760: "Thông qua từ ngữ", - 2504354847: "Chờ bắt", - 2076481321: "Ví", - 2297028319: "Trình mô tả ví", - 4232654916: "Ví đầu ra mô tả", - 2587172867: "Đã tải bộ mô tả đầu ra của ví!", - 2499782468: "Không tìm thấy bộ mô tả đầu ra ví.", - 2671738224: "Cảnh báo:", - 262410364: "Xóa dữ liệu trên thiết bị", - 3522794335: "Đang xóa dữ liệu trên thiết bị..", - 797660533: "Kí tự %d", - 3742424146: "Từ số", - 2965123464: "Từ ngữ", - 1303016265: "Đúng", - 2171149824: "là một địa chỉ hợp lệ!", - 1875891934: "kHÔNG TÌM THẤY trong %d địa chỉ đầu tiên", -} +translation_array = [ + "Phát hiện phần sụn mới.", + "Đang xác minh..", + "Cài đặt phần mềm?", + "Phần mềm vượt quá kích thước tối đa: %d", + "Khóa công cộng không hợp lệ", + "Thiếu tập tin chữ ký", + "Chữ ký xấu", + "Bộ tải khởi động không hợp lệ", + "Đang xử lý..", + "Nâng cấp hoàn tất.", + "Xóa các tệp firmware khỏi Thẻ SD?", + "Đang tắt..", + "Khóa đơn", + "%d của %d đa chữ kí", + "Native Segwit - 84 sẽ được giả định", + "Tài khoản #0 sẽ được giả định", + "Ngôn ngữ", + "Mạng lưới", + "Đa chữ kí", + "Kiểu văn lệnh", + "Tốc độ baud", + "Chiều rộng giấy", + "TX Pin", + "RX Pin", + "Độ trễ Dòng", + "Tỉ lệ", + "Đảo ngược", + "Phương pháp cắt", + "Đơn vị", + "Đường kính mũi cắt CNC", + "Tỷ lệ sụt giảm", + "Tốc độ cắt CNC", + "Chiều sâu cắt", + "Độ sâu mỗi lần cắt CNC", + "Kích thước một phần", + "Đệm viền", + "Nhiệt", + "Driver", + "Loại bỏ nhiễu nút", + "Ngưỡng cảm ứng", + "Tọa độ X bị lật", + "Màu đảo ngược", + "Màu BGR", + "Loại LCD", + "Độ sáng", + "Máy in", + "Nút", + "Màn hình cảm ứng", + "Hiển thị", + "Vị trí lưu", + "Chế độ mã hóa", + "Lặp lại PBKDF2", + "Chủ đề", + "Thời gian chế độ bảo vệ màn hình", + "Thời gian tắt máy", + "Ẩn Mnemonics", + "Hash Flash at Boot", + "Ví mặc định", + "Bảo mật", + "Phần cứng", + "Ngôn ngữ", + "Mã hóa", + "Vị trí lưu", + "Giao diện", + "Đầu vào (%d):", + "Chi tiêu (%d):", + "Tự chuyển nhượng hoặc giao dịch (%d):", + "Phí:", + "Chi tiêu:", + "Tự chuyển nhượng:", + "Thay đổi:", + "Chọn", + "Khôi phục cài đặt gốc và khởi động lại?", + "PIN disabled", + "Enter a 6+ characters PIN", + "Confirm PIN", + "PINs do not match", + "PIN set successfully", + "Error saving PIN", + "Kiểm tra thẻ SD..", + "Cài đặt được lưu trên thẻ SD.", + "Thẻ SD không được phát hiện.", + "Thay đổi sẽ kéo dài cho đến khi tắt máy.", + "Cài đặt được lưu trữ nội bộ trên đèn flash.", + "Cài đặt Gốc", + "Set PIN", + "Disable PIN", + "Trái", + "Phải", + "Thay đổi giao diện và khởi động lại?", + "Giá trị phải là bội của %s", + "Giá trị %s ngoài phạm vi: [ %s, %s]", + "Mã mnemonic", + "Esc", + "Kí tự %d", + "Bạn có chắc không?", + "Tải từ máy ảnh", + "Tải từ thẻ SD", + "Phần", + "Đúng", + "Không", + "Trở lại", + "Lỗi:", + "12 từ", + "24 từ", + "Từ gợi nhớ kép", + "Current PIN", + "PIN", + "Invalid PIN", + "Entropy tốt", + "Entropy kém", + "Không đủ entropy", + "Chạm màn hình hoặc nhấn nút ENTER để chụp", + "Hủy chụp hình", + "Entropy của Shannon:", + "(tổng cộng %d)", + "Chỉ số độ lệch điểm ảnh:", + "Entropy không đủ!", + "In ra mã QR?", + "Tải từ thẻ SD?", + "Tải?", + "Lưu vào thẻ SD?", + "Đã lưu vào thẻ SD", + "Tên tệp", + "Tên tệp %s tồn tại trên thẻ SD, ghi đè lên?", + "Nhập cụm mật khẩu BIP39", + "Quét cụm mật khẩu BIP39", + "Cụm mật khẩu", + "Không tải được cụm mật khẩu", + "Chiều dài tối đa vượt quá (%s)", + "Tài khoản", + "Chỉ mục tài khoản", + "Tải mã mnemonic", + "Mnemonic mới", + "Cài đặt", + "Công cụ", + "Về chúng tôi", + "Tắt máy", + "Qua máy ảnh", + "Thông qua đầu vào thủ công", + "Từ bộ lưu trữ", + "Mã QR", + "Lưới nhị phân", + "Từ ngữ", + "Từ số", + "Thông qua từ ngữ", + "Qua xúc xắc 6 mặt", + "Qua xúc xắc 20 mặt", + "Sử dụng sự ngẫu nhiên của máy ảnh để tạo ra một Mnemonic mới", + "(Thực nghiệm)", + "Thực hiện?", + "Sha256 của ảnh chụp:", + "Không có cụm mật khẩu", + "Nạp Ví", + "Tùy chỉnh", + "Đang tải..", + "Giải mã?", + "Khóa không được cung cấp", + "Không giải mã được", + "Tải mã Mnemonic thất bại", + "Độ dài mã Mnemonic không hợp lệ", + "Để trống nếu bạn muốn Krux chọn một từ cuối cùng hợp lệ", + "Hoàn tất?", + "Nhập %d từ BIP-39.", + "Nhập từng từ của Mnemonic BIP-39 của bạn.", + "Số thập phân", + "Thập lục phân", + "Bát phân", + "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số bát phân từ 1 đến 4000.", + "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số thập lục phân từ 1 đến 800.", + "Nhập từng từ của Mnemonic BIP-39 của bạn dưới dạng số từ 1 đến 2048.", + "Tô các chấm đục lỗ màu đen để chúng có thể được phát hiện.", + "Sử dụng bề mặt nền đen.", + "Căn chỉnh camera và tấm dự phòng đúng cách.", + "Phiên Bản", + "Đã bật chống lóa", + "Chống lóa bị vô hiệu hóa", + "Đang tải máy ảnh..", + "Dung lượng:", + "Tạo:", + "Đã sửa đổi:", + "Đang in..", + "Xem lại dữ liệu đã quét, chỉnh sửa nếu cần", + "Đang quét lại từ 1-12", + "Chờ bắt", + "Đang quét từ 13-24", + "Nhập khóa", + "Quét mã QR khóa", + "Chìa khóa", + "Không tải được khóa", + "Lưu trữ trên flash", + "Lưu trữ trên thẻ SD", + "Mã QR được mã hóa", + "Mnemonic không được mã hóa", + "Cần thêm entropy từ camera cho chế độ AES-CBC", + "Cung cấp cho Mnemonic này một ID tùy chỉnh? Nếu không thì fingerprint hiện tại sẽ được sử dụng", + "Mnemonic ID ", + "Id đã tồn tại", + "Mnemonic được mã hóa không được lưu trữ", + "Mnemonic được mã hóa không được lưu trữ với ID:", + "Không lưu trữ Mnemonic được", + "Xóa %s?", + "%s Đã bỏ.", + "Xóa hoàn toàn thẻ SD trong một thiết bị khác để đảm bảo dữ liệu không thể phục hồi", + "Sử dụng tính năng Xóa dữ liệu trên thiết bị để đảm bảo dữ liệu không thể phục hồi", + "Generating Flash Hash..", + "Flash Hash", + "Kiểm tra thẻ SD", + "In kiểm tra QR", + "Tạo mã QR", + "Địa chỉ người mô tả", + "Xóa Mnemonic", + "Xóa dữ liệu trên thiết bị", + "Set a PIN first", + "Thẻ SD", + "Đã sử dụng:", + "Khả dụng:", + "Khám phá các tập tin?", + "Xóa vĩnh viễn mọi Mnemonics và cài đặt được mã hóa lưu trữ trong flash?", + "Đang xóa dữ liệu trên thiết bị..", + "Không được tắt máy, có thể mất một lúc để hoàn thành.", + "QR kiểm tra máy in Krux", + "Tạo mã QR từ văn bản?", + "Chữ", + "Mã QR tùy chỉnh", + "Vùng:", + "Đường kẻ:", + "Độ phân giải - Định dạng", + "Vuốt để thay đổi chế độ", + "Quay lại Trình xem QR", + "Chuyển đổi độ sáng", + "Lưu Ảnh QR vào Thẻ SD", + "In ra QR", + "Quay lại Menu", + "Đang tải máy in ..", + "Xuất vào thẻ SD ..", + "Trình điều khiển máy in chưa được cài đặt!", + "Tin nhắn:", + "Địa chỉ", + "Kí?", + "Chữ ký", + "Không tải được tin nhắn", + "Ký vào mã QR", + "Ký vào thẻ SD", + "Tin nhắn đã ký", + "Khóa công cộng Hex", + "Ví đầu ra mô tả", + "Tải mô tả ví đáng tin cậy để xem địa chỉ?", + "(chỉ xem)", + "Không tìm thấy bộ mô tả đầu ra ví.", + "Tải một?", + "Không tải được bộ mô tả đầu ra", + "Chấp nhận giả định?", + "Ví không hợp lệ:", + "Đã tải bộ mô tả đầu ra của ví!", + "Vui lòng tải bộ mô tả đầu ra ví", + "Quét địa chỉ", + "Các địa chỉ nhận", + "Các địa chỉ tiền thối", + "Đang tải địa chỉ tiền thối..", + "Đang tải địa chỉ nhận..", + "Nhận được", + "Thay đổi", + "Tải địa chỉ thất bại", + "Địa chỉ không hợp lệ", + "Kiểm tra địa chỉ đó có thuộc về ví này không?", + "%d đến %d", + "Đã kiểm tra %d địa chỉ không khớp.", + "là một địa chỉ hợp lệ!", + "kHÔNG TÌM THẤY trong %d địa chỉ đầu tiên", + "Thử thêm nữa?", + "Chỉ mục phụ", + "Sao lưu Mnemonic", + "Khóa công cộng", + "Ví", + "Chữ kí", + "Thêm hoặc thay đổi cụm mật khẩu ví?", + "Tùy chỉnh ví của bạn sẽ tạo một Khóa mới.", + "Từ gợi nhớ và cụm mật khẩu sẽ được lưu giữ.", + "Tạo một Mnemonic phụ thuộc BIP85?", + "Trình mô tả ví", + "Tin nhắn", + "Cảnh báo:", + "Một số kiểm tra không thể được thực hiện.", + "Tải PSBT thất bại", + "Đường dẫn không khớp", + "Bỏ dấu vân tay trong PSBT", + "Phí cao!", + "% của số tiền.", + "Đang ký..", + "Đã ký PSBT", + "Lưu vào thẻ SD", + "Đã mã hóa", + "Các định dạng khác", + "QR dạng văn bản", + "Số", + "In?", + "In Tiny Seed?", + "Phân bổ xúc xắc:", + "Lăn xúc xắc ít nhất %d lần để tạo Mnemonic.", + "Tổng số lần quay xúc xắc:", + "Không đủ số lần quay!", + "Phát hiện entropy yếu!", + "Đã phát hiện mẫu!", + "Vẫn tiếp tục?", + "Số liệu thống kê cho Mọt sách", + "Tạo Mnemonic", + "SHA256 của xúc xắc:", +] diff --git a/src/krux/translations/zh_CN.py b/src/krux/translations/zh_CN.py index 942fa134..20bad0ba 100644 --- a/src/krux/translations/zh_CN.py +++ b/src/krux/translations/zh_CN.py @@ -20,298 +20,313 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # pylint: disable=C0301 -translation_table = { - 232475068: "% 的金额。", - 1185266064: "%d/%d 多签", - 1503087751: "%d到%d", - 1178563089: "已移除%s", - 1092222515: "(总计 %d)", - 3348584292: "(实验性)", - 1099786887: "(仅观察)", - 2739590230: "12 单词", - 1310058127: "24 单词", - 1949634023: "关于", - 4287534872: "接受假设?", - 2995482424: "账户", - 2415648848: "将假定为账户 #0", - 1043817877: "账户索引", - 3439746594: "添加或更改钱包密码?", - 2143824150: "AES-CBC 模式需要相机的额外熵", - 3270727197: "地址", - 900375497: "正确对齐摄像头和背板。", - 88746165: "防眩光已禁用", - 1521033296: "防眩光已启用", - 3857613120: "界面", - 1056821534: "确定?", - 1868069640: "BGR 颜色", - 3455872521: "返回", - 4151330982: "返回菜单", - 2756316330: "备份助记词", - 2256777600: "签名无效", - 3937333362: "波特率", - 2046615409: "二进制网格", - 928727036: "边框填充", - 2519455027: "亮度", - 2363604010: "按钮", - 2038226551: "按钮去抖动", - 3138204438: "截取已取消", - 1207696150: "找零", - 3126552510: "找零地址", - 1583186953: "更改主题并重新启动?", - 3768416405: "找零", - 388908871: "更改将在关机前保持。", - 3442025874: "检查 SD 卡", - 3119547911: "检查该地址是否属于此钱包?", - 1187826970: "已检查 %d 个不匹配的地址。", - 2470115694: "检查 SD 卡..", - 1851578965: "子索引", - 4094072796: "创建二维码", - 167798282: "从文本创建二维码?", - 678449760: "已创建:", - 3513215254: "自定义二维码", - 3585411775: "自定义", - 534274978: "自定义您的钱包将生成新私钥。", - 124617190: "切割深度", - 597912140: "切割方法", - 2504034831: "十进制", - 2751113454: "解密?", - 1272005728: "默认钱包", - 4102535566: "每次通过的深度", - 1712856005: "描述符地址", - 3278654271: "显示", - 3895447625: "请勿断电,可能需要一段时间完成。", - 3836852788: "完成了吗?", - 690625786: "双重助记词", - 382368239: "驱动程序", - 3582575312: "已加密", - 1244124409: "加密二维码", - 2968548114: "加密助记词未存储", - 781419966: "加密助记词已存储,ID 为:", - 350279787: "加密", - 2601598799: "加密模式", - 1821513079: "输入 %d 个 BIP-39 词。", - 3504179008: "将 BIP-39 助记词的每个词作为 1 到 2048 的数字输入。", - 1100685007: "将 BIP-39 助记词的每个词作为 1 到 800 的十六进制数输入。", - 4090266642: "将 BIP-39 助记词的每个词作为 1 到 4000 的八进制数输入。", - 2780625730: "输入每个 BIP-39 助记词。", - 889040671: "错误:", - 1505332462: "退出", - 3838465623: "浏览文件?", - 4170881190: "导出到 SD 卡..", - 1711312434: "扩展公钥", - 3981762528: "出厂设置", - 383371114: "解密失败", - 3048830188: "加载 PSBT 失败", - 4192663412: "加载地址失败", - 1996021743: "加载密钥失败", - 1108715658: "加载消息失败", - 1081425878: "加载助记词失败", - 928667220: "加载输出描述符失败", - 1620572516: "加载密码失败", - 2946146830: "存储助记词失败", - 262248294: "费用:", - 104500973: "进给速度", - 3313339187: "文件名", - 1982637349: "文件名 %s 存在于 SD 卡上,覆盖?", - 4006602858: "PSBT 中未设置指纹", - 2542772894: "固件超过最大尺寸:%d", - 3748840176: "翻转 X 坐标", - 1406590538: "刀具直径", - 1077771640: "空闲:", - 1893243331: "从存储中", - 1871146425: "在其他设备中完全擦除您的 SD 卡以确保数据不可恢复", - 3549015533: "生成助记词", - 3524220994: "生成 BIP85 子助记词?", - 299338213: "为此助记词设置自定义 ID?否则将使用当前指纹", - 602716148: "去", - 1198393582: "良好的熵", - 133139382: "硬件", - 3580020863: "十六进制公钥", - 2691246967: "十六进制", - 3903754133: "隐藏助记词", - 3876651191: "高费用!", - 2880010062: "ID 已存在", - 3242179508: "输入 (%d):", - 3034883011: "安装?", - 3755547839: "熵不足!", - 2032416055: "熵不足", - 2585599782: "无效地址", - 2874529150: "无效的 ootloader ", - 4093416954: "助记词长度无效", - 1422874211: "无效公钥", - 237577215: "无效钱包:", - 4122897393: "反转", - 640219121: "反转颜色", - 3000888649: "密钥", - 3264569915: "未提供密钥", - 3835918229: "Krux 打印机测试二维码", - 911419226: "LCD 类型", - 766317539: "语言", - 4180141032: "如果希望 Krux 自动计算最后一位 Checksum,请留空", - 3663022166: "左", - 972436696: "行延迟", - 2176866982: "行:", - 2820726296: "加载助记词", - 2369474953: "加载钱包", - 2256441194: "加载受信任的钱包描述符以查看地址?", - 237136240: "从 SD 卡加载", - 879727077: "从 SD 卡加载?", - 1936877965: "从相机加载", - 669106195: "加载一个?", - 3330705289: "加载?", - 2596531078: "加载相机..", - 2488179069: "加载找零地址..", - 336702608: "加载打印机..", - 1201104769: "加载接收地址..", - 3159494909: "加载中..", - 1177338798: "语言环境", - 2817059741: "位置", - 2917810189: "超过最大长度(%s)", - 2030045667: "消息", - 762611188: "消息:", - 3928301843: "缺少签名文件", - 1948316555: "助记词", - 2123991188: "助记词 ID", - 1443208255: "助记词和密码将被保留。", - 1746030071: "助记词未加密", - 1237332019: "修改时间:", - 1845376098: "多签", - 4265479636: "假定为原生 Segwit - 84", - 2939797024: "网络", - 73574491: "新助记词", - 3634967631: "检测到新固件。", - 4063104189: "否", - 2325721074: "无 Passphrase ", - 4092516657: "投掷次数不足!", - 3089363813: "数字", - 1577637745: "八进制", - 391304453: "其他格式", - 3312581301: "PBKDF2 迭代", - 995862913: "将打孔点涂黑,以便它们能被检测到。", - 2987800462: "纸张宽度", - 3913146360: "部分", - 3559456868: "部件尺寸", - 4249903283: "Passphrase", - 3745269737: "路径不匹配", - 500286397: "检测到模式!", - 3040011773: "从 Flash 中永久删除所有存储的加密助记词和设置?", - 140802882: "保存", - 2578106186: "像素偏差指数:", - 1703779997: "明文二维码", - 3561756278: "请加载钱包输出描述符", - 784609464: "下刀速度", - 3761518438: "熵值低", - 3639136476: "检测到低熵!", - 3037062877: "打印测试二维码", - 2362732578: "打印 Tiny Seed?", - 3123770978: "打印到二维码", - 3345150514: "打印到二维码?", - 3339507095: "打印?", - 1123106929: "打印机", - 3903571079: "打印机驱动程序未设置!", - 3586624216: "正在打印", - 3593149291: "继续吗?", - 2580599003: "继续?", - 3108881025: "正在处理..", - 1848310591: "二维码", - 710709610: "RX 引脚", - 2697857197: "接收", - 1746677167: "接收地址", - 1658501467: "区域:", - 3739634002: "删除 %s?", - 1476462492: "删除助记词", - 1557093280: "从 SD 卡中删除固件文件?", - 2817311427: "分辨率 - 格式", - 2365886561: "恢复出厂设置并重新设备?", - 3091105710: "返回二维码查看器", - 1662254634: "请检查扫描的数据,如有必要请编辑", - 1963678224: "右", - 770350922: "掷骰子至少 %d 次以生成助记词。", - 3271055013: "掷骰子分布:", - 432366011: "掷骰子:", - 3976793317: "SD 卡", - 2736513298: "未检测到 SD 卡。", - 1166743226: "掷骰子的 SHA256:", - 817419367: "快照的 SHA256:", - 699906428: "将二维码图像保存到 SD 卡", - 2163347007: "保存到 SD 卡", - 3531742595: "保存到 SD 卡?", - 2940025484: "保存到 SD 卡", - 763824768: "缩放", - 4117455079: "扫描地址", - 4038076821: "扫描 BIP39 Passphrase", - 923277590: "扫描私钥二维码", - 4006316572: "重新扫扫描第 1-12 个单词", - 2736506158: "扫描第 13-24 个单词", - 2029624154: "屏保时间", - 289960586: "脚本类型", - 1022211991: "安全", - 4255182430: "自转或找零 (%d):", - 3753172956: "自行转账:", - 473154195: "设置", - 563836138: "设置存储在 Flash 内部。", - 712533907: "设置存储在SD卡上。", - 2377955518: "香农熵:", - 1825881236: "关机", - 3656120779: "关机时间", - 2120776272: "关机中..", - 1061961408: "签名", - 2293863356: "二维码签名", - 2879966040: " SD 卡签名", - 4282338366: "是否签名?", - 746161122: "签名", - 1988416729: "签名消息", - 3672006076: "已签名 PSBT", - 3406791302: "签名中..", - 2281377987: "单签", - 2019512665: "大小:", - 2344747135: "无法执行某些检查。", - 2090568351: "花费 (%d):", - 1260825919: "花费", - 1232757391: "极客统计数据", - 3303592908: "存储到 Flash", - 720041451: "存储到 SD 卡", - 3514476519: "滑动切换模式", - 1898550184: "点击或按下 ENTER 截图", - 4228215415: "TX 引脚", - 2612594937: "文本", - 1454688268: "主题", - 1180180513: "热敏", - 2258131455: "要确保数据不可恢复,请使用擦除设备功能", - 2700207481: "调整亮度", - 725348723: "工具", - 3684696112: "触摸阈值", - 2978718564: "触摸屏", - 2732611775: "再次尝试?", - 401829098: "输入 BIP39 Phrasephrase", - 2061556020: "输入私钥", - 2089395053: "单位", - 2786714360: "升级已完成。", - 2674953168: "使用黑色背景界面。", - 2402455261: "使用摄像头的熵创建新助记词", - 3336226318: "已用:", - 4003084591: "值 %s 超出范围:[ %s,%s ]", - 989428076: "值必须是 %s 的倍数", - 3429519584: "验证中..", - 1889659487: "版本", - 4191058607: "通过摄像头", - 1254681955: "通过 D20", - 525309547: "通过 D6", - 590330112: "通过手动输入", - 1947603760: "通过单词", - 2504354847: "等待截取", - 2076481321: "钱包", - 2297028319: "钱包描述", - 4232654916: "钱包输出描述符", - 2587172867: "钱包输出描述符加载重复!", - 2499782468: "未找到钱包输出描述符。", - 2671738224: "警告:", - 262410364: "擦除设备", - 3522794335: "擦除设备中..", - 797660533: "词 %d", - 3742424146: "单词序号", - 2965123464: "单词", - 1303016265: "是", - 2171149824: " 非有效地址", - 1875891934: "在前 %d 个地址中未找到", -} +translation_array = [ + "检测到新固件。", + "验证中..", + "安装?", + "固件超过最大尺寸:%d", + "无效公钥", + "缺少签名文件", + "签名无效", + "无效的 ootloader ", + "正在处理..", + "升级已完成。", + "从 SD 卡中删除固件文件?", + "关机中..", + "单签", + "%d/%d 多签", + "假定为原生 Segwit - 84", + "将假定为账户 #0", + "语言环境", + "网络", + "多签", + "脚本类型", + "波特率", + "纸张宽度", + "TX 引脚", + "RX 引脚", + "行延迟", + "缩放", + "反转", + "切割方法", + "单位", + "刀具直径", + "下刀速度", + "进给速度", + "切割深度", + "每次通过的深度", + "部件尺寸", + "边框填充", + "热敏", + "驱动程序", + "按钮去抖动", + "触摸阈值", + "翻转 X 坐标", + "反转颜色", + "BGR 颜色", + "LCD 类型", + "亮度", + "打印机", + "按钮", + "触摸屏", + "显示", + "位置", + "加密模式", + "PBKDF2 迭代", + "主题", + "屏保时间", + "关机时间", + "隐藏助记词", + "Hash Flash at Boot", + "默认钱包", + "安全", + "硬件", + "语言", + "加密", + "保存", + "界面", + "输入 (%d):", + "花费 (%d):", + "自转或找零 (%d):", + "费用:", + "花费", + "自行转账:", + "找零", + "去", + "恢复出厂设置并重新设备?", + "PIN disabled", + "Enter a 6+ characters PIN", + "Confirm PIN", + "PINs do not match", + "PIN set successfully", + "Error saving PIN", + "检查 SD 卡..", + "设置存储在SD卡上。", + "未检测到 SD 卡。", + "更改将在关机前保持。", + "设置存储在 Flash 内部。", + "出厂设置", + "Set PIN", + "Disable PIN", + "左", + "右", + "更改主题并重新启动?", + "值必须是 %s 的倍数", + "值 %s 超出范围:[ %s,%s ]", + "助记词", + "退出", + "词 %d", + "确定?", + "从相机加载", + "从 SD 卡加载", + "部分", + "是", + "否", + "返回", + "错误:", + "12 单词", + "24 单词", + "双重助记词", + "Current PIN", + "PIN", + "Invalid PIN", + "良好的熵", + "熵值低", + "熵不足", + "点击或按下 ENTER 截图", + "截取已取消", + "香农熵:", + "(总计 %d)", + "像素偏差指数:", + "熵不足!", + "打印到二维码?", + "从 SD 卡加载?", + "加载?", + "保存到 SD 卡?", + "保存到 SD 卡", + "文件名", + "文件名 %s 存在于 SD 卡上,覆盖?", + "输入 BIP39 Phrasephrase", + "扫描 BIP39 Passphrase", + "Passphrase", + "加载密码失败", + "超过最大长度(%s)", + "账户", + "账户索引", + "加载助记词", + "新助记词", + "设置", + "工具", + "关于", + "关机", + "通过摄像头", + "通过手动输入", + "从存储中", + "二维码", + "二进制网格", + "单词", + "单词序号", + "通过单词", + "通过 D6", + "通过 D20", + "使用摄像头的熵创建新助记词", + "(实验性)", + "继续?", + "快照的 SHA256:", + "无 Passphrase ", + "加载钱包", + "自定义", + "加载中..", + "解密?", + "未提供密钥", + "解密失败", + "加载助记词失败", + "助记词长度无效", + "如果希望 Krux 自动计算最后一位 Checksum,请留空", + "完成了吗?", + "输入 %d 个 BIP-39 词。", + "输入每个 BIP-39 助记词。", + "十进制", + "十六进制", + "八进制", + "将 BIP-39 助记词的每个词作为 1 到 4000 的八进制数输入。", + "将 BIP-39 助记词的每个词作为 1 到 800 的十六进制数输入。", + "将 BIP-39 助记词的每个词作为 1 到 2048 的数字输入。", + "将打孔点涂黑,以便它们能被检测到。", + "使用黑色背景界面。", + "正确对齐摄像头和背板。", + "版本", + "防眩光已启用", + "防眩光已禁用", + "加载相机..", + "大小:", + "已创建:", + "修改时间:", + "正在打印", + "请检查扫描的数据,如有必要请编辑", + "重新扫扫描第 1-12 个单词", + "等待截取", + "扫描第 13-24 个单词", + "输入私钥", + "扫描私钥二维码", + "密钥", + "加载密钥失败", + "存储到 Flash", + "存储到 SD 卡", + "加密二维码", + "助记词未加密", + "AES-CBC 模式需要相机的额外熵", + "为此助记词设置自定义 ID?否则将使用当前指纹", + "助记词 ID", + "ID 已存在", + "加密助记词未存储", + "加密助记词已存储,ID 为:", + "存储助记词失败", + "删除 %s?", + "已移除%s", + "在其他设备中完全擦除您的 SD 卡以确保数据不可恢复", + "要确保数据不可恢复,请使用擦除设备功能", + "Generating Flash Hash..", + "Flash Hash", + "检查 SD 卡", + "打印测试二维码", + "创建二维码", + "描述符地址", + "删除助记词", + "擦除设备", + "Set a PIN first", + "SD 卡", + "已用:", + "空闲:", + "浏览文件?", + "从 Flash 中永久删除所有存储的加密助记词和设置?", + "擦除设备中..", + "请勿断电,可能需要一段时间完成。", + "Krux 打印机测试二维码", + "从文本创建二维码?", + "文本", + "自定义二维码", + "区域:", + "行:", + "分辨率 - 格式", + "滑动切换模式", + "返回二维码查看器", + "调整亮度", + "将二维码图像保存到 SD 卡", + "打印到二维码", + "返回菜单", + "加载打印机..", + "导出到 SD 卡..", + "打印机驱动程序未设置!", + "消息:", + "地址", + "是否签名?", + "签名", + "加载消息失败", + "二维码签名", + " SD 卡签名", + "签名消息", + "十六进制公钥", + "钱包输出描述符", + "加载受信任的钱包描述符以查看地址?", + "(仅观察)", + "未找到钱包输出描述符。", + "加载一个?", + "加载输出描述符失败", + "接受假设?", + "无效钱包:", + "钱包输出描述符加载重复!", + "请加载钱包输出描述符", + "扫描地址", + "接收地址", + "找零地址", + "加载找零地址..", + "加载接收地址..", + "接收", + "找零", + "加载地址失败", + "无效地址", + "检查该地址是否属于此钱包?", + "%d到%d", + "已检查 %d 个不匹配的地址。", + " 非有效地址", + "在前 %d 个地址中未找到", + "再次尝试?", + "子索引", + "备份助记词", + "扩展公钥", + "钱包", + "签名", + "添加或更改钱包密码?", + "自定义您的钱包将生成新私钥。", + "助记词和密码将被保留。", + "生成 BIP85 子助记词?", + "钱包描述", + "消息", + "警告:", + "无法执行某些检查。", + "加载 PSBT 失败", + "路径不匹配", + "PSBT 中未设置指纹", + "高费用!", + "% 的金额。", + "签名中..", + "已签名 PSBT", + "保存到 SD 卡", + "已加密", + "其他格式", + "明文二维码", + "数字", + "打印?", + "打印 Tiny Seed?", + "掷骰子分布:", + "掷骰子至少 %d 次以生成助记词。", + "掷骰子:", + "投掷次数不足!", + "检测到低熵!", + "检测到模式!", + "继续吗?", + "极客统计数据", + "生成助记词", + "掷骰子的 SHA256:", +] From 3fbaba5e01b3ccc401c7a1ec82ac4e9f0d1da628 Mon Sep 17 00:00:00 2001 From: odudex Date: Tue, 17 Sep 2024 15:51:30 -0300 Subject: [PATCH 08/20] fix tests and lint --- i18n/i18n.py | 4 +- src/krux/krux_settings.py | 7 ++- src/krux/translations/__init__.py | 15 ------- src/krux/translations/{de_DE.py => de.py} | 15 ------- src/krux/translations/{es_MX.py => es.py} | 15 ------- src/krux/translations/{fr_FR.py => fr.py} | 15 ------- src/krux/translations/{ko_KR.py => ko.py} | 15 ------- src/krux/translations/{nl_NL.py => nl.py} | 15 ------- src/krux/translations/{pt_BR.py => pt.py} | 15 ------- src/krux/translations/{ru_RU.py => ru.py} | 15 ------- src/krux/translations/{tr_TR.py => tr.py} | 15 ------- src/krux/translations/{vi_VN.py => vi.py} | 15 ------- src/krux/translations/{zh_CN.py => zh.py} | 15 ------- tests/pages/test_settings_page.py | 41 ++++++++++------- tests/test_i18n.py | 54 +++++++++++------------ 15 files changed, 55 insertions(+), 216 deletions(-) rename src/krux/translations/{de_DE.py => de.py} (96%) rename src/krux/translations/{es_MX.py => es.py} (96%) rename src/krux/translations/{fr_FR.py => fr.py} (96%) rename src/krux/translations/{ko_KR.py => ko.py} (97%) rename src/krux/translations/{nl_NL.py => nl.py} (96%) rename src/krux/translations/{pt_BR.py => pt.py} (96%) rename src/krux/translations/{ru_RU.py => ru.py} (97%) rename src/krux/translations/{tr_TR.py => tr.py} (96%) rename src/krux/translations/{vi_VN.py => vi.py} (97%) rename src/krux/translations/{zh_CN.py => zh.py} (96%) diff --git a/i18n/i18n.py b/i18n/i18n.py index dea98eca..81bc8bda 100644 --- a/i18n/i18n.py +++ b/i18n/i18n.py @@ -215,9 +215,7 @@ def bake_translations(): translations_array.append(slug) else: translations_array.append(translations[slug]) - language_code = ( - basename(translation_filename).split(".")[0].replace("-", "_") - ) + language_code = basename(translation_filename).split(".")[0][:2] # Write the individual translation table to a separate Python file in the 'translations' subfolder with open( diff --git a/src/krux/krux_settings.py b/src/krux/krux_settings.py index 5d861641..eabbae88 100644 --- a/src/krux/krux_settings.py +++ b/src/krux/krux_settings.py @@ -59,7 +59,10 @@ def t(slug): if not locale_control.translation: return slug slug_id = binascii.crc32(slug.encode("utf-8")) - translation_index = locale_control.reference.index(slug_id) + try: + translation_index = locale_control.reference.index(slug_id) + except: + return slug return locale_control.translation[translation_index] @@ -87,7 +90,7 @@ def load_locale(self, locale): self.reference = None self.translation = None return - module_path = "krux.translations.{}".format(locale.replace("-", "_")) + module_path = "krux.translations.{}".format(locale[:2]) translation_module = __import__(module_path) # Navigate to the nested module (translations.) for part in module_path.split(".")[1:]: diff --git a/src/krux/translations/__init__.py b/src/krux/translations/__init__.py index d7ef7a17..6c46f0bd 100644 --- a/src/krux/translations/__init__.py +++ b/src/krux/translations/__init__.py @@ -88,7 +88,6 @@ 2029624154, 3656120779, 3903754133, - 2433276713, 1272005728, 1022211991, 133139382, @@ -105,20 +104,12 @@ 3768416405, 602716148, 2365886561, - 167100211, - 1257161524, - 3285413280, - 3954726429, - 2741273573, - 1038288324, 2470115694, 712533907, 2736513298, 388908871, 563836138, 3981762528, - 2808868327, - 3138902155, 3663022166, 1963678224, 1583186953, @@ -138,9 +129,6 @@ 2739590230, 1310058127, 690625786, - 2669588306, - 589459321, - 3847882980, 1198393582, 3761518438, 2032416055, @@ -237,15 +225,12 @@ 1178563089, 1871146425, 2258131455, - 2940953674, - 2115024667, 3442025874, 3037062877, 4094072796, 1712856005, 1476462492, 262410364, - 4286144962, 3976793317, 3336226318, 1077771640, diff --git a/src/krux/translations/de_DE.py b/src/krux/translations/de.py similarity index 96% rename from src/krux/translations/de_DE.py rename to src/krux/translations/de.py index 2ea31670..ea9d8912 100644 --- a/src/krux/translations/de_DE.py +++ b/src/krux/translations/de.py @@ -77,7 +77,6 @@ "Bildschirmschonerzeit", "Abschaltzeit:", "Mnemonics ausblenden", - "Hash Flash at Boot", "Standard-Wallet", "Sicherheit", "Hardware", @@ -94,20 +93,12 @@ "Change:", "Go", "Werkseinstellungen wiederherstellen und neu starten?", - "PIN disabled", - "Enter a 6+ characters PIN", - "Confirm PIN", - "PINs do not match", - "PIN set successfully", - "Error saving PIN", "Suche nach SD-Karte..", "Einstellungen auf SD-Karte gespeichert.", "SD-Karte nicht erkannt.", "Änderungen bleiben bis zum Herunterfahren bestehen.", "Die Einstellungen werden intern auf Flash gespeichert.", "Werkeinstellungen", - "Set PIN", - "Disable PIN", "Links", "Rechts", "Thema ändern und neu starten?", @@ -127,9 +118,6 @@ "12 Wörter", "24 Wörter", "Doppelte Gedächtnisstütze", - "Current PIN", - "PIN", - "Invalid PIN", "Gute Entropie", "Schlechte Entropie", "Unzureichende Entropie", @@ -226,15 +214,12 @@ "%s wurde entfernt.", "Löschen Sie Ihre SD-Karte vollständig in einem anderen Gerät, um sicherzustellen, dass die Daten nicht wiederhergestellt werden können", "Um sicherzustellen, dass die Daten nicht wiederhergestellt werden können, verwenden Sie die Funktion 'Gerät löschen'", - "Generating Flash Hash..", - "Flash Hash", "Prüfe SD-Karte", "Drucke Test-QR", "Erstelle QR-Code", "Deskriptor-Adressen", "Mnemonic löschen", "Gerät löschen", - "Set a PIN first", "SD-Karte", "Belegt:", "Frei:", diff --git a/src/krux/translations/es_MX.py b/src/krux/translations/es.py similarity index 96% rename from src/krux/translations/es_MX.py rename to src/krux/translations/es.py index 55bad8e5..1ddd983a 100644 --- a/src/krux/translations/es_MX.py +++ b/src/krux/translations/es.py @@ -77,7 +77,6 @@ "Tiempo de Espera del Protector de Pantalla", "Tiempo de Apagado", "Ocultar Mnemónicos", - "Hash Flash at Boot", "Cartera Predeterminada", "Seguridad", "Hardware", @@ -94,20 +93,12 @@ "Cambio:", "Ir", "¿Restablecer a la configuración de fábrica y reiniciar?", - "PIN disabled", - "Enter a 6+ characters PIN", - "Confirm PIN", - "PINs do not match", - "PIN set successfully", - "Error saving PIN", "Comprobación de la tarjeta SD..", "Configuración almacenada en la tarjeta SD.", "Tarjeta SD no detectada.", "Los cambios durarán hasta que el dispositivo se apague.", "Ajustes almacenados internamente en flash.", "Ajustes de Fábrica", - "Set PIN", - "Disable PIN", "Izquierda", "Derecha", "¿Cambiar de tema y reiniciar?", @@ -127,9 +118,6 @@ "12 palabras", "24 palabras", "Doble mnemónico", - "Current PIN", - "PIN", - "Invalid PIN", "Buena entropía", "Baja entropía", "Entropía insuficiente", @@ -226,15 +214,12 @@ "%s eliminado.", "Borra completamente su tarjeta SD en otro dispositivo para asegurarse de que los datos sean irrecuperables", "Para garantizar que los datos no se puedan recuperar, utiliza la función de borrar dispositivo", - "Generating Flash Hash..", - "Flash Hash", "Verifica Tarjeta SD", "Prueba de Impresión QR", "Crear Código QR", "Direcciones del descriptor", "Eliminar Mnemónico", "Borrar Dispositivo", - "Set a PIN first", "Tarjeta SD", "Usado:", "Libre:", diff --git a/src/krux/translations/fr_FR.py b/src/krux/translations/fr.py similarity index 96% rename from src/krux/translations/fr_FR.py rename to src/krux/translations/fr.py index 615e8d99..b7a3d48b 100644 --- a/src/krux/translations/fr_FR.py +++ b/src/krux/translations/fr.py @@ -77,7 +77,6 @@ "Delai d'Inactivité", "Delai d'Arrêt", "Masquer les mnémoniques", - "Hash Flash at Boot", "Portefeuille par défaut", "Sécurité", "Matériel", @@ -94,20 +93,12 @@ "La monnaie\u2009:", "Go", "Restaurer les paramètres d'usine et redémarrer\u2009?", - "PIN disabled", - "Enter a 6+ characters PIN", - "Confirm PIN", - "PINs do not match", - "PIN set successfully", - "Error saving PIN", "Vérification de la carte SD..", "Paramètres stockés sur la carte SD.", "Carte SD non détectée.", "Les modifications dureront jusqu'à l'arrêt.", "Paramètres stockés en interne sur flash.", "Paramètres d'usine", - "Set PIN", - "Disable PIN", "Gauche", "À droite", "Changer de thème et redémarrer\u2009?", @@ -127,9 +118,6 @@ "12 mots", "24 mots", "Double mnémonique", - "Current PIN", - "PIN", - "Invalid PIN", "Bonne entropie", "Mauvaise entropie", "Entropie insuffisante", @@ -226,15 +214,12 @@ "%s supprimé.", "Effacez complètement votre carte SD dans un autre appareil pour assurer que les données soient irrécupérables", "Pour assurer que les données soient irrécupérables, utilisez la fonctionnalité 'Effacer l'appareil'", - "Generating Flash Hash..", - "Flash Hash", "Vérifiez la carte SD", "Test d'impression QR", "Créer du code QR", "Adresses des descripteurs", "Supprimer mnémonique", "Effacer l'appareil", - "Set a PIN first", "Carte SD", "Utilisé\u2009:", "Libre\u2009:", diff --git a/src/krux/translations/ko_KR.py b/src/krux/translations/ko.py similarity index 97% rename from src/krux/translations/ko_KR.py rename to src/krux/translations/ko.py index d9f3092d..f0470deb 100644 --- a/src/krux/translations/ko_KR.py +++ b/src/krux/translations/ko.py @@ -77,7 +77,6 @@ "화면보호기 시간", "자동 종료시간", "니모닉 숨기기", - "Hash Flash at Boot", "지갑 기본설정", "보안", "하드웨어", @@ -94,20 +93,12 @@ "변경", "선택", "공장 설정을 복원하고 재부팅하시겠습니까?", - "PIN disabled", - "Enter a 6+ characters PIN", - "Confirm PIN", - "PINs do not match", - "PIN set successfully", - "Error saving PIN", "SD카드 확인 중..", "SD 카드에 저장된 설정.", "SD카드가 감지되지 않았습니다.", "변경 사항은 종료될때까지 유지됩니다.", "설정은 플래시에서 내부적으로 저장됩니다.", "공장 초기 설정", - "Set PIN", - "Disable PIN", "왼쪽", "오른쪽", "테마를 변경하고 재부팅하시겠습니까?", @@ -127,9 +118,6 @@ "12단어", "24단어", "이중 니모닉", - "Current PIN", - "PIN", - "Invalid PIN", "엔트로피가 충분합니다", "엔트로피가 부족합니다", "엔트로피가 충분하지 않습니다", @@ -226,15 +214,12 @@ "%s 제거되었습니다.", "다른 장치에서 데이터 복구가 불가능하도록 SD카드를 완전히 지우십시오", "데이터 복구가 불가능하도록 장치 전체지우기 기능을 사용하십시오", - "Generating Flash Hash..", - "Flash Hash", "SD카드 확인", "QR 테스트 인쇄", "QR 코드 생성", "디스크립터 주소", "니모닉 제거", "기기 초기화", - "Set a PIN first", "SD카드", "이미 사용됨:", "여유 공간:", diff --git a/src/krux/translations/nl_NL.py b/src/krux/translations/nl.py similarity index 96% rename from src/krux/translations/nl_NL.py rename to src/krux/translations/nl.py index 4b379d22..37c8c29f 100644 --- a/src/krux/translations/nl_NL.py +++ b/src/krux/translations/nl.py @@ -77,7 +77,6 @@ "Schermbeveiligingstijd", "Uitschakelingstijd:", "Verberg geheugensteunen", - "Hash Flash at Boot", "Standaard portemonnee", "Beveiliging", "Hardware", @@ -94,20 +93,12 @@ "Wisselgeld:", "Ga", "Fabrieksinstellingen herstellen en opnieuw opstarten?", - "PIN disabled", - "Enter a 6+ characters PIN", - "Confirm PIN", - "PINs do not match", - "PIN set successfully", - "Error saving PIN", "SD kaart controleren..", "Instellingen opgeslagen op SD kaart.", "SD kaart niet gedetecteerd.", "Wijzigingen blijven van kracht tot afsluiten.", "Instellingen intern opgeslagen op flitser.", "Fabrieksinstellingen", - "Set PIN", - "Disable PIN", "Links", "Rechts", "Thema veranderen en opnieuw opstarten?", @@ -127,9 +118,6 @@ "12 woorden", "24 woorden", "Dubbel geheugensteuntje", - "Current PIN", - "PIN", - "Invalid PIN", "Goede entropie", "Slechte entropie", "Onvoldoende entropie", @@ -226,15 +214,12 @@ "%s verwijderd.", "Wis uw SD kaart volledig in een ander apparaat om te zorgen dat de gegevens onherstelbaar zijn", "Gebruik de functie 'Apparaat wissen' om te zorgen dat de gegevens onherstelbaar zijn", - "Generating Flash Hash..", - "Flash Hash", "Controleer SD kaart", "Test QR afdrukken", "QR code maken", "Descriptoradressen", "Geheugensteun verwijderen", "Apparaat wissen", - "Set a PIN first", "SD kaart", "Gebruikt:", "Vrij:", diff --git a/src/krux/translations/pt_BR.py b/src/krux/translations/pt.py similarity index 96% rename from src/krux/translations/pt_BR.py rename to src/krux/translations/pt.py index ee0bda86..df150ef5 100644 --- a/src/krux/translations/pt_BR.py +++ b/src/krux/translations/pt.py @@ -77,7 +77,6 @@ "Tempo para protetor de tela", "Tempo de desligamento", "Ocultar Mnemônicos", - "Hash Flash at Boot", "Carteira Padrão", "Segurança", "Hardware", @@ -94,20 +93,12 @@ "Troco:", "Ir", "Restaurar as configurações de fábrica e reiniciar?", - "PIN disabled", - "Enter a 6+ characters PIN", - "Confirm PIN", - "PINs do not match", - "PIN set successfully", - "Error saving PIN", "Verificando o cartão SD..", "Configurações armazenadas no cartão SD.", "Cartão SD não detectado.", "Alterações só durarão até o desligamento.", "Configurações armazenadas internamente no flash.", "Configurações de Fábrica", - "Set PIN", - "Disable PIN", "Esquerda", "Direita", "Mudar o tema e reiniciar?", @@ -127,9 +118,6 @@ "12 palavras", "24 palavras", "Duplo mnemônico", - "Current PIN", - "PIN", - "Invalid PIN", "Boa entropia", "Entropia fraca", "Entropia insuficiente", @@ -226,15 +214,12 @@ "removido.", "Apague totalmente seu cartão SD em outro dispositivo para garantir que os dados sejam irrecuperáveis", "Para garantir que os dados sejam irrecuperáveis, use o recurso Limpar Dispositivo", - "Generating Flash Hash..", - "Flash Hash", "Verifique o cartão SD", "Imprimir QR de teste", "Gerar Código QR", "Endereços do Descritor", "Excluir Mnemônico", "Limpar Dispositivo", - "Set a PIN first", "Cartão SD", "Usado:", "Livre:", diff --git a/src/krux/translations/ru_RU.py b/src/krux/translations/ru.py similarity index 97% rename from src/krux/translations/ru_RU.py rename to src/krux/translations/ru.py index 1ffe5fbb..50eac1a1 100644 --- a/src/krux/translations/ru_RU.py +++ b/src/krux/translations/ru.py @@ -77,7 +77,6 @@ "Время Экранной Заставки", "Время выключения", "Скрыть мнемоники", - "Hash Flash at Boot", "Кошелек по умолчанию", "Охрана", "Аппаратное Обеспечение", @@ -94,20 +93,12 @@ "Сдача:", "OK", "Восстановить заводские настройки и перезагрузить?", - "PIN disabled", - "Enter a 6+ characters PIN", - "Confirm PIN", - "PINs do not match", - "PIN set successfully", - "Error saving PIN", "Проверка SD карты..", "Настройки сохранены на SD-карте.", "SD карта не обнаружена.", "Изменения будут храниться до выключения.", "Настройки хранятся во флэш-памяти.", "Заводские Настройки", - "Set PIN", - "Disable PIN", "Влево", "Вправо", "Сменить тему и перезагрузить?", @@ -127,9 +118,6 @@ "12 слов", "24 слова", "Двойная мнемоника", - "Current PIN", - "PIN", - "Invalid PIN", "Хорошая энтропия", "Плохая энтропия", "Недостаточная энтропия", @@ -226,15 +214,12 @@ "%s удален.", "Полностью стерите SD-карту в другом устройстве, чтобы убедиться, что данные не восстановимы", "Для гарантии невосстановления данных используйте функцию Очистки Устройства", - "Generating Flash Hash..", - "Flash Hash", "Проверить SD Карту", "Напечатать Тестовый QR", "Создать QR Код", "Адреса дескрипторов", "Удалить Мнемонику", "Очистка Устройства", - "Set a PIN first", "SD карта", "Использовано:", "Свободно:", diff --git a/src/krux/translations/tr_TR.py b/src/krux/translations/tr.py similarity index 96% rename from src/krux/translations/tr_TR.py rename to src/krux/translations/tr.py index 710ecea4..5891c0ea 100644 --- a/src/krux/translations/tr_TR.py +++ b/src/krux/translations/tr.py @@ -77,7 +77,6 @@ "Ekran Koruyucu Süresi", "Kapanma Süresi", "Mnemonic'leri Gizle", - "Hash Flash at Boot", "Varsayılan Cüzdan", "Güvenlik", "Donanım", @@ -94,20 +93,12 @@ "Para Üstü:", "Seç", "Fabrika ayarlarına geri dönüp ve yeniden başlatılsın mı?", - "PIN disabled", - "Enter a 6+ characters PIN", - "Confirm PIN", - "PINs do not match", - "PIN set successfully", - "Error saving PIN", "SD kart kontrol ediliyor..", "Ayarlar SD karta kaydedildi.", "SD kart algılanmadı.", "Değişiklikler kapanışa kadar devam edecek.", "Ayarlar dahili olarak flaşta saklanır.", "Fabrika Ayarları", - "Set PIN", - "Disable PIN", "Sol", "Sağ", "Temayı değiştir ve yeniden başlat?", @@ -127,9 +118,6 @@ "12 kelime", "24 kelime", "Çifte anımsatıcı", - "Current PIN", - "PIN", - "Invalid PIN", "Yeterli entropi", "Düşük entropi", "Yetersiz entropi", @@ -226,15 +214,12 @@ "%s kaldırıldı.", "Verilerin geri kullanılamaz olduğundan emin olmak için SD kartınızı başka bir cihazda tamamen silin", "Verilerin geri kullanılamaz olduğundan emin olmak için Cihazı Sil özelliğini kullanın", - "Generating Flash Hash..", - "Flash Hash", "SD Kartı Kontrol Et", "Test QR'ını Yazdır", "QR Kodu Oluştur", "Tanımlayıcı Adresler", "Mnemonic'i Kaldır", "Cihazı Sil", - "Set a PIN first", "SD kart", "Kullanılan:", "Boş:", diff --git a/src/krux/translations/vi_VN.py b/src/krux/translations/vi.py similarity index 97% rename from src/krux/translations/vi_VN.py rename to src/krux/translations/vi.py index 1b6fed25..3b1d7edf 100644 --- a/src/krux/translations/vi_VN.py +++ b/src/krux/translations/vi.py @@ -77,7 +77,6 @@ "Thời gian chế độ bảo vệ màn hình", "Thời gian tắt máy", "Ẩn Mnemonics", - "Hash Flash at Boot", "Ví mặc định", "Bảo mật", "Phần cứng", @@ -94,20 +93,12 @@ "Thay đổi:", "Chọn", "Khôi phục cài đặt gốc và khởi động lại?", - "PIN disabled", - "Enter a 6+ characters PIN", - "Confirm PIN", - "PINs do not match", - "PIN set successfully", - "Error saving PIN", "Kiểm tra thẻ SD..", "Cài đặt được lưu trên thẻ SD.", "Thẻ SD không được phát hiện.", "Thay đổi sẽ kéo dài cho đến khi tắt máy.", "Cài đặt được lưu trữ nội bộ trên đèn flash.", "Cài đặt Gốc", - "Set PIN", - "Disable PIN", "Trái", "Phải", "Thay đổi giao diện và khởi động lại?", @@ -127,9 +118,6 @@ "12 từ", "24 từ", "Từ gợi nhớ kép", - "Current PIN", - "PIN", - "Invalid PIN", "Entropy tốt", "Entropy kém", "Không đủ entropy", @@ -226,15 +214,12 @@ "%s Đã bỏ.", "Xóa hoàn toàn thẻ SD trong một thiết bị khác để đảm bảo dữ liệu không thể phục hồi", "Sử dụng tính năng Xóa dữ liệu trên thiết bị để đảm bảo dữ liệu không thể phục hồi", - "Generating Flash Hash..", - "Flash Hash", "Kiểm tra thẻ SD", "In kiểm tra QR", "Tạo mã QR", "Địa chỉ người mô tả", "Xóa Mnemonic", "Xóa dữ liệu trên thiết bị", - "Set a PIN first", "Thẻ SD", "Đã sử dụng:", "Khả dụng:", diff --git a/src/krux/translations/zh_CN.py b/src/krux/translations/zh.py similarity index 96% rename from src/krux/translations/zh_CN.py rename to src/krux/translations/zh.py index 20bad0ba..1e167bee 100644 --- a/src/krux/translations/zh_CN.py +++ b/src/krux/translations/zh.py @@ -77,7 +77,6 @@ "屏保时间", "关机时间", "隐藏助记词", - "Hash Flash at Boot", "默认钱包", "安全", "硬件", @@ -94,20 +93,12 @@ "找零", "去", "恢复出厂设置并重新设备?", - "PIN disabled", - "Enter a 6+ characters PIN", - "Confirm PIN", - "PINs do not match", - "PIN set successfully", - "Error saving PIN", "检查 SD 卡..", "设置存储在SD卡上。", "未检测到 SD 卡。", "更改将在关机前保持。", "设置存储在 Flash 内部。", "出厂设置", - "Set PIN", - "Disable PIN", "左", "右", "更改主题并重新启动?", @@ -127,9 +118,6 @@ "12 单词", "24 单词", "双重助记词", - "Current PIN", - "PIN", - "Invalid PIN", "良好的熵", "熵值低", "熵不足", @@ -226,15 +214,12 @@ "已移除%s", "在其他设备中完全擦除您的 SD 卡以确保数据不可恢复", "要确保数据不可恢复,请使用擦除设备功能", - "Generating Flash Hash..", - "Flash Hash", "检查 SD 卡", "打印测试二维码", "创建二维码", "描述符地址", "删除助记词", "擦除设备", - "Set a PIN first", "SD 卡", "已用:", "空闲:", diff --git a/tests/pages/test_settings_page.py b/tests/pages/test_settings_page.py index e6f70fad..73cbbabc 100644 --- a/tests/pages/test_settings_page.py +++ b/tests/pages/test_settings_page.py @@ -17,11 +17,10 @@ def test_settings_m5stickv(m5stickv, mocker, mocker_printer): from krux.pages.settings_page import SettingsPage from krux.input import BUTTON_ENTER, BUTTON_PAGE, BUTTON_PAGE_PREV from krux.krux_settings import Settings, CategorySetting, NumberSetting - from krux.translations import translation_table + from krux.translations import available_languages - tlist = list(translation_table) - index_pt = tlist.index("pt-BR") - index_next = (index_pt + 1) % (len(tlist)) + index_pt = available_languages.index("pt-BR") + index_next = (index_pt + 1) % (len(available_languages)) cases = [ ( # 0 - Change Network @@ -83,7 +82,7 @@ def test_settings_m5stickv(m5stickv, mocker, mocker_printer): BUTTON_PAGE, BUTTON_ENTER, ), - lambda: Settings().i18n.locale == tlist[index_next], + lambda: Settings().i18n.locale == available_languages[index_next], ), ( # 3 Printer numeric settings ( @@ -186,17 +185,25 @@ def test_settings_on_amigo_tft(amigo, mocker, mocker_printer): import krux from krux.pages.settings_page import SettingsPage from krux.input import BUTTON_TOUCH - from krux.krux_settings import Settings, CategorySetting, NumberSetting - from krux.translations import translation_table - from krux.themes import WHITE, RED, GREEN, ORANGE - - tlist = list(translation_table) - index_pt = tlist.index("pt-BR") - index_next = (index_pt + 1) % (len(tlist)) - text_pt = translation_table[tlist[index_pt]][1177338798] + "\n" + tlist[index_pt] - text_next = ( - translation_table[tlist[index_next]][1177338798] + "\n" + tlist[index_next] - ) + from krux.krux_settings import Settings, CategorySetting + from krux.translations import available_languages, ref_array + from krux.translations.pt import translation_array as br_array + from krux.themes import WHITE, GREEN, ORANGE + + index_pt = available_languages.index("pt-BR") + index_next = (index_pt + 1) % (len(available_languages)) + slug_index = ref_array.index(1177338798) + text_pt = br_array[slug_index] + "\n" + available_languages[index_pt] + + # Get translations for the next language + next_language = available_languages[index_next] + # Construct the path to the nested module + next_module_path = f"krux.translations.{next_language[:2]}" + # Import the top-level module (krux) + next_trans_module = __import__(next_module_path, fromlist=[""]) + # Access the translation_array variable from the nested module + next_trans_array = getattr(next_trans_module, "translation_array") + text_next = next_trans_array[slug_index] + "\n" + available_languages[index_next] PREV_INDEX = 0 GO_INDEX = 1 @@ -272,7 +279,7 @@ def test_settings_on_amigo_tft(amigo, mocker, mocker_printer): mocker.call(text_pt, WHITE), mocker.call(text_next, WHITE), ], - lambda: Settings().i18n.locale == tlist[index_next], + lambda: Settings().i18n.locale == available_languages[index_next], CategorySetting, ), ] diff --git a/tests/test_i18n.py b/tests/test_i18n.py index 431d7cb2..633991d5 100644 --- a/tests/test_i18n.py +++ b/tests/test_i18n.py @@ -1,39 +1,35 @@ import pytest +# import binascii -@pytest.fixture -def tdata(mocker): - import binascii +# TRANSLATION_SLUGS = [ +# "Hello world", +# "Hello", +# "Untranslated slug", +# ] - return [ - {"en-US": {binascii.crc32("Hello world".encode("utf-8")): "Hello"}}, - {"es-MX": {binascii.crc32("Hello world".encode("utf-8")): "Hola"}}, - ] +# INDEX_REFERENCE = [ +# binascii.crc32(TRANSLATION_SLUGS[0].encode("utf-8")), +# binascii.crc32(TRANSLATION_SLUGS[1].encode("utf-8")), +# binascii.crc32(TRANSLATION_SLUGS[2].encode("utf-8")), +# ] +# PT_BR = [ +# "Olá mundo", +# "Olá", +# "Untranslated slug", +# ] -def test_translations(mocker, m5stickv, tdata): - import binascii - from krux.krux_settings import translations - cases = [ - (tdata[0], {binascii.crc32("Hello world".encode("utf-8")): "Hello"}), - (tdata[1], None), - ] - for case in cases: - mocker.patch("krux.krux_settings.translation_table", case[0]) - lookup = translations("en-US") +def test_translations(mocker, m5stickv): + from krux.krux_settings import t, locale_control - assert lookup == case[1] + # Test default language + assert t("Load Mnemonic") == "Load Mnemonic" + # Test pt_BR + locale_control.load_locale("pt_BR") + assert t("Load Mnemonic") == "Carregar Mnemônico" -def test_t(mocker, m5stickv, tdata): - from krux.krux_settings import t - - cases = [ - (tdata[0], "Hello world", "Hello"), - (tdata[1], "Hello world", "Hello world"), - ] - for case in cases: - mocker.patch("krux.krux_settings.translation_table", case[0]) - - assert t(case[1]) == case[2] + # Test non existent slug + assert t("New Text") == "New Text" From 1e7021cf71f44597cd2741aec1c50c397af45cd7 Mon Sep 17 00:00:00 2001 From: odudex Date: Tue, 17 Sep 2024 15:55:06 -0300 Subject: [PATCH 09/20] i18n lint --- i18n/i18n.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/i18n.py b/i18n/i18n.py index 81bc8bda..ba1287a6 100644 --- a/i18n/i18n.py +++ b/i18n/i18n.py @@ -226,7 +226,7 @@ def bake_translations(): ) as language_file: language_file.write(KRUX_LICENSE) language_file.write("# pylint: disable=C0301\n") - language_file.write(f"translation_array = ") + language_file.write("translation_array = ") language_file.write(repr(translations_array)) language_file.write("\n") print("Baked: " + translations_dir + f"/{language_code}.py") From 1a4da99f4fe86499abb822cd1098648692e16915 Mon Sep 17 00:00:00 2001 From: odudex Date: Tue, 17 Sep 2024 16:04:18 -0300 Subject: [PATCH 10/20] i18n lint II --- i18n/i18n.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/i18n/i18n.py b/i18n/i18n.py index ba1287a6..a91e4fb6 100644 --- a/i18n/i18n.py +++ b/i18n/i18n.py @@ -19,12 +19,14 @@ # 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. + import binascii import sys import json from os import listdir, walk, mkdir from os.path import isfile, isdir, exists, join, basename import re +from translate import Translator SRC_DIR = "../src" TRANSLATION_FILES_DIR = "translations" @@ -115,7 +117,6 @@ def print_missing(): force_target = sys.argv[2] else: force_target = None - from translate import Translator slugs = find_translation_slugs() translation_filenames = [ @@ -190,7 +191,10 @@ def remove_unnecessary(): def bake_translations(): - """Bakes individual translation tables into separate files inside the krux namespace within a 'translations' subfolder.""" + """ + Bakes individual translation tables into separate files inside the krux namespace + within a 'translations' subfolder. + """ translations_dir = join(SRC_DIR, "krux", "translations") # Create the translations subfolder if it doesn't exist @@ -217,7 +221,8 @@ def bake_translations(): translations_array.append(translations[slug]) language_code = basename(translation_filename).split(".")[0][:2] - # Write the individual translation table to a separate Python file in the 'translations' subfolder + # Write the individual translation array to a separate Python file + # in the 'translations' subfolder with open( join(translations_dir, f"{language_code}.py"), "w", From eb422b7db7528b89433a31254a813e4c3afa9e5b Mon Sep 17 00:00:00 2001 From: odudex Date: Tue, 17 Sep 2024 16:26:07 -0300 Subject: [PATCH 11/20] i18n more tests --- i18n/i18n.py | 2 +- tests/test_i18n.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/i18n/i18n.py b/i18n/i18n.py index a91e4fb6..91021383 100644 --- a/i18n/i18n.py +++ b/i18n/i18n.py @@ -26,7 +26,6 @@ from os import listdir, walk, mkdir from os.path import isfile, isdir, exists, join, basename import re -from translate import Translator SRC_DIR = "../src" TRANSLATION_FILES_DIR = "translations" @@ -117,6 +116,7 @@ def print_missing(): force_target = sys.argv[2] else: force_target = None + from translate import Translator slugs = find_translation_slugs() translation_filenames = [ diff --git a/tests/test_i18n.py b/tests/test_i18n.py index 633991d5..2b0a3b88 100644 --- a/tests/test_i18n.py +++ b/tests/test_i18n.py @@ -23,6 +23,8 @@ def test_translations(mocker, m5stickv): from krux.krux_settings import t, locale_control + from krux.translations import available_languages, ref_array + import binascii # Test default language assert t("Load Mnemonic") == "Load Mnemonic" @@ -33,3 +35,16 @@ def test_translations(mocker, m5stickv): # Test non existent slug assert t("New Text") == "New Text" + + # Cross-check available languages reference files + crc32_index = binascii.crc32("Load Mnemonic".encode("utf-8")) + reference_index = ref_array.index(crc32_index) + for lang in available_languages: + # Construct the path to the nested module + lang_module_path = f"krux.translations.{lang[:2]}" + # Import the top-level module (krux) + lang_trans_module = __import__(lang_module_path, fromlist=[""]) + # Access the translation_array variable from the nested module + lang_trans_array = getattr(lang_trans_module, "translation_array") + locale_control.load_locale(lang) + assert t("Load Mnemonic") == lang_trans_array[reference_index] From e66270f4e8af8333133338d9029af161434062a8 Mon Sep 17 00:00:00 2001 From: Odudex Date: Wed, 18 Sep 2024 14:30:11 -0300 Subject: [PATCH 12/20] sort translation slugs on reference array clean tests --- i18n/i18n.py | 1 + src/krux/translations/__init__.py | 522 +++++++++++++++--------------- src/krux/translations/de.py | 522 +++++++++++++++--------------- src/krux/translations/es.py | 522 +++++++++++++++--------------- src/krux/translations/fr.py | 522 +++++++++++++++--------------- src/krux/translations/ko.py | 522 +++++++++++++++--------------- src/krux/translations/nl.py | 522 +++++++++++++++--------------- src/krux/translations/pt.py | 522 +++++++++++++++--------------- src/krux/translations/ru.py | 522 +++++++++++++++--------------- src/krux/translations/tr.py | 522 +++++++++++++++--------------- src/krux/translations/vi.py | 522 +++++++++++++++--------------- src/krux/translations/zh.py | 522 +++++++++++++++--------------- tests/test_i18n.py | 20 -- 13 files changed, 2872 insertions(+), 2891 deletions(-) diff --git a/i18n/i18n.py b/i18n/i18n.py index 91021383..f4f0e64c 100644 --- a/i18n/i18n.py +++ b/i18n/i18n.py @@ -208,6 +208,7 @@ def bake_translations(): ] translation_filenames.sort() code_slugs = find_translation_slugs() + code_slugs = sorted(code_slugs) for translation_filename in translation_filenames: with open( join(TRANSLATION_FILES_DIR, translation_filename), "r", encoding="utf8" diff --git a/src/krux/translations/__init__.py b/src/krux/translations/__init__.py index 6c46f0bd..0b8baef4 100644 --- a/src/krux/translations/__init__.py +++ b/src/krux/translations/__init__.py @@ -32,297 +32,297 @@ "zh-CN", ] ref_array = [ - 3634967631, - 3429519584, - 3034883011, - 2542772894, - 1422874211, - 3928301843, - 2256777600, - 2874529150, - 3108881025, - 2786714360, - 1557093280, - 2120776272, - 2281377987, + 232475068, 1185266064, - 4265479636, + 1503087751, + 1178563089, + 1092222515, + 3348584292, + 1099786887, + 2739590230, + 1310058127, + 1949634023, + 4287534872, + 2995482424, 2415648848, - 1177338798, - 2939797024, - 1845376098, - 289960586, + 1043817877, + 3439746594, + 2143824150, + 3270727197, + 900375497, + 88746165, + 1521033296, + 3857613120, + 1056821534, + 1868069640, + 3455872521, + 4151330982, + 2756316330, + 2256777600, 3937333362, - 2987800462, - 4228215415, - 710709610, - 972436696, - 763824768, - 4122897393, - 597912140, - 2089395053, - 1406590538, - 784609464, - 104500973, - 124617190, - 4102535566, - 3559456868, + 2046615409, 928727036, - 1180180513, - 382368239, - 2038226551, - 3684696112, - 3748840176, - 640219121, - 1868069640, - 911419226, 2519455027, - 1123106929, 2363604010, - 2978718564, - 3278654271, - 2817059741, - 2601598799, - 3312581301, - 1454688268, - 2029624154, - 3656120779, - 3903754133, + 2038226551, + 3138204438, + 1207696150, + 3126552510, + 1583186953, + 3768416405, + 388908871, + 3442025874, + 3119547911, + 1187826970, + 2470115694, + 1851578965, + 4094072796, + 167798282, + 678449760, + 3513215254, + 3585411775, + 534274978, + 124617190, + 597912140, + 2504034831, + 2751113454, 1272005728, - 1022211991, - 133139382, - 766317539, + 4102535566, + 1712856005, + 3278654271, + 3895447625, + 3836852788, + 690625786, + 382368239, + 3582575312, + 1244124409, + 2968548114, + 781419966, 350279787, - 140802882, - 3857613120, - 3242179508, - 2090568351, - 4255182430, + 2601598799, + 1821513079, + 3504179008, + 1100685007, + 4090266642, + 2780625730, + 889040671, + 1505332462, + 3838465623, + 4170881190, + 1711312434, + 3981762528, + 383371114, + 3048830188, + 4192663412, + 1996021743, + 1108715658, + 1081425878, + 928667220, + 1620572516, + 2946146830, 262248294, - 1260825919, - 3753172956, - 3768416405, + 104500973, + 3313339187, + 1982637349, + 4006602858, + 2542772894, + 3748840176, + 1406590538, + 1077771640, + 1893243331, + 1871146425, + 3549015533, + 3524220994, + 299338213, 602716148, - 2365886561, - 2470115694, - 712533907, - 2736513298, - 388908871, - 563836138, - 3981762528, - 3663022166, - 1963678224, - 1583186953, - 989428076, - 4003084591, - 1948316555, - 1505332462, - 797660533, - 1056821534, - 1936877965, - 237136240, - 3913146360, - 1303016265, - 4063104189, - 3455872521, - 889040671, - 2739590230, - 1310058127, - 690625786, 1198393582, - 3761518438, - 2032416055, - 1898550184, - 3138204438, - 2377955518, - 1092222515, - 2578106186, + 133139382, + 3580020863, + 2691246967, + 3903754133, + 3876651191, + 2880010062, + 3242179508, + 3034883011, 3755547839, - 3345150514, + 2032416055, + 2585599782, + 2874529150, + 4093416954, + 1422874211, + 237577215, + 4122897393, + 640219121, + 3000888649, + 3264569915, + 3835918229, + 911419226, + 766317539, + 4180141032, + 3663022166, + 972436696, + 2176866982, + 2820726296, + 2369474953, + 2256441194, + 237136240, 879727077, + 1936877965, + 669106195, 3330705289, - 3531742595, - 2940025484, - 3313339187, - 1982637349, - 401829098, - 4038076821, - 4249903283, - 1620572516, + 2596531078, + 2488179069, + 336702608, + 1201104769, + 3159494909, + 1177338798, + 2817059741, 2917810189, - 2995482424, - 1043817877, - 2820726296, + 2030045667, + 762611188, + 3928301843, + 1948316555, + 2123991188, + 1443208255, + 1746030071, + 1237332019, + 1845376098, + 4265479636, + 2939797024, 73574491, - 473154195, - 725348723, - 1949634023, - 1825881236, - 4191058607, - 590330112, - 1893243331, - 1848310591, - 2046615409, - 2965123464, - 3742424146, - 1947603760, - 525309547, - 1254681955, - 2402455261, - 3348584292, - 2580599003, - 817419367, + 3634967631, + 4063104189, 2325721074, - 2369474953, - 3585411775, - 3159494909, - 2751113454, - 3264569915, - 383371114, - 1081425878, - 4093416954, - 4180141032, - 3836852788, - 1821513079, - 2780625730, - 2504034831, - 2691246967, + 4092516657, + 3089363813, 1577637745, - 4090266642, - 1100685007, - 3504179008, + 391304453, + 3312581301, 995862913, - 2674953168, - 900375497, - 1889659487, - 1521033296, - 88746165, - 2596531078, - 2019512665, - 678449760, - 1237332019, + 2987800462, + 3913146360, + 3559456868, + 4249903283, + 3745269737, + 500286397, + 3040011773, + 140802882, + 2578106186, + 1703779997, + 3561756278, + 784609464, + 3761518438, + 3639136476, + 3037062877, + 2362732578, + 3123770978, + 3345150514, + 3339507095, + 1123106929, + 3903571079, 3586624216, - 1662254634, - 4006316572, - 2504354847, - 2736506158, - 2061556020, - 923277590, - 3000888649, - 1996021743, - 3303592908, - 720041451, - 1244124409, - 1746030071, - 2143824150, - 299338213, - 2123991188, - 2880010062, - 2968548114, - 781419966, - 2946146830, + 3593149291, + 2580599003, + 3108881025, + 1848310591, + 710709610, + 2697857197, + 1746677167, + 1658501467, 3739634002, - 1178563089, - 1871146425, - 2258131455, - 3442025874, - 3037062877, - 4094072796, - 1712856005, 1476462492, - 262410364, - 3976793317, - 3336226318, - 1077771640, - 3838465623, - 3040011773, - 3522794335, - 3895447625, - 3835918229, - 167798282, - 2612594937, - 3513215254, - 1658501467, - 2176866982, + 1557093280, 2817311427, - 3514476519, + 2365886561, 3091105710, - 2700207481, + 1662254634, + 1963678224, + 770350922, + 3271055013, + 432366011, + 3976793317, + 2736513298, + 1166743226, + 817419367, 699906428, - 3123770978, - 4151330982, - 336702608, - 4170881190, - 3903571079, - 762611188, - 3270727197, - 4282338366, - 746161122, - 1108715658, + 2163347007, + 3531742595, + 2940025484, + 763824768, + 4117455079, + 4038076821, + 923277590, + 4006316572, + 2736506158, + 2029624154, + 289960586, + 1022211991, + 4255182430, + 3753172956, + 473154195, + 563836138, + 712533907, + 2377955518, + 1825881236, + 3656120779, + 2120776272, + 1061961408, 2293863356, 2879966040, + 4282338366, + 746161122, 1988416729, - 3580020863, - 4232654916, - 2256441194, - 1099786887, - 2499782468, - 669106195, - 928667220, - 4287534872, - 237577215, - 2587172867, - 3561756278, - 4117455079, - 1746677167, - 3126552510, - 2488179069, - 1201104769, - 2697857197, - 1207696150, - 4192663412, - 2585599782, - 3119547911, - 1503087751, - 1187826970, - 2171149824, - 1875891934, + 3672006076, + 3406791302, + 2281377987, + 2019512665, + 2344747135, + 2090568351, + 1260825919, + 1232757391, + 3303592908, + 720041451, + 3514476519, + 1898550184, + 4228215415, + 2612594937, + 1454688268, + 1180180513, + 2258131455, + 2700207481, + 725348723, + 3684696112, + 2978718564, 2732611775, - 1851578965, - 2756316330, - 1711312434, + 401829098, + 2061556020, + 2089395053, + 2786714360, + 2674953168, + 2402455261, + 3336226318, + 4003084591, + 989428076, + 3429519584, + 1889659487, + 4191058607, + 1254681955, + 525309547, + 590330112, + 1947603760, + 2504354847, 2076481321, - 1061961408, - 3439746594, - 534274978, - 1443208255, - 3524220994, 2297028319, - 2030045667, + 4232654916, + 2587172867, + 2499782468, 2671738224, - 2344747135, - 3048830188, - 3745269737, - 4006602858, - 3876651191, - 232475068, - 3406791302, - 3672006076, - 2163347007, - 3582575312, - 391304453, - 1703779997, - 3089363813, - 3339507095, - 2362732578, - 3271055013, - 770350922, - 432366011, - 4092516657, - 3639136476, - 500286397, - 3593149291, - 1232757391, - 3549015533, - 1166743226, + 262410364, + 3522794335, + 797660533, + 3742424146, + 2965123464, + 1303016265, + 2171149824, + 1875891934, ] diff --git a/src/krux/translations/de.py b/src/krux/translations/de.py index ea9d8912..693a7bf3 100644 --- a/src/krux/translations/de.py +++ b/src/krux/translations/de.py @@ -21,297 +21,297 @@ # THE SOFTWARE. # pylint: disable=C0301 translation_array = [ - "Neue Firmware erkannt.", - "Überprüfung..", - "Installieren?", - "Die Firmware übersteigt die maximale Größe: %d", - "Ungültiger öffentlicher Schlüssel", - "Fehlende Signaturdatei", - "Ungültige Signatur", - "Ungültiger Bootloader", - "Wird bearbeitet..", - "Upgrade abgeschlossen.", - "Firmware-Dateien von der SD-Karte entfernen?", - "Herunterfahren..", - "Single-Sig", + "% des Betrags.", "%d von %d Multisig", - "Native Segwit - 84 würde angenommen", + "%d bis %d ", + "%s wurde entfernt.", + "(%d insgesamt)", + "(Experimental)", + "(nur zur Betrachtung)", + "12 Wörter", + "24 Wörter", + "Über", + "Annahme akzeptieren?", + "Konto", "Konto #0 würde angenommen", - "Spracheinstellung", - "Netzwerk", - "Multisig", - "Script-Art", + "Kontoindex", + "Wallet-Passphrase hinzufügen oder ändern?", + "Zusätzliche Entropie von der Kamera für den AES-CBC-Modus erforderlich", + "Adresse", + "Richte Kamera und Sicherungsplatte richtig aus.", + "Blendschutz deaktiviert", + "Blendschutz aktiviert", + "Aussehen", + "Bist Du sicher?", + "BGR-Farben", + "Zurück", + "Zurück zum Menü", + "Mnemonik-Backup", + "Ungültige Signatur", "Baudrate", - "Papierbreite", - "TX Pin", - "RX Pin", - "Leitungsverzögerung", - "Skala", - "Umkehren", - "Cut-Methode", - "Einheit", - "Flötendurchmesser", - "Tauchrate", - "Vorschubgeschwindigkeit", - "Schnitttiefe", - "Tiefe pro Durchgang", - "Teilegröße", + "Binäres Gitter", "Randpolsterung", - "Thermisch", - "Driver", - "Entprellung der Tasten", - "Berühre Schwellenwert", - "Umgedrehte X-Koordinaten", - "Invertierte Farben", - "BGR-Farben", - "LCD-Typ", "Helligkeit", - "Drucker", "Tasten", - "Touchscreen", - "Bildschirm", - "Speicherort", - "Verschlüsselungsmodus", - "PBKDF2-Iter.", - "Thema", - "Bildschirmschonerzeit", - "Abschaltzeit:", - "Mnemonics ausblenden", + "Entprellung der Tasten", + "Aufnahme abgebrochen", + "Change Adresse", + "Change Adressen", + "Thema ändern und neu starten?", + "Change:", + "Änderungen bleiben bis zum Herunterfahren bestehen.", + "Prüfe SD-Karte", + "Überprüfen, ob diese Adresse zu dieser Wallet gehört?", + "Überprüfte %d Adresse ohne Übereinstimmungen.", + "Suche nach SD-Karte..", + "Untergeordneter Index", + "Erstelle QR-Code", + "QR-Code aus Text erzeugen?", + "Erstellt:", + "Benutzerdefinierte QR-Code", + "Anpassen", + "Wenn Sie Ihr Wallet anpassen, wird ein neuer Schlüssel generiert.", + "Schnitttiefe", + "Cut-Methode", + "Dezimal", + "Entschlüsseln?", "Standard-Wallet", - "Sicherheit", - "Hardware", - "Sprache", + "Tiefe pro Durchgang", + "Deskriptor-Adressen", + "Bildschirm", + "Schalten Sie das Gerät nicht aus, es kann eine Weile dauern.", + "Fertig?", + "Doppelte Gedächtnisstütze", + "Driver", + "Verschlüsselt", + "Verschlüsselter QR-Code", + "Verschlüsselte Mnemonic wurde nicht gespeichert", + "Speicherung der verschlüsselten Mnemonic mit ID:", "Verschlüsselung", - "Speicher", - "Aussehen", - "Input (%d):", - "Ausgabe (%d):", - "Selbstübertragung oder Change (%d):", + "Verschlüsselungsmodus", + "Geben Sie %d BIP-39 Wörter ein.", + "Gib jedes Wort Deiner BIP-39 Mnemonic als Zahl von 1 bis 2048 ein.", + "Gib jedes Wort Deiner BIP-39 Mnemonic als Hexadezimalzahl von 1 bis 800 ein.", + "Gib jedes Wort Deiner BIP-39 Mnemonic als Oktalzahl von 1 bis 4000 ein.", + "Gib jedes Wort Deiner BIP-39 Mnemonic ein.", + "Fehler:", + "Esc", + "Dateien durchsuchen?", + "Auf SD-Karte exportieren..", + "Öffentlicher Schlüssel", + "Werkeinstellungen", + "Entschlüsselung fehlgeschlagen", + "PSBT konnte nicht geladen werden", + "Adresse konnte nicht geladen werden", + "Schlüssel konnte nicht geladen werden", + "Nachricht konnte nicht geladen werden", + "Mnemonic konnte nicht geladen werden", + "Ausgabedeskriptor konnte nicht geladen werden", + "Passphrase konnte nicht geladen werden", + "Mnemonic konnte nicht gespeichert werden", "Gebühr:", - "Ausgaben:", - "Selbstübertragung:", - "Change:", + "Vorschubgeschwindigkeit", + "Dateiname", + "Dateiname %s existiert auf SD-Karte, überschreiben?", + "Fingerabdruck in PSBT deaktiviert", + "Die Firmware übersteigt die maximale Größe: %d", + "Umgedrehte X-Koordinaten", + "Flötendurchmesser", + "Frei:", + "Vom Speicher", + "Löschen Sie Ihre SD-Karte vollständig in einem anderen Gerät, um sicherzustellen, dass die Daten nicht wiederhergestellt werden können", + "Mnemonik erzeugen", + "BIP85-Untermnemonik generieren?", + "Dieser Mnemonic eine benutzerdefinierte ID zuteilen? Andernfalls wird der aktuelle Fingerabdruck verwendet", "Go", - "Werkseinstellungen wiederherstellen und neu starten?", - "Suche nach SD-Karte..", - "Einstellungen auf SD-Karte gespeichert.", - "SD-Karte nicht erkannt.", - "Änderungen bleiben bis zum Herunterfahren bestehen.", - "Die Einstellungen werden intern auf Flash gespeichert.", - "Werkeinstellungen", - "Links", - "Rechts", - "Thema ändern und neu starten?", - "Der Wert muss ein Vielfaches von %s sein", - "Wert %S außerhalb des Bereichs: [ %s, %s]", - "Mnemonic", - "Esc", - "Wort %d", - "Bist Du sicher?", - "Von der Kamera laden", - "Von SD-Karte laden", - "Teil", - "Ja", - "Nein", - "Zurück", - "Fehler:", - "12 Wörter", - "24 Wörter", - "Doppelte Gedächtnisstütze", "Gute Entropie", - "Schlechte Entropie", - "Unzureichende Entropie", - "TOUCH oder ENTER zum Erfassen", - "Aufnahme abgebrochen", - "Shannons Entropie:", - "(%d insgesamt)", - "Pixelabweichungsindex:", + "Hardware", + "Hex öffentlicher Schlüssel", + "Hexadezimal", + "Mnemonics ausblenden", + "Hohe Gebühren!", + "ID existiert bereits", + "Input (%d):", + "Installieren?", "Unzureichende Entropie!", - "Als QR-Code drucken?", + "Unzureichende Entropie", + "Ungültige Adresse", + "Ungültiger Bootloader", + "Ungültige mnemonische Lange", + "Ungültiger öffentlicher Schlüssel", + "Ungültige Wallet:", + "Umkehren", + "Invertierte Farben", + "Schlüssel", + "Schlüssel wurde nicht zur Verfügung gestellt", + "Krux Drucker Test-QR", + "LCD-Typ", + "Sprache", + "Lassen Sie das Feld leer, wenn Sie möchten, dass Krux ein gültiges letztes Wort auswählt", + "Links", + "Leitungsverzögerung", + "Linie:", + "Mnemonic laden", + "Wallet laden", + "Einen vertrauenswürdigen Wallet-Deskriptor laden, um Adressen anzuzeigen?", + "Von SD-Karte laden", "Von SD-Karte laden?", + "Von der Kamera laden", + "Eine laden?", "Laden?", - "Auf SD-Karte speichern?", - "Auf SD-Karte gespeichert", - "Dateiname", - "Dateiname %s existiert auf SD-Karte, überschreiben?", - "BIP39 Passphrase eingeben", - "Scan BIP39 Passphrase", - "Passphrase", - "Passphrase konnte nicht geladen werden", + "Lade Kamera..", + "Lade Change Adressen..", + "Drucker wird geladen..", + "Lade Empfangsadressen..", + "Wird geladen..", + "Spracheinstellung", + "Speicherort", "Maximale Länge überschritten (%s)", - "Konto", - "Kontoindex", - "Mnemonic laden", + "Nachricht", + "Nachricht:", + "Fehlende Signaturdatei", + "Mnemonic", + "Mnemonische ID", + "Mnemotechnik und Passphrase werden beibehalten.", + "Mnemonic wurde nicht verschlüsselt", + "Geändert:", + "Multisig", + "Native Segwit - 84 würde angenommen", + "Netzwerk", "Neue Mnemonic", - "Einstellungen", - "Werkzeuge", - "Über", - "Ausschalten", - "Via Kamera", - "Via manueller Eingabe", - "Vom Speicher", - "QR-Code", - "Binäres Gitter", - "Wörter", - "Wortnummern", - "Via Wörter", - "Via D6", - "Via D20", - "Verwende die Entropie der Kamera, um eine neue Mnemonic zu erstellen", - "(Experimental)", - "Weiter?", - "SHA256 des Snapshots:", + "Neue Firmware erkannt.", + "Nein", "Keine Passphrase", - "Wallet laden", - "Anpassen", - "Wird geladen..", - "Entschlüsseln?", - "Schlüssel wurde nicht zur Verfügung gestellt", - "Entschlüsselung fehlgeschlagen", - "Mnemonic konnte nicht geladen werden", - "Ungültige mnemonische Lange", - "Lassen Sie das Feld leer, wenn Sie möchten, dass Krux ein gültiges letztes Wort auswählt", - "Fertig?", - "Geben Sie %d BIP-39 Wörter ein.", - "Gib jedes Wort Deiner BIP-39 Mnemonic ein.", - "Dezimal", - "Hexadezimal", + "Nicht genug Würfe!", + "Zahlen", "Oktal", - "Gib jedes Wort Deiner BIP-39 Mnemonic als Oktalzahl von 1 bis 4000 ein.", - "Gib jedes Wort Deiner BIP-39 Mnemonic als Hexadezimalzahl von 1 bis 800 ein.", - "Gib jedes Wort Deiner BIP-39 Mnemonic als Zahl von 1 bis 2048 ein.", + "Andere Formate", + "PBKDF2-Iter.", "Male gestanzte Punkte schwarz an, damit sie erkannt werden können.", - "Verwende eine schwarze Hintergrundfläche.", - "Richte Kamera und Sicherungsplatte richtig aus.", - "Version", - "Blendschutz aktiviert", - "Blendschutz deaktiviert", - "Lade Kamera..", - "Größe:", - "Erstellt:", - "Geändert:", + "Papierbreite", + "Teil", + "Teilegröße", + "Passphrase", + "Pfad stimmt nicht überein", + "Muster erkannt!", + "Alle gespeicherten verschlüsselten Mnemoniken und Einstellungen dauerhaft vom Flash-Speicher entfernen?", + "Speicher", + "Pixelabweichungsindex:", + "Klartext-QR", + "Bitte lade einen Wallet Ausgabedeskriptor", + "Tauchrate", + "Schlechte Entropie", + "Schlechte Entropie erkannt!", + "Drucke Test-QR", + "Tiny Seed drucken?", + "Als QR-Code drucken", + "Als QR-Code drucken?", + "Drucken?", + "Drucker", + "Druckertreiber nicht gesetzt!", "Wird gedruckt..", - "Überprüfe gescannte Daten und bearbeite sie bei Bedarf", - "Wörter 1-12 erneut scannen", - "Warte auf die Erfassung", - "Wörter 13-24 scannen", - "Schlüssel eingeben", - "Schlüssel QR-Code Scannen", - "Schlüssel", - "Schlüssel konnte nicht geladen werden", - "Auf Flash speichern", - "Auf der SD-Karte speichern", - "Verschlüsselter QR-Code", - "Mnemonic wurde nicht verschlüsselt", - "Zusätzliche Entropie von der Kamera für den AES-CBC-Modus erforderlich", - "Dieser Mnemonic eine benutzerdefinierte ID zuteilen? Andernfalls wird der aktuelle Fingerabdruck verwendet", - "Mnemonische ID", - "ID existiert bereits", - "Verschlüsselte Mnemonic wurde nicht gespeichert", - "Speicherung der verschlüsselten Mnemonic mit ID:", - "Mnemonic konnte nicht gespeichert werden", + "Trotzdem fortfahren?", + "Weiter?", + "Wird bearbeitet..", + "QR-Code", + "RX Pin", + "Empfangen", + "Empfangsadresse", + "Region:", "Löschen %s?", - "%s wurde entfernt.", - "Löschen Sie Ihre SD-Karte vollständig in einem anderen Gerät, um sicherzustellen, dass die Daten nicht wiederhergestellt werden können", - "Um sicherzustellen, dass die Daten nicht wiederhergestellt werden können, verwenden Sie die Funktion 'Gerät löschen'", - "Prüfe SD-Karte", - "Drucke Test-QR", - "Erstelle QR-Code", - "Deskriptor-Adressen", "Mnemonic löschen", - "Gerät löschen", - "SD-Karte", - "Belegt:", - "Frei:", - "Dateien durchsuchen?", - "Alle gespeicherten verschlüsselten Mnemoniken und Einstellungen dauerhaft vom Flash-Speicher entfernen?", - "Gerät wird gewischt..", - "Schalten Sie das Gerät nicht aus, es kann eine Weile dauern.", - "Krux Drucker Test-QR", - "QR-Code aus Text erzeugen?", - "Text", - "Benutzerdefinierte QR-Code", - "Region:", - "Linie:", + "Firmware-Dateien von der SD-Karte entfernen?", "Res. - Format", - "Wischen um den Modus zu ändern", + "Werkseinstellungen wiederherstellen und neu starten?", "Zurück zum QR-Viewer", - "Helligkeit umschalten", + "Überprüfe gescannte Daten und bearbeite sie bei Bedarf", + "Rechts", + "Würfel mindestens %d Mal, um eine Mnemonic zu erzeugen.", + "Rollenverteilung:", + "Würfe:", + "SD-Karte", + "SD-Karte nicht erkannt.", + "SHA256 der Würfe:", + "SHA256 des Snapshots:", "QR-Bild auf SD-Karte speichern", - "Als QR-Code drucken", - "Zurück zum Menü", - "Drucker wird geladen..", - "Auf SD-Karte exportieren..", - "Druckertreiber nicht gesetzt!", - "Nachricht:", - "Adresse", - "Signieren?", - "Signatur", - "Nachricht konnte nicht geladen werden", + "Auf SD-Karte speichern?", + "Auf SD-Karte speichern?", + "Auf SD-Karte gespeichert", + "Skala", + "Adresse\nscannen", + "Scan BIP39 Passphrase", + "Schlüssel QR-Code Scannen", + "Wörter 1-12 erneut scannen", + "Wörter 13-24 scannen", + "Bildschirmschonerzeit", + "Script-Art", + "Sicherheit", + "Selbstübertragung oder Change (%d):", + "Selbstübertragung:", + "Einstellungen", + "Die Einstellungen werden intern auf Flash gespeichert.", + "Einstellungen auf SD-Karte gespeichert.", + "Shannons Entropie:", + "Ausschalten", + "Abschaltzeit:", + "Herunterfahren..", + "Signieren", "Am QR-Code unterschreiben", "Auf SD-Karte signieren", + "Signieren?", + "Signatur", "Signierte Nachricht", - "Hex öffentlicher Schlüssel", - "Wallet Ausgabedeskriptor", - "Einen vertrauenswürdigen Wallet-Deskriptor laden, um Adressen anzuzeigen?", - "(nur zur Betrachtung)", - "Wallet Ausgabedeskriptor nicht gefunden.", - "Eine laden?", - "Ausgabedeskriptor konnte nicht geladen werden", - "Annahme akzeptieren?", - "Ungültige Wallet:", - "Wallet Ausgabedeskriptor geladen!", - "Bitte lade einen Wallet Ausgabedeskriptor", - "Adresse\nscannen", - "Empfangsadresse", - "Change Adressen", - "Lade Change Adressen..", - "Lade Empfangsadressen..", - "Empfangen", - "Change Adresse", - "Adresse konnte nicht geladen werden", - "Ungültige Adresse", - "Überprüfen, ob diese Adresse zu dieser Wallet gehört?", - "%d bis %d ", - "Überprüfte %d Adresse ohne Übereinstimmungen.", - "ist eine gültige Adresse!", - "wurde in den ersten %d Adressen nicht gefunden", + "Signierte PSBT", + "Unterschreiben..", + "Single-Sig", + "Größe:", + "Einige Schecks können nicht durchgeführt werden.", + "Ausgabe (%d):", + "Ausgaben:", + "Statistiken für Nerds", + "Auf Flash speichern", + "Auf der SD-Karte speichern", + "Wischen um den Modus zu ändern", + "TOUCH oder ENTER zum Erfassen", + "TX Pin", + "Text", + "Thema", + "Thermisch", + "Um sicherzustellen, dass die Daten nicht wiederhergestellt werden können, verwenden Sie die Funktion 'Gerät löschen'", + "Helligkeit umschalten", + "Werkzeuge", + "Berühre Schwellenwert", + "Touchscreen", "Weiter versuchen?", - "Untergeordneter Index", - "Mnemonik-Backup", - "Öffentlicher Schlüssel", + "BIP39 Passphrase eingeben", + "Schlüssel eingeben", + "Einheit", + "Upgrade abgeschlossen.", + "Verwende eine schwarze Hintergrundfläche.", + "Verwende die Entropie der Kamera, um eine neue Mnemonic zu erstellen", + "Belegt:", + "Wert %S außerhalb des Bereichs: [ %s, %s]", + "Der Wert muss ein Vielfaches von %s sein", + "Überprüfung..", + "Version", + "Via Kamera", + "Via D20", + "Via D6", + "Via manueller Eingabe", + "Via Wörter", + "Warte auf die Erfassung", "Wallet", - "Signieren", - "Wallet-Passphrase hinzufügen oder ändern?", - "Wenn Sie Ihr Wallet anpassen, wird ein neuer Schlüssel generiert.", - "Mnemotechnik und Passphrase werden beibehalten.", - "BIP85-Untermnemonik generieren?", "Wallet-Deskriptor", - "Nachricht", + "Wallet Ausgabedeskriptor", + "Wallet Ausgabedeskriptor geladen!", + "Wallet Ausgabedeskriptor nicht gefunden.", "Warnung:", - "Einige Schecks können nicht durchgeführt werden.", - "PSBT konnte nicht geladen werden", - "Pfad stimmt nicht überein", - "Fingerabdruck in PSBT deaktiviert", - "Hohe Gebühren!", - "% des Betrags.", - "Unterschreiben..", - "Signierte PSBT", - "Auf SD-Karte speichern?", - "Verschlüsselt", - "Andere Formate", - "Klartext-QR", - "Zahlen", - "Drucken?", - "Tiny Seed drucken?", - "Rollenverteilung:", - "Würfel mindestens %d Mal, um eine Mnemonic zu erzeugen.", - "Würfe:", - "Nicht genug Würfe!", - "Schlechte Entropie erkannt!", - "Muster erkannt!", - "Trotzdem fortfahren?", - "Statistiken für Nerds", - "Mnemonik erzeugen", - "SHA256 der Würfe:", + "Gerät löschen", + "Gerät wird gewischt..", + "Wort %d", + "Wortnummern", + "Wörter", + "Ja", + "ist eine gültige Adresse!", + "wurde in den ersten %d Adressen nicht gefunden", ] diff --git a/src/krux/translations/es.py b/src/krux/translations/es.py index 1ddd983a..cef85ea8 100644 --- a/src/krux/translations/es.py +++ b/src/krux/translations/es.py @@ -21,297 +21,297 @@ # THE SOFTWARE. # pylint: disable=C0301 translation_array = [ - "Nuevo firmware detectado.", - "Verificando..", - "¿Instalar?", - "El firmware supera el tamaño máximo: %d", - "Clave pública inválida", - "Falta archivo de firma", - "Firma incorrecta", - "Bootloader inválido", - "Procesando..", - "Actualización completa.", - "¿Eliminar archivos de firmware de la tarjeta SD?", - "Apagando..", - "Single-sig", + "% del monto.", "%d de %d multisig", - "Segwit nativo - 84 se supondría", + "%d a %d", + "%s eliminado.", + "(%d total)", + "(Experimental)", + "(Solo para observación)", + "12 palabras", + "24 palabras", + "Nosotros", + "¿Aceptar la suposición?", + "Cuenta", "Se supondría que la cuenta #0", - "Idioma", - "Red", - "Multisig", - "Tipo de Script", + "Índice de la cuenta", + "¿Añadir o cambiar passphrase de la cartera?", + "Se requiere entropía adicional de la cámara para el modo AES-CBC", + "Dirección", + "Alinea la cámara y la placa de respaldo correctamente.", + "Anti-reflejo desactivado", + "Anti-reflejo habilitado", + "Apariencia", + "¿Estás seguro?", + "Colores BGR", + "Atrás", + "Volver al Menú", + "Backup del Mnemónico", + "Firma incorrecta", "Baudrate", - "Ancho del Papel", - "TX Pin", - "RX Pin", - "Retraso de Línea", - "Escala", - "Invertir", - "Método de Corte", - "Unidad", - "Diámetro de la Flauta", - "Tasa de Caída", - "Feed Rate", - "Profundidad de Corte", - "Profundidad por Pasada", - "Tamaño de la Pieza", + "Cuadrícula binaria", "Grosor del Borde", - "Térmico", - "Operador", - "Rebote de Botones", - "Umbral Táctil", - "Coordenadas X Invertidas", - "Colores Invertidos", - "Colores BGR", - "Tipo de LCD", "Brillo", - "Impresora", "Botones", - "Pantalla Táctil", - "Pantalla", - "Ubicación", - "Modo de Cifrado", - "Iter. PBKDF2", - "Tema", - "Tiempo de Espera del Protector de Pantalla", - "Tiempo de Apagado", - "Ocultar Mnemónicos", + "Rebote de Botones", + "Captura cancelada", + "Cambio", + "Direcciones de Cambio", + "¿Cambiar de tema y reiniciar?", + "Cambio:", + "Los cambios durarán hasta que el dispositivo se apague.", + "Verifica Tarjeta SD", + "¿Verificar que la dirección pertenece a esta cartera?", + "Comprobado %d direcciones sin coincidencias.", + "Comprobación de la tarjeta SD..", + "Índice Derivado", + "Crear Código QR", + "¿Crear código QR desde texto?", + "Creado:", + "Código QR Personalizado", + "Personalizar", + "Personalizar tu cartera generará una nueva clave", + "Profundidad de Corte", + "Método de Corte", + "Decimal", + "¿Descifrar?", "Cartera Predeterminada", - "Seguridad", - "Hardware", - "Idioma", + "Profundidad por Pasada", + "Direcciones del descriptor", + "Pantalla", + "No apagues el dispositivo, puede tardar un tiempo en completarse.", + "¿Listo?", + "Doble mnemónico", + "Operador", "Cifrado", - "Guardar", - "Apariencia", - "Entradas (%d):", - "Gastos (%d):", - "Autotransferencia o Cambio (%d):", + "Código QR Cifrado", + "Mnemónico cifrado no se almacenó", + "Mnemónico cifrado fue almacenado con ID:", + "Cifrado", + "Modo de Cifrado", + "Ingrese %d palabras BIP-39.", + "Ingresa cada palabra de tu mnemónico BIP-39 como un número del 1 al 2048.", + "Ingresa cada palabra de tu mnemónico BIP-39 como un número en hexadecimal del 1 al 800.", + "Ingresa cada palabra de tu mnemónico BIP-39 como un número en octal del 1 al 4000.", + "Ingresa cada palabra de tu mnemónico BIP-39.", + "Error:", + "Esc", + "¿Explorar archivos?", + "Exportando a la tarjeta SD..", + "Clave Pública Extendida", + "Ajustes de Fábrica", + "Error al descifrar", + "No se pudo cargar la PSBT", + "No se pudo cargar la dirección", + "No se pudo cargar la clave", + "No se pudo cargar el mensaje", + "No se pudo importar el mnemónico", + "No se pudo cargar el descriptor de salida", + "No se pudo cargar el passphrase", + "No pudo almacenar mnemónico", "Comisión:", - "Gasto:", - "Autotransferencia:", - "Cambio:", + "Feed Rate", + "Nombre del Archivo", + "El nombre de archivo %s existe en la tarjeta SD, ¿sobrescribir?", + "Huella dactilar no establecida en PSBT", + "El firmware supera el tamaño máximo: %d", + "Coordenadas X Invertidas", + "Diámetro de la Flauta", + "Libre:", + "Desde el Almacenamiento", + "Borra completamente su tarjeta SD en otro dispositivo para asegurarse de que los datos sean irrecuperables", + "Generar Mnemónico", + "¿Generar un mnemónico derivado BIP85?", + "¿Darle a este mnemónico una identificación personalizada? De lo contrario se utilizará el fingerprint actual", "Ir", - "¿Restablecer a la configuración de fábrica y reiniciar?", - "Comprobación de la tarjeta SD..", - "Configuración almacenada en la tarjeta SD.", - "Tarjeta SD no detectada.", - "Los cambios durarán hasta que el dispositivo se apague.", - "Ajustes almacenados internamente en flash.", - "Ajustes de Fábrica", - "Izquierda", - "Derecha", - "¿Cambiar de tema y reiniciar?", - "El valor debe ser múltiple de %s", - "Valor %s fuera del rango: [ %s, %s]", - "Mnemónico", - "Esc", - "Palabra %d", - "¿Estás seguro?", - "Cargar desde la cámara", - "Cargar desde tarjeta SD", - "Parte", - "Sí", - "No", - "Atrás", - "Error:", - "12 palabras", - "24 palabras", - "Doble mnemónico", "Buena entropía", - "Baja entropía", - "Entropía insuficiente", - "TOCA o ENTER para capturar", - "Captura cancelada", - "Entropía de Shannon:", - "(%d total)", - "Índice de desviación de píxeles:", + "Hardware", + "Clave Pública Hexadecimal", + "Hexadecimal", + "Ocultar Mnemónicos", + "¡Tarifas altas!", + "ID ya existe", + "Entradas (%d):", + "¿Instalar?", "¡Entropía Insuficiente!", - "¿Imprimir con Codigo QR?", + "Entropía insuficiente", + "Dirección inválida", + "Bootloader inválido", + "Longitud mnemónica no válida", + "Clave pública inválida", + "Cartera inválida:", + "Invertir", + "Colores Invertidos", + "Clave", + "No se proporcionó la clave", + "Test de impresión QR", + "Tipo de LCD", + "Idioma", + "Déjalo en blanco si quieres que Krux elija una última palabra válida", + "Izquierda", + "Retraso de Línea", + "Línea:", + "Importar Mnemónico", + "Cargar Cartera", + "¿Cargar un descriptor de monedero de confianza para ver las direcciones?", + "Cargar desde tarjeta SD", "¿Cargar desde la tarjeta SD?", + "Cargar desde la cámara", + "¿Cargar algo?", "¿Cargar?", - "¿Guardar en la tarjeta SD?", - "Guardado en la tarjeta SD", - "Nombre del Archivo", - "El nombre de archivo %s existe en la tarjeta SD, ¿sobrescribir?", - "Escribe la Passphrase BIP39", - "Escanear Passphrase BIP39", - "Passphrase", - "No se pudo cargar el passphrase", + "Cargando Camara..", + "Cargando direcciones de cambio..", + "Cargando impresora..", + "Cargando direcciones de recepción..", + "Cargando..", + "Idioma", + "Ubicación", "Longitud máxima excedida (%s)", - "Cuenta", - "Índice de la cuenta", - "Importar Mnemónico", + "Mensaje", + "Mensaje:", + "Falta archivo de firma", + "Mnemónico", + "Identificación del Mnemónico", + "Mnemónico y passphrase se mantendrán.", + "Mnemónico no fue descifrado", + "Modificado:", + "Multisig", + "Segwit nativo - 84 se supondría", + "Red", "Nuevo Mnemónico", - "Ajustes", - "Herramientas", - "Nosotros", - "Apagar", - "Desde Cámara", - "Introducción Manual", - "Desde el Almacenamiento", - "Código QR", - "Cuadrícula binaria", - "Palabras", - "Números de Palabra", - "A Través de Palabras", - "Vía D6", - "Vía D20", - "Usa la entropía de la cámara para crear una nueva mnemónica", - "(Experimental)", - "¿Continuar?", - "SHA256 de la instantánea:", + "Nuevo firmware detectado.", + "No", "Sin Passphrase", - "Cargar Cartera", - "Personalizar", - "Cargando..", - "¿Descifrar?", - "No se proporcionó la clave", - "Error al descifrar", - "No se pudo importar el mnemónico", - "Longitud mnemónica no válida", - "Déjalo en blanco si quieres que Krux elija una última palabra válida", - "¿Listo?", - "Ingrese %d palabras BIP-39.", - "Ingresa cada palabra de tu mnemónico BIP-39.", - "Decimal", - "Hexadecimal", + "¡No hay suficientes tiradas!", + "Números", "Octales", - "Ingresa cada palabra de tu mnemónico BIP-39 como un número en octal del 1 al 4000.", - "Ingresa cada palabra de tu mnemónico BIP-39 como un número en hexadecimal del 1 al 800.", - "Ingresa cada palabra de tu mnemónico BIP-39 como un número del 1 al 2048.", + "Otros Formatos", + "Iter. PBKDF2", "Pinte los puntos perforados de negro para que puedan ser detectados.", - "Usa una superficie de fondo negra.", - "Alinea la cámara y la placa de respaldo correctamente.", - "Versión", - "Anti-reflejo habilitado", - "Anti-reflejo desactivado", - "Cargando Camara..", - "Tamaño:", - "Creado:", - "Modificado:", + "Ancho del Papel", + "Parte", + "Tamaño de la Pieza", + "Passphrase", + "La ruta no coincide", + "¡Patrón detectado!", + "¿Eliminar permanentemente todos los mnemónicos y configuraciones cifradas almacenadas del flash?", + "Guardar", + "Índice de desviación de píxeles:", + "QR de Texto", + "Carga un descriptor de cartera", + "Tasa de Caída", + "Baja entropía", + "Mala entropía detectada!", + "Prueba de Impresión QR", + "¿Imprimir Tiny Seed?", + "Imprimir como Código QR", + "¿Imprimir con Codigo QR?", + "¿Impresión?", + "Impresora", + "¡El controlador de impresora no está configurado!", "Imprimiendo..", - "Revisa los datos escaneados, edítalos si es necesario", - "Escaneo de palabras 1-12 de nuevo", - "Espera la captura", - "Escaneo de palabras 13-24", - "Introduce la clave", - "Escanear el Código QR", - "Clave", - "No se pudo cargar la clave", - "Almacenar en Flash", - "Almacenar en la Tarjeta SD", - "Código QR Cifrado", - "Mnemónico no fue descifrado", - "Se requiere entropía adicional de la cámara para el modo AES-CBC", - "¿Darle a este mnemónico una identificación personalizada? De lo contrario se utilizará el fingerprint actual", - "Identificación del Mnemónico", - "ID ya existe", - "Mnemónico cifrado no se almacenó", - "Mnemónico cifrado fue almacenado con ID:", - "No pudo almacenar mnemónico", + "¿Proceder de todas maneras?", + "¿Continuar?", + "Procesando..", + "Código QR", + "RX Pin", + "Recepción", + "Direcciones de Recepción", + "Región:", "Eliminar %s?", - "%s eliminado.", - "Borra completamente su tarjeta SD en otro dispositivo para asegurarse de que los datos sean irrecuperables", - "Para garantizar que los datos no se puedan recuperar, utiliza la función de borrar dispositivo", - "Verifica Tarjeta SD", - "Prueba de Impresión QR", - "Crear Código QR", - "Direcciones del descriptor", "Eliminar Mnemónico", - "Borrar Dispositivo", - "Tarjeta SD", - "Usado:", - "Libre:", - "¿Explorar archivos?", - "¿Eliminar permanentemente todos los mnemónicos y configuraciones cifradas almacenadas del flash?", - "Borrando dispositivo..", - "No apagues el dispositivo, puede tardar un tiempo en completarse.", - "Test de impresión QR", - "¿Crear código QR desde texto?", - "Texto", - "Código QR Personalizado", - "Región:", - "Línea:", + "¿Eliminar archivos de firmware de la tarjeta SD?", "Res. - Formato", - "Deslizar para cambiar de modo", + "¿Restablecer a la configuración de fábrica y reiniciar?", "Volver al QR", - "Alternar Brillo", + "Revisa los datos escaneados, edítalos si es necesario", + "Derecha", + "Tira el dado al menos %d veces para generar un mnemónico.", + "Distribución de tiradas:", + "Tiradas:", + "Tarjeta SD", + "Tarjeta SD no detectada.", + "SHA256 de las tiradas:", + "SHA256 de la instantánea:", "Guardar Imagen QR en la Tarjeta SD", - "Imprimir como Código QR", - "Volver al Menú", - "Cargando impresora..", - "Exportando a la tarjeta SD..", - "¡El controlador de impresora no está configurado!", - "Mensaje:", - "Dirección", - "¿Firmar?", - "Firma", - "No se pudo cargar el mensaje", + "Guardar en tarjeta SD", + "¿Guardar en la tarjeta SD?", + "Guardado en la tarjeta SD", + "Escala", + "Escanear Dirección", + "Escanear Passphrase BIP39", + "Escanear el Código QR", + "Escaneo de palabras 1-12 de nuevo", + "Escaneo de palabras 13-24", + "Tiempo de Espera del Protector de Pantalla", + "Tipo de Script", + "Seguridad", + "Autotransferencia o Cambio (%d):", + "Autotransferencia:", + "Ajustes", + "Ajustes almacenados internamente en flash.", + "Configuración almacenada en la tarjeta SD.", + "Entropía de Shannon:", + "Apagar", + "Tiempo de Apagado", + "Apagando..", + "Firmar", "Firmar en Código QR", "Firmar en la Tarjeta SD", + "¿Firmar?", + "Firma", "Mensaje Firmado", - "Clave Pública Hexadecimal", - "Descriptor de salida de cartera", - "¿Cargar un descriptor de monedero de confianza para ver las direcciones?", - "(Solo para observación)", - "No se encontró el descriptor de salida de la cartera.", - "¿Cargar algo?", - "No se pudo cargar el descriptor de salida", - "¿Aceptar la suposición?", - "Cartera inválida:", - "¡Se ha cargado el descriptor de salida de la cartera!", - "Carga un descriptor de cartera", - "Escanear Dirección", - "Direcciones de Recepción", - "Direcciones de Cambio", - "Cargando direcciones de cambio..", - "Cargando direcciones de recepción..", - "Recepción", - "Cambio", - "No se pudo cargar la dirección", - "Dirección inválida", - "¿Verificar que la dirección pertenece a esta cartera?", - "%d a %d", - "Comprobado %d direcciones sin coincidencias.", - "es una dirección válida!", - "NO FUE ENCONTRADO en las primeras %d direcciones", + "PSBT Firmado", + "Firmando..", + "Single-sig", + "Tamaño:", + "Algunas comprobaciones no se pueden realizar.", + "Gastos (%d):", + "Gasto:", + "Estadísticas para Entendidos", + "Almacenar en Flash", + "Almacenar en la Tarjeta SD", + "Deslizar para cambiar de modo", + "TOCA o ENTER para capturar", + "TX Pin", + "Texto", + "Tema", + "Térmico", + "Para garantizar que los datos no se puedan recuperar, utiliza la función de borrar dispositivo", + "Alternar Brillo", + "Herramientas", + "Umbral Táctil", + "Pantalla Táctil", "¿Intentar con mas?", - "Índice Derivado", - "Backup del Mnemónico", - "Clave Pública Extendida", + "Escribe la Passphrase BIP39", + "Introduce la clave", + "Unidad", + "Actualización completa.", + "Usa una superficie de fondo negra.", + "Usa la entropía de la cámara para crear una nueva mnemónica", + "Usado:", + "Valor %s fuera del rango: [ %s, %s]", + "El valor debe ser múltiple de %s", + "Verificando..", + "Versión", + "Desde Cámara", + "Vía D20", + "Vía D6", + "Introducción Manual", + "A Través de Palabras", + "Espera la captura", "Cartera", - "Firmar", - "¿Añadir o cambiar passphrase de la cartera?", - "Personalizar tu cartera generará una nueva clave", - "Mnemónico y passphrase se mantendrán.", - "¿Generar un mnemónico derivado BIP85?", "Descriptor de Cartera", - "Mensaje", + "Descriptor de salida de cartera", + "¡Se ha cargado el descriptor de salida de la cartera!", + "No se encontró el descriptor de salida de la cartera.", "Advertencia:", - "Algunas comprobaciones no se pueden realizar.", - "No se pudo cargar la PSBT", - "La ruta no coincide", - "Huella dactilar no establecida en PSBT", - "¡Tarifas altas!", - "% del monto.", - "Firmando..", - "PSBT Firmado", - "Guardar en tarjeta SD", - "Cifrado", - "Otros Formatos", - "QR de Texto", - "Números", - "¿Impresión?", - "¿Imprimir Tiny Seed?", - "Distribución de tiradas:", - "Tira el dado al menos %d veces para generar un mnemónico.", - "Tiradas:", - "¡No hay suficientes tiradas!", - "Mala entropía detectada!", - "¡Patrón detectado!", - "¿Proceder de todas maneras?", - "Estadísticas para Entendidos", - "Generar Mnemónico", - "SHA256 de las tiradas:", + "Borrar Dispositivo", + "Borrando dispositivo..", + "Palabra %d", + "Números de Palabra", + "Palabras", + "Sí", + "es una dirección válida!", + "NO FUE ENCONTRADO en las primeras %d direcciones", ] diff --git a/src/krux/translations/fr.py b/src/krux/translations/fr.py index b7a3d48b..fbed06ce 100644 --- a/src/krux/translations/fr.py +++ b/src/krux/translations/fr.py @@ -21,297 +21,297 @@ # THE SOFTWARE. # pylint: disable=C0301 translation_array = [ - "Nouveau micrologiciel détecté.", - "Vérification..", - "Installer\u2009?", - "Le micrologiciel dépasse la taille maximale\u2009: %d", - "Clé publique non valide", - "Fichier de signature manquant", - "Mauvaise signature", - "Chargeur de démarrage invalide", - "Traitement..", - "Mise à niveau complète.", - "Supprimer les fichiers micrologiciel de la carte SD\u2009?", - "Éteindre..", - "Clé unique", + "% du montant.", "%d de %d multisignature", - "Native Segwit - 84 serait supposé", + "%d à %d", + "%s supprimé.", + "(%d au total)", + "(Expérimental)", + "(consultation)", + "12 mots", + "24 mots", + "À propos", + "Accepter supposition\xa0?", + "Compte", "Le compte n °0 serait supposé", - "Paramètres régionaux", - "Réseau", - "Multi\nsignature", - "Type de Script", + "Index du compte", + "Ajoutez ou modifiez la phrase secrète\u2009?", + "Entropie supplémentaire de la caméra requise pour le mode AES-CBC", + "Adresse", + "Alignez correctement la caméra et plaque de sauvegarde.", + "Anti-éblouissement désactivé", + "Anti-éblouissement activé", + "Apparence", + "Es-tu sûr\u2009?", + "Couleurs BGR", + "Retour", + "Retour au menu", + "Sauvegarde mnémonique", + "Mauvaise signature", "Débit en bauds", - "Largeur du papier", - "TX Fiche", - "RX Fiche", - "Délai de Ligne", - "L'échelle", - "Inverser", - "Méthode de coupe", - "Unité", - "Diamètre de flûte", - "Taux de plongée", - "Taux d'alimentation", - "Profondeur de coupe", - "Profondeur par passage", - "Taille de la pièce", + "Grille binaire", "Rembourrage de bordure", - "Thermique", - "Conducteur", - "Anti-rebond des boutons", - "Seuil Tactile", - "Coordonnées X inversées", - "Couleurs inversées", - "Couleurs BGR", - "Type d'écran LCD", "Luminosité", - "Imprimante", "Boutons", - "Écran Tactile", - "Affichage", - "Emplacement", - "Mode de chiffrement", - "Itér. PBKDF2", - "Thème", - "Delai d'Inactivité", - "Delai d'Arrêt", - "Masquer les mnémoniques", + "Anti-rebond des boutons", + "Capture annulée", + "Changement", + "Adresses de Changement", + "Changer de thème et redémarrer\u2009?", + "La monnaie\u2009:", + "Les modifications dureront jusqu'à l'arrêt.", + "Vérifiez la carte SD", + "Vérifiez que l'adresse appartient à cette portefeuille\u2009?", + "%d adresses vérifiées sans correspondance.", + "Vérification de la carte SD..", + "Indice enfant", + "Créer du code QR", + "Créer du code QR à partir du texte\u2009?", + "Créé\u2009:", + "Code QR personnalisé", + "Personnaliser", + "La personnalisation de votre portefeuille générera une nouvelle clé.", + "Profondeur de coupe", + "Méthode de coupe", + "Décimal", + "Décrypter\u2009?", "Portefeuille par défaut", - "Sécurité", - "Matériel", - "Langue", + "Profondeur par passage", + "Adresses des descripteurs", + "Affichage", + "Ne pas éteindre, cela peut prendre un certain temps.", + "Terminé\u2009?", + "Double mnémonique", + "Conducteur", + "Chiffré", + "Code QR crypté", + "Le mnémonique crypté n'a pas été stocké", + "Mnémonique cryptée a été stockée avec ID\u2009:", "Chiffrement", - "Persister", - "Apparence", - "Entrées (%d)\u2009:", - "Dépense (%d)\u2009:", - "Auto-transfert ou monnaie (%d)\u2009:", + "Mode de chiffrement", + "Entrez %d mots BIP-39.", + "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre de 1 à 2048.", + "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en hexadécimal de 1 à 800.", + "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en octal de 1 à 4000.", + "Entrez chaque mot de votre mnémonique BIP-39.", + "Erreur\u2009:", + "Esc", + "Explorer des fichiers\u2009?", + "Exportation vers la carte SD..", + "Clé publique", + "Paramètres d'usine", + "Échec de décrypter", + "Erreur de chargement PSBT", + "Erreur de chargement d'adresse", + "Échec du chargement de la clé", + "Échec du chargement du message", + "Erreur de chargement mnémonique", + "Échec du chargement du descripteur de sortie", + "Échec du chargement de la phrase secrète", + "Échec de stocker mnémonique", "Frais\u2009:", - "Dépense\u2009:", - "Auto-transfert\u2009:", - "La monnaie\u2009:", + "Taux d'alimentation", + "Nom de fichier", + "Le nom de fichier %s existe sur la carte SD, écraser\u2009?", + "Empreinte digitale manquante dans PSBT", + "Le micrologiciel dépasse la taille maximale\u2009: %d", + "Coordonnées X inversées", + "Diamètre de flûte", + "Libre\u2009:", + "Du stockage", + "Effacez complètement votre carte SD dans un autre appareil pour assurer que les données soient irrécupérables", + "Générer une mnémonique", + "Générer un mnémonique dérivé BIP-85\u2009?", + "Donnez à ce mnémonique un identifiant personnalisé\u2009? Sinon l'empreinte actuelle sera utilisée", "Go", - "Restaurer les paramètres d'usine et redémarrer\u2009?", - "Vérification de la carte SD..", - "Paramètres stockés sur la carte SD.", - "Carte SD non détectée.", - "Les modifications dureront jusqu'à l'arrêt.", - "Paramètres stockés en interne sur flash.", - "Paramètres d'usine", - "Gauche", - "À droite", - "Changer de thème et redémarrer\u2009?", - "La valeur doit être un multiple de %s", - "Valeur %s hors de portée: [%s, %s]", - "Mnémonique", - "Esc", - "Mot %d", - "Es-tu sûr\u2009?", - "Charger depuis une caméra", - "Charger depuis la carte SD", - "Partie", - "Oui", - "Non", - "Retour", - "Erreur\u2009:", - "12 mots", - "24 mots", - "Double mnémonique", "Bonne entropie", - "Mauvaise entropie", - "Entropie insuffisante", - "TOUCHEZ ou ENTER pour capturer", - "Capture annulée", - "Entropie de Shannon\u2009:", - "(%d au total)", - "Indice de déviation des pixels\u2009:", + "Matériel", + "Clé public hexadécimal", + "Hexadécimal", + "Masquer les mnémoniques", + "Frais élevés\u2009!", + "Id existe déjà", + "Entrées (%d)\u2009:", + "Installer\u2009?", "Entropie insuffisante\u2009!", - "Imprimer en QR\u2009?", + "Entropie insuffisante", + "Adresse invalide", + "Chargeur de démarrage invalide", + "Longueur mnémonique invalide", + "Clé publique non valide", + "Portefeuille invalide\u2009:", + "Inverser", + "Couleurs inversées", + "Clé", + "La clé n'a pas été fournie", + "Test de l'imprimante Krux QR", + "Type d'écran LCD", + "Langue", + "Laissez vide si vous souhaitez que Krux choisisse un dernier mot valide", + "Gauche", + "Délai de Ligne", + "Ligne\u2009:", + "Charger mnémonique", + "Charger le portefeuille", + "Charger un descripteur de portefeuille de confiance pour afficher les adresses\u2009?", + "Charger depuis la carte SD", "Charger depuis la carte SD\u2009?", + "Charger depuis une caméra", + "En charger qu'un\u2009?", "Charger\u2009?", - "Enregistrer sur la carte SD\u2009?", - "Enregistré sur la carte SD", - "Nom de fichier", - "Le nom de fichier %s existe sur la carte SD, écraser\u2009?", - "Entrez la phrase secrète BIP-39", - "Scannez la phrase secrète BIP-39", - "Phrase secréte", - "Échec du chargement de la phrase secrète", + "Caméra de Chargement..", + "Chargement des adresses de monnaie..", + "Chargement de l'imprimante..", + "Chargement des adresses de réception ..", + "Chargement..", + "Paramètres régionaux", + "Emplacement", "Longueur maximale dépassée (%s)", - "Compte", - "Index du compte", - "Charger mnémonique", + "Message", + "Message\u2009:", + "Fichier de signature manquant", + "Mnémonique", + "ID mnémonique", + "Mnémonique et phrase secrète seront conservés.", + "Mnémonique n'était pas cryptée", + "Modifié\u2009:", + "Multi\nsignature", + "Native Segwit - 84 serait supposé", + "Réseau", "Nouveau mnémonique", - "Paramètres", - "Outils", - "À propos", - "Fermer", - "Par caméra", - "Par saisie manuelle", - "Du stockage", - "QR Code", - "Grille binaire", - "Mots", - "Numéros de mots", - "Via Mots", - "Via D6", - "Via D20", - "Utilisez l'entropie de la caméra pour créer un nouveau mnémonique", - "(Expérimental)", - "Procéder\u2009?", - "SHA256 de snapshot\u2009:", + "Nouveau micrologiciel détecté.", + "Non", "Pas de phrase secrète", - "Charger le portefeuille", - "Personnaliser", - "Chargement..", - "Décrypter\u2009?", - "La clé n'a pas été fournie", - "Échec de décrypter", - "Erreur de chargement mnémonique", - "Longueur mnémonique invalide", - "Laissez vide si vous souhaitez que Krux choisisse un dernier mot valide", - "Terminé\u2009?", - "Entrez %d mots BIP-39.", - "Entrez chaque mot de votre mnémonique BIP-39.", - "Décimal", - "Hexadécimal", + "Pas assez de jets\u2009!", + "Nombres", "Octale", - "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en octal de 1 à 4000.", - "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre en hexadécimal de 1 à 800.", - "Entrez chaque mot de votre mnémonique BIP-39 sous la forme d'un nombre de 1 à 2048.", + "Autres formats", + "Itér. PBKDF2", "Noircissez les points perforés afin qu'ils puissent être détectés.", - "Utilisez une surface de fond noire.", - "Alignez correctement la caméra et plaque de sauvegarde.", - "Version", - "Anti-éblouissement activé", - "Anti-éblouissement désactivé", - "Caméra de Chargement..", - "Capacité\u2009:", - "Créé\u2009:", - "Modifié\u2009:", + "Largeur du papier", + "Partie", + "Taille de la pièce", + "Phrase secréte", + "Inadéquation du chemin", + "Structure détecté\u2009!", + "Supprimer définitivement tous les mnémoniques et paramètres chiffrés stockés dans le flash\u2009?", + "Persister", + "Indice de déviation des pixels\u2009:", + "QR en Texte Brut", + "Veuillez charger un descripteur de sortie de portefeuille", + "Taux de plongée", + "Mauvaise entropie", + "Faible entropie détectée\u2009!", + "Test d'impression QR", + "Imprimer Tiny Seed\u2009?", + "Imprimer en QR", + "Imprimer en QR\u2009?", + "Imprimer\u2009?", + "Imprimante", + "Le conducteur d'imprimante n'est pas défini\u2009!", "Impression..", - "Examinez les données numérisées, modifiez-les si nécessaire", - "Analyser à nouveau les mots 1 à 12", - "Attendez la capture", - "Analyser les mots 13 à 24", - "Clé de type", - "Scannez le Code QR de la clé", - "Clé", - "Échec du chargement de la clé", - "Stocker sur flash", - "Stocker sur la carte SD", - "Code QR crypté", - "Mnémonique n'était pas cryptée", - "Entropie supplémentaire de la caméra requise pour le mode AES-CBC", - "Donnez à ce mnémonique un identifiant personnalisé\u2009? Sinon l'empreinte actuelle sera utilisée", - "ID mnémonique", - "Id existe déjà", - "Le mnémonique crypté n'a pas été stocké", - "Mnémonique cryptée a été stockée avec ID\u2009:", - "Échec de stocker mnémonique", + "Procéder quand même\u2009?", + "Procéder\u2009?", + "Traitement..", + "QR Code", + "RX Fiche", + "Recevoir", + "Adresses de Réception", + "Région\u2009:", "Supprimer %s\u2009?", - "%s supprimé.", - "Effacez complètement votre carte SD dans un autre appareil pour assurer que les données soient irrécupérables", - "Pour assurer que les données soient irrécupérables, utilisez la fonctionnalité 'Effacer l'appareil'", - "Vérifiez la carte SD", - "Test d'impression QR", - "Créer du code QR", - "Adresses des descripteurs", "Supprimer mnémonique", - "Effacer l'appareil", - "Carte SD", - "Utilisé\u2009:", - "Libre\u2009:", - "Explorer des fichiers\u2009?", - "Supprimer définitivement tous les mnémoniques et paramètres chiffrés stockés dans le flash\u2009?", - "Effacement de l'appareil en cours..", - "Ne pas éteindre, cela peut prendre un certain temps.", - "Test de l'imprimante Krux QR", - "Créer du code QR à partir du texte\u2009?", - "Texte", - "Code QR personnalisé", - "Région\u2009:", - "Ligne\u2009:", + "Supprimer les fichiers micrologiciel de la carte SD\u2009?", "Rés. - Format", - "Faites glisser pour changer de mode", + "Restaurer les paramètres d'usine et redémarrer\u2009?", "Retour au visualiseur QR", - "Ajuster la luminosité", + "Examinez les données numérisées, modifiez-les si nécessaire", + "À droite", + "Lancez le dé au moins %d fois pour générer un mnémonique.", + "Distribution des jets\u2009:", + "Jets\u2009:", + "Carte SD", + "Carte SD non détectée.", + "SHA256 de jets\u2009:", + "SHA256 de snapshot\u2009:", "Enregistrer l'image QR sur la carte SD", - "Imprimer en QR", - "Retour au menu", - "Chargement de l'imprimante..", - "Exportation vers la carte SD..", - "Le conducteur d'imprimante n'est pas défini\u2009!", - "Message\u2009:", - "Adresse", - "Signer\u2009?", - "Signature", - "Échec du chargement du message", + "Enregistrer sur la carte SD", + "Enregistrer sur la carte SD\u2009?", + "Enregistré sur la carte SD", + "L'échelle", + "Scannez l'adresse", + "Scannez la phrase secrète BIP-39", + "Scannez le Code QR de la clé", + "Analyser à nouveau les mots 1 à 12", + "Analyser les mots 13 à 24", + "Delai d'Inactivité", + "Type de Script", + "Sécurité", + "Auto-transfert ou monnaie (%d)\u2009:", + "Auto-transfert\u2009:", + "Paramètres", + "Paramètres stockés en interne sur flash.", + "Paramètres stockés sur la carte SD.", + "Entropie de Shannon\u2009:", + "Fermer", + "Delai d'Arrêt", + "Éteindre..", + "Signer", "Signer avec le code QR", "Signer sur la carte SD", + "Signer\u2009?", + "Signature", "Message signé", - "Clé public hexadécimal", - "Descripteur de sortie du portefeuille", - "Charger un descripteur de portefeuille de confiance pour afficher les adresses\u2009?", - "(consultation)", - "Descripteur de sortie du portefeuille introuvable.", - "En charger qu'un\u2009?", - "Échec du chargement du descripteur de sortie", - "Accepter supposition\xa0?", - "Portefeuille invalide\u2009:", - "Descripteur de sortie du portefeuille chargé\u2009!", - "Veuillez charger un descripteur de sortie de portefeuille", - "Scannez l'adresse", - "Adresses de Réception", - "Adresses de Changement", - "Chargement des adresses de monnaie..", - "Chargement des adresses de réception ..", - "Recevoir", - "Changement", - "Erreur de chargement d'adresse", - "Adresse invalide", - "Vérifiez que l'adresse appartient à cette portefeuille\u2009?", - "%d à %d", - "%d adresses vérifiées sans correspondance.", - "Adresse non valide\xa0!", - "n'A PAS ÉTÉ TROUVÉ dans les %d premières adresses", + "PSBT signé", + "Signature..", + "Clé unique", + "Capacité\u2009:", + "Certains chèques ne peuvent pas être effectués.", + "Dépense (%d)\u2009:", + "Dépense\u2009:", + "Statistiques pour les geeks", + "Stocker sur flash", + "Stocker sur la carte SD", + "Faites glisser pour changer de mode", + "TOUCHEZ ou ENTER pour capturer", + "TX Fiche", + "Texte", + "Thème", + "Thermique", + "Pour assurer que les données soient irrécupérables, utilisez la fonctionnalité 'Effacer l'appareil'", + "Ajuster la luminosité", + "Outils", + "Seuil Tactile", + "Écran Tactile", "Réessayer\u2009?", - "Indice enfant", - "Sauvegarde mnémonique", - "Clé publique", + "Entrez la phrase secrète BIP-39", + "Clé de type", + "Unité", + "Mise à niveau complète.", + "Utilisez une surface de fond noire.", + "Utilisez l'entropie de la caméra pour créer un nouveau mnémonique", + "Utilisé\u2009:", + "Valeur %s hors de portée: [%s, %s]", + "La valeur doit être un multiple de %s", + "Vérification..", + "Version", + "Par caméra", + "Via D20", + "Via D6", + "Par saisie manuelle", + "Via Mots", + "Attendez la capture", "Portefeuille", - "Signer", - "Ajoutez ou modifiez la phrase secrète\u2009?", - "La personnalisation de votre portefeuille générera une nouvelle clé.", - "Mnémonique et phrase secrète seront conservés.", - "Générer un mnémonique dérivé BIP-85\u2009?", "Descripteur de Portefeuille", - "Message", + "Descripteur de sortie du portefeuille", + "Descripteur de sortie du portefeuille chargé\u2009!", + "Descripteur de sortie du portefeuille introuvable.", "Avertissement\u2009:", - "Certains chèques ne peuvent pas être effectués.", - "Erreur de chargement PSBT", - "Inadéquation du chemin", - "Empreinte digitale manquante dans PSBT", - "Frais élevés\u2009!", - "% du montant.", - "Signature..", - "PSBT signé", - "Enregistrer sur la carte SD", - "Chiffré", - "Autres formats", - "QR en Texte Brut", - "Nombres", - "Imprimer\u2009?", - "Imprimer Tiny Seed\u2009?", - "Distribution des jets\u2009:", - "Lancez le dé au moins %d fois pour générer un mnémonique.", - "Jets\u2009:", - "Pas assez de jets\u2009!", - "Faible entropie détectée\u2009!", - "Structure détecté\u2009!", - "Procéder quand même\u2009?", - "Statistiques pour les geeks", - "Générer une mnémonique", - "SHA256 de jets\u2009:", + "Effacer l'appareil", + "Effacement de l'appareil en cours..", + "Mot %d", + "Numéros de mots", + "Mots", + "Oui", + "Adresse non valide\xa0!", + "n'A PAS ÉTÉ TROUVÉ dans les %d premières adresses", ] diff --git a/src/krux/translations/ko.py b/src/krux/translations/ko.py index f0470deb..da9e17c1 100644 --- a/src/krux/translations/ko.py +++ b/src/krux/translations/ko.py @@ -21,297 +21,297 @@ # THE SOFTWARE. # pylint: disable=C0301 translation_array = [ - "새로운 펌웨어가 감지되었습니다.", - "검증 중..", - "설치하시겠습니까?", - "펌웨어가 최대 크기를 초과했습니다: %d", - "공개키가 잘못되었습니다", - "서명 파일이 누락되었습니다", - "잘못된 서명", - "부트로더가 잘못되었습니다", - "처리...", - "업그레이드가 완료되었습니다", - "SD카드에서 펌웨어 파일을 제거하시겠습니까?", - "종료 중..", - "단일서명", + "수량: %", "%d의 %d 멀티시그", - "네이티브 세그윗 - BIP84를 적용합니다", + "%d 부터 %d", + "%s 제거되었습니다.", + "(총 %d)", + "(실험적 기능)", + "(잔액조회 전용)", + "12단어", + "24단어", + "기본 정보", + "가정을 수락하시겠습니까?", + "계정", "계정 #0이 가정됩니다", - "언어 설정", - "네트워크", - "멀티시그", - "지갑 형식", + "계정 인덱스", + "패스프레이즈를 추가하거나 변경하시겠습니까?", + "AES-CBC 모드를 위해 카메라의 추가 엔트로피가 필요합니다", + "주소", + "카메라와 보조 플레이트를 올바르게 정렬하십시오.", + "눈부심방지 비활성화", + "눈부심방지 활성화", + "디스플레이", + "계속하시겠습니까?", + "BGR 색상", + "뒤로", + "메뉴로 돌아가기", + "니모닉 백업", + "잘못된 서명", "Baudrate", - "종이 너비", - "TX 핀", - "RX 핀", - "줄 지연", - "스케일", - "반전", - "Cut Method", - "단위", - "플루트 직경", - "침수율", - "Feed Rate", - "Cut Depth", - "Depth Per Pass", - "파트 사이즈", + "이진수 그리드", "테두리 여백", - "Thermal", - "드라이버", - "버튼 바운스 방지", - "터치 민감도", - "X 좌표 반전", - "반전된 색상", - "BGR 색상", - "LCD 유형", "밝기", - "프린터", "버튼", - "터치스크린", - "디스플레이", - "기본 저장소", - "암호화 모드", - "PBKDF2 Iter.", - "테마", - "화면보호기 시간", - "자동 종료시간", - "니모닉 숨기기", + "버튼 바운스 방지", + "캡처 취소됨", + "잔돈", + "잔돈 주소", + "테마를 변경하고 재부팅하시겠습니까?", + "변경", + "변경 사항은 종료될때까지 유지됩니다.", + "SD카드 확인", + "해당 주소가 이 지갑에 속하는지 확인하시겠습니까?", + "일치하는 주소가 없는 %d 개를 확인했습니다.", + "SD카드 확인 중..", + "차일드 인덱스", + "QR 코드 생성", + "텍스트로부터 QR코드를 생성하시겠습니까?", + "생성됨:", + "사용자 정의 QR코드", + "사용자 정의", + "지갑을 커스터마이징하면 새로운 비밀키가 생성됩니다.", + "Cut Depth", + "Cut Method", + "10진수", + "복호화하시겠습니까?", "지갑 기본설정", - "보안", - "하드웨어", - "언어", - "암호화", - "저장", + "Depth Per Pass", + "디스크립터 주소", "디스플레이", - "Input (%d):", - "Spend (%d):", - "본인주소 전송 또는 잔돈 (%d):", + "전원을 끄지 마십시오. 완료하는 데 시간이 걸릴 수 있습니다.", + "완료되었습니까?", + "이중 니모닉", + "드라이버", + "암호화 후 저장", + "암호화된 QR 코드", + "암호화된 니모닉을 저장하지 못했습니다", + "암호화된 니모닉을 다음 아이디와 함께 저장했습니다:", + "암호화", + "암호화 모드", + "%d개의 BIP-39 단어를 입력하십시오.", + "BIP-39 니모닉의 각 단어를 1에서 2048 사이의 숫자로 입력하십시오.", + "BIP-39 니모닉의 각 단어를 1에서 800 사이의 16진수 숫자로 입력하십시오.", + "BIP-39 니모닉의 각 단어를 1에서 4000 사이의 8진수 숫자로 입력하십시오.", + "BIP-39 니모닉의 각 단어를 입력하십시오.", + "오류:", + "Esc", + "파일을 탐색하시겠습니까?", + "SD카드로 내보내는 중..", + "XPUB 내보내기", + "공장 초기 설정", + "복호화에 실패했습니다", + "PSBT를 불러오지 못했습니다", + "주소를 불러오지 못했습니다", + "키 로드에 실패했습니다", + "메시지를 불러오지 못했습니다", + "니모닉을 불러오지 못했습니다", + "아웃풋 디스크립터를 불러오지 못했습니다", + "패스프레이즈를 불러오지 못했습니다", + "니모닉을 저장하지 못했습니다", "수수료:", - "지출", - "자가 이체:", - "변경", + "Feed Rate", + "파일명", + "%s 파일명이 SD카드에 이미 존재합니다. 덮어쓰시겠습니까?", + "PSBT에서 지문이 설정되지 않았습니다", + "펌웨어가 최대 크기를 초과했습니다: %d", + "X 좌표 반전", + "플루트 직경", + "여유 공간:", + "저장공간에서 불러오기", + "다른 장치에서 데이터 복구가 불가능하도록 SD카드를 완전히 지우십시오", + "니모닉 생성", + "BIP85 파생 니모닉을 생성하시겠습니까?", + "이 니모닉에 별도 아이디를 지정하시겠습니까? 지정하지 않으면 현재 지문을 사용합니다", "선택", - "공장 설정을 복원하고 재부팅하시겠습니까?", - "SD카드 확인 중..", - "SD 카드에 저장된 설정.", - "SD카드가 감지되지 않았습니다.", - "변경 사항은 종료될때까지 유지됩니다.", - "설정은 플래시에서 내부적으로 저장됩니다.", - "공장 초기 설정", - "왼쪽", - "오른쪽", - "테마를 변경하고 재부팅하시겠습니까?", - "값은 %s의 배수여야 합니다", - "%s는 [%s, %s] 범위를 벗어났습니다", - "니모닉", - "Esc", - "%d 단어", - "계속하시겠습니까?", - "카메라로 불러오기", - "SD카드에서 불러오기", - "파트", - "예", - "아니요", - "뒤로", - "오류:", - "12단어", - "24단어", - "이중 니모닉", "엔트로피가 충분합니다", - "엔트로피가 부족합니다", - "엔트로피가 충분하지 않습니다", - "터치하거나 엔터를 눌러 캡처하십시오", - "캡처 취소됨", - "Shannon의 엔트로피:", - "(총 %d)", - "픽셀 편차 지수:", + "하드웨어", + "16진수 공개키", + "16진수", + "니모닉 숨기기", + "수수료가 높습니다!", + "아이디가 이미 존재합니다", + "Input (%d):", + "설치하시겠습니까?", "엔트로피가 충분하지 않습니다!", - "QR로 인쇄하시겠습니까?", + "엔트로피가 충분하지 않습니다", + "주소가 잘못되었습니다", + "부트로더가 잘못되었습니다", + "니모닉 길이가 잘못되었습니다", + "공개키가 잘못되었습니다", + "지갑이 잘못되었습니다:", + "반전", + "반전된 색상", + "키", + "키가 제공되지 않았습니다", + "Krux 프린터 테스트 QR", + "LCD 유형", + "언어", + "마지막 단어를 Krux가 선택하도록 하려면 비워두십시오", + "왼쪽", + "줄 지연", + "줄:", + "니모닉 불러오기", + "이대로 불러오기", + "주소를 보기위해 신뢰할 수 있는 월렛 디스크립터를 불러오시겠습니까?", + "SD카드에서 불러오기", "SD카드에서 불러오시겠습니까?", + "카메라로 불러오기", "불러오시겠습니까?", - "SD카드에 저장하시겠습니까?", - "SD카드에 저장됨", - "파일명", - "%s 파일명이 SD카드에 이미 존재합니다. 덮어쓰시겠습니까?", - "BIP39 패스프레이즈 입력", - "BIP39 패스프레이즈 스캔하기", - "패스프레이즈", - "패스프레이즈를 불러오지 못했습니다", + "불러오시겠습니까?", + "카메라를 구동 중입니다..", + "잔돈 주소를 불러옵니다..", + "프린터를 로딩 중입니다..", + "수신 주소 불러옵니다..", + "로딩 중..", + "언어 설정", + "기본 저장소", "최대 길이를 초과함 (%s)", - "계정", - "계정 인덱스", - "니모닉 불러오기", + "메시지", + "메시지:", + "서명 파일이 누락되었습니다", + "니모닉", + "니모닉 ID", + "니모닉과 암호는 유지됩니다.", + "니모닉이 암호화되지 않았습니다", + "수정되었습니다:", + "멀티시그", + "네이티브 세그윗 - BIP84를 적용합니다", + "네트워크", "새로운 니모닉", - "설정", - "도구", - "기본 정보", - "종료", - "카메라", - "직접 입력", - "저장공간에서 불러오기", - "QR 코드", - "이진수 그리드", - "시드문구", - "단어 번호(1-2048)", - "니모닉 단어 입력", - "일반 주사위", - "20면체 주사위", - "카메라의 엔트로피를 사용하여 새로운 니모닉을 생성하십시오", - "(실험적 기능)", - "계속하시겠습니까?", - "SHA256 스냅샷:", + "새로운 펌웨어가 감지되었습니다.", + "아니요", "패스프레이즈 없음", - "이대로 불러오기", - "사용자 정의", - "로딩 중..", - "복호화하시겠습니까?", - "키가 제공되지 않았습니다", - "복호화에 실패했습니다", - "니모닉을 불러오지 못했습니다", - "니모닉 길이가 잘못되었습니다", - "마지막 단어를 Krux가 선택하도록 하려면 비워두십시오", - "완료되었습니까?", - "%d개의 BIP-39 단어를 입력하십시오.", - "BIP-39 니모닉의 각 단어를 입력하십시오.", - "10진수", - "16진수", + "주사위 횟수가 충분하지 않습니다!", + "시드문구 순번", "8진수", - "BIP-39 니모닉의 각 단어를 1에서 4000 사이의 8진수 숫자로 입력하십시오.", - "BIP-39 니모닉의 각 단어를 1에서 800 사이의 16진수 숫자로 입력하십시오.", - "BIP-39 니모닉의 각 단어를 1에서 2048 사이의 숫자로 입력하십시오.", + "기타 형식", + "PBKDF2 Iter.", "카메라가 감지할 수 있도록 펀치된 점을 검게 칠하십시오.", - "검은색 배경 화면을 사용하십시오.", - "카메라와 보조 플레이트를 올바르게 정렬하십시오.", - "버전", - "눈부심방지 활성화", - "눈부심방지 비활성화", - "카메라를 구동 중입니다..", - "크기:", - "생성됨:", - "수정되었습니다:", + "종이 너비", + "파트", + "파트 사이즈", + "패스프레이즈", + "경로 불일치", + "패턴이 감지되었습니다!", + "저장된 모든 니모닉 및 설정값을 영구적으로 제거하시겠습니까?", + "저장", + "픽셀 편차 지수:", + "일반텍스트 QR", + "지갑 출력 디스크립터를 불러오십시오", + "침수율", + "엔트로피가 부족합니다", + "엔트로피가 부족합니다!", + "QR 테스트 인쇄", + "Tiny Seed를 인쇄하시겠습니까?", + "QR로 인쇄", + "QR로 인쇄하시겠습니까?", + "인쇄하시겠습니까?", + "프린터", + "프린터 드라이버가 설정되지 않았습니다!", "출력중", - "스캔된 데이터를 검토하고 필요한 경우 수정하십시오", - "1번째부터 12번째 단어를 스캔 중입니다", - "캡처될때까지 기다리십시오", - "13번째부터 24번째 단어를 스캔 중입니다", - "비밀번호 입력", - "비밀번호 QR 스캔", - "키", - "키 로드에 실패했습니다", - "플래시 메모리에 저장", - "SD카드에 저장", - "암호화된 QR 코드", - "니모닉이 암호화되지 않았습니다", - "AES-CBC 모드를 위해 카메라의 추가 엔트로피가 필요합니다", - "이 니모닉에 별도 아이디를 지정하시겠습니까? 지정하지 않으면 현재 지문을 사용합니다", - "니모닉 ID", - "아이디가 이미 존재합니다", - "암호화된 니모닉을 저장하지 못했습니다", - "암호화된 니모닉을 다음 아이디와 함께 저장했습니다:", - "니모닉을 저장하지 못했습니다", + "계속하시겠습니까?", + "계속하시겠습니까?", + "처리...", + "QR 코드", + "RX 핀", + "받기", + "주소", + "지역:", "%s을 제거하시겠습니까?", - "%s 제거되었습니다.", - "다른 장치에서 데이터 복구가 불가능하도록 SD카드를 완전히 지우십시오", - "데이터 복구가 불가능하도록 장치 전체지우기 기능을 사용하십시오", - "SD카드 확인", - "QR 테스트 인쇄", - "QR 코드 생성", - "디스크립터 주소", "니모닉 제거", - "기기 초기화", - "SD카드", - "이미 사용됨:", - "여유 공간:", - "파일을 탐색하시겠습니까?", - "저장된 모든 니모닉 및 설정값을 영구적으로 제거하시겠습니까?", - "기기를 초기화하는 중입니다..", - "전원을 끄지 마십시오. 완료하는 데 시간이 걸릴 수 있습니다.", - "Krux 프린터 테스트 QR", - "텍스트로부터 QR코드를 생성하시겠습니까?", - "텍스트", - "사용자 정의 QR코드", - "지역:", - "줄:", + "SD카드에서 펌웨어 파일을 제거하시겠습니까?", "Res. - 형식", - "모드를 변경하려면 화면을 옆으로 쓸어내리세요", + "공장 설정을 복원하고 재부팅하시겠습니까?", "QR 뷰어로 돌아가기", - "밝기 전환", + "스캔된 데이터를 검토하고 필요한 경우 수정하십시오", + "오른쪽", + "니모닉을 생성하려면 주사위를 최소 %d번 굴리십시오.", + "주사위값 분포:", + "주사위 횟수:", + "SD카드", + "SD카드가 감지되지 않았습니다.", + "주사위의 SHA256:", + "SHA256 스냅샷:", "QR 이미지를 SD카드에 저장", - "QR로 인쇄", - "메뉴로 돌아가기", - "프린터를 로딩 중입니다..", - "SD카드로 내보내는 중..", - "프린터 드라이버가 설정되지 않았습니다!", - "메시지:", - "주소", - "서명하시겠습니까?", - "서명", - "메시지를 불러오지 못했습니다", + "SD카드에 저장", + "SD카드에 저장하시겠습니까?", + "SD카드에 저장됨", + "스케일", + "주소 스캔하기", + "BIP39 패스프레이즈 스캔하기", + "비밀번호 QR 스캔", + "1번째부터 12번째 단어를 스캔 중입니다", + "13번째부터 24번째 단어를 스캔 중입니다", + "화면보호기 시간", + "지갑 형식", + "보안", + "본인주소 전송 또는 잔돈 (%d):", + "자가 이체:", + "설정", + "설정은 플래시에서 내부적으로 저장됩니다.", + "SD 카드에 저장된 설정.", + "Shannon의 엔트로피:", + "종료", + "자동 종료시간", + "종료 중..", + "서명하기", "QR코드로 내보내기", "SD카드로 내보내기", + "서명하시겠습니까?", + "서명", "서명된 메시지", - "16진수 공개키", - "지갑 출력 디스크립터", - "주소를 보기위해 신뢰할 수 있는 월렛 디스크립터를 불러오시겠습니까?", - "(잔액조회 전용)", - "지갑 출력 디스크립터를 찾을 수 없습니다.", - "불러오시겠습니까?", - "아웃풋 디스크립터를 불러오지 못했습니다", - "가정을 수락하시겠습니까?", - "지갑이 잘못되었습니다:", - "지갑 출력 디스크립터가 로드되었습니다!", - "지갑 출력 디스크립터를 불러오십시오", - "주소 스캔하기", - "주소", - "잔돈 주소", - "잔돈 주소를 불러옵니다..", - "수신 주소 불러옵니다..", - "받기", - "잔돈", - "주소를 불러오지 못했습니다", - "주소가 잘못되었습니다", - "해당 주소가 이 지갑에 속하는지 확인하시겠습니까?", - "%d 부터 %d", - "일치하는 주소가 없는 %d 개를 확인했습니다.", - " 은 유효한 주소가 아닙니다", - "첫 번째 %d 주소에서 찾을 수 없습니다", + "서명된 PSBT", + "서명 중..", + "단일서명", + "크기:", + "일부 검사를 수행할 수 없습니다.", + "Spend (%d):", + "지출", + "전문가를 위한 통계", + "플래시 메모리에 저장", + "SD카드에 저장", + "모드를 변경하려면 화면을 옆으로 쓸어내리세요", + "터치하거나 엔터를 눌러 캡처하십시오", + "TX 핀", + "텍스트", + "테마", + "Thermal", + "데이터 복구가 불가능하도록 장치 전체지우기 기능을 사용하십시오", + "밝기 전환", + "도구", + "터치 민감도", + "터치스크린", "더 하시겠습니까?", - "차일드 인덱스", - "니모닉 백업", - "XPUB 내보내기", + "BIP39 패스프레이즈 입력", + "비밀번호 입력", + "단위", + "업그레이드가 완료되었습니다", + "검은색 배경 화면을 사용하십시오.", + "카메라의 엔트로피를 사용하여 새로운 니모닉을 생성하십시오", + "이미 사용됨:", + "%s는 [%s, %s] 범위를 벗어났습니다", + "값은 %s의 배수여야 합니다", + "검증 중..", + "버전", + "카메라", + "20면체 주사위", + "일반 주사위", + "직접 입력", + "니모닉 단어 입력", + "캡처될때까지 기다리십시오", "지갑 설정", - "서명하기", - "패스프레이즈를 추가하거나 변경하시겠습니까?", - "지갑을 커스터마이징하면 새로운 비밀키가 생성됩니다.", - "니모닉과 암호는 유지됩니다.", - "BIP85 파생 니모닉을 생성하시겠습니까?", "지갑 디스크립터", - "메시지", + "지갑 출력 디스크립터", + "지갑 출력 디스크립터가 로드되었습니다!", + "지갑 출력 디스크립터를 찾을 수 없습니다.", "경고:", - "일부 검사를 수행할 수 없습니다.", - "PSBT를 불러오지 못했습니다", - "경로 불일치", - "PSBT에서 지문이 설정되지 않았습니다", - "수수료가 높습니다!", - "수량: %", - "서명 중..", - "서명된 PSBT", - "SD카드에 저장", - "암호화 후 저장", - "기타 형식", - "일반텍스트 QR", - "시드문구 순번", - "인쇄하시겠습니까?", - "Tiny Seed를 인쇄하시겠습니까?", - "주사위값 분포:", - "니모닉을 생성하려면 주사위를 최소 %d번 굴리십시오.", - "주사위 횟수:", - "주사위 횟수가 충분하지 않습니다!", - "엔트로피가 부족합니다!", - "패턴이 감지되었습니다!", - "계속하시겠습니까?", - "전문가를 위한 통계", - "니모닉 생성", - "주사위의 SHA256:", + "기기 초기화", + "기기를 초기화하는 중입니다..", + "%d 단어", + "단어 번호(1-2048)", + "시드문구", + "예", + " 은 유효한 주소가 아닙니다", + "첫 번째 %d 주소에서 찾을 수 없습니다", ] diff --git a/src/krux/translations/nl.py b/src/krux/translations/nl.py index 37c8c29f..adde0fea 100644 --- a/src/krux/translations/nl.py +++ b/src/krux/translations/nl.py @@ -21,297 +21,297 @@ # THE SOFTWARE. # pylint: disable=C0301 translation_array = [ - "Nieuwe firmware gevonden.", - "Bezig met verifiëren..", - "Installeren?", - "Firmware overschrijdt de maximale grootte: %d", - "Ongeldige publieke sleutel", - "Handtekening bestand mist", - "Ongeldige handtekening", - "Ongeldige bootloader", - "Verwerken..", - "Upgrade afgerond.", - "Firmwarebestanden van SD kaart verwijderen?", - "Bezig met afsluiten..", - "Enkele sleutel", + "% van het bedrag.", "%d van %d multisig", - "Native Segwit - 84 zal worden gebruikt", + "%d tot %d", + "%s verwijderd.", + "(%d totaal)", + "(Experimenteel)", + "(alleen inzien)", + "12 woorden", + "24 woorden", + "Over", + "Aanname accepteren?", + "Account", "Account #0 zou worden aangenomen", - "Taal", - "Netwerk", - "Multisig", - "Scripttype", + "Accountindex", + "Wachtwoordzin voor portemonnee toevoegen of wijzigen?", + "Extra entropie van de camera vereist voor AES-CBC-modus", + "Adres", + "Richt de camera en back-upplaat op de juiste manier.", + "Anti reflecterend uitgeschakeld", + "Anti reflecterend ingeschakeld", + "Uiterlijk", + "Weet je het zeker?", + "BGR-kleuren", + "Terug", + "Terug naar menu", + "Backup geheugensteun", + "Ongeldige handtekening", "Baudratio", - "Papier breedte", - "TX pin", - "RX pin", - "Lijn vertraging", - "Schaal", - "Omkeren", - "Snijmethode", - "Eenheid", - "Fluit diameter", - "Duik tarief", - "Voedingssnelheid", - "Snijdiepte", - "Diepte per pas", - "Deel grootte", + "Binair raster", "Rand opvulling", - "Thermisch", - "Driver", - "Debounce van knoppen", - "Aanraak gevoeligheid", - "Geflipte X-coördinaten", - "Omgekeerde kleuren", - "BGR-kleuren", - "LCD-type", "Helderheid", - "Printer", "Knoppen", - "Aanraakscherm", - "Weergave", - "Opslaglocatie", - "Versleutel modus", - "PBKDF2 iter.", - "Thema", - "Schermbeveiligingstijd", - "Uitschakelingstijd:", - "Verberg geheugensteunen", + "Debounce van knoppen", + "Opname geannuleerd", + "Change", + "Wisselgeldadres", + "Thema veranderen en opnieuw opstarten?", + "Wisselgeld:", + "Wijzigingen blijven van kracht tot afsluiten.", + "Controleer SD kaart", + "Controleer of dit adres bij deze portemonnee hoort?", + "%d adressen gecontroleerd zonder overeenkomsten.", + "SD kaart controleren..", + "Onderliggende index", + "QR code maken", + "QR code maken van tekst?", + "Aangemaakt:", + "Aangepaste QR code", + "Aanpassen", + "Bij aanpassen van de portemonnee zal er een nieuwe sleutel gegenereerd worden.", + "Snijdiepte", + "Snijmethode", + "Decimaal", + "Ontsleutelen?", "Standaard portemonnee", - "Beveiliging", - "Hardware", - "Taal", + "Diepte per pas", + "Descriptoradressen", + "Weergave", + "Schakel het apparaat niet uit, het kan even duren voordat het klaar is.", + "Klaar?", + "Dubbel geheugensteuntje", + "Driver", + "Versleuteld", + "Versleutelde QR code", + "Versleutelde geheugensteun was niet opgeslagen", + "Versleutelde geheugensteun is opgeslagen met ID:", "Versleutelen", - "Opslag", - "Uiterlijk", - "Invoer (%d):", - "Uitgaven (%d):", - "Overschrijving naar jezelf, of wisselgeld (%d):", + "Versleutel modus", + "Voer %d BIP-39 woorden in.", + "Voer elk woord van jouw BIP-39 geheugensteun in als een nummer van 1 tot 2048.", + "Voer elk woord van jouw BIP-39 geheugensteun in als een hexadecimaal van 1 tot 800.", + "Voer elk woord van jouw BIP-39 geheugensteun in als een octaal van 1 tot 4000.", + "Voer elk woord van jouw BIP-39 geheugensteun in.", + "Fout:", + "Esc", + "Bestanden verkennen?", + "Exporteren naar SD kaart..", + "Uitgebreide publieke sleutel", + "Fabrieksinstellingen", + "Ontsleutelen is niet gelukt", + "PSBT laden is niet gelukt", + "Adres laden is niet gelukt", + "Sleutel laden is niet gelukt", + "Bericht laden is niet gelukt", + "Geheugensteun laden is niet gelukt", + "Descriptor laden is niet gelukt", + "Wachtwoord laden is niet gelukt", + "Geheugensteun opslaan is niet gelukt", "Tarief:", - "Uitgaven:", - "Zelf overschrijving:", - "Wisselgeld:", + "Voedingssnelheid", + "Bestandsnaam", + "Bestandsnaam %s OVERSCHRIJVEN op SD kaart?", + "Vingerafdruk niet ingesteld in PSBT", + "Firmware overschrijdt de maximale grootte: %d", + "Geflipte X-coördinaten", + "Fluit diameter", + "Vrij:", + "Uit data-opslag", + "Wis uw SD kaart volledig in een ander apparaat om te zorgen dat de gegevens onherstelbaar zijn", + "Geheugensteun genereren", + "Een BIP85 afgeleide geheugensteun genereren?", + "Eigen ID gebruiken voor geheugensteun? Anders vingerafdruk gebruiken", "Ga", - "Fabrieksinstellingen herstellen en opnieuw opstarten?", - "SD kaart controleren..", - "Instellingen opgeslagen op SD kaart.", - "SD kaart niet gedetecteerd.", - "Wijzigingen blijven van kracht tot afsluiten.", - "Instellingen intern opgeslagen op flitser.", - "Fabrieksinstellingen", - "Links", - "Rechts", - "Thema veranderen en opnieuw opstarten?", - "Waarde moet meerdere van %s zijn", - "Waarde %s is buiten bereik: [%s, %s]", - "Geheugensteun", - "Esc", - "Woord %d", - "Weet je het zeker?", - "Laden van camera", - "Laden vanaf SD kaart", - "Deel", - "Yes", - "Nee", - "Terug", - "Fout:", - "12 woorden", - "24 woorden", - "Dubbel geheugensteuntje", "Goede entropie", - "Slechte entropie", - "Onvoldoende entropie", - "TIK of ENTER voor opname", - "Opname geannuleerd", - "Shannon's entropie:", - "(%d totaal)", - "Pixelafwijkingsindex:", + "Hardware", + "Hex publieke sleutel", + "Hexadecimaal", + "Verberg geheugensteunen", + "Hoge kosten!", + "ID bestaat al", + "Invoer (%d):", + "Installeren?", "Onvoldoende Entropie!", - "Afdrukken naar QR?", + "Onvoldoende entropie", + "Ongeldig adres", + "Ongeldige bootloader", + "Ongeldige geheugensteun lengte", + "Ongeldige publieke sleutel", + "Ongeldige portemonnee:", + "Omkeren", + "Omgekeerde kleuren", + "Sleutel", + "Sleutel niet verstrekt", + "Krux printer test QR", + "LCD-type", + "Taal", + "Laat leeg als je wilt dat Krux een geldig laatste woord kiest", + "Links", + "Lijn vertraging", + "Lijn:", + "Geheugensteun laden", + "Portemonnee laden", + "Een vertrouwde portemonnee descriptor laden om adressen te bekijken?", + "Laden vanaf SD kaart", "Laden vanaf SD kaart?", + "Laden van camera", "Laden?", - "Opslaan op SD kaart?", - "Opgeslagen op SD kaart", - "Bestandsnaam", - "Bestandsnaam %s OVERSCHRIJVEN op SD kaart?", - "Voer een BIP-39 wachtwoord in", - "BIP-39 Wachtwoord Scannen", - "Wachtwoord", - "Wachtwoord laden is niet gelukt", + "Laden?", + "Camera laden..", + "Wijzigingsadressen laden..", + "Laadprinter..", + "Ontvangstadressen laden..", + "Laden..", + "Taal", + "Opslaglocatie", "Maximale lengte overschreden (%s)", - "Account", - "Accountindex", - "Geheugensteun laden", + "Bericht", + "Bericht:", + "Handtekening bestand mist", + "Geheugensteun", + "Geheugensteun ID", + "Geheugensteun en wachtwoord worden bewaard.", + "Geheugensteun is niet versleuteld", + "Aangepast:", + "Multisig", + "Native Segwit - 84 zal worden gebruikt", + "Netwerk", "Geheugensteun aanmaken", - "Instellingen", - "Hulpmiddelen", - "Over", - "Afsluiten", - "Via camera", - "Via handmatige invoer", - "Uit data-opslag", - "QR code", - "Binair raster", - "Woorden", - "Woord nummers", - "Via woorden", - "Via D6", - "Via D20", - "Gebruik de camera als entropie voor het aanmaken van een nieuwe geheugensteun", - "(Experimenteel)", - "Doorgaan?", - "Momentopname van SHA256:", + "Nieuwe firmware gevonden.", + "Nee", "Geen wachtwoordzin", - "Portemonnee laden", - "Aanpassen", - "Laden..", - "Ontsleutelen?", - "Sleutel niet verstrekt", - "Ontsleutelen is niet gelukt", - "Geheugensteun laden is niet gelukt", - "Ongeldige geheugensteun lengte", - "Laat leeg als je wilt dat Krux een geldig laatste woord kiest", - "Klaar?", - "Voer %d BIP-39 woorden in.", - "Voer elk woord van jouw BIP-39 geheugensteun in.", - "Decimaal", - "Hexadecimaal", + "Niet genoeg gedobbeld!", + "Nummers", "Octaal", - "Voer elk woord van jouw BIP-39 geheugensteun in als een octaal van 1 tot 4000.", - "Voer elk woord van jouw BIP-39 geheugensteun in als een hexadecimaal van 1 tot 800.", - "Voer elk woord van jouw BIP-39 geheugensteun in als een nummer van 1 tot 2048.", + "Andere indelingen", + "PBKDF2 iter.", "Maak geperforeerde stippen zwart zodat ze worden gedetecteerd.", - "Gebruik een donker achergrond.", - "Richt de camera en back-upplaat op de juiste manier.", - "Versie", - "Anti reflecterend ingeschakeld", - "Anti reflecterend uitgeschakeld", - "Camera laden..", - "Grootte:", - "Aangemaakt:", - "Aangepast:", + "Papier breedte", + "Deel", + "Deel grootte", + "Wachtwoord", + "Pad komt niet overeen", + "Patroon gevonden!", + "Alle opgeslagen versleutelde mnemonics en instellingen permanent uit het flashgeheugen verwijderen?", + "Opslag", + "Pixelafwijkingsindex:", + "Platte tekst QR", + "Laadt een portemonnee descriptor in", + "Duik tarief", + "Slechte entropie", + "Lage entropie gedetecteerd!", + "Test QR afdrukken", + "Tiny Seed afdrukken?", + "Afdrukken naar QR", + "Afdrukken naar QR?", + "Afdrukken?", + "Printer", + "Printer driver niet ingesteld!", "Afdrukken..", - "Controleer gescande gegevens en bewerk indien nodig", - "Woorden 1 t/m 12 opnieuw scannen", - "Wacht op opname", - "Woorden 13 t/m 24 scannen", - "Voer sleutel in", - "QR Code Sleutel Scannen", - "Sleutel", - "Sleutel laden is niet gelukt", - "Opslaan op apparaat", - "Opslaan op SD kaart", - "Versleutelde QR code", - "Geheugensteun is niet versleuteld", - "Extra entropie van de camera vereist voor AES-CBC-modus", - "Eigen ID gebruiken voor geheugensteun? Anders vingerafdruk gebruiken", - "Geheugensteun ID", - "ID bestaat al", - "Versleutelde geheugensteun was niet opgeslagen", - "Versleutelde geheugensteun is opgeslagen met ID:", - "Geheugensteun opslaan is niet gelukt", + "Toch doorgaan?", + "Doorgaan?", + "Verwerken..", + "QR code", + "RX pin", + "Ontvangen", + "Ontvangstadres", + "Regio:", "Verwijderen %s?", - "%s verwijderd.", - "Wis uw SD kaart volledig in een ander apparaat om te zorgen dat de gegevens onherstelbaar zijn", - "Gebruik de functie 'Apparaat wissen' om te zorgen dat de gegevens onherstelbaar zijn", - "Controleer SD kaart", - "Test QR afdrukken", - "QR code maken", - "Descriptoradressen", "Geheugensteun verwijderen", - "Apparaat wissen", - "SD kaart", - "Gebruikt:", - "Vrij:", - "Bestanden verkennen?", - "Alle opgeslagen versleutelde mnemonics en instellingen permanent uit het flashgeheugen verwijderen?", - "Apparaat wissen..", - "Schakel het apparaat niet uit, het kan even duren voordat het klaar is.", - "Krux printer test QR", - "QR code maken van tekst?", - "Tekst", - "Aangepaste QR code", - "Regio:", - "Lijn:", + "Firmwarebestanden van SD kaart verwijderen?", "Res. - Formaat", - "Verander modus", + "Fabrieksinstellingen herstellen en opnieuw opstarten?", "Terug naar QR-lezer", - "Helderheid schakelen", + "Controleer gescande gegevens en bewerk indien nodig", + "Rechts", + "Dobbel een dobbelsteen minstens %d keer voor het genereren van een geheugensteun.", + "Roldistributie:", + "Gedobbeld:", + "SD kaart", + "SD kaart niet gedetecteerd.", + "Gedobbelde SHA256:", + "Momentopname van SHA256:", "QR-afbeelding opslaan op SD kaart", - "Afdrukken naar QR", - "Terug naar menu", - "Laadprinter..", - "Exporteren naar SD kaart..", - "Printer driver niet ingesteld!", - "Bericht:", - "Adres", - "Ondertekenen?", - "Handtekening", - "Bericht laden is niet gelukt", + "Opslaan op SD kaart", + "Opslaan op SD kaart?", + "Opgeslagen op SD kaart", + "Schaal", + "Adres scannen", + "BIP-39 Wachtwoord Scannen", + "QR Code Sleutel Scannen", + "Woorden 1 t/m 12 opnieuw scannen", + "Woorden 13 t/m 24 scannen", + "Schermbeveiligingstijd", + "Scripttype", + "Beveiliging", + "Overschrijving naar jezelf, of wisselgeld (%d):", + "Zelf overschrijving:", + "Instellingen", + "Instellingen intern opgeslagen op flitser.", + "Instellingen opgeslagen op SD kaart.", + "Shannon's entropie:", + "Afsluiten", + "Uitschakelingstijd:", + "Bezig met afsluiten..", + "Ondertekenen", "Teken op QR-code", "Teken op SD kaart", + "Ondertekenen?", + "Handtekening", "Bericht ondertekend", - "Hex publieke sleutel", - "Portemonnee descriptor", - "Een vertrouwde portemonnee descriptor laden om adressen te bekijken?", - "(alleen inzien)", - "Portemonnee descriptor niet gevonden.", - "Laden?", - "Descriptor laden is niet gelukt", - "Aanname accepteren?", - "Ongeldige portemonnee:", - "Portemonnee descriptor geladen!", - "Laadt een portemonnee descriptor in", - "Adres scannen", - "Ontvangstadres", - "Wisselgeldadres", - "Wijzigingsadressen laden..", - "Ontvangstadressen laden..", - "Ontvangen", - "Change", - "Adres laden is niet gelukt", - "Ongeldig adres", - "Controleer of dit adres bij deze portemonnee hoort?", - "%d tot %d", - "%d adressen gecontroleerd zonder overeenkomsten.", - "is geen geldig adres", - "werd NIET GEVONDEN in de eerste %d adressen", + "PSBT ondertekend", + "Ondertekenen..", + "Enkele sleutel", + "Grootte:", + "Sommige controles kunnen niet worden uitgevoerd.", + "Uitgaven (%d):", + "Uitgaven:", + "Statistieken voor nerds", + "Opslaan op apparaat", + "Opslaan op SD kaart", + "Verander modus", + "TIK of ENTER voor opname", + "TX pin", + "Tekst", + "Thema", + "Thermisch", + "Gebruik de functie 'Apparaat wissen' om te zorgen dat de gegevens onherstelbaar zijn", + "Helderheid schakelen", + "Hulpmiddelen", + "Aanraak gevoeligheid", + "Aanraakscherm", "Meer proberen?", - "Onderliggende index", - "Backup geheugensteun", - "Uitgebreide publieke sleutel", + "Voer een BIP-39 wachtwoord in", + "Voer sleutel in", + "Eenheid", + "Upgrade afgerond.", + "Gebruik een donker achergrond.", + "Gebruik de camera als entropie voor het aanmaken van een nieuwe geheugensteun", + "Gebruikt:", + "Waarde %s is buiten bereik: [%s, %s]", + "Waarde moet meerdere van %s zijn", + "Bezig met verifiëren..", + "Versie", + "Via camera", + "Via D20", + "Via D6", + "Via handmatige invoer", + "Via woorden", + "Wacht op opname", "Portemonnee", - "Ondertekenen", - "Wachtwoordzin voor portemonnee toevoegen of wijzigen?", - "Bij aanpassen van de portemonnee zal er een nieuwe sleutel gegenereerd worden.", - "Geheugensteun en wachtwoord worden bewaard.", - "Een BIP85 afgeleide geheugensteun genereren?", "Descriptor", - "Bericht", + "Portemonnee descriptor", + "Portemonnee descriptor geladen!", + "Portemonnee descriptor niet gevonden.", "Waarschuwing:", - "Sommige controles kunnen niet worden uitgevoerd.", - "PSBT laden is niet gelukt", - "Pad komt niet overeen", - "Vingerafdruk niet ingesteld in PSBT", - "Hoge kosten!", - "% van het bedrag.", - "Ondertekenen..", - "PSBT ondertekend", - "Opslaan op SD kaart", - "Versleuteld", - "Andere indelingen", - "Platte tekst QR", - "Nummers", - "Afdrukken?", - "Tiny Seed afdrukken?", - "Roldistributie:", - "Dobbel een dobbelsteen minstens %d keer voor het genereren van een geheugensteun.", - "Gedobbeld:", - "Niet genoeg gedobbeld!", - "Lage entropie gedetecteerd!", - "Patroon gevonden!", - "Toch doorgaan?", - "Statistieken voor nerds", - "Geheugensteun genereren", - "Gedobbelde SHA256:", + "Apparaat wissen", + "Apparaat wissen..", + "Woord %d", + "Woord nummers", + "Woorden", + "Yes", + "is geen geldig adres", + "werd NIET GEVONDEN in de eerste %d adressen", ] diff --git a/src/krux/translations/pt.py b/src/krux/translations/pt.py index df150ef5..0b61559d 100644 --- a/src/krux/translations/pt.py +++ b/src/krux/translations/pt.py @@ -21,297 +21,297 @@ # THE SOFTWARE. # pylint: disable=C0301 translation_array = [ - "Novo firmware detectado.", - "Verificando..", - "Instalar?", - "Firmware excede o tamanho máximo: %d", - "Chave pública inválida", - "Arquivo de assinatura faltando", - "Assinatura Inválida", - "Bootloader inválido", - "Processando..", - "Atualização completa.", - "Remover arquivos de firmware do cartão SD?", - "Desligando..", - "Single-sig", + "% do valor.", "%d da %d multisig", - "Segwit nativo - 84 seria assumido", + "%d a %d", + "removido.", + "(%d total)", + "(Experimental)", + "(Somente visualização)", + "12 palavras", + "24 palavras", + "Sobre", + "Aceitar suposições?", + "Conta", "A conta #0 seria assumida", - "Idioma", - "Rede", - "Multisig", - "Tipo de Script", + "Índice da Conta", + "Adicionar ou alterar senha da carteira?", + "Entropia adicional da câmera necessária para o modo AES-CBC", + "Endereço", + "Alinhe a câmera e a placa de backup corretamente.", + "Antirreflexo desativado", + "Antirreflexo ativado", + "Aparência", + "Tem certeza?", + "Cores BGR", + "Voltar", + "Voltar ao Menu", + "Backup de Mnemônico", + "Assinatura Inválida", "Baudrate", - "Largura do papel", - "Pino TX", - "Pino RX", - "Atraso de Linha", - "Escala", - "Invertido", - "Método de Corte", - "Unidade", - "Diâmetro da Fresa", - "Taxa de Mergulho", - "Taxa de Alimentação", - "Profundidade de Corte", - "Profundidade da Passagem", - "Tamanho da peça", + "Grade binária", "Borda", - "Térmica", - "Driver", - "Debounce dos Botões", - "Limiar de Toque", - "Coordenadas X invertidas", - "Cores invertidas", - "Cores BGR", - "Tipo de LCD", "Brilho", - "Impressora", "Botões", - "Touchscreen", - "Display", - "Local", - "Modo de Criptografia", - "Iter. PBKDF2", - "Tema", - "Tempo para protetor de tela", - "Tempo de desligamento", - "Ocultar Mnemônicos", + "Debounce dos Botões", + "Captura cancelada", + "Troco", + "Endereços de Troco", + "Mudar o tema e reiniciar?", + "Troco:", + "Alterações só durarão até o desligamento.", + "Verifique o cartão SD", + "Verificar se este endereço pertence a carteira?", + "Verificado %d endereços sem correspondências.", + "Verificando o cartão SD..", + "Índice Derivado", + "Gerar Código QR", + "Gerar código QR do texto?", + "Criado:", + "Código QR Customizado", + "Customizar", + "Personalizar sua carteira gerará uma nova chave.", + "Profundidade de Corte", + "Método de Corte", + "Decimal", + "Descriptografar?", "Carteira Padrão", - "Segurança", - "Hardware", - "Língua", + "Profundidade da Passagem", + "Endereços do Descritor", + "Display", + "Não desligue, pode demorar um pouco para concluir.", + "Feito?", + "Duplo mnemônico", + "Driver", + "Criptografado", + "Código QR Criptografado", + "Mnemonic criptografado não foi armazenado", + "Mnemônico criptografado foi armazenado com ID:", "Criptografia", - "Salvar", - "Aparência", - "Entradas (%d):", - "Gastos (%d):", - "Autotransferência ou Troco (%d):", + "Modo de Criptografia", + "Insira %d palavras BIP-39.", + "Digite o número de cada palavra do seu mnemônico BIP-39, de 1 a 2048.", + "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em hexadecimal, de 1 a 800.", + "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em octal, de 1 a 4000.", + "Digite cada palavra do seu mnemônico BIP-39.", + "Erro:", + "Esc", + "Explorar arquivos?", + "Exportando para o cartão SD..", + "Chave Pública Estendida", + "Configurações de Fábrica", + "Falhou em descriptografar", + "Falhou ao carregar PSBT", + "Falhou ao carregar endereço", + "Falha ao carregar a chave", + "Falhou ao carregar mensagem", + "Falhou ao carregar mnemônico", + "Falha ao carregar o descritor de saída", + "Falha ao carregar a senha", + "Falhou ao armazenar mnemônico", "Taxa:", - "Gasto:", - "Autotransferência:", - "Troco:", + "Taxa de Alimentação", + "Nome do arquivo", + "O nome do arquivo %s existe no cartão SD, substituir?", + "Impressão digital não definida no PSBT", + "Firmware excede o tamanho máximo: %d", + "Coordenadas X invertidas", + "Diâmetro da Fresa", + "Livre:", + "Do Armazenamento", + "Apague totalmente seu cartão SD em outro dispositivo para garantir que os dados sejam irrecuperáveis", + "Gerar Mnemônico", + "Gerar um mnemônico derivado BIP85?", + "Dê a este mnemônico um ID personalizado? Caso contrário, a impressão digital atual será usada", "Ir", - "Restaurar as configurações de fábrica e reiniciar?", - "Verificando o cartão SD..", - "Configurações armazenadas no cartão SD.", - "Cartão SD não detectado.", - "Alterações só durarão até o desligamento.", - "Configurações armazenadas internamente no flash.", - "Configurações de Fábrica", - "Esquerda", - "Direita", - "Mudar o tema e reiniciar?", - "O valor deve ser múltiplo de %s", - "Valor %s fora do alcance: [ %s, %s]", - "Mnemônico", - "Esc", - "Palavra %d", - "Tem certeza?", - "Carregar da câmera", - "Carregar do cartão SD", - "Parte", - "Sim", - "Não", - "Voltar", - "Erro:", - "12 palavras", - "24 palavras", - "Duplo mnemônico", "Boa entropia", - "Entropia fraca", - "Entropia insuficiente", - "TOQUE ou ENTER para capturar", - "Captura cancelada", - "Entropia de Shannon:", - "(%d total)", - "Índice de desvio de pixels:", + "Hardware", + "Chave pública hexadecimal", + "Hexadecimal", + "Ocultar Mnemônicos", + "Taxas altas!", + "Id já existe", + "Entradas (%d):", + "Instalar?", "Entropia insuficiente!", - "Imprimir QR?", + "Entropia insuficiente", + "Endereço inválido", + "Bootloader inválido", + "Comprimento de mnemônico inválido", + "Chave pública inválida", + "Carteira inválida:", + "Invertido", + "Cores invertidas", + "Chave", + "A chave não foi fornecida", + "Teste de impressão de QR krux", + "Tipo de LCD", + "Língua", + "Deixe em branco se quiser que o Krux escolha uma palavra final válida", + "Esquerda", + "Atraso de Linha", + "Linha:", + "Carregar Mnemônico", + "Carregar Carteira", + "Carregar um descritor de carteira confiável para visualizar endereços?", + "Carregar do cartão SD", "Carregar do cartão SD?", + "Carregar da câmera", + "Carregar um?", "Carregar?", - "Salvar no cartão SD?", - "Salvo no cartão SD", - "Nome do arquivo", - "O nome do arquivo %s existe no cartão SD, substituir?", - "Digitar a senha BIP39", - "Escanear a senha BIP39", - "Senha", - "Falha ao carregar a senha", + "Carregando Câmera..", + "Carregando endereços de troco..", + "Carregando impressora..", + "Carregando endereços de recebimento..", + "Carregando..", + "Idioma", + "Local", "Comprimento máximo excedido (%s)", - "Conta", - "Índice da Conta", - "Carregar Mnemônico", + "Mensagem", + "Mensagem:", + "Arquivo de assinatura faltando", + "Mnemônico", + "ID do mnemônico", + "Mnemônico e senha serão mantidos.", + "Mnemônico não foi criptografado", + "Modificado:", + "Multisig", + "Segwit nativo - 84 seria assumido", + "Rede", "Novo Mnemônico", - "Configurações", - "Ferramentas", - "Sobre", - "Desligar", - "Pela Câmera", - "Por entrada manual", - "Do Armazenamento", - "Código QR", - "Grade binária", - "Palavras", - "Números das Palavras", - "Via Palavras", - "Via D6", - "Via D20", - "Use a entropia da câmera para criar um novo mnemônico", - "(Experimental)", - "Seguir?", - "Sha256 da imagem:", + "Novo firmware detectado.", + "Não", "Sem Senha", - "Carregar Carteira", - "Customizar", - "Carregando..", - "Descriptografar?", - "A chave não foi fornecida", - "Falhou em descriptografar", - "Falhou ao carregar mnemônico", - "Comprimento de mnemônico inválido", - "Deixe em branco se quiser que o Krux escolha uma palavra final válida", - "Feito?", - "Insira %d palavras BIP-39.", - "Digite cada palavra do seu mnemônico BIP-39.", - "Decimal", - "Hexadecimal", + "Jogadas insuficientes!", + "Números", "Octal", - "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em octal, de 1 a 4000.", - "Digite o número de cada palavra do seu mnemônico BIP-39 como um número em hexadecimal, de 1 a 800.", - "Digite o número de cada palavra do seu mnemônico BIP-39, de 1 a 2048.", + "Outros Formatos", + "Iter. PBKDF2", "Pinte os pontos perfurados de preto para que possam ser detectados.", - "Use uma superfície de fundo preta.", - "Alinhe a câmera e a placa de backup corretamente.", - "Versão", - "Antirreflexo ativado", - "Antirreflexo desativado", - "Carregando Câmera..", - "Total:", - "Criado:", - "Modificado:", + "Largura do papel", + "Parte", + "Tamanho da peça", + "Senha", + "Incompatibilidade de caminho", + "Padrão detectado!", + "Remover permanentemente todos os mnemônicos criptografados e configurações armazenados da memória flash?", + "Salvar", + "Índice de desvio de pixels:", + "QR em Texto", + "Carregue um descritor da carteira", + "Taxa de Mergulho", + "Entropia fraca", + "Baixa entropia detectada!", + "Imprimir QR de teste", + "Imprimir Tiny Seed?", + "Imprimir QR", + "Imprimir QR?", + "Imprimir?", + "Impressora", + "Driver de impressora não está definido!", "Imprimindo..", - "Revise os dados, edite se necessário", - "Escaneando as palavras 1-12 novamente", - "Aguarde a captura", - "Escaneando as palavras 13-24", - "Digite a Chave", - "Escanear Código QR da Chave", - "Chave", - "Falha ao carregar a chave", - "Armazene na Flash", - "Armazene no Cartão SD", - "Código QR Criptografado", - "Mnemônico não foi criptografado", - "Entropia adicional da câmera necessária para o modo AES-CBC", - "Dê a este mnemônico um ID personalizado? Caso contrário, a impressão digital atual será usada", - "ID do mnemônico", - "Id já existe", - "Mnemonic criptografado não foi armazenado", - "Mnemônico criptografado foi armazenado com ID:", - "Falhou ao armazenar mnemônico", + "Continuar mesmo assim?", + "Seguir?", + "Processando..", + "Código QR", + "Pino RX", + "Recebimento", + "Endereços de Recebimento", + "Região:", "Excluir %s?", - "removido.", - "Apague totalmente seu cartão SD em outro dispositivo para garantir que os dados sejam irrecuperáveis", - "Para garantir que os dados sejam irrecuperáveis, use o recurso Limpar Dispositivo", - "Verifique o cartão SD", - "Imprimir QR de teste", - "Gerar Código QR", - "Endereços do Descritor", "Excluir Mnemônico", - "Limpar Dispositivo", - "Cartão SD", - "Usado:", - "Livre:", - "Explorar arquivos?", - "Remover permanentemente todos os mnemônicos criptografados e configurações armazenados da memória flash?", - "Limpando Dispositivo..", - "Não desligue, pode demorar um pouco para concluir.", - "Teste de impressão de QR krux", - "Gerar código QR do texto?", - "Texto", - "Código QR Customizado", - "Região:", - "Linha:", + "Remover arquivos de firmware do cartão SD?", "Res. - Formato", - "Deslize para mudar de modo", + "Restaurar as configurações de fábrica e reiniciar?", "Retornar ao Visualizador de QR", - "Alternar brilho", + "Revise os dados, edite se necessário", + "Direita", + "Role o dado pelo menos %d vezes para gerar um mnemônico.", + "Distribuição de jogadas:", + "Jogadas:", + "Cartão SD", + "Cartão SD não detectado.", + "SHA256 de jogadas:", + "Sha256 da imagem:", "Salvar imagem do QR no cartão SD", - "Imprimir QR", - "Voltar ao Menu", - "Carregando impressora..", - "Exportando para o cartão SD..", - "Driver de impressora não está definido!", - "Mensagem:", - "Endereço", - "Assinar?", - "Assinatura", - "Falhou ao carregar mensagem", + "Salvar no cartão SD", + "Salvar no cartão SD?", + "Salvo no cartão SD", + "Escala", + "Escanear Endereço", + "Escanear a senha BIP39", + "Escanear Código QR da Chave", + "Escaneando as palavras 1-12 novamente", + "Escaneando as palavras 13-24", + "Tempo para protetor de tela", + "Tipo de Script", + "Segurança", + "Autotransferência ou Troco (%d):", + "Autotransferência:", + "Configurações", + "Configurações armazenadas internamente no flash.", + "Configurações armazenadas no cartão SD.", + "Entropia de Shannon:", + "Desligar", + "Tempo de desligamento", + "Desligando..", + "Assinar", "Assinar para código QR", "Assinar para cartão SD", + "Assinar?", + "Assinatura", "Mensagem Assinada", - "Chave pública hexadecimal", - "Descritor da carteira", - "Carregar um descritor de carteira confiável para visualizar endereços?", - "(Somente visualização)", - "O descritor de saída da carteira não foi encontrado.", - "Carregar um?", - "Falha ao carregar o descritor de saída", - "Aceitar suposições?", - "Carteira inválida:", - "Descritor de saída da carteira carregado!", - "Carregue um descritor da carteira", - "Escanear Endereço", - "Endereços de Recebimento", - "Endereços de Troco", - "Carregando endereços de troco..", - "Carregando endereços de recebimento..", - "Recebimento", - "Troco", - "Falhou ao carregar endereço", - "Endereço inválido", - "Verificar se este endereço pertence a carteira?", - "%d a %d", - "Verificado %d endereços sem correspondências.", - "é um endereço válido!", - "NÃO FOI ENCONTRADO nos primeiros %d endereços", + "PSBT Assinada", + "Assinando..", + "Single-sig", + "Total:", + "Algumas verificações não podem ser realizadas.", + "Gastos (%d):", + "Gasto:", + "Estatísticas para Nerds", + "Armazene na Flash", + "Armazene no Cartão SD", + "Deslize para mudar de modo", + "TOQUE ou ENTER para capturar", + "Pino TX", + "Texto", + "Tema", + "Térmica", + "Para garantir que os dados sejam irrecuperáveis, use o recurso Limpar Dispositivo", + "Alternar brilho", + "Ferramentas", + "Limiar de Toque", + "Touchscreen", "Tentar mais?", - "Índice Derivado", - "Backup de Mnemônico", - "Chave Pública Estendida", + "Digitar a senha BIP39", + "Digite a Chave", + "Unidade", + "Atualização completa.", + "Use uma superfície de fundo preta.", + "Use a entropia da câmera para criar um novo mnemônico", + "Usado:", + "Valor %s fora do alcance: [ %s, %s]", + "O valor deve ser múltiplo de %s", + "Verificando..", + "Versão", + "Pela Câmera", + "Via D20", + "Via D6", + "Por entrada manual", + "Via Palavras", + "Aguarde a captura", "Carteira", - "Assinar", - "Adicionar ou alterar senha da carteira?", - "Personalizar sua carteira gerará uma nova chave.", - "Mnemônico e senha serão mantidos.", - "Gerar um mnemônico derivado BIP85?", "Descritor de Carteira", - "Mensagem", + "Descritor da carteira", + "Descritor de saída da carteira carregado!", + "O descritor de saída da carteira não foi encontrado.", "Aviso:", - "Algumas verificações não podem ser realizadas.", - "Falhou ao carregar PSBT", - "Incompatibilidade de caminho", - "Impressão digital não definida no PSBT", - "Taxas altas!", - "% do valor.", - "Assinando..", - "PSBT Assinada", - "Salvar no cartão SD", - "Criptografado", - "Outros Formatos", - "QR em Texto", - "Números", - "Imprimir?", - "Imprimir Tiny Seed?", - "Distribuição de jogadas:", - "Role o dado pelo menos %d vezes para gerar um mnemônico.", - "Jogadas:", - "Jogadas insuficientes!", - "Baixa entropia detectada!", - "Padrão detectado!", - "Continuar mesmo assim?", - "Estatísticas para Nerds", - "Gerar Mnemônico", - "SHA256 de jogadas:", + "Limpar Dispositivo", + "Limpando Dispositivo..", + "Palavra %d", + "Números das Palavras", + "Palavras", + "Sim", + "é um endereço válido!", + "NÃO FOI ENCONTRADO nos primeiros %d endereços", ] diff --git a/src/krux/translations/ru.py b/src/krux/translations/ru.py index 50eac1a1..090010f0 100644 --- a/src/krux/translations/ru.py +++ b/src/krux/translations/ru.py @@ -21,297 +21,297 @@ # THE SOFTWARE. # pylint: disable=C0301 translation_array = [ - "Обнаружена новая прошивка.", - "Проверка..", - "Установить?", - "Прошивка превышает максимальный размер: %d", - "Неверный публичный ключ", - "Отсутствует файл подписи", - "Плохая подпись", - "Неверный загрузчик", - "Обработка..", - "Обновление завершено.", - "Удалить файлы прошивки с SD-карты?", - "Выключение..", - "Одна подпись", + "% от суммы.", "%d из %d мультиподпись", - "Native Segwit - 84 будет принято", + "%d к %d", + "%s удален.", + "(%d всего)", + "(Эксперементальный)", + "(Только часы)", + "12 слов", + "24 слова", + "О Программе", + "Принять предположение?", + "Учетная запись", "Будет принят счет №0", - "Локаль", - "Сеть", - "Мультиподпись", - "Тип скрипта", + "Индекс счета", + "Добавить или изменить пароль кошелька?", + "Для режима AES-CBC требуется дополнительная энтропия от камеры", + "Адрес", + "Правильно совместите камеру и резервную пластину.", + "Антиблик отключен", + "Антиблик включен", + "Внешний Вид", + "Вы уверены?", + "Цвета BGR", + "Назад", + "Назад в Mеню", + "Резервная мнемоника", + "Плохая подпись", "Скорость Передачи Данных", - "Ширина Бумаги", - "TX Пин", - "RX Пин", - "Задержка Линии", - "Шкала", - "Инвертировать", - "Метод Резки", - "Единица Измерения", - "Диаметр Флюта", - "Скорость Погружения", - "Скорость Подачи", - "Глубина Резки", - "Глубина за Проход", - "Размер Части", + "Двоичная сетка", "Заполнение Границ", - "Термальный", - "Драйвер", - "Антидребезг кнопок", - "Чувствительность", - "Перевернутые координаты X", - "Перевернутые цвета", - "Цвета BGR", - "Тип ЖК-дисплея", "Яркость", - "Принтер", "Кнопки", - "Тачскрин", - "Дисплеи", - "Расположение", - "Метод Шифрования", - "PBKDF2 Итерации", - "Тема", - "Время Экранной Заставки", - "Время выключения", - "Скрыть мнемоники", + "Антидребезг кнопок", + "Захват отменен", + "Сдача", + "Адрес Сдачи", + "Сменить тему и перезагрузить?", + "Сдача:", + "Изменения будут храниться до выключения.", + "Проверить SD Карту", + "Проверить, что адрес принадлежит этому кошельку?", + "Проверено %d адресов без совпадений.", + "Проверка SD карты..", + "Дочерний индекс", + "Создать QR Код", + "Создать QR код из текста?", + "Создано:", + "Пользовательский QR Код", + "Настроить", + "Настройка вашего кошелька создаст новый ключ.", + "Глубина Резки", + "Метод Резки", + "Десятичный", + "Расшифровать?", "Кошелек по умолчанию", - "Охрана", - "Аппаратное Обеспечение", - "Язык", + "Глубина за Проход", + "Адреса дескрипторов", + "Дисплеи", + "Не выключайте питание, это может занять некоторое время.", + "Готово?", + "Двойная мнемоника", + "Драйвер", + "Зашифровано", + "Зашифрованный QR Код", + "Зашифрованная мнемоника не была сохранена", + "Зашифрованная мнемоника была сохранена с ID:", "Шифрование", - "Постоянная Память", - "Внешний Вид", - "Входы (%d):", - "Расход (%d):", - "Трансфер самому себе или Сдача (%d):", + "Метод Шифрования", + "Введите %d слов BIP-39.", + "Введите каждое слово вашей мнемоники BIP-39 в виде числа от 1 до 2048.", + "Введите каждое слово вашей мнемоники BIP-39 в виде шестнадцатеричного числа от 1 до 800.", + "Введите каждое слово вашей мнемоники BIP-39 в виде восьмеричного числа от 1 до 4000.", + "Введите каждое слово вашей BIP-39 мнемоники.", + "Ошибка:", + "Выйти", + "Исследовать файлы?", + "Экспортирование на SD карту..", + "Расширенный Публичный Ключ", + "Заводские Настройки", + "Не удалось расшифровать", + "Не удалось загрузить PSBT", + "Не удалось загрузить адрес", + "Не удалось загрузить ключ", + "Не удалось загрузить сообщение", + "Не удалось загрузить мнемонику", + "Не удалось загрузить выходной дескриптор", + "Не удалось загрузить фразу-пароль", + "Не удалось сохранить мнемонику", "Комиссия:", - "Расход:", - "Перевод самому себе:", - "Сдача:", + "Скорость Подачи", + "Имя файла", + "Файл %s существует на SD карте, перезаписать?", + "Отпечаток пальца не установлен в PSBT", + "Прошивка превышает максимальный размер: %d", + "Перевернутые координаты X", + "Диаметр Флюта", + "Свободно:", + "Из Памяти", + "Полностью стерите SD-карту в другом устройстве, чтобы убедиться, что данные не восстановимы", + "Создать Мнемонику", + "Сгенерировать дочернюю мнемонику BIP85?", + "Назначить этой мнемоники кастомный ID? В ином случае будет использован текущий фингерпринт", "OK", - "Восстановить заводские настройки и перезагрузить?", - "Проверка SD карты..", - "Настройки сохранены на SD-карте.", - "SD карта не обнаружена.", - "Изменения будут храниться до выключения.", - "Настройки хранятся во флэш-памяти.", - "Заводские Настройки", - "Влево", - "Вправо", - "Сменить тему и перезагрузить?", - "Значение должно быть кратным %s", - "Значение %s вне диапозона: [%s, %s]", - "Мнемоника", - "Выйти", - "Слово %d", - "Вы уверены?", - "Из камеры", - "Загрузка с SD-карты", - "Часть", - "Да", - "Нет", - "Назад", - "Ошибка:", - "12 слов", - "24 слова", - "Двойная мнемоника", "Хорошая энтропия", - "Плохая энтропия", - "Недостаточная энтропия", - "ПРИКОСНИТЕСЬ или нажмите ВВОД, чтобы захватить", - "Захват отменен", - "Энтропия Шеннона:", - "(%d всего)", - "Индекс отклонения пикселей:", + "Аппаратное Обеспечение", + "Шестнадцатеричный Публичный Ключ", + "Шестнадцатеричный", + "Скрыть мнемоники", + "Высокие комиссии!", + "ID уже существует", + "Входы (%d):", + "Установить?", "Недостаточная Энтропия!", - "Напечатать в виде QR?", + "Недостаточная энтропия", + "Неверный адрес", + "Неверный загрузчик", + "Неверная длина мнемоники", + "Неверный публичный ключ", + "Неверный кошелек:", + "Инвертировать", + "Перевернутые цвета", + "Ключ", + "Ключ не предоставлен", + "Тестовый QR Принтера Krux", + "Тип ЖК-дисплея", + "Язык", + "Оставьте пустым, если хотите, чтобы Krux выбрал подходящее последнее слово", + "Влево", + "Задержка Линии", + "Линия:", + "Загрузить Мнемонику", + "Загрузить кошелек", + "Загрузить дескриптор доверенного кошелька для просмотра адресов?", + "Загрузка с SD-карты", "Загрузить с SD карты?", + "Из камеры", + "Загрузить один?", "Загрузить?", - "Сохранить на SD карту?", - "Сохранено на SD карту", - "Имя файла", - "Файл %s существует на SD карте, перезаписать?", - "Ввести BIP39 фразу-пароль", - "Отсканировать BIP39 фразу-пароль", - "Фраза-пароль", - "Не удалось загрузить фразу-пароль", + "Загрузка Камеры..", + "Загрузка адресов изменения..", + "Загрузка принтера..", + "Загрузка адресов получения..", + "Загрузка..", + "Локаль", + "Расположение", "Максимальная длина превышена (%s)", - "Учетная запись", - "Индекс счета", - "Загрузить Мнемонику", + "Сообщение", + "Сообщение:", + "Отсутствует файл подписи", + "Мнемоника", + "ID Мнемоники", + "Мнемоника и парольная фраза будут сохранены.", + "Мнемоника не была зашифрована", + "Изменено:", + "Мультиподпись", + "Native Segwit - 84 будет принято", + "Сеть", "Новая Мнемоника", - "Настройки", - "Инструменты", - "О Программе", - "Выключить", - "С Помощью Камеры", - "С Помощью Ручного Ввода", - "Из Памяти", - "QR Код", - "Двоичная сетка", - "Слова", - "Числа Слов", - "Через Слово", - "С Помощью D6", - "С Помощью D20", - "Использовать энтропию камеры, чтобы создать новую мнемонику", - "(Эксперементальный)", - "Продолжить?", - "SHA256 снэпшота:", + "Обнаружена новая прошивка.", + "Нет", "Нет Фраза-пароль", - "Загрузить кошелек", - "Настроить", - "Загрузка..", - "Расшифровать?", - "Ключ не предоставлен", - "Не удалось расшифровать", - "Не удалось загрузить мнемонику", - "Неверная длина мнемоники", - "Оставьте пустым, если хотите, чтобы Krux выбрал подходящее последнее слово", - "Готово?", - "Введите %d слов BIP-39.", - "Введите каждое слово вашей BIP-39 мнемоники.", - "Десятичный", - "Шестнадцатеричный", + "Недостаточно бросков!", + "Числа", "Восьмеричный", - "Введите каждое слово вашей мнемоники BIP-39 в виде восьмеричного числа от 1 до 4000.", - "Введите каждое слово вашей мнемоники BIP-39 в виде шестнадцатеричного числа от 1 до 800.", - "Введите каждое слово вашей мнемоники BIP-39 в виде числа от 1 до 2048.", + "Другие форматы", + "PBKDF2 Итерации", "Закрасьте перфорированные точки черным цветом, чтобы их можно было обнаружить.", - "Использовать черную фоновую поверхность.", - "Правильно совместите камеру и резервную пластину.", - "Версия", - "Антиблик включен", - "Антиблик отключен", - "Загрузка Камеры..", - "Размер:", - "Создано:", - "Изменено:", + "Ширина Бумаги", + "Часть", + "Размер Части", + "Фраза-пароль", + "Несоответствие пути", + "Образец обнаружен!", + "Окончательно удалить все сохраненные зашифрованные мнемоники и настройки из флеш-памяти?", + "Постоянная Память", + "Индекс отклонения пикселей:", + "QR Открытым Текстом", + "Пожалуйста загрузите выходной дескриптор кошелька", + "Скорость Погружения", + "Плохая энтропия", + "Обнаружена плохая энтропия!", + "Напечатать Тестовый QR", + "Распечатать Tiny Seed?", + "Печать в QR", + "Напечатать в виде QR?", + "Печатать?", + "Принтер", + "Драйвер Принтера не установлен!", "Идет печать..", - "Просмотрите отсканированные данные, отредактируйте при необходимости", - "Сканирование слов 1-12 снова", - "Дождитесь Захвата", - "Сканирование слов 13-24", - "Ввести Ключ", - "Отсканировать Ключ QR код", - "Ключ", - "Не удалось загрузить ключ", - "Сохранить на Флэш Память", - "Сохранить на SD Карту", - "Зашифрованный QR Код", - "Мнемоника не была зашифрована", - "Для режима AES-CBC требуется дополнительная энтропия от камеры", - "Назначить этой мнемоники кастомный ID? В ином случае будет использован текущий фингерпринт", - "ID Мнемоники", - "ID уже существует", - "Зашифрованная мнемоника не была сохранена", - "Зашифрованная мнемоника была сохранена с ID:", - "Не удалось сохранить мнемонику", + "Все равно продолжить?", + "Продолжить?", + "Обработка..", + "QR Код", + "RX Пин", + "Получить", + "Адрес Получения", + "Регион:", "Удалить %s?", - "%s удален.", - "Полностью стерите SD-карту в другом устройстве, чтобы убедиться, что данные не восстановимы", - "Для гарантии невосстановления данных используйте функцию Очистки Устройства", - "Проверить SD Карту", - "Напечатать Тестовый QR", - "Создать QR Код", - "Адреса дескрипторов", "Удалить Мнемонику", - "Очистка Устройства", - "SD карта", - "Использовано:", - "Свободно:", - "Исследовать файлы?", - "Окончательно удалить все сохраненные зашифрованные мнемоники и настройки из флеш-памяти?", - "Очистка Устройства..", - "Не выключайте питание, это может занять некоторое время.", - "Тестовый QR Принтера Krux", - "Создать QR код из текста?", - "Текст", - "Пользовательский QR Код", - "Регион:", - "Линия:", + "Удалить файлы прошивки с SD-карты?", "Разреш. - Формат", - "Свайпните, чтобы сменить режим", + "Восстановить заводские настройки и перезагрузить?", "Вернуться к QR-просмотрщику", - "Регулировка Яркости", + "Просмотрите отсканированные данные, отредактируйте при необходимости", + "Вправо", + "Бросьте кубик не менее %d раз, чтобы сгенерировать мнемонику.", + "Распределение бросков:", + "Броски:", + "SD карта", + "SD карта не обнаружена.", + "SHA256 бросков:", + "SHA256 снэпшота:", "Сохранить QR-изображение на SD-карту", - "Печать в QR", - "Назад в Mеню", - "Загрузка принтера..", - "Экспортирование на SD карту..", - "Драйвер Принтера не установлен!", - "Сообщение:", - "Адрес", - "Подписать?", - "Подпись", - "Не удалось загрузить сообщение", + "Сохранить на SD-карту", + "Сохранить на SD карту?", + "Сохранено на SD карту", + "Шкала", + "Отсканировать Адрес", + "Отсканировать BIP39 фразу-пароль", + "Отсканировать Ключ QR код", + "Сканирование слов 1-12 снова", + "Сканирование слов 13-24", + "Время Экранной Заставки", + "Тип скрипта", + "Охрана", + "Трансфер самому себе или Сдача (%d):", + "Перевод самому себе:", + "Настройки", + "Настройки хранятся во флэш-памяти.", + "Настройки сохранены на SD-карте.", + "Энтропия Шеннона:", + "Выключить", + "Время выключения", + "Выключение..", + "Подписать", "Подписать QR-код", "Подписать на SD-карте", + "Подписать?", + "Подпись", "Подписанное Сообщение", - "Шестнадцатеричный Публичный Ключ", - "Выходной дескриптор кошелька", - "Загрузить дескриптор доверенного кошелька для просмотра адресов?", - "(Только часы)", - "Выходной дескриптор кошелька не найден.", - "Загрузить один?", - "Не удалось загрузить выходной дескриптор", - "Принять предположение?", - "Неверный кошелек:", - "Выходной дескриптор кошелька загружен!", - "Пожалуйста загрузите выходной дескриптор кошелька", - "Отсканировать Адрес", - "Адрес Получения", - "Адрес Сдачи", - "Загрузка адресов изменения..", - "Загрузка адресов получения..", - "Получить", - "Сдача", - "Не удалось загрузить адрес", - "Неверный адрес", - "Проверить, что адрес принадлежит этому кошельку?", - "%d к %d", - "Проверено %d адресов без совпадений.", - "некорректный адрес", - "нЕ НАЙДЕНО в первых %d адресах", + "Подписанное PSBT", + "Подписание..", + "Одна подпись", + "Размер:", + "Некоторые проверки не могут быть выполнены.", + "Расход (%d):", + "Расход:", + "Статистика для Гиков", + "Сохранить на Флэш Память", + "Сохранить на SD Карту", + "Свайпните, чтобы сменить режим", + "ПРИКОСНИТЕСЬ или нажмите ВВОД, чтобы захватить", + "TX Пин", + "Текст", + "Тема", + "Термальный", + "Для гарантии невосстановления данных используйте функцию Очистки Устройства", + "Регулировка Яркости", + "Инструменты", + "Чувствительность", + "Тачскрин", "Попробовать ещё?", - "Дочерний индекс", - "Резервная мнемоника", - "Расширенный Публичный Ключ", + "Ввести BIP39 фразу-пароль", + "Ввести Ключ", + "Единица Измерения", + "Обновление завершено.", + "Использовать черную фоновую поверхность.", + "Использовать энтропию камеры, чтобы создать новую мнемонику", + "Использовано:", + "Значение %s вне диапозона: [%s, %s]", + "Значение должно быть кратным %s", + "Проверка..", + "Версия", + "С Помощью Камеры", + "С Помощью D20", + "С Помощью D6", + "С Помощью Ручного Ввода", + "Через Слово", + "Дождитесь Захвата", "Кошелек", - "Подписать", - "Добавить или изменить пароль кошелька?", - "Настройка вашего кошелька создаст новый ключ.", - "Мнемоника и парольная фраза будут сохранены.", - "Сгенерировать дочернюю мнемонику BIP85?", "Дескриптор Кошелька", - "Сообщение", + "Выходной дескриптор кошелька", + "Выходной дескриптор кошелька загружен!", + "Выходной дескриптор кошелька не найден.", "Предупреждение:", - "Некоторые проверки не могут быть выполнены.", - "Не удалось загрузить PSBT", - "Несоответствие пути", - "Отпечаток пальца не установлен в PSBT", - "Высокие комиссии!", - "% от суммы.", - "Подписание..", - "Подписанное PSBT", - "Сохранить на SD-карту", - "Зашифровано", - "Другие форматы", - "QR Открытым Текстом", - "Числа", - "Печатать?", - "Распечатать Tiny Seed?", - "Распределение бросков:", - "Бросьте кубик не менее %d раз, чтобы сгенерировать мнемонику.", - "Броски:", - "Недостаточно бросков!", - "Обнаружена плохая энтропия!", - "Образец обнаружен!", - "Все равно продолжить?", - "Статистика для Гиков", - "Создать Мнемонику", - "SHA256 бросков:", + "Очистка Устройства", + "Очистка Устройства..", + "Слово %d", + "Числа Слов", + "Слова", + "Да", + "некорректный адрес", + "нЕ НАЙДЕНО в первых %d адресах", ] diff --git a/src/krux/translations/tr.py b/src/krux/translations/tr.py index 5891c0ea..f5672f1a 100644 --- a/src/krux/translations/tr.py +++ b/src/krux/translations/tr.py @@ -21,297 +21,297 @@ # THE SOFTWARE. # pylint: disable=C0301 translation_array = [ - "Yeni donanım yazılımı tespit edildi.", - "Doğrulanıyor..", - "Yükle?", - "Donanım yazılımı maksimum boyutu aşıyor: %d", - "Geçersiz public key", - "İmza dosyası eksik", - "Geçersiz imza", - "Geçersiz önyükleyici", - "İşleniyor..", - "Güncelleme tamamlandı.", - "SD Karttan donanım yazılımı dosyaları kaldırılsın mı?", - "Kapatılıyor..", - "Tek-imza", + "tutarın %'si.", "%d / %d çoklu imza", - "Yerel Segwit - 84 varsayılacaktır", + "%d to %d", + "%s kaldırıldı.", + "(toplam %d)", + "(Deneysel)", + "(sadece izle)", + "12 kelime", + "24 kelime", + "Hakkında", + "Varsayım kabul edilsin mi?", + "Hesap", "#0 numaralı hesap varsayılacaktır", - "Yerel", - "Ağ", - "Çoklu imza", - "Betik Türü", + "Hesap Endeksi", + "Cüzdan parolası eklensin mi veya değiştirilsin mi?", + "AES-CBC modu için kameradan ek entropi gereklidir", + "Adres", + "Kamerayı ve yedek plakay'ı düzgün bir şekilde hizalayın.", + "Parlama önleyici devre dışı", + "Parlama önleyici etkin", + "Görünüm", + "Emin misiniz?", + "BGR Renkleri", + "Geri", + "Menüye Dön", + "Yedek Mnemonic", + "Geçersiz imza", "Baud Hızı", - "Kağıt Genişliği", - "TX Pini", - "RX Pini", - "Satır Gecikmesi", - "Ölçek", - "Ters Çevir", - "Kesim Yöntemi", - "Birim", - "Flute Çapı", - "Dalış Hızı", - "Besleme Hızı", - "Kesim Derinliği", - "Geçiş Başına Derinlik", - "Parça Boyutu", + "İkili Izgara", "Kenarlık Dolgusu", - "Termal", - "Sürücü", - "Buton Geri-sekmesi", - "Dokunma Eşiği", - "X Koordinatları Tersine Çevrildi", - "Ters Renkler", - "BGR Renkleri", - "LCD Tipi", "Parlaklık", - "Yazıcı", "Butonlar", - "Dokunmatik ekran", - "Ekran", - "Konum", - "Şifreleme Modu", - "PBKDF2 Yinelemesi", - "Tema", - "Ekran Koruyucu Süresi", - "Kapanma Süresi", - "Mnemonic'leri Gizle", + "Buton Geri-sekmesi", + "Yakalama iptal edildi", + "Para Üstü", + "Para Üstü Adresleri", + "Temayı değiştir ve yeniden başlat?", + "Para Üstü:", + "Değişiklikler kapanışa kadar devam edecek.", + "SD Kartı Kontrol Et", + "Bu adresin, bu cüzdana ait olduğunu kontrol et?", + "Eşleşmeyen %d adres kontrol edildi.", + "SD kart kontrol ediliyor..", + "Türev Dizini", + "QR Kodu Oluştur", + "Metinden QR kodu oluşturulsun mu?", + "Oluşturuldu:", + "Özel QR Kodu", + "Özelleştir", + "Cüzdanınızı özelleştirmek yeni bir Anahtar oluşturacaktır.", + "Kesim Derinliği", + "Kesim Yöntemi", + "Ondalık", + "Şifre çözülsün mü?", "Varsayılan Cüzdan", - "Güvenlik", - "Donanım", - "Dil", + "Geçiş Başına Derinlik", + "Tanımlayıcı Adresler", + "Ekran", + "Kapatmayın, tamamlanması biraz zaman alabilir.", + "Tamamlandı mı?", + "Çifte anımsatıcı", + "Sürücü", + "Şifrelenmiş", + "Şifrelenmiş QR Kodu", + "Şifrelenmiş mnemonic depolanmadı", + "Şifrelenmiş mnemonic ID ile depolandı:", "Şifreleme", - "Kalıcı Depolama", - "Görünüm", - "Girişler (%d):", - "Harcama (%d):", - "Kendine-transfer veya Para Üstü (%d):", + "Şifreleme Modu", + "%d BIP-39 kelime girin.", + "BIP-39 mnemonic'inizin her kelimesini 1'den 2048'e kadar bir sayı olarak girin.", + "BIP-39 mnemonic'inizin her kelimesini 1'den 800'e kadar onaltılık bir sayı olarak girin.", + "BIP-39 mnemonic'inizin her kelimesini 1'den 4000'e kadar sekizlik bir sayı olarak girin.", + "BIP-39 mnemonic'inizin her kelimesini girin.", + "Hata:", + "Çıkış", + "Dosyaları ara?", + "SD karta aktarılıyor..", + "Genişletilmiş Public Key", + "Fabrika Ayarları", + "Şifre çözme başarısız", + "PSBT yükleme başarısız", + "Adres yükleme başarısız", + "Anahtar yükleme başarısız", + "Mesaj yükleme başarısız", + "Mnemonic yükleme başarısız", + "Çıktı tanımlayıcısı yüklemesi başarısız", + "Parola yükleme başarısız", + "Mnemonic depolama başarısız", "Ücret:", - "Harcama:", - "Kendine-transfer:", - "Para Üstü:", + "Besleme Hızı", + "Dosya adı", + "%s dosya adı SD kartta var, üzerine yazılsın mı?", + "PSBT'de parmak izi ayarı kaldırıldı", + "Donanım yazılımı maksimum boyutu aşıyor: %d", + "X Koordinatları Tersine Çevrildi", + "Flute Çapı", + "Boş:", + "Depolamadan Seç", + "Verilerin geri kullanılamaz olduğundan emin olmak için SD kartınızı başka bir cihazda tamamen silin", + "Mnemonic Oluştur", + "BIP85 türevi anımsatıcı oluşturulsun mu?", + "Bu mnemonic'e özel bir ID verilsin mi? Aksi takdirde mevcut parmak izi kullanılacaktır", "Seç", - "Fabrika ayarlarına geri dönüp ve yeniden başlatılsın mı?", - "SD kart kontrol ediliyor..", - "Ayarlar SD karta kaydedildi.", - "SD kart algılanmadı.", - "Değişiklikler kapanışa kadar devam edecek.", - "Ayarlar dahili olarak flaşta saklanır.", - "Fabrika Ayarları", - "Sol", - "Sağ", - "Temayı değiştir ve yeniden başlat?", - "Değer %s'nin katı olmalıdır", - "%s değeri aralık dışında: [%s, %s]", - "Mnemonic", - "Çıkış", - "Kelime %d", - "Emin misiniz?", - "Kameradan yükle", - "SD karttan yükle", - "Parça", - "Evet", - "Hayır", - "Geri", - "Hata:", - "12 kelime", - "24 kelime", - "Çifte anımsatıcı", "Yeterli entropi", - "Düşük entropi", - "Yetersiz entropi", - "Yakalamak için DOKUN veya GİR", - "Yakalama iptal edildi", - "Shannon Entropisi:", - "(toplam %d)", - "Piksel sapma indeksi:", + "Donanım", + "Hex Public Key", + "Onaltılık", + "Mnemonic'leri Gizle", + "Yüksek ücret!", + "ID zaten var", + "Girişler (%d):", + "Yükle?", "Yetersiz Entropi!", - "QR'a yazdırılsın mı?", + "Yetersiz entropi", + "Geçersiz adres", + "Geçersiz önyükleyici", + "Geçersiz mnemonic uzunluğu", + "Geçersiz public key", + "Geçersiz cüzdan:", + "Ters Çevir", + "Ters Renkler", + "Anahtar", + "Anahtar sağlanmadı", + "Krux Yazıcı Test QR'ı", + "LCD Tipi", + "Dil", + "Krux'un geçerli bir son kelime seçmesini istiyorsanız boş bırakın", + "Sol", + "Satır Gecikmesi", + "Satır:", + "Mnemonic Yükle", + "Cüzdan Yükle", + "Adresleri görüntülemek için güvenilir bir cüzdan tanımlayıcısı yüklensin mi?", + "SD karttan yükle", "SD karttan yüklensin mi?", + "Kameradan yükle", + "Bir tane mi yüklensin?", "Yüklensin mi?", - "SD karta kaydedilsin mi?", - "SD karta kaydedildi", - "Dosya adı", - "%s dosya adı SD kartta var, üzerine yazılsın mı?", - "BIP39 parolasını yazın", - "BIP39 Parolasını Tara", - "Parola", - "Parola yükleme başarısız", + "Kamera Yükleniyor..", + "Para üstü adresler yükleniyor..", + "Yazıcı yükleniyor..", + "Alım adresler yükleniyor..", + "Yükleniyor..", + "Yerel", + "Konum", "Maksimum uzunluk aşıldı (%s)", - "Hesap", - "Hesap Endeksi", - "Mnemonic Yükle", + "Mesaj", + "Mesaj:", + "İmza dosyası eksik", + "Mnemonic", + "Mnemonic ID", + "Mnemonik ve parola tutulacaktır.", + "Mnemonic şifrelenmedi", + "Değiştirildi:", + "Çoklu imza", + "Yerel Segwit - 84 varsayılacaktır", + "Ağ", "Yeni Mnemonic", - "Ayarlar", - "Araçlar", - "Hakkında", - "Kapat", - "Kamera Aracılığıyla", - "Manuel Giriş Aracılığıyla", - "Depolamadan Seç", - "QR Kodu", - "İkili Izgara", - "Kelimeler", - "Kelime Numaraları", - "Sözcüklerle", - "D6 Aracılığıyla", - "D20 Aracılığıyla", - "Yeni bir mnemonic oluşturmak için kameranın entropisini kullanın", - "(Deneysel)", - "Devam edilsin mi?", - "Snapshot'ın SHA256'sı:", + "Yeni donanım yazılımı tespit edildi.", + "Hayır", "Parola Yok", - "Cüzdan Yükle", - "Özelleştir", - "Yükleniyor..", - "Şifre çözülsün mü?", - "Anahtar sağlanmadı", - "Şifre çözme başarısız", - "Mnemonic yükleme başarısız", - "Geçersiz mnemonic uzunluğu", - "Krux'un geçerli bir son kelime seçmesini istiyorsanız boş bırakın", - "Tamamlandı mı?", - "%d BIP-39 kelime girin.", - "BIP-39 mnemonic'inizin her kelimesini girin.", - "Ondalık", - "Onaltılık", + "Yeterli zar atışı yok!", + "Numaralar", "Sekizlik", - "BIP-39 mnemonic'inizin her kelimesini 1'den 4000'e kadar sekizlik bir sayı olarak girin.", - "BIP-39 mnemonic'inizin her kelimesini 1'den 800'e kadar onaltılık bir sayı olarak girin.", - "BIP-39 mnemonic'inizin her kelimesini 1'den 2048'e kadar bir sayı olarak girin.", + "Diğer Formatlar", + "PBKDF2 Yinelemesi", "İşaretlenmiş noktaları siyaha boyayın ki tespit edilebilsinler.", - "Siyah bir arka plan yüzeyi kullanın.", - "Kamerayı ve yedek plakay'ı düzgün bir şekilde hizalayın.", - "Sürüm", - "Parlama önleyici etkin", - "Parlama önleyici devre dışı", - "Kamera Yükleniyor..", - "Boyut:", - "Oluşturuldu:", - "Değiştirildi:", + "Kağıt Genişliği", + "Parça", + "Parça Boyutu", + "Parola", + "Yol uyuşmazlığı", + "Örüntü algılandı!", + "Tüm depolanmış ve şifrelenmiş mnemonic'ler ve ayarlar flash'tan kalıcı olarak kaldırılsın mı?", + "Kalıcı Depolama", + "Piksel sapma indeksi:", + "Düz Metin QR'ı", + "Lütfen bir cüzdan çıktı tanımlayıcısı yükleyin", + "Dalış Hızı", + "Düşük entropi", + "Düşük entropi tespit edildi!", + "Test QR'ını Yazdır", + "Tiny Seed Yazdırılsın mı?", + "QR'a Yazdır", + "QR'a yazdırılsın mı?", + "Yazdırılsın mı?", + "Yazıcı", + "Yazıcı Sürücüsü ayarlanmadı!", "Yazdırılıyor..", - "Taranan verileri gözden geçirin, gerekirse düzenleyin", - "1-12 kelimeleri tekrar taranıyor", - "Yakalamanın tamamlanmasını bekleyin", - "13-24 kelimeleri taranıyor", - "Anahtar Yaz", - "Anahtar QR Kodunu Tara", - "Anahtar", - "Anahtar yükleme başarısız", - "Flash'ta Sakla", - "SD Kartta Sakla", - "Şifrelenmiş QR Kodu", - "Mnemonic şifrelenmedi", - "AES-CBC modu için kameradan ek entropi gereklidir", - "Bu mnemonic'e özel bir ID verilsin mi? Aksi takdirde mevcut parmak izi kullanılacaktır", - "Mnemonic ID", - "ID zaten var", - "Şifrelenmiş mnemonic depolanmadı", - "Şifrelenmiş mnemonic ID ile depolandı:", - "Mnemonic depolama başarısız", + "Yine de devam edilsin mi?", + "Devam edilsin mi?", + "İşleniyor..", + "QR Kodu", + "RX Pini", + "Al", + "Adresleri Al", + "Bölge:", "%s kaldırılsın mı?", - "%s kaldırıldı.", - "Verilerin geri kullanılamaz olduğundan emin olmak için SD kartınızı başka bir cihazda tamamen silin", - "Verilerin geri kullanılamaz olduğundan emin olmak için Cihazı Sil özelliğini kullanın", - "SD Kartı Kontrol Et", - "Test QR'ını Yazdır", - "QR Kodu Oluştur", - "Tanımlayıcı Adresler", "Mnemonic'i Kaldır", - "Cihazı Sil", - "SD kart", - "Kullanılan:", - "Boş:", - "Dosyaları ara?", - "Tüm depolanmış ve şifrelenmiş mnemonic'ler ve ayarlar flash'tan kalıcı olarak kaldırılsın mı?", - "Cihaz Siliniyor..", - "Kapatmayın, tamamlanması biraz zaman alabilir.", - "Krux Yazıcı Test QR'ı", - "Metinden QR kodu oluşturulsun mu?", - "Metin", - "Özel QR Kodu", - "Bölge:", - "Satır:", + "SD Karttan donanım yazılımı dosyaları kaldırılsın mı?", "Çözünürlüğü Sıfırla", - "Modu değiştirmek için kaydırın", + "Fabrika ayarlarına geri dönüp ve yeniden başlatılsın mı?", "QR Görüntüleyiciye Dön", - "Parlaklığı Değiştir", + "Taranan verileri gözden geçirin, gerekirse düzenleyin", + "Sağ", + "Bir mnemonic oluşturmak için zarı en az %d kez atın.", + "Zar atış dağılımı:", + "Zar atışları:", + "SD kart", + "SD kart algılanmadı.", + "Zar atışlarının SHA256'sı:", + "Snapshot'ın SHA256'sı:", "QR Görüntüsünü SD Karta Kaydet", - "QR'a Yazdır", - "Menüye Dön", - "Yazıcı yükleniyor..", - "SD karta aktarılıyor..", - "Yazıcı Sürücüsü ayarlanmadı!", - "Mesaj:", - "Adres", - "İmzalansın mı?", - "İmza", - "Mesaj yükleme başarısız", + "SD karta kaydet", + "SD karta kaydedilsin mi?", + "SD karta kaydedildi", + "Ölçek", + "Adresi Tara", + "BIP39 Parolasını Tara", + "Anahtar QR Kodunu Tara", + "1-12 kelimeleri tekrar taranıyor", + "13-24 kelimeleri taranıyor", + "Ekran Koruyucu Süresi", + "Betik Türü", + "Güvenlik", + "Kendine-transfer veya Para Üstü (%d):", + "Kendine-transfer:", + "Ayarlar", + "Ayarlar dahili olarak flaşta saklanır.", + "Ayarlar SD karta kaydedildi.", + "Shannon Entropisi:", + "Kapat", + "Kapanma Süresi", + "Kapatılıyor..", + "İmzala", "QR koduna imzala", "SD karta imzala", + "İmzalansın mı?", + "İmza", "İmzalı Mesaj", - "Hex Public Key", - "Cüzdan çıktı tanımlayıcısı", - "Adresleri görüntülemek için güvenilir bir cüzdan tanımlayıcısı yüklensin mi?", - "(sadece izle)", - "Cüzdan çıktı tanımlayıcısı bulunamadı.", - "Bir tane mi yüklensin?", - "Çıktı tanımlayıcısı yüklemesi başarısız", - "Varsayım kabul edilsin mi?", - "Geçersiz cüzdan:", - "Cüzdan çıktı tanımlayıcısı yüklendi!", - "Lütfen bir cüzdan çıktı tanımlayıcısı yükleyin", - "Adresi Tara", - "Adresleri Al", - "Para Üstü Adresleri", - "Para üstü adresler yükleniyor..", - "Alım adresler yükleniyor..", - "Al", - "Para Üstü", - "Adres yükleme başarısız", - "Geçersiz adres", - "Bu adresin, bu cüzdana ait olduğunu kontrol et?", - "%d to %d", - "Eşleşmeyen %d adres kontrol edildi.", - "geçerli bir adres!", - "ilk %d adreste BULUNAMADI", + "İmzalı PSBT", + "İmzalanıyor..", + "Tek-imza", + "Boyut:", + "Bazı kontroller yerine getirilemedi.", + "Harcama (%d):", + "Harcama:", + "İnekler İçin İstatistikler", + "Flash'ta Sakla", + "SD Kartta Sakla", + "Modu değiştirmek için kaydırın", + "Yakalamak için DOKUN veya GİR", + "TX Pini", + "Metin", + "Tema", + "Termal", + "Verilerin geri kullanılamaz olduğundan emin olmak için Cihazı Sil özelliğini kullanın", + "Parlaklığı Değiştir", + "Araçlar", + "Dokunma Eşiği", + "Dokunmatik ekran", "Daha fazla kez denensin mi?", - "Türev Dizini", - "Yedek Mnemonic", - "Genişletilmiş Public Key", + "BIP39 parolasını yazın", + "Anahtar Yaz", + "Birim", + "Güncelleme tamamlandı.", + "Siyah bir arka plan yüzeyi kullanın.", + "Yeni bir mnemonic oluşturmak için kameranın entropisini kullanın", + "Kullanılan:", + "%s değeri aralık dışında: [%s, %s]", + "Değer %s'nin katı olmalıdır", + "Doğrulanıyor..", + "Sürüm", + "Kamera Aracılığıyla", + "D20 Aracılığıyla", + "D6 Aracılığıyla", + "Manuel Giriş Aracılığıyla", + "Sözcüklerle", + "Yakalamanın tamamlanmasını bekleyin", "Cüzdan", - "İmzala", - "Cüzdan parolası eklensin mi veya değiştirilsin mi?", - "Cüzdanınızı özelleştirmek yeni bir Anahtar oluşturacaktır.", - "Mnemonik ve parola tutulacaktır.", - "BIP85 türevi anımsatıcı oluşturulsun mu?", "Cüzdan Tanımlayıcısı", - "Mesaj", + "Cüzdan çıktı tanımlayıcısı", + "Cüzdan çıktı tanımlayıcısı yüklendi!", + "Cüzdan çıktı tanımlayıcısı bulunamadı.", "Uyarı:", - "Bazı kontroller yerine getirilemedi.", - "PSBT yükleme başarısız", - "Yol uyuşmazlığı", - "PSBT'de parmak izi ayarı kaldırıldı", - "Yüksek ücret!", - "tutarın %'si.", - "İmzalanıyor..", - "İmzalı PSBT", - "SD karta kaydet", - "Şifrelenmiş", - "Diğer Formatlar", - "Düz Metin QR'ı", - "Numaralar", - "Yazdırılsın mı?", - "Tiny Seed Yazdırılsın mı?", - "Zar atış dağılımı:", - "Bir mnemonic oluşturmak için zarı en az %d kez atın.", - "Zar atışları:", - "Yeterli zar atışı yok!", - "Düşük entropi tespit edildi!", - "Örüntü algılandı!", - "Yine de devam edilsin mi?", - "İnekler İçin İstatistikler", - "Mnemonic Oluştur", - "Zar atışlarının SHA256'sı:", + "Cihazı Sil", + "Cihaz Siliniyor..", + "Kelime %d", + "Kelime Numaraları", + "Kelimeler", + "Evet", + "geçerli bir adres!", + "ilk %d adreste BULUNAMADI", ] diff --git a/src/krux/translations/vi.py b/src/krux/translations/vi.py index 3b1d7edf..6ae21ad6 100644 --- a/src/krux/translations/vi.py +++ b/src/krux/translations/vi.py @@ -21,297 +21,297 @@ # THE SOFTWARE. # pylint: disable=C0301 translation_array = [ - "Phát hiện phần sụn mới.", - "Đang xác minh..", - "Cài đặt phần mềm?", - "Phần mềm vượt quá kích thước tối đa: %d", - "Khóa công cộng không hợp lệ", - "Thiếu tập tin chữ ký", - "Chữ ký xấu", - "Bộ tải khởi động không hợp lệ", - "Đang xử lý..", - "Nâng cấp hoàn tất.", - "Xóa các tệp firmware khỏi Thẻ SD?", - "Đang tắt..", - "Khóa đơn", + "% của số tiền.", "%d của %d đa chữ kí", - "Native Segwit - 84 sẽ được giả định", + "%d đến %d", + "%s Đã bỏ.", + "(tổng cộng %d)", + "(Thực nghiệm)", + "(chỉ xem)", + "12 từ", + "24 từ", + "Về chúng tôi", + "Chấp nhận giả định?", + "Tài khoản", "Tài khoản #0 sẽ được giả định", - "Ngôn ngữ", - "Mạng lưới", - "Đa chữ kí", - "Kiểu văn lệnh", + "Chỉ mục tài khoản", + "Thêm hoặc thay đổi cụm mật khẩu ví?", + "Cần thêm entropy từ camera cho chế độ AES-CBC", + "Địa chỉ", + "Căn chỉnh camera và tấm dự phòng đúng cách.", + "Chống lóa bị vô hiệu hóa", + "Đã bật chống lóa", + "Giao diện", + "Bạn có chắc không?", + "Màu BGR", + "Trở lại", + "Quay lại Menu", + "Sao lưu Mnemonic", + "Chữ ký xấu", "Tốc độ baud", - "Chiều rộng giấy", - "TX Pin", - "RX Pin", - "Độ trễ Dòng", - "Tỉ lệ", - "Đảo ngược", - "Phương pháp cắt", - "Đơn vị", - "Đường kính mũi cắt CNC", - "Tỷ lệ sụt giảm", - "Tốc độ cắt CNC", - "Chiều sâu cắt", - "Độ sâu mỗi lần cắt CNC", - "Kích thước một phần", + "Lưới nhị phân", "Đệm viền", - "Nhiệt", - "Driver", - "Loại bỏ nhiễu nút", - "Ngưỡng cảm ứng", - "Tọa độ X bị lật", - "Màu đảo ngược", - "Màu BGR", - "Loại LCD", "Độ sáng", - "Máy in", "Nút", - "Màn hình cảm ứng", - "Hiển thị", - "Vị trí lưu", - "Chế độ mã hóa", - "Lặp lại PBKDF2", - "Chủ đề", - "Thời gian chế độ bảo vệ màn hình", - "Thời gian tắt máy", - "Ẩn Mnemonics", + "Loại bỏ nhiễu nút", + "Hủy chụp hình", + "Thay đổi", + "Các địa chỉ tiền thối", + "Thay đổi giao diện và khởi động lại?", + "Thay đổi:", + "Thay đổi sẽ kéo dài cho đến khi tắt máy.", + "Kiểm tra thẻ SD", + "Kiểm tra địa chỉ đó có thuộc về ví này không?", + "Đã kiểm tra %d địa chỉ không khớp.", + "Kiểm tra thẻ SD..", + "Chỉ mục phụ", + "Tạo mã QR", + "Tạo mã QR từ văn bản?", + "Tạo:", + "Mã QR tùy chỉnh", + "Tùy chỉnh", + "Tùy chỉnh ví của bạn sẽ tạo một Khóa mới.", + "Chiều sâu cắt", + "Phương pháp cắt", + "Số thập phân", + "Giải mã?", "Ví mặc định", - "Bảo mật", - "Phần cứng", - "Ngôn ngữ", + "Độ sâu mỗi lần cắt CNC", + "Địa chỉ người mô tả", + "Hiển thị", + "Không được tắt máy, có thể mất một lúc để hoàn thành.", + "Hoàn tất?", + "Từ gợi nhớ kép", + "Driver", + "Đã mã hóa", + "Mã QR được mã hóa", + "Mnemonic được mã hóa không được lưu trữ", + "Mnemonic được mã hóa không được lưu trữ với ID:", "Mã hóa", - "Vị trí lưu", - "Giao diện", - "Đầu vào (%d):", - "Chi tiêu (%d):", - "Tự chuyển nhượng hoặc giao dịch (%d):", + "Chế độ mã hóa", + "Nhập %d từ BIP-39.", + "Nhập từng từ của Mnemonic BIP-39 của bạn dưới dạng số từ 1 đến 2048.", + "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số thập lục phân từ 1 đến 800.", + "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số bát phân từ 1 đến 4000.", + "Nhập từng từ của Mnemonic BIP-39 của bạn.", + "Lỗi:", + "Esc", + "Khám phá các tập tin?", + "Xuất vào thẻ SD ..", + "Khóa công cộng", + "Cài đặt Gốc", + "Không giải mã được", + "Tải PSBT thất bại", + "Tải địa chỉ thất bại", + "Không tải được khóa", + "Không tải được tin nhắn", + "Tải mã Mnemonic thất bại", + "Không tải được bộ mô tả đầu ra", + "Không tải được cụm mật khẩu", + "Không lưu trữ Mnemonic được", "Phí:", - "Chi tiêu:", - "Tự chuyển nhượng:", - "Thay đổi:", + "Tốc độ cắt CNC", + "Tên tệp", + "Tên tệp %s tồn tại trên thẻ SD, ghi đè lên?", + "Bỏ dấu vân tay trong PSBT", + "Phần mềm vượt quá kích thước tối đa: %d", + "Tọa độ X bị lật", + "Đường kính mũi cắt CNC", + "Khả dụng:", + "Từ bộ lưu trữ", + "Xóa hoàn toàn thẻ SD trong một thiết bị khác để đảm bảo dữ liệu không thể phục hồi", + "Tạo Mnemonic", + "Tạo một Mnemonic phụ thuộc BIP85?", + "Cung cấp cho Mnemonic này một ID tùy chỉnh? Nếu không thì fingerprint hiện tại sẽ được sử dụng", "Chọn", - "Khôi phục cài đặt gốc và khởi động lại?", - "Kiểm tra thẻ SD..", - "Cài đặt được lưu trên thẻ SD.", - "Thẻ SD không được phát hiện.", - "Thay đổi sẽ kéo dài cho đến khi tắt máy.", - "Cài đặt được lưu trữ nội bộ trên đèn flash.", - "Cài đặt Gốc", - "Trái", - "Phải", - "Thay đổi giao diện và khởi động lại?", - "Giá trị phải là bội của %s", - "Giá trị %s ngoài phạm vi: [ %s, %s]", - "Mã mnemonic", - "Esc", - "Kí tự %d", - "Bạn có chắc không?", - "Tải từ máy ảnh", - "Tải từ thẻ SD", - "Phần", - "Đúng", - "Không", - "Trở lại", - "Lỗi:", - "12 từ", - "24 từ", - "Từ gợi nhớ kép", "Entropy tốt", - "Entropy kém", - "Không đủ entropy", - "Chạm màn hình hoặc nhấn nút ENTER để chụp", - "Hủy chụp hình", - "Entropy của Shannon:", - "(tổng cộng %d)", - "Chỉ số độ lệch điểm ảnh:", + "Phần cứng", + "Khóa công cộng Hex", + "Thập lục phân", + "Ẩn Mnemonics", + "Phí cao!", + "Id đã tồn tại", + "Đầu vào (%d):", + "Cài đặt phần mềm?", "Entropy không đủ!", - "In ra mã QR?", + "Không đủ entropy", + "Địa chỉ không hợp lệ", + "Bộ tải khởi động không hợp lệ", + "Độ dài mã Mnemonic không hợp lệ", + "Khóa công cộng không hợp lệ", + "Ví không hợp lệ:", + "Đảo ngược", + "Màu đảo ngược", + "Chìa khóa", + "Khóa không được cung cấp", + "QR kiểm tra máy in Krux", + "Loại LCD", + "Ngôn ngữ", + "Để trống nếu bạn muốn Krux chọn một từ cuối cùng hợp lệ", + "Trái", + "Độ trễ Dòng", + "Đường kẻ:", + "Tải mã mnemonic", + "Nạp Ví", + "Tải mô tả ví đáng tin cậy để xem địa chỉ?", + "Tải từ thẻ SD", "Tải từ thẻ SD?", + "Tải từ máy ảnh", + "Tải một?", "Tải?", - "Lưu vào thẻ SD?", - "Đã lưu vào thẻ SD", - "Tên tệp", - "Tên tệp %s tồn tại trên thẻ SD, ghi đè lên?", - "Nhập cụm mật khẩu BIP39", - "Quét cụm mật khẩu BIP39", - "Cụm mật khẩu", - "Không tải được cụm mật khẩu", + "Đang tải máy ảnh..", + "Đang tải địa chỉ tiền thối..", + "Đang tải máy in ..", + "Đang tải địa chỉ nhận..", + "Đang tải..", + "Ngôn ngữ", + "Vị trí lưu", "Chiều dài tối đa vượt quá (%s)", - "Tài khoản", - "Chỉ mục tài khoản", - "Tải mã mnemonic", + "Tin nhắn", + "Tin nhắn:", + "Thiếu tập tin chữ ký", + "Mã mnemonic", + "Mnemonic ID ", + "Từ gợi nhớ và cụm mật khẩu sẽ được lưu giữ.", + "Mnemonic không được mã hóa", + "Đã sửa đổi:", + "Đa chữ kí", + "Native Segwit - 84 sẽ được giả định", + "Mạng lưới", "Mnemonic mới", - "Cài đặt", - "Công cụ", - "Về chúng tôi", - "Tắt máy", - "Qua máy ảnh", - "Thông qua đầu vào thủ công", - "Từ bộ lưu trữ", - "Mã QR", - "Lưới nhị phân", - "Từ ngữ", - "Từ số", - "Thông qua từ ngữ", - "Qua xúc xắc 6 mặt", - "Qua xúc xắc 20 mặt", - "Sử dụng sự ngẫu nhiên của máy ảnh để tạo ra một Mnemonic mới", - "(Thực nghiệm)", - "Thực hiện?", - "Sha256 của ảnh chụp:", + "Phát hiện phần sụn mới.", + "Không", "Không có cụm mật khẩu", - "Nạp Ví", - "Tùy chỉnh", - "Đang tải..", - "Giải mã?", - "Khóa không được cung cấp", - "Không giải mã được", - "Tải mã Mnemonic thất bại", - "Độ dài mã Mnemonic không hợp lệ", - "Để trống nếu bạn muốn Krux chọn một từ cuối cùng hợp lệ", - "Hoàn tất?", - "Nhập %d từ BIP-39.", - "Nhập từng từ của Mnemonic BIP-39 của bạn.", - "Số thập phân", - "Thập lục phân", + "Không đủ số lần quay!", + "Số", "Bát phân", - "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số bát phân từ 1 đến 4000.", - "Nhập từng từ trong Mnemonic BIP-39 của bạn dưới dạng số thập lục phân từ 1 đến 800.", - "Nhập từng từ của Mnemonic BIP-39 của bạn dưới dạng số từ 1 đến 2048.", + "Các định dạng khác", + "Lặp lại PBKDF2", "Tô các chấm đục lỗ màu đen để chúng có thể được phát hiện.", - "Sử dụng bề mặt nền đen.", - "Căn chỉnh camera và tấm dự phòng đúng cách.", - "Phiên Bản", - "Đã bật chống lóa", - "Chống lóa bị vô hiệu hóa", - "Đang tải máy ảnh..", - "Dung lượng:", - "Tạo:", - "Đã sửa đổi:", + "Chiều rộng giấy", + "Phần", + "Kích thước một phần", + "Cụm mật khẩu", + "Đường dẫn không khớp", + "Đã phát hiện mẫu!", + "Xóa vĩnh viễn mọi Mnemonics và cài đặt được mã hóa lưu trữ trong flash?", + "Vị trí lưu", + "Chỉ số độ lệch điểm ảnh:", + "QR dạng văn bản", + "Vui lòng tải bộ mô tả đầu ra ví", + "Tỷ lệ sụt giảm", + "Entropy kém", + "Phát hiện entropy yếu!", + "In kiểm tra QR", + "In Tiny Seed?", + "In ra QR", + "In ra mã QR?", + "In?", + "Máy in", + "Trình điều khiển máy in chưa được cài đặt!", "Đang in..", - "Xem lại dữ liệu đã quét, chỉnh sửa nếu cần", - "Đang quét lại từ 1-12", - "Chờ bắt", - "Đang quét từ 13-24", - "Nhập khóa", - "Quét mã QR khóa", - "Chìa khóa", - "Không tải được khóa", - "Lưu trữ trên flash", - "Lưu trữ trên thẻ SD", - "Mã QR được mã hóa", - "Mnemonic không được mã hóa", - "Cần thêm entropy từ camera cho chế độ AES-CBC", - "Cung cấp cho Mnemonic này một ID tùy chỉnh? Nếu không thì fingerprint hiện tại sẽ được sử dụng", - "Mnemonic ID ", - "Id đã tồn tại", - "Mnemonic được mã hóa không được lưu trữ", - "Mnemonic được mã hóa không được lưu trữ với ID:", - "Không lưu trữ Mnemonic được", + "Vẫn tiếp tục?", + "Thực hiện?", + "Đang xử lý..", + "Mã QR", + "RX Pin", + "Nhận được", + "Các địa chỉ nhận", + "Vùng:", "Xóa %s?", - "%s Đã bỏ.", - "Xóa hoàn toàn thẻ SD trong một thiết bị khác để đảm bảo dữ liệu không thể phục hồi", - "Sử dụng tính năng Xóa dữ liệu trên thiết bị để đảm bảo dữ liệu không thể phục hồi", - "Kiểm tra thẻ SD", - "In kiểm tra QR", - "Tạo mã QR", - "Địa chỉ người mô tả", "Xóa Mnemonic", - "Xóa dữ liệu trên thiết bị", - "Thẻ SD", - "Đã sử dụng:", - "Khả dụng:", - "Khám phá các tập tin?", - "Xóa vĩnh viễn mọi Mnemonics và cài đặt được mã hóa lưu trữ trong flash?", - "Đang xóa dữ liệu trên thiết bị..", - "Không được tắt máy, có thể mất một lúc để hoàn thành.", - "QR kiểm tra máy in Krux", - "Tạo mã QR từ văn bản?", - "Chữ", - "Mã QR tùy chỉnh", - "Vùng:", - "Đường kẻ:", + "Xóa các tệp firmware khỏi Thẻ SD?", "Độ phân giải - Định dạng", - "Vuốt để thay đổi chế độ", + "Khôi phục cài đặt gốc và khởi động lại?", "Quay lại Trình xem QR", - "Chuyển đổi độ sáng", + "Xem lại dữ liệu đã quét, chỉnh sửa nếu cần", + "Phải", + "Lăn xúc xắc ít nhất %d lần để tạo Mnemonic.", + "Phân bổ xúc xắc:", + "Tổng số lần quay xúc xắc:", + "Thẻ SD", + "Thẻ SD không được phát hiện.", + "SHA256 của xúc xắc:", + "Sha256 của ảnh chụp:", "Lưu Ảnh QR vào Thẻ SD", - "In ra QR", - "Quay lại Menu", - "Đang tải máy in ..", - "Xuất vào thẻ SD ..", - "Trình điều khiển máy in chưa được cài đặt!", - "Tin nhắn:", - "Địa chỉ", - "Kí?", - "Chữ ký", - "Không tải được tin nhắn", + "Lưu vào thẻ SD", + "Lưu vào thẻ SD?", + "Đã lưu vào thẻ SD", + "Tỉ lệ", + "Quét địa chỉ", + "Quét cụm mật khẩu BIP39", + "Quét mã QR khóa", + "Đang quét lại từ 1-12", + "Đang quét từ 13-24", + "Thời gian chế độ bảo vệ màn hình", + "Kiểu văn lệnh", + "Bảo mật", + "Tự chuyển nhượng hoặc giao dịch (%d):", + "Tự chuyển nhượng:", + "Cài đặt", + "Cài đặt được lưu trữ nội bộ trên đèn flash.", + "Cài đặt được lưu trên thẻ SD.", + "Entropy của Shannon:", + "Tắt máy", + "Thời gian tắt máy", + "Đang tắt..", + "Chữ kí", "Ký vào mã QR", "Ký vào thẻ SD", + "Kí?", + "Chữ ký", "Tin nhắn đã ký", - "Khóa công cộng Hex", - "Ví đầu ra mô tả", - "Tải mô tả ví đáng tin cậy để xem địa chỉ?", - "(chỉ xem)", - "Không tìm thấy bộ mô tả đầu ra ví.", - "Tải một?", - "Không tải được bộ mô tả đầu ra", - "Chấp nhận giả định?", - "Ví không hợp lệ:", - "Đã tải bộ mô tả đầu ra của ví!", - "Vui lòng tải bộ mô tả đầu ra ví", - "Quét địa chỉ", - "Các địa chỉ nhận", - "Các địa chỉ tiền thối", - "Đang tải địa chỉ tiền thối..", - "Đang tải địa chỉ nhận..", - "Nhận được", - "Thay đổi", - "Tải địa chỉ thất bại", - "Địa chỉ không hợp lệ", - "Kiểm tra địa chỉ đó có thuộc về ví này không?", - "%d đến %d", - "Đã kiểm tra %d địa chỉ không khớp.", - "là một địa chỉ hợp lệ!", - "kHÔNG TÌM THẤY trong %d địa chỉ đầu tiên", + "Đã ký PSBT", + "Đang ký..", + "Khóa đơn", + "Dung lượng:", + "Một số kiểm tra không thể được thực hiện.", + "Chi tiêu (%d):", + "Chi tiêu:", + "Số liệu thống kê cho Mọt sách", + "Lưu trữ trên flash", + "Lưu trữ trên thẻ SD", + "Vuốt để thay đổi chế độ", + "Chạm màn hình hoặc nhấn nút ENTER để chụp", + "TX Pin", + "Chữ", + "Chủ đề", + "Nhiệt", + "Sử dụng tính năng Xóa dữ liệu trên thiết bị để đảm bảo dữ liệu không thể phục hồi", + "Chuyển đổi độ sáng", + "Công cụ", + "Ngưỡng cảm ứng", + "Màn hình cảm ứng", "Thử thêm nữa?", - "Chỉ mục phụ", - "Sao lưu Mnemonic", - "Khóa công cộng", + "Nhập cụm mật khẩu BIP39", + "Nhập khóa", + "Đơn vị", + "Nâng cấp hoàn tất.", + "Sử dụng bề mặt nền đen.", + "Sử dụng sự ngẫu nhiên của máy ảnh để tạo ra một Mnemonic mới", + "Đã sử dụng:", + "Giá trị %s ngoài phạm vi: [ %s, %s]", + "Giá trị phải là bội của %s", + "Đang xác minh..", + "Phiên Bản", + "Qua máy ảnh", + "Qua xúc xắc 20 mặt", + "Qua xúc xắc 6 mặt", + "Thông qua đầu vào thủ công", + "Thông qua từ ngữ", + "Chờ bắt", "Ví", - "Chữ kí", - "Thêm hoặc thay đổi cụm mật khẩu ví?", - "Tùy chỉnh ví của bạn sẽ tạo một Khóa mới.", - "Từ gợi nhớ và cụm mật khẩu sẽ được lưu giữ.", - "Tạo một Mnemonic phụ thuộc BIP85?", "Trình mô tả ví", - "Tin nhắn", + "Ví đầu ra mô tả", + "Đã tải bộ mô tả đầu ra của ví!", + "Không tìm thấy bộ mô tả đầu ra ví.", "Cảnh báo:", - "Một số kiểm tra không thể được thực hiện.", - "Tải PSBT thất bại", - "Đường dẫn không khớp", - "Bỏ dấu vân tay trong PSBT", - "Phí cao!", - "% của số tiền.", - "Đang ký..", - "Đã ký PSBT", - "Lưu vào thẻ SD", - "Đã mã hóa", - "Các định dạng khác", - "QR dạng văn bản", - "Số", - "In?", - "In Tiny Seed?", - "Phân bổ xúc xắc:", - "Lăn xúc xắc ít nhất %d lần để tạo Mnemonic.", - "Tổng số lần quay xúc xắc:", - "Không đủ số lần quay!", - "Phát hiện entropy yếu!", - "Đã phát hiện mẫu!", - "Vẫn tiếp tục?", - "Số liệu thống kê cho Mọt sách", - "Tạo Mnemonic", - "SHA256 của xúc xắc:", + "Xóa dữ liệu trên thiết bị", + "Đang xóa dữ liệu trên thiết bị..", + "Kí tự %d", + "Từ số", + "Từ ngữ", + "Đúng", + "là một địa chỉ hợp lệ!", + "kHÔNG TÌM THẤY trong %d địa chỉ đầu tiên", ] diff --git a/src/krux/translations/zh.py b/src/krux/translations/zh.py index 1e167bee..8b95653d 100644 --- a/src/krux/translations/zh.py +++ b/src/krux/translations/zh.py @@ -21,297 +21,297 @@ # THE SOFTWARE. # pylint: disable=C0301 translation_array = [ - "检测到新固件。", - "验证中..", - "安装?", - "固件超过最大尺寸:%d", - "无效公钥", - "缺少签名文件", - "签名无效", - "无效的 ootloader ", - "正在处理..", - "升级已完成。", - "从 SD 卡中删除固件文件?", - "关机中..", - "单签", + "% 的金额。", "%d/%d 多签", - "假定为原生 Segwit - 84", + "%d到%d", + "已移除%s", + "(总计 %d)", + "(实验性)", + "(仅观察)", + "12 单词", + "24 单词", + "关于", + "接受假设?", + "账户", "将假定为账户 #0", - "语言环境", - "网络", - "多签", - "脚本类型", + "账户索引", + "添加或更改钱包密码?", + "AES-CBC 模式需要相机的额外熵", + "地址", + "正确对齐摄像头和背板。", + "防眩光已禁用", + "防眩光已启用", + "界面", + "确定?", + "BGR 颜色", + "返回", + "返回菜单", + "备份助记词", + "签名无效", "波特率", - "纸张宽度", - "TX 引脚", - "RX 引脚", - "行延迟", - "缩放", - "反转", - "切割方法", - "单位", - "刀具直径", - "下刀速度", - "进给速度", - "切割深度", - "每次通过的深度", - "部件尺寸", + "二进制网格", "边框填充", - "热敏", - "驱动程序", - "按钮去抖动", - "触摸阈值", - "翻转 X 坐标", - "反转颜色", - "BGR 颜色", - "LCD 类型", "亮度", - "打印机", "按钮", - "触摸屏", - "显示", - "位置", - "加密模式", - "PBKDF2 迭代", - "主题", - "屏保时间", - "关机时间", - "隐藏助记词", + "按钮去抖动", + "截取已取消", + "找零", + "找零地址", + "更改主题并重新启动?", + "找零", + "更改将在关机前保持。", + "检查 SD 卡", + "检查该地址是否属于此钱包?", + "已检查 %d 个不匹配的地址。", + "检查 SD 卡..", + "子索引", + "创建二维码", + "从文本创建二维码?", + "已创建:", + "自定义二维码", + "自定义", + "自定义您的钱包将生成新私钥。", + "切割深度", + "切割方法", + "十进制", + "解密?", "默认钱包", - "安全", - "硬件", - "语言", + "每次通过的深度", + "描述符地址", + "显示", + "请勿断电,可能需要一段时间完成。", + "完成了吗?", + "双重助记词", + "驱动程序", + "已加密", + "加密二维码", + "加密助记词未存储", + "加密助记词已存储,ID 为:", "加密", - "保存", - "界面", - "输入 (%d):", - "花费 (%d):", - "自转或找零 (%d):", + "加密模式", + "输入 %d 个 BIP-39 词。", + "将 BIP-39 助记词的每个词作为 1 到 2048 的数字输入。", + "将 BIP-39 助记词的每个词作为 1 到 800 的十六进制数输入。", + "将 BIP-39 助记词的每个词作为 1 到 4000 的八进制数输入。", + "输入每个 BIP-39 助记词。", + "错误:", + "退出", + "浏览文件?", + "导出到 SD 卡..", + "扩展公钥", + "出厂设置", + "解密失败", + "加载 PSBT 失败", + "加载地址失败", + "加载密钥失败", + "加载消息失败", + "加载助记词失败", + "加载输出描述符失败", + "加载密码失败", + "存储助记词失败", "费用:", - "花费", - "自行转账:", - "找零", + "进给速度", + "文件名", + "文件名 %s 存在于 SD 卡上,覆盖?", + "PSBT 中未设置指纹", + "固件超过最大尺寸:%d", + "翻转 X 坐标", + "刀具直径", + "空闲:", + "从存储中", + "在其他设备中完全擦除您的 SD 卡以确保数据不可恢复", + "生成助记词", + "生成 BIP85 子助记词?", + "为此助记词设置自定义 ID?否则将使用当前指纹", "去", - "恢复出厂设置并重新设备?", - "检查 SD 卡..", - "设置存储在SD卡上。", - "未检测到 SD 卡。", - "更改将在关机前保持。", - "设置存储在 Flash 内部。", - "出厂设置", - "左", - "右", - "更改主题并重新启动?", - "值必须是 %s 的倍数", - "值 %s 超出范围:[ %s,%s ]", - "助记词", - "退出", - "词 %d", - "确定?", - "从相机加载", - "从 SD 卡加载", - "部分", - "是", - "否", - "返回", - "错误:", - "12 单词", - "24 单词", - "双重助记词", "良好的熵", - "熵值低", - "熵不足", - "点击或按下 ENTER 截图", - "截取已取消", - "香农熵:", - "(总计 %d)", - "像素偏差指数:", + "硬件", + "十六进制公钥", + "十六进制", + "隐藏助记词", + "高费用!", + "ID 已存在", + "输入 (%d):", + "安装?", "熵不足!", - "打印到二维码?", + "熵不足", + "无效地址", + "无效的 ootloader ", + "助记词长度无效", + "无效公钥", + "无效钱包:", + "反转", + "反转颜色", + "密钥", + "未提供密钥", + "Krux 打印机测试二维码", + "LCD 类型", + "语言", + "如果希望 Krux 自动计算最后一位 Checksum,请留空", + "左", + "行延迟", + "行:", + "加载助记词", + "加载钱包", + "加载受信任的钱包描述符以查看地址?", + "从 SD 卡加载", "从 SD 卡加载?", + "从相机加载", + "加载一个?", "加载?", - "保存到 SD 卡?", - "保存到 SD 卡", - "文件名", - "文件名 %s 存在于 SD 卡上,覆盖?", - "输入 BIP39 Phrasephrase", - "扫描 BIP39 Passphrase", - "Passphrase", - "加载密码失败", + "加载相机..", + "加载找零地址..", + "加载打印机..", + "加载接收地址..", + "加载中..", + "语言环境", + "位置", "超过最大长度(%s)", - "账户", - "账户索引", - "加载助记词", - "新助记词", - "设置", - "工具", - "关于", - "关机", - "通过摄像头", - "通过手动输入", - "从存储中", - "二维码", - "二进制网格", - "单词", - "单词序号", - "通过单词", - "通过 D6", - "通过 D20", - "使用摄像头的熵创建新助记词", - "(实验性)", - "继续?", - "快照的 SHA256:", + "消息", + "消息:", + "缺少签名文件", + "助记词", + "助记词 ID", + "助记词和密码将被保留。", + "助记词未加密", + "修改时间:", + "多签", + "假定为原生 Segwit - 84", + "网络", + "新助记词", + "检测到新固件。", + "否", "无 Passphrase ", - "加载钱包", - "自定义", - "加载中..", - "解密?", - "未提供密钥", - "解密失败", - "加载助记词失败", - "助记词长度无效", - "如果希望 Krux 自动计算最后一位 Checksum,请留空", - "完成了吗?", - "输入 %d 个 BIP-39 词。", - "输入每个 BIP-39 助记词。", - "十进制", - "十六进制", + "投掷次数不足!", + "数字", "八进制", - "将 BIP-39 助记词的每个词作为 1 到 4000 的八进制数输入。", - "将 BIP-39 助记词的每个词作为 1 到 800 的十六进制数输入。", - "将 BIP-39 助记词的每个词作为 1 到 2048 的数字输入。", + "其他格式", + "PBKDF2 迭代", "将打孔点涂黑,以便它们能被检测到。", - "使用黑色背景界面。", - "正确对齐摄像头和背板。", - "版本", - "防眩光已启用", - "防眩光已禁用", - "加载相机..", - "大小:", - "已创建:", - "修改时间:", + "纸张宽度", + "部分", + "部件尺寸", + "Passphrase", + "路径不匹配", + "检测到模式!", + "从 Flash 中永久删除所有存储的加密助记词和设置?", + "保存", + "像素偏差指数:", + "明文二维码", + "请加载钱包输出描述符", + "下刀速度", + "熵值低", + "检测到低熵!", + "打印测试二维码", + "打印 Tiny Seed?", + "打印到二维码", + "打印到二维码?", + "打印?", + "打印机", + "打印机驱动程序未设置!", "正在打印", - "请检查扫描的数据,如有必要请编辑", - "重新扫扫描第 1-12 个单词", - "等待截取", - "扫描第 13-24 个单词", - "输入私钥", - "扫描私钥二维码", - "密钥", - "加载密钥失败", - "存储到 Flash", - "存储到 SD 卡", - "加密二维码", - "助记词未加密", - "AES-CBC 模式需要相机的额外熵", - "为此助记词设置自定义 ID?否则将使用当前指纹", - "助记词 ID", - "ID 已存在", - "加密助记词未存储", - "加密助记词已存储,ID 为:", - "存储助记词失败", + "继续吗?", + "继续?", + "正在处理..", + "二维码", + "RX 引脚", + "接收", + "接收地址", + "区域:", "删除 %s?", - "已移除%s", - "在其他设备中完全擦除您的 SD 卡以确保数据不可恢复", - "要确保数据不可恢复,请使用擦除设备功能", - "检查 SD 卡", - "打印测试二维码", - "创建二维码", - "描述符地址", "删除助记词", - "擦除设备", - "SD 卡", - "已用:", - "空闲:", - "浏览文件?", - "从 Flash 中永久删除所有存储的加密助记词和设置?", - "擦除设备中..", - "请勿断电,可能需要一段时间完成。", - "Krux 打印机测试二维码", - "从文本创建二维码?", - "文本", - "自定义二维码", - "区域:", - "行:", + "从 SD 卡中删除固件文件?", "分辨率 - 格式", - "滑动切换模式", + "恢复出厂设置并重新设备?", "返回二维码查看器", - "调整亮度", + "请检查扫描的数据,如有必要请编辑", + "右", + "掷骰子至少 %d 次以生成助记词。", + "掷骰子分布:", + "掷骰子:", + "SD 卡", + "未检测到 SD 卡。", + "掷骰子的 SHA256:", + "快照的 SHA256:", "将二维码图像保存到 SD 卡", - "打印到二维码", - "返回菜单", - "加载打印机..", - "导出到 SD 卡..", - "打印机驱动程序未设置!", - "消息:", - "地址", - "是否签名?", + "保存到 SD 卡", + "保存到 SD 卡?", + "保存到 SD 卡", + "缩放", + "扫描地址", + "扫描 BIP39 Passphrase", + "扫描私钥二维码", + "重新扫扫描第 1-12 个单词", + "扫描第 13-24 个单词", + "屏保时间", + "脚本类型", + "安全", + "自转或找零 (%d):", + "自行转账:", + "设置", + "设置存储在 Flash 内部。", + "设置存储在SD卡上。", + "香农熵:", + "关机", + "关机时间", + "关机中..", "签名", - "加载消息失败", "二维码签名", " SD 卡签名", + "是否签名?", + "签名", "签名消息", - "十六进制公钥", - "钱包输出描述符", - "加载受信任的钱包描述符以查看地址?", - "(仅观察)", - "未找到钱包输出描述符。", - "加载一个?", - "加载输出描述符失败", - "接受假设?", - "无效钱包:", - "钱包输出描述符加载重复!", - "请加载钱包输出描述符", - "扫描地址", - "接收地址", - "找零地址", - "加载找零地址..", - "加载接收地址..", - "接收", - "找零", - "加载地址失败", - "无效地址", - "检查该地址是否属于此钱包?", - "%d到%d", - "已检查 %d 个不匹配的地址。", - " 非有效地址", - "在前 %d 个地址中未找到", + "已签名 PSBT", + "签名中..", + "单签", + "大小:", + "无法执行某些检查。", + "花费 (%d):", + "花费", + "极客统计数据", + "存储到 Flash", + "存储到 SD 卡", + "滑动切换模式", + "点击或按下 ENTER 截图", + "TX 引脚", + "文本", + "主题", + "热敏", + "要确保数据不可恢复,请使用擦除设备功能", + "调整亮度", + "工具", + "触摸阈值", + "触摸屏", "再次尝试?", - "子索引", - "备份助记词", - "扩展公钥", + "输入 BIP39 Phrasephrase", + "输入私钥", + "单位", + "升级已完成。", + "使用黑色背景界面。", + "使用摄像头的熵创建新助记词", + "已用:", + "值 %s 超出范围:[ %s,%s ]", + "值必须是 %s 的倍数", + "验证中..", + "版本", + "通过摄像头", + "通过 D20", + "通过 D6", + "通过手动输入", + "通过单词", + "等待截取", "钱包", - "签名", - "添加或更改钱包密码?", - "自定义您的钱包将生成新私钥。", - "助记词和密码将被保留。", - "生成 BIP85 子助记词?", "钱包描述", - "消息", + "钱包输出描述符", + "钱包输出描述符加载重复!", + "未找到钱包输出描述符。", "警告:", - "无法执行某些检查。", - "加载 PSBT 失败", - "路径不匹配", - "PSBT 中未设置指纹", - "高费用!", - "% 的金额。", - "签名中..", - "已签名 PSBT", - "保存到 SD 卡", - "已加密", - "其他格式", - "明文二维码", - "数字", - "打印?", - "打印 Tiny Seed?", - "掷骰子分布:", - "掷骰子至少 %d 次以生成助记词。", - "掷骰子:", - "投掷次数不足!", - "检测到低熵!", - "检测到模式!", - "继续吗?", - "极客统计数据", - "生成助记词", - "掷骰子的 SHA256:", + "擦除设备", + "擦除设备中..", + "词 %d", + "单词序号", + "单词", + "是", + " 非有效地址", + "在前 %d 个地址中未找到", ] diff --git a/tests/test_i18n.py b/tests/test_i18n.py index 2b0a3b88..898ffbe9 100644 --- a/tests/test_i18n.py +++ b/tests/test_i18n.py @@ -1,25 +1,5 @@ import pytest -# import binascii - -# TRANSLATION_SLUGS = [ -# "Hello world", -# "Hello", -# "Untranslated slug", -# ] - -# INDEX_REFERENCE = [ -# binascii.crc32(TRANSLATION_SLUGS[0].encode("utf-8")), -# binascii.crc32(TRANSLATION_SLUGS[1].encode("utf-8")), -# binascii.crc32(TRANSLATION_SLUGS[2].encode("utf-8")), -# ] - -# PT_BR = [ -# "Olá mundo", -# "Olá", -# "Untranslated slug", -# ] - def test_translations(mocker, m5stickv): from krux.krux_settings import t, locale_control From d8cf9aa31643db5f4d6fd2e1223224b5d01fd508 Mon Sep 17 00:00:00 2001 From: Odudex Date: Thu, 19 Sep 2024 14:35:03 -0300 Subject: [PATCH 13/20] bugfix: better constrain PMofN detection playoff word was being detected as PMofN --- src/krux/qr.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/krux/qr.py b/src/krux/qr.py index ea25ad7f..dba53085 100644 --- a/src/krux/qr.py +++ b/src/krux/qr.py @@ -348,8 +348,10 @@ def detect_format(data): """Detects the QR format of the given data""" qr_format = FORMAT_NONE try: - if data.startswith("p") and data.index("of") <= 5: - qr_format = FORMAT_PMOFN + if data.startswith("p"): + header = data.split(" ")[0] + if "of" in header and header[1:].split("of")[0].isdigit(): + qr_format = FORMAT_PMOFN elif data.lower().startswith("ur:"): qr_format = FORMAT_UR elif data.startswith("B$"): From 34575403b61f42701941dac60fc60994423d75c0 Mon Sep 17 00:00:00 2001 From: odudex Date: Fri, 20 Sep 2024 14:50:52 -0300 Subject: [PATCH 14/20] add SD message signing support for Sparrow --- src/krux/pages/home_pages/sign_message_ui.py | 347 ++++++++++-------- .../pages/home_pages/test_sign_message_ui.py | 4 +- 2 files changed, 193 insertions(+), 158 deletions(-) diff --git a/src/krux/pages/home_pages/sign_message_ui.py b/src/krux/pages/home_pages/sign_message_ui.py index 5641f36d..c9f35ded 100644 --- a/src/krux/pages/home_pages/sign_message_ui.py +++ b/src/krux/pages/home_pages/sign_message_ui.py @@ -20,11 +20,12 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -import gc from embit import bip32, compact import hashlib import binascii from .. import MENU_CONTINUE, LOAD_FROM_CAMERA, LOAD_FROM_SD, Menu +from ..utils import Utils +from ...key import SINGLESIG_SCRIPT_PURPOSE from ...themes import theme from ...display import ( DEFAULT_PADDING, @@ -41,119 +42,135 @@ SIGNED_FILE_SUFFIX, PUBKEY_FILE_EXTENSION, ) -from ..utils import Utils class SignMessage(Utils): """Message Signing user interface""" - def load_message(self): + def _load_message(self): """Loads a message from camera or SD card""" - load_method = self.load_method() - if load_method > LOAD_FROM_SD: - return (None, None, "") - if load_method == LOAD_FROM_CAMERA: from ..qr_capture import QRCodeCapture qr_capture = QRCodeCapture(self.ctx) data, qr_format = qr_capture.qr_capture_loop() return (data, qr_format, "") + if load_method == LOAD_FROM_SD: + message_filename, data = self.load_file(prompt=False) + return (data, FORMAT_NONE, message_filename) + return (None, None, "") + + def _is_valid_derivation_path(self, derivation_path): + """Checks if the derivation path is valid""" + try: + parts = derivation_path.split("/") + return parts[0] == "m" and all( + p.endswith("'") or p.endswith("h") or p.isdigit() for p in parts[1:] + ) + except: + return False + + def _sign_at_address(self, message, derivation_str): + """Signs a message at a derived Bitcoin address""" + derivation = bip32.parse_path(derivation_str) + wallet_path = "/".join(derivation_str.split("/")[:4]) + + if wallet_path == self.ctx.wallet.key.derivation: + # Show derived address + address = self.ctx.wallet.descriptor.derive( + derivation[4], branch_index=0 + ).address(network=self.ctx.wallet.key.network) + address_derivation = self.fit_to_line( + address, str(derivation[4]) + ". ", fixed_chars=3 + ) + else: + address_derivation = derivation_str.replace("h", "'") + + self._display_message_sign_prompt(message, address_derivation) + + if not self.prompt(t("Sign?"), BOTTOM_PROMPT_LINE): + return None + + message_hash = hashlib.sha256( + hashlib.sha256( + b"\x18Bitcoin Signed Message:\n" + + compact.to_bytes(len(message)) + + message + ).digest() + ).digest() + + sig = self.ctx.wallet.key.sign_at(derivation, message_hash) + self._display_signature(base_encode(sig, 64).strip().decode()) + return sig + + def _display_message_sign_prompt(self, message, address_derivation): + """Helper to display message and address for signing""" + max_lines = TOTAL_LINES - (7 if MINIMAL_DISPLAY else 10) + offset_y = DEFAULT_PADDING + self.ctx.display.clear() + + offset_y += ( + self.ctx.display.draw_hcentered_text( + t("Message:"), offset_y, theme.highlight_color + ) + * FONT_HEIGHT + ) + offset_y += ( + self.ctx.display.draw_hcentered_text( + message.decode(), offset_y, max_lines=max_lines + ) + + 1 + ) * FONT_HEIGHT + offset_y += ( + self.ctx.display.draw_hcentered_text( + t("Address") + ":", offset_y, theme.highlight_color + ) + * FONT_HEIGHT + ) + self.ctx.display.draw_hcentered_text(address_derivation, offset_y) - # If load_method == LOAD_FROM_SD - message_filename, data = self.load_file(prompt=False) - return (data, FORMAT_NONE, message_filename) + def _display_signature(self, encoded_sig): + """Helper to display the signature""" + self.ctx.display.clear() + self.ctx.display.draw_centered_text(t("Signature") + ":\n\n%s" % encoded_sig) + self.ctx.input.wait_for_button() - def sign_at_address(self, data): + def _sign_at_address_from_qr(self, data): """Message signed at a derived Bitcoin address - Sparrow/Specter""" + if not data.startswith(b"signmessage"): + return None + + data_blocks = data.split(b" ") + derivation = data_blocks[1].decode() + if len(data_blocks) < 3 or not self._is_valid_derivation_path(derivation): + return None + + message = b" ".join(data_blocks[2:]).split(b":", 1) + if len(message) < 2 or message[0] != b"ascii": + return None - if data.startswith(b"signmessage"): - data_blocks = data.split(b" ") - if len(data_blocks) >= 3: - derivation = data_blocks[1].decode() - message = b" ".join(data_blocks[2:]) - message = message.split(b":", 1) - if len(message) >= 2 and message[0] == b"ascii": - message = b" ".join(message[1:]) - derivation = bip32.parse_path(derivation) - self.ctx.display.clear() - address = self.ctx.wallet.descriptor.derive( - derivation[4], branch_index=0 - ).address(network=self.ctx.wallet.key.network) - short_address = self.fit_to_line( - address, str(derivation[4]) + ". ", fixed_chars=3 - ) - - # Maximum lines available for message - max_lines = TOTAL_LINES - if MINIMAL_DISPLAY: - max_lines -= 7 - else: - max_lines -= 10 - - offset_y = DEFAULT_PADDING - offset_y += ( - self.ctx.display.draw_hcentered_text( - t("Message:"), offset_y, theme.highlight_color - ) - * FONT_HEIGHT - ) - offset_y += ( - self.ctx.display.draw_hcentered_text( - message.decode(), offset_y, max_lines=max_lines - ) - + 1 - ) * FONT_HEIGHT - offset_y += ( - self.ctx.display.draw_hcentered_text( - t("Address") + ":", offset_y, theme.highlight_color - ) - * FONT_HEIGHT - ) - self.ctx.display.draw_hcentered_text(short_address, offset_y) - if not self.prompt(t("Sign?"), BOTTOM_PROMPT_LINE): - return "" - message_hash = hashlib.sha256( - hashlib.sha256( - b"\x18Bitcoin Signed Message:\n" - + compact.to_bytes(len(message)) - + message - ).digest() - ).digest() - sig = self.ctx.wallet.key.sign_at(derivation, message_hash) - - # Encode sig as base64 string - encoded_sig = base_encode(sig, 64).strip().decode() - self.ctx.display.clear() - self.ctx.display.draw_centered_text( - t("Signature") + ":\n\n%s" % encoded_sig - ) - self.ctx.input.wait_for_button() - return sig - return None + return self._sign_at_address(b" ".join(message[1:]), derivation) + + def _sign_at_address_from_sd(self, data): + """Message signed at a derived Bitcoin address - SD card""" + data = data.decode() if isinstance(data, bytes) else data + lines = [line.strip() for line in data.splitlines() if line.strip()] + if len(lines) < 2 or lines[-1].lower() not in SINGLESIG_SCRIPT_PURPOSE: + return None + derivation_path = lines[-2] + if not self._is_valid_derivation_path(derivation_path): + return None + message = "\n".join(lines[:-2]) + + return self._sign_at_address(message.encode(), derivation_path) def sign_standard_message(self, data): """Signs a standard message""" - message_hash = None - if len(data) == 32: - # It's a sha256 hash already - message_hash = data - else: - if len(data) == 64: - # It may be a hex-encoded sha256 hash - try: - message_hash = binascii.unhexlify(data) - except: - pass - if message_hash is None: - # It's a message, so compute its sha256 hash - message_hash = hashlib.sha256(data).digest() - - # memory management - del data - gc.collect() + message_hash = self._compute_message_hash(data) + if message_hash is None: + return "" self.ctx.display.clear() self.ctx.display.draw_centered_text( @@ -162,38 +179,25 @@ def sign_standard_message(self, data): if not self.prompt(t("Sign?"), BOTTOM_PROMPT_LINE): return "" - # User confirmed to sign! sig = self.ctx.wallet.key.sign(message_hash).serialize() - - # Encode sig as base64 string - encoded_sig = base_encode(sig, 64).decode() - self.ctx.display.clear() - self.ctx.display.draw_centered_text(t("Signature") + ":\n\n%s" % encoded_sig) - self.ctx.input.wait_for_button() + self._display_signature(base_encode(sig, 64).strip().decode()) return sig - def sign_message(self): - """Sign message user interface""" - - # Load a Message - data, qr_format, message_filename = self.load_message() - - if data is None: - self.flash_error(t("Failed to load message")) - return MENU_CONTINUE - - # message read OK! - data = data.encode() if isinstance(data, str) else data - - sign_at_address = False - sig = self.sign_at_address(data) - if sig is None: # Not a message to sign at an address - sig = self.sign_standard_message(data) - else: - sign_at_address = True - if sig == "": # If user declined to sign - return MENU_CONTINUE - + def _compute_message_hash(self, data): + """Computes the hash for the message""" + if len(data) == 32: + return data + if len(data) == 64: + try: + return binascii.unhexlify(data) + except: + pass + return hashlib.sha256(data).digest() + + def _export_signature( + self, sig, qr_format=FORMAT_NONE, sign_at_address=False, message_filename="" + ): + """Exports the message signature to a QR code or SD card""" sign_menu = Menu( self.ctx, [ @@ -207,49 +211,80 @@ def sign_message(self): ) index, _ = sign_menu.run_loop() - if index == 2: # Back + if index == 2: return MENU_CONTINUE pubkey = binascii.hexlify(self.ctx.wallet.key.account.sec()).decode() if index == 0: - # Show the base64 signed message as a QRCode - title = t("Signed Message") - encoded_sig = base_encode(sig, 64).strip().decode() - self.display_qr_codes(encoded_sig, qr_format, title) - self.print_standard_qr(encoded_sig, qr_format, title) - - if not sign_at_address: - # Show the public key as a QRCode - self.ctx.display.clear() - title = t("Hex Public Key") - self.ctx.display.draw_centered_text(title + ":\n\n%s" % pubkey) - self.ctx.input.wait_for_button() - - # Show the public key in hexadecimal format as a QRCode - self.display_qr_codes(pubkey, qr_format, title) - self.print_standard_qr(pubkey, qr_format, title) - return MENU_CONTINUE + self._export_to_qr(sig, pubkey, qr_format, sign_at_address) + elif self.has_sd_card(): + self._export_to_sd(sig, pubkey, sign_at_address, message_filename) + return MENU_CONTINUE + + def _export_to_qr(self, sig, pubkey, qr_format, sign_at_address): + """Exports the signature and public key to QR code""" + encoded_sig = base_encode(sig, 64).strip().decode() + title = t("Signed Message") + self.display_qr_codes(encoded_sig, qr_format, title) + self.print_standard_qr(encoded_sig, qr_format, title) + + if not sign_at_address: + self._display_and_export_pubkey(pubkey, qr_format) + + def _display_and_export_pubkey(self, pubkey, qr_format): + """Displays and exports the public key as QR code""" + title = t("Hex Public Key") + self.ctx.display.clear() + self.ctx.display.draw_centered_text(title + ":\n\n%s" % pubkey) + self.ctx.input.wait_for_button() - # If index == 1 save the signature file on the SD card - if self.has_sd_card(): - from ..file_operations import SaveFile + self.display_qr_codes(pubkey, qr_format, title) + self.print_standard_qr(pubkey, qr_format, title) + + def _export_to_sd(self, sig, pubkey, sign_at_address, message_filename): + """Exports the signature and public key to SD card""" + from ..file_operations import SaveFile + + save_page = SaveFile(self.ctx) + sig = base_encode(sig, 64).strip().decode() + extension = ".txt" if sign_at_address else SIGNATURE_FILE_EXTENSION + save_page.save_file( + sig, + "message", + message_filename, + t("Signature") + ":", + extension, + SIGNED_FILE_SUFFIX, + prompt=False, + ) - save_page = SaveFile(self.ctx) + if not sign_at_address: + title = t("Hex Public Key") save_page.save_file( - sig, - "message", - message_filename, - t("Signature") + ":", - SIGNATURE_FILE_EXTENSION, - SIGNED_FILE_SUFFIX, + pubkey, "pubkey", "", title + ":", PUBKEY_FILE_EXTENSION, "", False ) - if not sign_at_address: - # Save the public key on the SD card - title = t("Hex Public Key") - save_page.save_file( - pubkey, "pubkey", "", title + ":", PUBKEY_FILE_EXTENSION, "", False - ) + def sign_message(self): + """Sign message user interface""" + data, qr_format, message_filename = self._load_message() + + if data is None: + self.flash_error(t("Failed to load message")) + return MENU_CONTINUE + + if message_filename: + sig = self._sign_at_address_from_sd(data) + if sig: + self._export_signature(sig, FORMAT_NONE, True, message_filename) + return MENU_CONTINUE + data = data.encode() if isinstance(data, str) else data + sig = self._sign_at_address_from_qr(data) + if sig: + self._export_signature(sig, qr_format, True, message_filename) + return MENU_CONTINUE + sig = self.sign_standard_message(data) + if sig: + self._export_signature(sig, qr_format, False, message_filename) return MENU_CONTINUE diff --git a/tests/pages/home_pages/test_sign_message_ui.py b/tests/pages/home_pages/test_sign_message_ui.py index a37a9809..da570e3f 100644 --- a/tests/pages/home_pages/test_sign_message_ui.py +++ b/tests/pages/home_pages/test_sign_message_ui.py @@ -250,7 +250,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): QRCodeCapture, "qr_capture_loop", new=lambda self: ( - "signmessage m/84h/1h/0h/0/3 ascii:a test message with a colon ':' character.", + "signmessage m/84h/0h/0h/0/3 ascii:a test message with a colon ':' character.", FORMAT_NONE, ), ) @@ -275,7 +275,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): [mocker.call("3. bc1qgl..cn3", mocker.ANY)], ) message_signer.display_qr_codes.assert_called_once_with( - "IHx1+DGW83eZZpV8rOT/9l/yUYa2ncmCr/Mnq7XBJmmyFCUWKceHZQqUZAk60XuwlBox3d3hAa4FU59AXOjbALo=", + "IN/4LmcGRaI5sgvBP2mrTXQFvD6FecXd8La03SixPabsb/255ElRGTcXhicT3KFsNJbfQ9te909ZXeKMaqUcaPM=", 0, "Signed Message", ) From 4855a7058404cfddf60c4cab615a5edc8981b758 Mon Sep 17 00:00:00 2001 From: odudex Date: Mon, 23 Sep 2024 08:16:42 -0300 Subject: [PATCH 15/20] Message signing: Add tests --- tests/pages/home_pages/test_home.py | 2 +- .../pages/home_pages/test_sign_message_ui.py | 153 +++++++++++++----- 2 files changed, 111 insertions(+), 44 deletions(-) diff --git a/tests/pages/home_pages/test_home.py b/tests/pages/home_pages/test_home.py index 35c0f3a2..83456b75 100644 --- a/tests/pages/home_pages/test_home.py +++ b/tests/pages/home_pages/test_home.py @@ -437,7 +437,7 @@ def test_sign_psbt(mocker, m5stickv, tdata): None, None, [ - BUTTON_ENTER, # Load frm QR code + BUTTON_ENTER, # Load from QR code BUTTON_ENTER, # Path mismatch ACK BUTTON_ENTER, # PSBT resume BUTTON_ENTER, # output 1 diff --git a/tests/pages/home_pages/test_sign_message_ui.py b/tests/pages/home_pages/test_sign_message_ui.py index da570e3f..b3b46cb9 100644 --- a/tests/pages/home_pages/test_sign_message_ui.py +++ b/tests/pages/home_pages/test_sign_message_ui.py @@ -228,54 +228,121 @@ def test_sign_message(mocker, m5stickv, tdata): def test_sign_message_at_address(mocker, m5stickv, tdata): from krux.pages.home_pages.sign_message_ui import SignMessage from krux.wallet import Wallet - from krux.input import BUTTON_ENTER + from krux.input import BUTTON_ENTER, BUTTON_PAGE, BUTTON_PAGE_PREV from krux.qr import FORMAT_NONE from krux.themes import theme from krux.pages.qr_capture import QRCodeCapture - BTN_SEQUENCE = [ - BUTTON_ENTER, # Load from camera - BUTTON_ENTER, # Confirm to sign message - BUTTON_ENTER, # Check signature - BUTTON_ENTER, # Sign to QR code - BUTTON_ENTER, # Check QR code - ] - wallet = Wallet(tdata.SINGLESIG_SIGNING_KEY) - ctx = create_ctx(mocker, BTN_SEQUENCE, wallet) - mocker.patch.object(ctx.display, "width", new=lambda: 135) - message_signer = SignMessage(ctx) - mocker.spy(message_signer, "display_qr_codes") - - mocker.patch.object( - QRCodeCapture, - "qr_capture_loop", - new=lambda self: ( + cases = [ + # Button sequence + # QR raw message + # SD raw message + # Sign to SD + # Message content + # Displayed address + # Signature + ( + [ + BUTTON_ENTER, # Load from camera + BUTTON_ENTER, # Confirm to sign message + BUTTON_ENTER, # Check signature + BUTTON_ENTER, # Sign to QR code + BUTTON_ENTER, # Check QR code + ], "signmessage m/84h/0h/0h/0/3 ascii:a test message with a colon ':' character.", - FORMAT_NONE, + None, + False, + "a test message with a colon ':' character.", + "3. bc1qgl..cn3", + "IN/4LmcGRaI5sgvBP2mrTXQFvD6FecXd8La03SixPabsb/255ElRGTcXhicT3KFsNJbfQ9te909ZXeKMaqUcaPM=", + ), + ( + [ + BUTTON_ENTER, # Load from camera + BUTTON_ENTER, # Confirm to sign message + BUTTON_ENTER, # Check signature + BUTTON_ENTER, # Sign to QR code + BUTTON_ENTER, # Check QR code + ], + "signmessage m/84h/1h/0h/0/3 ascii:A test message.", + None, + False, + "A test message.", + "m/84'/1'/0'/0/3", # With path mismatch, show the full derivation path + "ILc30ti8OPSpCtzfj7sNnftANBCuVpyRX7pnM3iAgOk9F9IUtnXNPus0+MF12y5HKYHAB6IVYr66sLmL3Vi3oEE=", ), - ) - qr_capturer = mocker.spy(QRCodeCapture, "qr_capture_loop") - message_signer.sign_message() + ( # Save to SD card + [ + BUTTON_ENTER, # Confirm load from camera + BUTTON_ENTER, # Confirm to sign message + BUTTON_ENTER, # Check signature + BUTTON_PAGE, # Sign to SD card + BUTTON_ENTER, # Confirm sign to SD card + BUTTON_PAGE_PREV, # Move to Go + BUTTON_ENTER, # Go + ], + "signmessage m/84h/0h/0h/0/3 ascii:A test message.", + None, + True, # Sign to SD + "A test message.", + "3. bc1qgl..cn3", + "IN/4LmcGRaI5sgvBP2mrTXQFvD6FecXd8La03SixPabsb/255ElRGTcXhicT3KFsNJbfQ9te909ZXeKMaqUcaPM=", + ), + ] + case_count = 0 + for case in cases: + print("Case: ", case_count) + # A mainnet wallet + wallet = Wallet(tdata.SINGLESIG_SIGNING_KEY) + ctx = create_ctx(mocker, case[0], wallet) + mocker.patch.object(ctx.display, "width", new=lambda: 135) + message_signer = SignMessage(ctx) - qr_capturer.assert_called_once() - ctx.display.draw_hcentered_text.assert_has_calls( - [mocker.call("Message:", 10, theme.highlight_color)] - ) - ctx.display.draw_hcentered_text.assert_has_calls( - [ - mocker.call( - "a test message with a colon ':' character.", mocker.ANY, max_lines=10 + if case[1]: + mocker.spy(message_signer, "display_qr_codes") + mocker.patch.object( + QRCodeCapture, + "qr_capture_loop", + new=lambda self: ( + case[1], + FORMAT_NONE, + ), + ) + qr_capturer = mocker.spy(QRCodeCapture, "qr_capture_loop") + if case[3]: # Save to SD card + mocker.patch("os.listdir", new=mocker.MagicMock(return_value=[])) + mocker.patch( + "builtins.open", + new=get_mock_open( + { + "/sd/message-signed.sig": case[2], + } + ), + ) + + message_signer.sign_message() + + qr_capturer.assert_called_once() + ctx.display.draw_hcentered_text.assert_has_calls( + [mocker.call("Message:", 10, theme.highlight_color)] + ) + ctx.display.draw_hcentered_text.assert_has_calls( + [ + mocker.call( + case[4], mocker.ANY, max_lines=10 + ) + ] + ) + ctx.display.draw_hcentered_text.assert_has_calls( + [mocker.call("Address:", mocker.ANY, theme.highlight_color)] + ) + ctx.display.draw_hcentered_text.assert_has_calls( + [mocker.call(case[5], mocker.ANY)], + ) + if not case[3]: + message_signer.display_qr_codes.assert_called_once_with( + case[6], + 0, + "Signed Message", ) - ] - ) - ctx.display.draw_hcentered_text.assert_has_calls( - [mocker.call("Address:", mocker.ANY, theme.highlight_color)] - ) - ctx.display.draw_hcentered_text.assert_has_calls( - [mocker.call("3. bc1qgl..cn3", mocker.ANY)], - ) - message_signer.display_qr_codes.assert_called_once_with( - "IN/4LmcGRaI5sgvBP2mrTXQFvD6FecXd8La03SixPabsb/255ElRGTcXhicT3KFsNJbfQ9te909ZXeKMaqUcaPM=", - 0, - "Signed Message", - ) + case_count += 1 From 2b02052e021098bab731b93406275dc6e3f51603 Mon Sep 17 00:00:00 2001 From: Odudex Date: Mon, 23 Sep 2024 14:13:13 -0300 Subject: [PATCH 16/20] Sign message with SD: export contents and address with signature --- .pylintrc | 3 +- poetry.lock | 18 +- src/krux/pages/home_pages/sign_message_ui.py | 154 +++++++++++++----- .../pages/home_pages/test_sign_message_ui.py | 10 +- 4 files changed, 129 insertions(+), 56 deletions(-) diff --git a/.pylintrc b/.pylintrc index 18cb9456..b99a6edb 100644 --- a/.pylintrc +++ b/.pylintrc @@ -89,7 +89,8 @@ disable=bad-inline-option, duplicate-code, ungrouped-imports, raise-missing-from, - anomalous-backslash-in-string + anomalous-backslash-in-string, + too-many-positional-arguments # Todo: remove this and adapt for releases above 24.09.0 # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option diff --git a/poetry.lock b/poetry.lock index b5cecf6a..e70aba7c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,13 +2,13 @@ [[package]] name = "astroid" -version = "3.2.2" +version = "3.3.3" description = "An abstract syntax tree for Python with inference support." optional = false -python-versions = ">=3.8.0" +python-versions = ">=3.9.0" files = [ - {file = "astroid-3.2.2-py3-none-any.whl", hash = "sha256:e8a0083b4bb28fcffb6207a3bfc9e5d0a68be951dd7e336d5dcf639c682388c0"}, - {file = "astroid-3.2.2.tar.gz", hash = "sha256:8ead48e31b92b2e217b6c9733a21afafe479d52d6e164dd25fb1a770c7c3cf94"}, + {file = "astroid-3.3.3-py3-none-any.whl", hash = "sha256:2d79acfd3c594b6a2d4141fea98a1d62ab4a52e54332b1f1ddcf07b652cc5c0f"}, + {file = "astroid-3.3.3.tar.gz", hash = "sha256:63f8c5370d9bad8294163c87b2d440a7fdf546be6c72bbeac0549c93244dbd72"}, ] [package.dependencies] @@ -1131,17 +1131,17 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pylint" -version = "3.2.5" +version = "3.3.0" description = "python code static checker" optional = false -python-versions = ">=3.8.0" +python-versions = ">=3.9.0" files = [ - {file = "pylint-3.2.5-py3-none-any.whl", hash = "sha256:32cd6c042b5004b8e857d727708720c54a676d1e22917cf1a2df9b4d4868abd6"}, - {file = "pylint-3.2.5.tar.gz", hash = "sha256:e9b7171e242dcc6ebd0aaa7540481d1a72860748a0a7816b8fe6cf6c80a6fe7e"}, + {file = "pylint-3.3.0-py3-none-any.whl", hash = "sha256:02dce1845f68974b9b03045894eb3bf05a8b3c7da9fd10af4de3c91e69eb92f1"}, + {file = "pylint-3.3.0.tar.gz", hash = "sha256:c685fe3c061ee5fb0ce7c29436174ab84a2f525fce2a268b1986e921e083fe22"}, ] [package.dependencies] -astroid = ">=3.2.2,<=3.3.0-dev0" +astroid = ">=3.3.3,<=3.4.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, diff --git a/src/krux/pages/home_pages/sign_message_ui.py b/src/krux/pages/home_pages/sign_message_ui.py index c9f35ded..07b2ebc5 100644 --- a/src/krux/pages/home_pages/sign_message_ui.py +++ b/src/krux/pages/home_pages/sign_message_ui.py @@ -20,12 +20,13 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -from embit import bip32, compact +from embit import bip32, compact, script +from embit.networks import NETWORKS import hashlib import binascii from .. import MENU_CONTINUE, LOAD_FROM_CAMERA, LOAD_FROM_SD, Menu from ..utils import Utils -from ...key import SINGLESIG_SCRIPT_PURPOSE +from ...key import SINGLESIG_SCRIPT_PURPOSE, P2PKH, P2SH, P2WPKH, P2TR from ...themes import theme from ...display import ( DEFAULT_PADDING, @@ -42,6 +43,12 @@ SIGNED_FILE_SUFFIX, PUBKEY_FILE_EXTENSION, ) +from ...settings import TEST_TXT, MAIN_TXT + + +SD_MESSAGE_HEADER = "-----BEGIN BITCOIN SIGNED MESSAGE-----" +SD_SIGNATURE_HEADER = "-----BEGIN BITCOIN SIGNATURE-----" +SD_SIGNATURE_FOOTER = "-----END BITCOIN SIGNATURE-----" class SignMessage(Utils): @@ -72,23 +79,66 @@ def _is_valid_derivation_path(self, derivation_path): except: return False - def _sign_at_address(self, message, derivation_str): - """Signs a message at a derived Bitcoin address""" - derivation = bip32.parse_path(derivation_str) - wallet_path = "/".join(derivation_str.split("/")[:4]) - - if wallet_path == self.ctx.wallet.key.derivation: - # Show derived address - address = self.ctx.wallet.descriptor.derive( - derivation[4], branch_index=0 - ).address(network=self.ctx.wallet.key.network) - address_derivation = self.fit_to_line( - address, str(derivation[4]) + ". ", fixed_chars=3 - ) + def get_network_from_path(self, derivation_path): + """Gets the network from the derivation path""" + parts = derivation_path.split("/") + if len(parts) < 2: + return None + + if parts[2] in ["0'", "0h"]: + return NETWORKS[MAIN_TXT] + if parts[2] in ["1'", "1h"]: + return NETWORKS[TEST_TXT] + return None + + def get_script_type_from_path(self, derivation_path): + """Gets the script type from the derivation path""" + parts = derivation_path.split("/") + if len(parts) < 2: + return None + + script_from_deriv = int(parts[1].strip("'").strip("h")) + for script_name, script_number in SINGLESIG_SCRIPT_PURPOSE.items(): + if script_number == script_from_deriv: + return script_name + return None + + def get_bitcoin_address(self, derivation_path, script_type=""): + """Gets the Bitcoin address from the derivation path""" + + network = self.get_network_from_path(derivation_path) + if not script_type: + script_type = self.get_script_type_from_path(derivation_path) + path = bip32.parse_path(derivation_path) + child_key = self.ctx.wallet.key.root.derive(path) + pubkey = child_key.to_public() + + # Generate the Bitcoin address based on the script type + if script_type == P2WPKH: + p2wpkh_script = script.p2wpkh(pubkey) + addr = p2wpkh_script.address(network=network) + elif script_type == P2PKH: + p2pkh_script = script.p2pkh(pubkey) + addr = p2pkh_script.address(network=network) + elif script_type == P2SH - P2WPKH: + p2wpkh_script = script.p2wpkh(pubkey) + p2sh_script = script.p2sh(p2wpkh_script) + addr = p2sh_script.address(network=network) + elif script_type == P2TR: + taproot_script = script.p2tr(pubkey) + addr = taproot_script.address(network=network) else: - address_derivation = derivation_str.replace("h", "'") + raise ValueError("Unsupported script type: %s" % script_type) - self._display_message_sign_prompt(message, address_derivation) + return addr + + def _sign_at_address(self, message, derivation_str, address=""): + """Signs a message at a derived Bitcoin address""" + + derivation = bip32.parse_path(derivation_str) + self._display_message_sign_prompt( + message, self.fit_to_line(address, str(derivation[4]) + ". ", fixed_chars=3) + ) if not self.prompt(t("Sign?"), BOTTOM_PROMPT_LINE): return None @@ -105,7 +155,7 @@ def _sign_at_address(self, message, derivation_str): self._display_signature(base_encode(sig, 64).strip().decode()) return sig - def _display_message_sign_prompt(self, message, address_derivation): + def _display_message_sign_prompt(self, message, address): """Helper to display message and address for signing""" max_lines = TOTAL_LINES - (7 if MINIMAL_DISPLAY else 10) offset_y = DEFAULT_PADDING @@ -129,7 +179,7 @@ def _display_message_sign_prompt(self, message, address_derivation): ) * FONT_HEIGHT ) - self.ctx.display.draw_hcentered_text(address_derivation, offset_y) + self.ctx.display.draw_hcentered_text(address, offset_y) def _display_signature(self, encoded_sig): """Helper to display the signature""" @@ -139,6 +189,7 @@ def _display_signature(self, encoded_sig): def _sign_at_address_from_qr(self, data): """Message signed at a derived Bitcoin address - Sparrow/Specter""" + if not data.startswith(b"signmessage"): return None @@ -151,20 +202,26 @@ def _sign_at_address_from_qr(self, data): if len(message) < 2 or message[0] != b"ascii": return None - return self._sign_at_address(b" ".join(message[1:]), derivation) + address = self.get_bitcoin_address(derivation) + signature = self._sign_at_address(b" ".join(message[1:]), derivation, address) + + return signature, message[1].decode(), address def _sign_at_address_from_sd(self, data): """Message signed at a derived Bitcoin address - SD card""" data = data.decode() if isinstance(data, bytes) else data lines = [line.strip() for line in data.splitlines() if line.strip()] - if len(lines) < 2 or lines[-1].lower() not in SINGLESIG_SCRIPT_PURPOSE: + script_type = lines[-1].lower() + if len(lines) < 2 or script_type not in SINGLESIG_SCRIPT_PURPOSE: return None derivation_path = lines[-2] if not self._is_valid_derivation_path(derivation_path): return None + address = self.get_bitcoin_address(derivation_path, script_type) message = "\n".join(lines[:-2]) + signature = self._sign_at_address(message.encode(), derivation_path, address) - return self._sign_at_address(message.encode(), derivation_path) + return signature, message, address def sign_standard_message(self, data): """Signs a standard message""" @@ -195,7 +252,12 @@ def _compute_message_hash(self, data): return hashlib.sha256(data).digest() def _export_signature( - self, sig, qr_format=FORMAT_NONE, sign_at_address=False, message_filename="" + self, + sig, + qr_format=FORMAT_NONE, + message_filename="", + message="", + address="", ): """Exports the message signature to a QR code or SD card""" sign_menu = Menu( @@ -217,19 +279,20 @@ def _export_signature( pubkey = binascii.hexlify(self.ctx.wallet.key.account.sec()).decode() if index == 0: - self._export_to_qr(sig, pubkey, qr_format, sign_at_address) + at_address = address != "" + self._export_to_qr(sig, pubkey, qr_format, at_address) elif self.has_sd_card(): - self._export_to_sd(sig, pubkey, sign_at_address, message_filename) + self._export_to_sd(sig, pubkey, message_filename, message, address) return MENU_CONTINUE - def _export_to_qr(self, sig, pubkey, qr_format, sign_at_address): + def _export_to_qr(self, sig, pubkey, qr_format, at_address=False): """Exports the signature and public key to QR code""" encoded_sig = base_encode(sig, 64).strip().decode() title = t("Signed Message") self.display_qr_codes(encoded_sig, qr_format, title) self.print_standard_qr(encoded_sig, qr_format, title) - if not sign_at_address: + if not at_address: self._display_and_export_pubkey(pubkey, qr_format) def _display_and_export_pubkey(self, pubkey, qr_format): @@ -242,15 +305,24 @@ def _display_and_export_pubkey(self, pubkey, qr_format): self.display_qr_codes(pubkey, qr_format, title) self.print_standard_qr(pubkey, qr_format, title) - def _export_to_sd(self, sig, pubkey, sign_at_address, message_filename): + def _export_to_sd(self, sig, pubkey, message_filename, message="", address=""): """Exports the signature and public key to SD card""" from ..file_operations import SaveFile save_page = SaveFile(self.ctx) - sig = base_encode(sig, 64).strip().decode() - extension = ".txt" if sign_at_address else SIGNATURE_FILE_EXTENSION + if address: + file_content = "" + file_content = SD_MESSAGE_HEADER + "\n" + file_content += message + "\n" + file_content += SD_SIGNATURE_HEADER + "\n" + file_content += address + "\n" + file_content += base_encode(sig, 64).strip().decode() + "\n" + file_content += SD_SIGNATURE_FOOTER + else: + file_content = sig + extension = ".txt" if address else SIGNATURE_FILE_EXTENSION save_page.save_file( - sig, + file_content, "message", message_filename, t("Signature") + ":", @@ -259,7 +331,7 @@ def _export_to_sd(self, sig, pubkey, sign_at_address, message_filename): prompt=False, ) - if not sign_at_address: + if not address: title = t("Hex Public Key") save_page.save_file( pubkey, "pubkey", "", title + ":", PUBKEY_FILE_EXTENSION, "", False @@ -274,17 +346,21 @@ def sign_message(self): return MENU_CONTINUE if message_filename: - sig = self._sign_at_address_from_sd(data) - if sig: - self._export_signature(sig, FORMAT_NONE, True, message_filename) + signature_data = self._sign_at_address_from_sd(data) + if signature_data: + sig, message, address = signature_data + self._export_signature( + sig, FORMAT_NONE, message_filename, message, address + ) return MENU_CONTINUE data = data.encode() if isinstance(data, str) else data - sig = self._sign_at_address_from_qr(data) - if sig: - self._export_signature(sig, qr_format, True, message_filename) + signature_data = self._sign_at_address_from_qr(data) + if signature_data: + sig, message, address = signature_data + self._export_signature(sig, qr_format, message_filename, message, address) return MENU_CONTINUE sig = self.sign_standard_message(data) if sig: - self._export_signature(sig, qr_format, False, message_filename) + self._export_signature(sig, qr_format, message_filename) return MENU_CONTINUE diff --git a/tests/pages/home_pages/test_sign_message_ui.py b/tests/pages/home_pages/test_sign_message_ui.py index b3b46cb9..ae18c2d3 100644 --- a/tests/pages/home_pages/test_sign_message_ui.py +++ b/tests/pages/home_pages/test_sign_message_ui.py @@ -268,7 +268,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): None, False, "A test message.", - "m/84'/1'/0'/0/3", # With path mismatch, show the full derivation path + "3. tb1qyn..5km", "ILc30ti8OPSpCtzfj7sNnftANBCuVpyRX7pnM3iAgOk9F9IUtnXNPus0+MF12y5HKYHAB6IVYr66sLmL3Vi3oEE=", ), ( # Save to SD card @@ -319,7 +319,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): } ), ) - + message_signer.sign_message() qr_capturer.assert_called_once() @@ -327,11 +327,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): [mocker.call("Message:", 10, theme.highlight_color)] ) ctx.display.draw_hcentered_text.assert_has_calls( - [ - mocker.call( - case[4], mocker.ANY, max_lines=10 - ) - ] + [mocker.call(case[4], mocker.ANY, max_lines=10)] ) ctx.display.draw_hcentered_text.assert_has_calls( [mocker.call("Address:", mocker.ANY, theme.highlight_color)] From 5ef6ba9f25e1e2bd522507063c0e49e9300d7f20 Mon Sep 17 00:00:00 2001 From: Odudex Date: Mon, 23 Sep 2024 14:56:49 -0300 Subject: [PATCH 17/20] sign messages from different script types: tests and bugfix for 49' --- src/krux/pages/home_pages/sign_message_ui.py | 4 +- .../pages/home_pages/test_sign_message_ui.py | 51 +++++++++++++++++-- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/src/krux/pages/home_pages/sign_message_ui.py b/src/krux/pages/home_pages/sign_message_ui.py index 07b2ebc5..ea44a120 100644 --- a/src/krux/pages/home_pages/sign_message_ui.py +++ b/src/krux/pages/home_pages/sign_message_ui.py @@ -26,7 +26,7 @@ import binascii from .. import MENU_CONTINUE, LOAD_FROM_CAMERA, LOAD_FROM_SD, Menu from ..utils import Utils -from ...key import SINGLESIG_SCRIPT_PURPOSE, P2PKH, P2SH, P2WPKH, P2TR +from ...key import SINGLESIG_SCRIPT_PURPOSE, P2PKH, P2WPKH, P2TR, P2SH_P2WPKH from ...themes import theme from ...display import ( DEFAULT_PADDING, @@ -120,7 +120,7 @@ def get_bitcoin_address(self, derivation_path, script_type=""): elif script_type == P2PKH: p2pkh_script = script.p2pkh(pubkey) addr = p2pkh_script.address(network=network) - elif script_type == P2SH - P2WPKH: + elif script_type == P2SH_P2WPKH: p2wpkh_script = script.p2wpkh(pubkey) p2sh_script = script.p2sh(p2wpkh_script) addr = p2sh_script.address(network=network) diff --git a/tests/pages/home_pages/test_sign_message_ui.py b/tests/pages/home_pages/test_sign_message_ui.py index ae18c2d3..117aaecf 100644 --- a/tests/pages/home_pages/test_sign_message_ui.py +++ b/tests/pages/home_pages/test_sign_message_ui.py @@ -241,7 +241,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): # Message content # Displayed address # Signature - ( + ( # 0 - Sign P2WPKH Mainnet [ BUTTON_ENTER, # Load from camera BUTTON_ENTER, # Confirm to sign message @@ -256,7 +256,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): "3. bc1qgl..cn3", "IN/4LmcGRaI5sgvBP2mrTXQFvD6FecXd8La03SixPabsb/255ElRGTcXhicT3KFsNJbfQ9te909ZXeKMaqUcaPM=", ), - ( + ( # 1 - Sign P2WPKH Testnet [ BUTTON_ENTER, # Load from camera BUTTON_ENTER, # Confirm to sign message @@ -271,7 +271,52 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): "3. tb1qyn..5km", "ILc30ti8OPSpCtzfj7sNnftANBCuVpyRX7pnM3iAgOk9F9IUtnXNPus0+MF12y5HKYHAB6IVYr66sLmL3Vi3oEE=", ), - ( # Save to SD card + ( # 2 - Sign P2TR Mainnet + [ + BUTTON_ENTER, # Load from camera + BUTTON_ENTER, # Confirm to sign message + BUTTON_ENTER, # Check signature + BUTTON_ENTER, # Sign to QR code + BUTTON_ENTER, # Check QR code + ], + "signmessage m/86h/0h/0h/0/3 ascii:a test message with a colon ':' character.", + None, + False, + "a test message with a colon ':' character.", + "3. bc1py0..ler", + "H3Z5VioeLaC0rpdI2CflUu34IANgGxum0Rr9lmCziQRfUQv+vFND+nHvxHmJZA0uvLLI1/mTEEHD2bBfN6Y2d6w=", + ), + ( # 3 - Sign Legacy Mainnet + [ + BUTTON_ENTER, # Load from camera + BUTTON_ENTER, # Confirm to sign message + BUTTON_ENTER, # Check signature + BUTTON_ENTER, # Sign to QR code + BUTTON_ENTER, # Check QR code + ], + "signmessage m/44h/0h/0h/0/3 ascii:a test message with a colon ':' character.", + None, + False, + "a test message with a colon ':' character.", + "3. 1MVGa1..rsJ", + "IEpq8rUwSmDxO3GgwaZ75tw3DArtHtLi08kgQuRNXdteMI5KNEAWbpzsY8gRzGkspZN4YFiRu4RNCM+IsKkWys8=", + ), + ( # 4 - Sign Nested Segwit Mainnet + [ + BUTTON_ENTER, # Load from camera + BUTTON_ENTER, # Confirm to sign message + BUTTON_ENTER, # Check signature + BUTTON_ENTER, # Sign to QR code + BUTTON_ENTER, # Check QR code + ], + "signmessage m/49h/0h/0h/0/3 ascii:a test message with a colon ':' character.", + None, + False, + "a test message with a colon ':' character.", + "3. 38Cahk..EAN", + "HyH8898c2S6eF8hTPGhRqLC6UQrJrhw/fdguBeFG0cCrOFkbG8TCVURXOgxXaEV93vrFlHyxNGEvL10IcsLtvvI=", + ), + ( # - Sign P2WPKH Mainnet - Save to SD card [ BUTTON_ENTER, # Confirm load from camera BUTTON_ENTER, # Confirm to sign message From ef92026c743bea5592d40632cd11a2a6aa6f6ba6 Mon Sep 17 00:00:00 2001 From: Odudex Date: Mon, 23 Sep 2024 16:07:48 -0300 Subject: [PATCH 18/20] SD card message signing: Add tests --- .../pages/home_pages/test_sign_message_ui.py | 47 ++++++++++++------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/tests/pages/home_pages/test_sign_message_ui.py b/tests/pages/home_pages/test_sign_message_ui.py index 117aaecf..d183f20f 100644 --- a/tests/pages/home_pages/test_sign_message_ui.py +++ b/tests/pages/home_pages/test_sign_message_ui.py @@ -241,7 +241,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): # Message content # Displayed address # Signature - ( # 0 - Sign P2WPKH Mainnet + ( # 0 - Sign P2WPKH Mainnet [ BUTTON_ENTER, # Load from camera BUTTON_ENTER, # Confirm to sign message @@ -256,7 +256,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): "3. bc1qgl..cn3", "IN/4LmcGRaI5sgvBP2mrTXQFvD6FecXd8La03SixPabsb/255ElRGTcXhicT3KFsNJbfQ9te909ZXeKMaqUcaPM=", ), - ( # 1 - Sign P2WPKH Testnet + ( # 1 - Sign P2WPKH Testnet [ BUTTON_ENTER, # Load from camera BUTTON_ENTER, # Confirm to sign message @@ -271,7 +271,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): "3. tb1qyn..5km", "ILc30ti8OPSpCtzfj7sNnftANBCuVpyRX7pnM3iAgOk9F9IUtnXNPus0+MF12y5HKYHAB6IVYr66sLmL3Vi3oEE=", ), - ( # 2 - Sign P2TR Mainnet + ( # 2 - Sign P2TR Mainnet [ BUTTON_ENTER, # Load from camera BUTTON_ENTER, # Confirm to sign message @@ -286,7 +286,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): "3. bc1py0..ler", "H3Z5VioeLaC0rpdI2CflUu34IANgGxum0Rr9lmCziQRfUQv+vFND+nHvxHmJZA0uvLLI1/mTEEHD2bBfN6Y2d6w=", ), - ( # 3 - Sign Legacy Mainnet + ( # 3 - Sign Legacy Mainnet [ BUTTON_ENTER, # Load from camera BUTTON_ENTER, # Confirm to sign message @@ -301,7 +301,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): "3. 1MVGa1..rsJ", "IEpq8rUwSmDxO3GgwaZ75tw3DArtHtLi08kgQuRNXdteMI5KNEAWbpzsY8gRzGkspZN4YFiRu4RNCM+IsKkWys8=", ), - ( # 4 - Sign Nested Segwit Mainnet + ( # 4 - Sign Nested Segwit Mainnet [ BUTTON_ENTER, # Load from camera BUTTON_ENTER, # Confirm to sign message @@ -316,14 +316,14 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): "3. 38Cahk..EAN", "HyH8898c2S6eF8hTPGhRqLC6UQrJrhw/fdguBeFG0cCrOFkbG8TCVURXOgxXaEV93vrFlHyxNGEvL10IcsLtvvI=", ), - ( # - Sign P2WPKH Mainnet - Save to SD card + ( # 5 - Sign P2WPKH Mainnet - Save to SD card [ BUTTON_ENTER, # Confirm load from camera BUTTON_ENTER, # Confirm to sign message BUTTON_ENTER, # Check signature BUTTON_PAGE, # Sign to SD card BUTTON_ENTER, # Confirm sign to SD card - BUTTON_PAGE_PREV, # Move to Go + # BUTTON_PAGE_PREV, # Move to Go BUTTON_ENTER, # Go ], "signmessage m/84h/0h/0h/0/3 ascii:A test message.", @@ -333,6 +333,26 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): "3. bc1qgl..cn3", "IN/4LmcGRaI5sgvBP2mrTXQFvD6FecXd8La03SixPabsb/255ElRGTcXhicT3KFsNJbfQ9te909ZXeKMaqUcaPM=", ), + ( # 6 - Sign P2WPKH Mainnet - Load from and save to SD card + [ + BUTTON_PAGE, # Load from SD card + BUTTON_ENTER, # Confirm load from SD card + BUTTON_ENTER, # Choose file "signmessage.txt" + BUTTON_ENTER, # Confirm to sign message + BUTTON_ENTER, # Confirm to sign message + BUTTON_ENTER, # Check signature + BUTTON_PAGE, # Sign to SD card + BUTTON_ENTER, # Confirm sign to SD card + BUTTON_PAGE_PREV, # Move to Go + BUTTON_ENTER, # Go + ], + None, + "A test message.\nm/84'/0'/0'/0/3\nP2WPKH", + True, # Sign to SD + "A test message.", + "3. bc1qgl..cn3", + "IN/4LmcGRaI5sgvBP2mrTXQFvD6FecXd8La03SixPabsb/255ElRGTcXhicT3KFsNJbfQ9te909ZXeKMaqUcaPM=", + ), ] case_count = 0 for case in cases: @@ -354,15 +374,10 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): ), ) qr_capturer = mocker.spy(QRCodeCapture, "qr_capture_loop") - if case[3]: # Save to SD card - mocker.patch("os.listdir", new=mocker.MagicMock(return_value=[])) - mocker.patch( - "builtins.open", - new=get_mock_open( - { - "/sd/message-signed.sig": case[2], - } - ), + mocker.patch.object(message_signer, "has_sd_card", new=lambda: True) + if case[2]: # Load from SD card + mocker.patch.object( + message_signer, "load_file", return_value=("signmessage.txt", case[2]) ) message_signer.sign_message() From b87bb9f5b5130cb45255daf48eff47bd3146e12e Mon Sep 17 00:00:00 2001 From: Jean Do Date: Tue, 24 Sep 2024 02:01:45 -0400 Subject: [PATCH 19/20] tolerate "H" for hard derivation in message signing --- src/krux/pages/home_pages/sign_message_ui.py | 8 ++++---- tests/pages/home_pages/test_sign_message_ui.py | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/krux/pages/home_pages/sign_message_ui.py b/src/krux/pages/home_pages/sign_message_ui.py index ea44a120..1315bdd6 100644 --- a/src/krux/pages/home_pages/sign_message_ui.py +++ b/src/krux/pages/home_pages/sign_message_ui.py @@ -74,7 +74,7 @@ def _is_valid_derivation_path(self, derivation_path): try: parts = derivation_path.split("/") return parts[0] == "m" and all( - p.endswith("'") or p.endswith("h") or p.isdigit() for p in parts[1:] + p[-1] in ("'hH") or p.isdigit() for p in parts[1:] ) except: return False @@ -85,9 +85,9 @@ def get_network_from_path(self, derivation_path): if len(parts) < 2: return None - if parts[2] in ["0'", "0h"]: + if parts[2] in ["0'", "0h", "0H"]: return NETWORKS[MAIN_TXT] - if parts[2] in ["1'", "1h"]: + if parts[2] in ["1'", "1h", "1H"]: return NETWORKS[TEST_TXT] return None @@ -97,7 +97,7 @@ def get_script_type_from_path(self, derivation_path): if len(parts) < 2: return None - script_from_deriv = int(parts[1].strip("'").strip("h")) + script_from_deriv = int(parts[1].strip("'hH")) for script_name, script_number in SINGLESIG_SCRIPT_PURPOSE.items(): if script_number == script_from_deriv: return script_name diff --git a/tests/pages/home_pages/test_sign_message_ui.py b/tests/pages/home_pages/test_sign_message_ui.py index d183f20f..d33f8e28 100644 --- a/tests/pages/home_pages/test_sign_message_ui.py +++ b/tests/pages/home_pages/test_sign_message_ui.py @@ -249,7 +249,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): BUTTON_ENTER, # Sign to QR code BUTTON_ENTER, # Check QR code ], - "signmessage m/84h/0h/0h/0/3 ascii:a test message with a colon ':' character.", + "signmessage m/84'/0h/0H/0/3 ascii:a test message with a colon ':' character.", None, False, "a test message with a colon ':' character.", @@ -264,7 +264,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): BUTTON_ENTER, # Sign to QR code BUTTON_ENTER, # Check QR code ], - "signmessage m/84h/1h/0h/0/3 ascii:A test message.", + "signmessage m/84'/1h/0H/0/3 ascii:A test message.", None, False, "A test message.", @@ -279,7 +279,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): BUTTON_ENTER, # Sign to QR code BUTTON_ENTER, # Check QR code ], - "signmessage m/86h/0h/0h/0/3 ascii:a test message with a colon ':' character.", + "signmessage m/86'/0h/0H/0/3 ascii:a test message with a colon ':' character.", None, False, "a test message with a colon ':' character.", @@ -294,7 +294,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): BUTTON_ENTER, # Sign to QR code BUTTON_ENTER, # Check QR code ], - "signmessage m/44h/0h/0h/0/3 ascii:a test message with a colon ':' character.", + "signmessage m/44'/0h/0H/0/3 ascii:a test message with a colon ':' character.", None, False, "a test message with a colon ':' character.", @@ -309,7 +309,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): BUTTON_ENTER, # Sign to QR code BUTTON_ENTER, # Check QR code ], - "signmessage m/49h/0h/0h/0/3 ascii:a test message with a colon ':' character.", + "signmessage m/49'/0h/0H/0/3 ascii:a test message with a colon ':' character.", None, False, "a test message with a colon ':' character.", @@ -326,7 +326,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): # BUTTON_PAGE_PREV, # Move to Go BUTTON_ENTER, # Go ], - "signmessage m/84h/0h/0h/0/3 ascii:A test message.", + "signmessage m/84'/0h/0H/0/3 ascii:A test message.", None, True, # Sign to SD "A test message.", @@ -347,7 +347,7 @@ def test_sign_message_at_address(mocker, m5stickv, tdata): BUTTON_ENTER, # Go ], None, - "A test message.\nm/84'/0'/0'/0/3\nP2WPKH", + "A test message.\nm/84'/0h/0H/0/3\nP2WPKH", True, # Sign to SD "A test message.", "3. bc1qgl..cn3", From 223d74f5baff1225ecafa9ad23de265d07067c43 Mon Sep 17 00:00:00 2001 From: odudex Date: Tue, 24 Sep 2024 11:43:54 -0300 Subject: [PATCH 20/20] update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d6fb608..6b7fe59e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,9 @@ When generating new mnemonics through dice rolls or camera images, you can now m ### Support for Scanning Various Binary Grid Formats In addition to TinySeed, the camera can now scan and load mnemonics from equivalent formats, such as OneKey KeyTag, or even generic binary grids, like spreadsheets with colored, squared cells. +### Message Signing Using SD cards +Recently released in Sparrow, the SD card message signing workflow is now supported. + ### Generate Double Mnemonics from Camera When generating a new mnemonic using the camera, users can now choose to create a "Double Mnemonic," in addition to the standard 12 and 24-word options. This feature generates a 24-word mnemonic that, when split in half, forms two valid 12-word mnemonics.