Compare commits

...

296 Commits
v2.20 ... v2.21

Author SHA1 Message Date
Ben V. Brown
5d96470e45 Merge pull request #1653 from Ralim/dev
Release 2.21
2023-04-09 19:51:01 +10:00
Ben V. Brown
1a087ca624 Merge branch 'master' into dev 2023-04-09 19:47:50 +10:00
discip
422b5b7563 unifying (#1657) 2023-04-07 23:42:14 +00:00
discip
38625b2f7e Merge pull request #1658 from Ralim/discip-patch-1
correcting MAX_POWER_LIMIT to 120
2023-04-08 01:36:12 +02:00
discip
cd592c94af Merge pull request #1654 from federicodilo/patch-5
Update translation_IT.json
2023-04-08 01:35:24 +02:00
discip
cc180f7d1a correcting MAX_POWER_LIMIT to 120 2023-04-08 01:19:07 +02:00
Federico Di Lorenzo
00a36f0fa0 Update translation_IT.json 2023-04-07 19:20:23 +02:00
Federico Di Lorenzo
0b5a617f8f Update translation_IT.json 2023-04-07 19:18:45 +02:00
Federico Di Lorenzo
25ccfc2204 Update translation_IT.json 2023-04-07 12:02:48 +02:00
Ben V. Brown
75c2589a6d Update version.h 2023-04-07 13:42:41 +10:00
River M
e5b1a364f3 fix typo on run command alignment (#1652)
* fix: edit button mkdocs

* fix: edit button on mkdocs

- should open edit page for  dev branch and requires  login if person is not already logged into github

* add favicons for the  mkdocs

* Delete android-chrome-192x192.png

* Delete android-chrome-512x512.png

* Delete favicon-16x16.png

* Delete favicon.ico

* Delete favicon-32x32.png

* Delete apple-touch-icon.png

* Create temp

* add favicon for mkdocs

* mkdocs - highlighting for source code

- Enables highlighting of source code in code blocks
- allow highlighting for other languages that are not default 23
- add favicon and custom location (until  folder names are changed to /docs  and /doc/img

* Delete temp

* Add files via upload

* organize mkdocs

* add mkdocs extensions & plugins

* remove favicon

* Delete favicon.ico

* Delete font-license.txt

* fix mkdocs for  markdown extensions

fixed the name since  this is not a materials theme.

* add plugins  to mkdocs

* add mkdocs git-revision-date

displays the last revision date of the current page of the documentation based on Git. this could be displayed at the bottom of each page.

* add plugins for MKdocs

* closes ticket  https://github.com/Ralim/IronOS/issues/1649

* clean up mkdocs plugins

break up code line as it's getting too long with more plugins.

* fix pip install comand

* fix typo

---------

Co-authored-by: Ben V. Brown <5425387+Ralim@users.noreply.github.com>
2023-04-07 13:04:43 +10:00
River M
da52357d87 add plugins for mkdocs features (#1650) 2023-04-07 12:47:06 +10:00
River M
8c90d3dee2 fix mkdocs markdown extensions (#1648)
* fix: edit button mkdocs

* fix: edit button on mkdocs

- should open edit page for  dev branch and requires  login if person is not already logged into github

* add favicons for the  mkdocs

* Delete android-chrome-192x192.png

* Delete android-chrome-512x512.png

* Delete favicon-16x16.png

* Delete favicon.ico

* Delete favicon-32x32.png

* Delete apple-touch-icon.png

* Create temp

* add favicon for mkdocs

* mkdocs - highlighting for source code

- Enables highlighting of source code in code blocks
- allow highlighting for other languages that are not default 23
- add favicon and custom location (until  folder names are changed to /docs  and /doc/img

* Delete temp

* Add files via upload

* organize mkdocs

* add mkdocs extensions & plugins

* remove favicon

* Delete favicon.ico

* Delete font-license.txt

* fix mkdocs for  markdown extensions

fixed the name since  this is not a materials theme.

* add plugins  to mkdocs

* add mkdocs git-revision-date

displays the last revision date of the current page of the documentation based on Git. this could be displayed at the bottom of each page.
2023-04-06 07:13:37 +10:00
River M
84095a80e8 fix Mkdocs edit button (#1642)
* fix: edit button mkdocs

* fix: edit button on mkdocs

- should open edit page for  dev branch and requires  login if person is not already logged into github

* add favicons for the  mkdocs

* Delete android-chrome-192x192.png

* Delete android-chrome-512x512.png

* Delete favicon-16x16.png

* Delete favicon.ico

* Delete favicon-32x32.png

* Delete apple-touch-icon.png

* Create temp

* add favicon for mkdocs

* mkdocs - highlighting for source code

- Enables highlighting of source code in code blocks
- allow highlighting for other languages that are not default 23
- add favicon and custom location (until  folder names are changed to /docs  and /doc/img

* Delete temp

* Add files via upload

* organize mkdocs

* add mkdocs extensions & plugins

* remove favicon

* Delete favicon.ico

* Delete font-license.txt
2023-04-04 16:19:17 +10:00
discip
ab3f5bd695 Merge pull request #1641 from discip/power_limit_display_fix
fixing power limit display
2023-04-04 01:00:16 +02:00
discip
a6926519d1 Update settingsGUI.cpp 2023-04-02 01:14:46 +02:00
Samuelrmlink
445069c92b USBPDDebug: Check whether VPDO is EPR or PPS (#1600)
* USBPDDebug: Check whether VPDO is EPR or PPS.

* USBPDDebug - Allow trailing zeros after a decimal point.

---------

Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2023-04-02 00:14:45 +11:00
discip
e5e77aa475 Merge pull request #1616 from Ralim/discip-patch-1
implementing #1594
2023-04-01 05:24:33 +02:00
Ben V. Brown
0bbf8fb4c6 Merge branch 'dev' into discip-patch-1 2023-04-01 14:20:58 +11:00
Ben V. Brown
f6975b0aa2 Update ble_handlers.cpp 2023-04-01 14:20:10 +11:00
slycordinator
dcfb6507a6 Added Variables to Dockerfile (#1597)
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
Co-authored-by: Ben V. Brown <5425387+Ralim@users.noreply.github.com>
2023-04-01 03:05:11 +00:00
discip
45c00dc767 Merge branch 'dev' into discip-patch-1 2023-03-31 22:59:31 +02:00
Ben V. Brown
e13f118788 Change to 128bit UUID's (#1608)
* Change to 128bit UUID's

* Make attrs const for BLE

* Forcefully set docker project name

* Cleaner UUIDS

* Cant use const attrs

* Adjust ram sections

* Update UUID decode

* Settings uuids

* Fix missed decoder for writing

---------

Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2023-03-29 12:45:09 +11:00
discip
f937c8d7bd Merge pull request #1637 from StevenSeifried/translation_DE_update
Update translation_DE.json
2023-03-26 23:07:23 +02:00
Steven Seifried
9f7d7835ec Updated translation_DE.json 2023-03-26 22:56:37 +02:00
discip
fe9043fddf Merge branch 'dev' into discip-patch-1 2023-03-26 13:16:56 +02:00
Ben V. Brown
79187c3f5e Forcefully set docker project name 2023-03-26 12:48:30 +11:00
discip
3a4638ef42 Merge branch 'dev' into discip-patch-1 2023-03-26 01:47:47 +01:00
discip
fdff919508 Merge pull request #1632 from discip/fixing-translation_RO-using-diacritics
Update translation_RO.json
2023-03-26 01:45:08 +01:00
discip
9c8abbdfc2 Readjusting brightness (Pinecil v2) (#1622) 2023-03-26 11:43:56 +11:00
discip
744dd6b898 Merge branch 'dev' into discip-patch-1 2023-03-26 00:48:41 +01:00
discip
c192792b8f Merge branch 'dev' into fixing-translation_RO-using-diacritics 2023-03-26 00:47:32 +01:00
discip
070064e59e adapting 10 °C > 50 °F (#1636)
* Update configuration.h

* Update configuration.h

* Update configuration.h
2023-03-25 23:46:44 +00:00
discip
b41c44a191 Merge branch 'Ralim:dev' into fixing-translation_RO-using-diacritics 2023-03-24 23:04:19 +01:00
Vladimir
6177d4e2a4 Add building steps for Pinecil V2 to Development.md (#1634) 2023-03-24 13:19:52 +00:00
Vladimir
11bad84ce7 Add FW version to BLE characteristic (#1633)
Implements #1610
2023-03-24 19:15:05 +11:00
discip
2a27c38999 Update translation_RO.json 2023-03-21 06:48:21 +01:00
discip
d8b6fac176 Merge branch 'dev' into discip-patch-1 2023-03-20 22:12:50 +01:00
discip
0384288a37 Update translation_RO.json 2023-03-20 21:56:58 +01:00
discip
ccbee21872 Merge pull request #1631 from patridge/patch-1
Update settings icon description
2023-03-20 21:36:06 +01:00
Adam Patridge
9247075458 Fix Markdown link typo 2023-03-20 11:30:26 -07:00
Adam Patridge
d834a3395c Update settings icon description 2023-03-20 11:23:24 -07:00
discip
bed400e527 Merge branch 'dev' into discip-patch-1 2023-03-17 22:37:16 +01:00
discip
2a2acfe649 Merge pull request #1628 from mobycl1ck/patch-1
Update translation_RO.json
2023-03-17 22:35:44 +01:00
discip
e2456c3ac1 Apply suggestions from code review 2023-03-17 22:32:38 +01:00
mobycl1ck
b4900daecc Update translation_RO.json 2023-03-17 17:41:18 +01:00
discip
60f0437bf8 Merge branch 'dev' into discip-patch-1 2023-03-15 20:05:11 +01:00
discip
5a75cd077c Merge pull request #1627 from G-Pereira/patch-1
Update translation_PT.json
2023-03-15 20:03:44 +01:00
Gonçalo Pereira
87115b274d Update translation_PT.json 2023-03-15 13:26:47 +00:00
discip
cc2b072b4a Merge pull request #1626 from Ralim/discip-patch-2
Update translation_EN.json
2023-03-15 08:42:29 +01:00
discip
91f6c42c4a Update translation_EN.json 2023-03-15 00:19:01 +01:00
discip
c7bdbbb4b5 Merge branch 'dev' into discip-patch-1 2023-03-14 22:35:47 +01:00
discip
0a4560efac Merge pull request #1625 from River-Mochi/dev
Corrected value in °F to match value in °C
2023-03-14 22:35:07 +01:00
discip
656f1a3275 Merge branch 'dev' into discip-patch-1 2023-03-14 22:24:47 +01:00
discip
b32d5abda4 Merge branch 'dev' into dev 2023-03-14 22:24:02 +01:00
discip
72c1e1906d Merge pull request #1612 from ViPeR5000/dev
update translation_pt.jason
2023-03-14 22:23:49 +01:00
discip
36d5c05c8d Merge branch 'dev' into discip-patch-1 2023-03-14 22:21:52 +01:00
discip
2863b9321b Merge branch 'dev' into dev 2023-03-14 22:21:01 +01:00
discip
f0d1cdb3ff Merge branch 'dev' into dev 2023-03-14 22:20:37 +01:00
discip
ecef4002c4 Apply suggestions from code review 2023-03-14 22:19:54 +01:00
discip
e247010055 Merge pull request #1612 from ViPeR5000/dev
update translation_pt.jason
2023-03-14 22:19:00 +01:00
discip
e5c2eb8bbc Apply suggestions from code review 2023-03-14 22:08:01 +01:00
River M
8ea8632bb9 Update configuration.h 2023-03-14 14:05:45 -07:00
discip
53f74f3490 Merge branch 'dev' into dev 2023-03-13 23:27:26 +01:00
discip
3e3d0bbb84 Merge branch 'dev' into discip-patch-1 2023-03-13 23:27:01 +01:00
discip
ccc44bd217 Merge pull request #1623 from Devnol/dev
Add new EL translation strings
2023-03-13 22:57:55 +01:00
Panos Koutsoumanis
3371d001fc Update Translations/translation_EL.json
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2023-03-13 23:55:28 +02:00
Panos Koutsoumanis
9014f16ff3 Update Translations/translation_EL.json
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2023-03-13 23:55:18 +02:00
Devnol
3ab2ec9f84 Add new EL translation strings
Signed-off-by: Devnol <pgkoutsoumanis@gmail.com>
2023-03-13 23:34:55 +02:00
discip
2319eebe65 Update ble_handlers.cpp 2023-03-13 18:38:16 +01:00
discip
495954fd1c Merge branch 'dev' into dev 2023-03-11 15:30:31 +01:00
discip
1d47a85598 Merge branch 'dev' into discip-patch-1 2023-03-11 15:14:41 +01:00
discip
e12903ec28 Update ble_handlers.cpp 2023-03-11 13:56:47 +01:00
Marek Kraus
73be260b98 Merge pull request #1617 from StevenSeifried/translation_DE
Updated translation_DE.json
2023-03-11 13:47:21 +01:00
discip
dc47eb4221 Update translation_DE.json
unified translation
2023-03-11 13:44:23 +01:00
Steven Seifried
8a4a9cfc07 Updated translation_DE.json 2023-03-11 09:58:53 +01:00
Marek Kraus
e5aa51290d Merge pull request #1611 from DjordjeMandic/patch-1
Update README.md to fix small typo
2023-03-11 08:01:31 +01:00
Djordje
631b7ed7fc Update README.md
Fix small typo from #1588
2023-03-11 01:47:01 +01:00
discip
6174d80586 Update ble_handlers.cpp 2023-03-11 01:45:44 +01:00
discip
d88eed4e18 Update ble_handlers.cpp
Tried to implement #1594
2023-03-11 01:26:35 +01:00
Rui Melo
b021c85fdc update translation_pt.jason
update translation_pt.jason
2023-03-08 14:09:05 +00:00
Foxie The Dev
5022eca8af Fix README badges (#1607)
Fix badge image sources, and their target link locations to be up to date and correct.
2023-03-05 12:28:54 +11:00
River M
344c1a649d Update documents, esp. Pinecil V2 instructions (#1604)
* Update README.md

* Update Pinecil V2.md

* Update Pinecil V2.md

update very outdated instructions on how to update Pinecil V2.

* Update Pinecil V1.md

* Update Pinecil V2.md

* Update Pinecil V2.md
2023-03-02 17:58:46 +11:00
Ben V. Brown
6fc27e1544 Merge pull request #1596 from dmitrygribenchuk/translation
update translation
2023-02-24 07:51:30 +11:00
Dmitry Gribenchuk
682662d8e3 update translation_BE.json translation_PL.json translation_RU.json translation_UK.json 2023-02-23 21:52:20 +02:00
discip
68d18a4fb0 Merge pull request #1593 from Ralim/discip-patch-1
minor formatting fix
2023-02-23 01:20:31 +01:00
discip
36f5a14920 minor formatting fix 2023-02-23 01:19:28 +01:00
Ben V. Brown
8bff89ac02 Merge pull request #1592 from NeilHanlon/ble-fixes
Fix updating certain settings over BLE
2023-02-23 09:11:09 +11:00
Neil Hanlon
2a244df7b1 Fix typo in BLE settings mapping 2023-02-22 01:28:04 -05:00
Neil Hanlon
a76049acde Fix bug in setSettingsValue for values constrained between 0 and 1
Fixed a bug in the `setSettingValue` function that caused valid values
within the allowed range to be incorrectly constrained to the minimum
value, when the default value of the option was zero and the allowed
range was from zero to one. The bug was fixed by updating the order of
the `if` statements in the function to ensure that the range check is
done before the value is set. This ensures that valid values within the
range are correctly retained, while out-of-range values are still
constrained to the allowed range.
2023-02-22 01:26:06 -05:00
Neil Hanlon
b1658ec6ee Handle updating certain settings updates over BLE - Fixes #1560 2023-02-22 01:25:49 -05:00
Ben V. Brown
bb151f2dc5 Merge pull request #1588 from DjordjeMandic/patch-2
Update README.md to explain why TS80 is not recommended
2023-02-21 14:55:49 +11:00
Djordje
85b72ec9f8 Update README.md
Add explanation why TS80 is no longer recommended
2023-02-21 03:06:22 +01:00
Ben V. Brown
f29ec5cd99 Merge pull request #1582 from Samuelrmlink/PPSctrl
Added VPDO option for disabling PPS/EPR PDOs.
2023-02-20 11:53:15 +11:00
Samuelrmlink
669e3819e8 Add BLE characteristic - PD VPDOs Enabled 2023-02-19 16:59:26 -06:00
Samuelrmlink
20b4f80255 Attempt to reduce translation size.
TS80P build failed Github checks.
2023-02-19 16:34:29 -06:00
Samuel Hedrick
cd21b49e8c Added BLE characteristic - PD VPDOs Enabled 2023-02-19 16:22:46 -06:00
Samuel Hedrick
6729caa586 Added English strings to other language .json files. 2023-02-19 16:03:49 -06:00
Samuel Hedrick
9892dd0423 Added VPDO option for disabling PPS/EPR PDOs. 2023-02-19 14:13:50 -06:00
Ben V. Brown
eb5d6ea9fd Make BLE name more unique 2023-02-18 18:16:44 +11:00
Ben V. Brown
fe159ba747 Merge pull request #1572 from Samuelrmlink/dev
Fixed USB-PD policy bug.
2023-02-16 16:11:56 +11:00
Samuel Hedrick
5265d7b1ac Fixed USB-PD policy bug.
Some PPS chargers that advertise 7 PDOs are affected.
This includes the Samsung EP-TA845 - likely others as well.
2023-02-15 20:50:23 -06:00
Ben V. Brown
0dd0dc4983 Merge pull request #1567 from Ralim/ble-settings-reset
BLE Settings rename + Unique Name
2023-02-12 11:06:45 +11:00
Ben V. Brown
4a2d59b01c Added 37th option 2023-02-11 22:16:17 +11:00
Ben V. Brown
07cad37bcc Move extras to end of settings 2023-02-11 22:14:49 +11:00
Ben V. Brown
39148d11ed Shift settings to be 0 based; and add reset command 2023-02-11 22:09:26 +11:00
Ben V. Brown
5aacbeaecc Add unqiue id to BLE name 2023-02-11 20:39:41 +11:00
Ben V. Brown
c384194b7f Silence warnings 2023-02-11 19:54:30 +11:00
Ben V. Brown
ac1934f8de Fixup some of the includes for the ble lib 2023-02-11 19:47:58 +11:00
Ben V. Brown
662829ebd9 Merge pull request #1565 from federicodilo/patch-4
Small update in translation_IT.json
2023-02-07 20:06:17 +11:00
Federico Di Lorenzo
daaa9549cf Update translation_IT.json 2023-02-07 09:54:38 +01:00
Ben V. Brown
ee6ae1f3f1 Merge pull request #1557 from cohaolain/ble-adv-mods
Use the scan response to advertise some of the available service UUID…
2023-02-05 12:59:24 +11:00
Ciarán Ó hAoláin
b5f78bbeda Use the scan response to advertise some of the available service UUIDs rather than just repeating the device name 2023-02-05 00:41:57 +00:00
Alexandrebafoil
e23c361a57 Update translation_FR.json (#1556)
Addition of the missing French translations
2023-02-05 08:46:26 +11:00
Thomas White
8e7e58018a expand bulk data to match individual value data (#1555)
* track and return Operating mode with BLE

* move global variable to fix build on other platforms

* formatting

* expand bulk data to match individual value data

* formatting

* fix accidental single line if

---------

Co-authored-by: Ben V. Brown <5425387+Ralim@users.noreply.github.com>
2023-02-05 00:04:51 +11:00
Thomas White
9802a622d5 Track and return Operating Mode with BLE (#1553)
Track and return Operating Mode with BLE
2023-02-04 09:33:43 +11:00
Ben V. Brown
e19e1a066d Use alpine packaged black
Closes #1554
2023-02-04 09:30:05 +11:00
Ben V. Brown
bb76dfeff6 Merge pull request #1535 from Ralim/testing-fix-for-timer-slot-miss
Change timing scheduler to only run main timer once ADC is done
2023-01-30 17:33:32 +11:00
Ben V. Brown
4ddc9a28f9 Merge branch 'dev' into testing-fix-for-timer-slot-miss 2023-01-30 17:28:03 +11:00
Ben V. Brown
0b6c5ff837 👋 Goodbye Weblate
Dropping weblate for now as its just not reliable.
2023-01-30 17:26:41 +11:00
Ben V. Brown
586fd3b288 Merge pull request #1548 from discip/fix_languages
fixing languages & reverting unwanted weblate changes
2023-01-30 17:11:06 +11:00
discip
67df8c71ba Update translation_EN.json 2023-01-28 14:15:18 +01:00
discip
ce7e228fe5 Update translation_DE.json 2023-01-28 14:14:56 +01:00
discip
760d8c83cb Update translation_JA_JP.json 2023-01-28 14:14:23 +01:00
discip
36fbf760cb Update translation_ES.json 2023-01-28 14:13:19 +01:00
discip
af2b88cb59 fixing languages & reverting unwanted weblate changes 2023-01-28 02:17:23 +01:00
Ben V. Brown
07d85c8211 Merge pull request #1543 from discip/patch-1
simplification
2023-01-25 06:53:28 +11:00
discip
fc10a24a89 simplification 2023-01-24 18:22:50 +01:00
Ben V. Brown
939efbbf4f Merge branch 'testing-fix-for-timer-slot-miss' of ssh://github.com/Ralim/IronOS into testing-fix-for-timer-slot-miss 2023-01-24 18:57:00 +11:00
Ben V. Brown
7e103ccf2d Wait for full ADC Burst 2023-01-24 18:56:49 +11:00
Ben V. Brown
9e967b03d7 Merge pull request #1542 from Ralim/translations
Merging newest translations into dev
2023-01-24 18:41:52 +11:00
Ralim
0559e0f90a Translated using Weblate (Slovenian)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/sl/
2023-01-24 08:37:16 +01:00
Ralim
bd5d341d2f Translated using Weblate (Hungarian)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/hu/
2023-01-24 08:22:19 +01:00
Ben V. Brown
a84df7b94e Merge branch 'dev' into testing-fix-for-timer-slot-miss 2023-01-24 18:15:45 +11:00
Ben V. Brown
f3b4abf434 Update IRQ.cpp 2023-01-24 18:11:44 +11:00
discip
b5179099a7 Translated using Weblate (Chinese (Traditional))
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/zh_Hant/
2023-01-24 02:30:11 +01:00
discip
b4ee3ec853 Translated using Weblate (Chinese (Simplified))
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/zh_Hans/
2023-01-24 02:30:11 +01:00
discip
7c8f80bb3b Translated using Weblate (Yue (yue_HK))
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/yue_HK/
2023-01-24 02:30:11 +01:00
discip
3ca35c1b4a Translated using Weblate (Vietnamese)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/vi/
2023-01-24 02:30:11 +01:00
discip
51553e3068 Translated using Weblate (Turkish)
Currently translated at 100.0% (117 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/tr/
2023-01-24 02:30:11 +01:00
discip
a3a1000fdf Translated using Weblate (Swedish)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/sv/
2023-01-24 02:30:11 +01:00
discip
44b802d78b Translated using Weblate (Serbian (latin))
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/sr_Latn/
2023-01-24 02:30:11 +01:00
discip
2546b8851f Translated using Weblate (Serbian (cyrillic))
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/sr_Cyrl/
2023-01-24 02:30:11 +01:00
discip
2e1cdf7acf Translated using Weblate (Slovenian)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/sl/
2023-01-24 02:30:11 +01:00
discip
2e01845dc1 Translated using Weblate (Slovak)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/sk/
2023-01-24 02:30:11 +01:00
discip
29d97721a9 Translated using Weblate (Romanian)
Currently translated at 100.0% (117 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/ro/
2023-01-24 02:30:11 +01:00
discip
efbfbbe5f9 Translated using Weblate (Portuguese)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/pt/
2023-01-24 02:30:11 +01:00
discip
5830587c81 Translated using Weblate (Polish)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/pl/
2023-01-24 02:30:11 +01:00
discip
eb8ebb1d48 Translated using Weblate (Dutch (Belgium))
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/nl_BE/
2023-01-24 02:30:11 +01:00
discip
295d06f3a3 Translated using Weblate (Dutch)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/nl/
2023-01-24 02:30:11 +01:00
discip
d5956bfdea Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.4% (114 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/nb_NO/
2023-01-24 02:30:11 +01:00
discip
afa9925462 Translated using Weblate (Lithuanian)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/lt/
2023-01-24 02:30:11 +01:00
discip
809498dc8e Translated using Weblate (French)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/fr/
2023-01-24 02:30:11 +01:00
discip
c103f7677f Translated using Weblate (Finnish)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/fi/
2023-01-24 02:30:11 +01:00
discip
406cc10a00 Translated using Weblate (Greek)
Currently translated at 100.0% (117 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/el/
2023-01-24 02:30:11 +01:00
discip
95920df373 Translated using Weblate (Danish)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/da/
2023-01-24 02:30:11 +01:00
discip
f9fb14a4e1 Translated using Weblate (Czech)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/cs/
2023-01-24 02:30:11 +01:00
discip
6ba613a195 Translated using Weblate (Bulgarian)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/bg/
2023-01-24 02:30:10 +01:00
discip
5cda43f7cc Translated using Weblate (Ukrainian)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/uk/
2023-01-24 02:30:10 +01:00
discip
8a970907f3 Translated using Weblate (Turkish)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/tr/
2023-01-24 02:30:10 +01:00
discip
a9b6737acc Translated using Weblate (Russian)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/ru/
2023-01-24 02:30:10 +01:00
discip
81fec64393 Translated using Weblate (Polish)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/pl/
2023-01-24 02:30:10 +01:00
discip
5cd99cea42 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.5% (113 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/nb_NO/
2023-01-24 02:30:10 +01:00
discip
2920865cad Translated using Weblate (Italian)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/it/
2023-01-24 02:30:10 +01:00
discip
2770c86c83 Translated using Weblate (Hungarian)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/hu/
2023-01-24 02:30:10 +01:00
discip
f5921d1afc Translated using Weblate (Croatian)
Currently translated at 100.0% (117 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/hr/
2023-01-24 02:30:10 +01:00
discip
8956e3fd3a Translated using Weblate (Spanish)
Currently translated at 100.0% (117 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/es/
2023-01-24 02:30:10 +01:00
discip
88c091b7ec Translated using Weblate (German)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/de/
2023-01-24 02:30:10 +01:00
discip
0d3cbf0475 Translated using Weblate (Belarusian)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/be/
2023-01-24 02:30:10 +01:00
discip
8e84ecbcfa Translated using Weblate (Spanish)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/es/
2023-01-24 02:30:10 +01:00
discip
e4e6590535 Translated using Weblate (English)
Currently translated at 94.0% (110 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/en/
2023-01-24 02:30:10 +01:00
Ben V. Brown
b697647773 Merge pull request #1536 from Ralim/wattage-estimator-rollover
Drop decimal when > 99.9W
2023-01-24 12:29:58 +11:00
Ben V. Brown
786d20284e Merge branch 'dev' into wattage-estimator-rollover 2023-01-24 11:10:21 +11:00
Ben V. Brown
fcbbe6d924 Merge pull request #1540 from Ralim/translations
Merging newest translations into dev
2023-01-24 11:09:46 +11:00
Ben V. Brown
6bd3378c6a Merge pull request #1539 from federicodilo/patch-3
Update translation_IT.json
2023-01-24 11:08:32 +11:00
Ralim
7599fece75 Translated using Weblate (English)
Currently translated at 94.0% (110 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/en/
2023-01-24 01:06:47 +01:00
gallegonovato
a63e09fbc6 Translated using Weblate (Spanish)
Currently translated at 99.1% (116 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/es/
2023-01-24 01:01:36 +01:00
discip
eea644a37a Translated using Weblate (English)
Currently translated at 94.0% (110 of 117 strings)

Translation: IronOS/Main Firmware
Translate-URL: https://hosted.weblate.org/projects/ironos/main-firmware/en/
2023-01-24 01:01:35 +01:00
Federico Di Lorenzo
caa3df9165 Update translation_IT.json 2023-01-23 18:12:09 +01:00
Ben V. Brown
cae3ac93fd Merge pull request #1537 from Ralim/Settings-Toggle-For-BLE
Settings toggle for ble
2023-01-23 21:51:05 +11:00
Ben V. Brown
26f71b2c2f Add BLE Enabled to advanced menu 2023-01-23 18:05:59 +11:00
Ben V. Brown
07a5d45e17 Translation updates for BLEEnabled 2023-01-23 18:01:43 +11:00
Ben V. Brown
82499f4e83 Setting setup for BLEEnabled 2023-01-23 18:01:35 +11:00
Ben V. Brown
14948255e3 Create setting entry for BLE 2023-01-23 17:54:57 +11:00
Ben V. Brown
c2d69f91a6 Drop decimal when > 99.9W 2023-01-23 17:49:40 +11:00
Ben V. Brown
7ede4d2d44 Update weblate.yml 2023-01-23 17:44:52 +11:00
Ben V. Brown
5fe019f40b Change timing scheduler to only run main timer once ADC is done 2023-01-23 17:40:06 +11:00
Ben V. Brown
5faa092eb6 Merge pull request #1434 from Ralim/BLE
Basic BLE support for Pinecil V2
2023-01-23 17:25:34 +11:00
Ben V. Brown
4e37c7bea7 Merge branch 'dev' into BLE 2023-01-23 17:22:06 +11:00
Ben V. Brown
f28ca72f7c Merge pull request #1533 from discip/patch-1
Just a small typo correction and a suggestion for clearer wording.
2023-01-23 09:03:15 +11:00
discip
ef5649a022 Just a small typo correction and a suggestion for clearer wording. 2023-01-22 22:56:19 +01:00
Ben V. Brown
bf277e573f Merge pull request #1493 from Ralim/new-translations-format
New translations format
2023-01-23 08:48:26 +11:00
Ben V. Brown
c5d92efa60 Merge branch 'dev' into BLE 2023-01-22 22:35:51 +11:00
Ben V. Brown
d1da7e75d2 Fix missing definition for Reset message 2023-01-22 22:33:18 +11:00
Ben V. Brown
1c8a614100 Import all upgraded translations 2023-01-22 22:20:17 +11:00
Ben V. Brown
05628daba2 Merge branch 'dev' into new-translations-format 2023-01-22 22:05:13 +11:00
Ben V. Brown
f9ce1ef046 Fix stupid typo 2023-01-22 22:01:08 +11:00
Erkan Colak
cc37899b1b Expanded the build script to build customizable multiple languages and models firmwares (#1520)
* Expanded the build script to build customizable multiple languages and models firmwares.

* Fixed build pipeline uses lower cases  for Pinecil* devices

* fixed shellcheck suggestions reported by reviewdog

fixed shellcheck suggestions reported by reviewdog
2023-01-17 08:12:30 +11:00
Purdea Andrei
b96dbb2377 Miniware+Pinecil: fix number of items in uVtoDegC array. This only af… (#1531)
Miniware+Pinecil: fix number of items in uVtoDegC array. This only affects us in case we go above 500degC, in which case we'll be reading invalid memory
2023-01-16 19:30:37 +11:00
Purdea Andrei
e9f63cdfd8 Fix the calibrate voltage screen, when it exits, it used to overlay t… (#1530)
Fix the calibrate voltage screen, when it exits, it used to overlay the calibrated divider over the previous displayed image, causing confusion. Now it clears the screen before printing the calibrated value
2023-01-16 13:54:34 +11:00
discip
7f43562a4f Reboot after reset (#1513) 2023-01-06 15:06:03 +11:00
Ben V. Brown
706b3246a1 Test better reboots 2023-01-03 18:46:26 +11:00
Ben V. Brown
77f213e63c Decompress both fonts correctly 2023-01-03 17:26:50 +11:00
discip
7fd7873b62 updated Menu.md (#1512)
Update Menu.md
2022-12-31 22:54:45 +11:00
discip
1b84097e07 fixes cooldown flashing (#1515)
* unify rate of cooldown flashing

* adjusted flashing threshold

* revert adjusted flashing threshold

* revert follow-up
2022-12-31 22:41:00 +11:00
Ben V. Brown
3e2da605ab Merge pull request #1511 from dmitrygribenchuk/translations
update translation
2022-12-30 21:05:16 +11:00
Dmitry Gribenchuk
8b556ea068 update translation_BE.json translation_PL.json 2022-12-30 09:38:51 +02:00
Ben V. Brown
f42627edd9 Merge pull request #1509 from dmitrygribenchuk/translations
update translation
2022-12-30 10:03:13 +11:00
Dmitry Gribenchuk
81e43ee3c8 update translation_BE.json translation_PL.json translation_RU.json 2022-12-29 11:12:37 +02:00
Ben V. Brown
bff3da4e8d Merge pull request #1507 from discip/boost_off
makes the 'boost mode' deactivatable (as originally intended)
2022-12-29 13:31:14 +11:00
discip
02a495d44b Update Settings.cpp 2022-12-29 02:36:43 +01:00
Ben V. Brown
0d65cd14fb Merge pull request #1502 from discip/removed_unused_lines
Remove unused lines in translation files
2022-12-29 08:31:07 +11:00
discip
7a30b04347 Update translation_RU.json 2022-12-28 15:15:13 +01:00
discip
2fd1bb6baf Merge branch 'dev' into removed_unused_lines 2022-12-28 15:05:19 +01:00
Ben V. Brown
c9bfaba909 Merge pull request #1506 from Ralim/master
Master
2022-12-28 22:40:45 +11:00
Ben V. Brown
dc35fbc4ad Merge pull request #1500 from JugglerLKR/master
Update translation_RU.json
2022-12-28 21:04:50 +11:00
discip
f27a849921 Merge branch 'dev' into removed_unused_lines 2022-12-28 09:22:44 +01:00
Ben V. Brown
7c8664fb22 Merge branch 'dev' into BLE 2022-12-28 14:24:49 +11:00
Ben V. Brown
45a4ff90aa Merge pull request #1499 from jonnieZG/master
Updated translation_HR.json
2022-12-28 14:24:33 +11:00
Ben V. Brown
68fe8c9f2f Merge branch 'dev' into master 2022-12-28 13:17:00 +11:00
Ben V. Brown
7383494dde Merge pull request #1504 from WillCap397/patch-1
Update translation_IT.json
2022-12-28 11:16:26 +11:00
Ben V. Brown
d16dce06c0 Merge branch 'dev' into patch-1 2022-12-28 11:14:41 +11:00
Ben V. Brown
6523c1ed44 Merge pull request #1505 from lalamper/HU_translate
Update translation_HU.json
2022-12-28 11:13:42 +11:00
Lalamper
dee4884252 translate missing parts 2022-12-27 22:47:25 +01:00
WillCap397
a0764c08a5 Update translation_IT.json
fixed a typo in the first lines, changed "impostazioni iniziali" with "impostazioni di default", replaced "Voltaggio" with "Tensione" since Voltaggio is considered incorrect by most technicians an is likely an "italianization" of Voltage instead of a proper translation
2022-12-24 22:39:46 +01:00
discip
d68d3f8a1f Update translation_EN.json 2022-12-16 23:28:29 +01:00
discip
325ac498e8 removed some unused lines 6 reordered others 2022-12-16 23:14:38 +01:00
JugglerLKR
f4320e9565 Update translation_RU.json
updated some translation. new missing desc "" translation. CJC calibration translation
2022-12-14 15:42:55 +03:00
discip
f4bcfed7bd Add files via upload 2022-12-14 11:35:49 +01:00
discip
80d7423278 Add files via upload 2022-12-14 02:54:46 +01:00
jonnieZG
f6b4efbee7 Update translation_HR.json
Updated Croatian translations
2022-12-13 13:21:32 +01:00
Ben V. Brown
14daf701e8 Merge pull request #1416 from Ralim/dev
Release 2.20
2022-12-13 22:38:25 +11:00
Ben V. Brown
afb7628983 FIXUP! Bugfix auto fontstyle 2022-12-11 13:52:43 +11:00
Ben V. Brown
c5d1637fec Update README.md 2022-12-08 07:16:32 +11:00
Ben V. Brown
fba69977d8 Update README.md 2022-12-07 18:46:36 +11:00
Ben V. Brown
e9cf66734f Update make_translation.py 2022-12-07 18:42:42 +11:00
Ben V. Brown
ec675da1d6 Update Translation.md 2022-12-07 18:37:40 +11:00
Ben V. Brown
6abdc70c99 Update make_translation.py 2022-12-07 18:30:20 +11:00
Ben V. Brown
80ed1c42ae Remove unused descriptions 2022-12-05 22:33:57 +11:00
Ben V. Brown
98cbce6552 Format 2022-12-05 22:29:10 +11:00
Ben V. Brown
e9a28c3671 Unify more of the font generation logic between both paths and coalesce all fonts 2022-12-05 22:26:03 +11:00
Ben V. Brown
79eee9fc6c Migrate translations to new format 2022-12-05 22:26:03 +11:00
Ben V. Brown
2a6dd45d56 Bugfix: Correct binning of symbols 2022-12-05 22:26:03 +11:00
Ben V. Brown
cc21dac1dc Create migrate.py 2022-12-05 22:26:03 +11:00
Ben V. Brown
fdc31467aa Use size encoded symbols
Update make_translation.py
2022-12-05 22:26:03 +11:00
Ben V. Brown
800f2ba9e6 Expose double encoded symbols 2022-12-04 21:28:50 +11:00
Ben V. Brown
fa42f0aa61 Mild progress on refactoring 2022-12-04 20:49:45 +11:00
Ben V. Brown
ab12fbaf71 Always big text for description 2022-12-04 15:15:52 +11:00
Ben V. Brown
73b4119d49 Refactor text lists 2022-12-04 15:14:21 +11:00
Ben V. Brown
3e19bb5a90 Update Translation.h 2022-12-03 23:23:49 +11:00
Ben V. Brown
0c1e3a1b75 Reworking to simplified layout for translations 2022-12-03 23:23:43 +11:00
Ben V. Brown
6c7243edd6 New translations definitions 2022-12-03 21:18:48 +11:00
Ben V. Brown
4ffefecc12 Remove old editors 2022-12-03 20:38:37 +11:00
Ben V. Brown
b6aaf30c58 Merge branch 'dev' into BLE 2022-11-25 16:31:03 +11:00
Ben V. Brown
686ffe516e Fill out more characteristics 2022-11-22 08:38:50 +11:00
Ben V. Brown
bdb6986311 Merge branch 'test-slow-i2c' into BLE 2022-11-20 22:16:19 +11:00
Ben V. Brown
d48b74736f Hook Settings to being exposed 2022-11-20 22:15:58 +11:00
Ben V. Brown
1c6bbc2c06 Hook up power source enum 2022-11-20 21:28:15 +11:00
Ben V. Brown
d0ed30ecb6 Split display checksum out 2022-11-20 21:16:38 +11:00
Ben V. Brown
bbb0cfe713 Critical wrap I2C 2022-11-20 21:15:55 +11:00
Ben V. Brown
5e98f05f07 Update ble_handlers.cpp 2022-11-20 20:55:21 +11:00
Ben V. Brown
ca2ceb5008 Update Makefile 2022-11-20 20:55:19 +11:00
Ben V. Brown
28924ccfa6 Merge branch 'test-slow-i2c' into BLE 2022-11-20 20:38:31 +11:00
Ben V. Brown
36b60e250d rough status handler done 2022-11-20 18:04:45 +11:00
Ben V. Brown
e88c064390 Set device name and appearance in makefile 2022-11-20 17:59:35 +11:00
Ben V. Brown
493af2ae1e Split handlers out 2022-11-20 17:59:25 +11:00
Ben V. Brown
60a3f8320e Update ble_characteristics.h 2022-11-20 17:59:11 +11:00
Ben V. Brown
d97313cac8 Fix c++ for config 2022-11-20 17:59:08 +11:00
Ben V. Brown
3f34d240fe Formatting improvements 2022-11-20 17:15:37 +11:00
Ben V. Brown
a160f7e7ad Update Makefile 2022-11-20 17:10:54 +11:00
Ben V. Brown
28011a3993 Organising a bit 2022-11-20 16:43:33 +11:00
Ben V. Brown
99df4b3307 Binary blobs 2022-11-20 16:43:33 +11:00
Ben V. Brown
3f05088ffb Update Makefile 2022-11-20 16:43:33 +11:00
Ben V. Brown
8b85febf8e Update ble_config.h 2022-11-20 16:43:07 +11:00
Ben V. Brown
4ab33eaee8 Start sec 2022-11-20 16:43:07 +11:00
Ben V. Brown
ea7d270146 Dump PC in assert failure 2022-11-20 16:43:07 +11:00
Ben V. Brown
e594768e7f Fix linker 2022-11-20 16:43:07 +11:00
Ben V. Brown
dd0ac6d5ef Update ble.c 2022-11-20 16:43:07 +11:00
Ben V. Brown
dd8e02b299 c++ guard 2022-11-20 16:43:07 +11:00
Ben V. Brown
17f72ba945 Update Makefile 2022-11-20 16:43:07 +11:00
Ben V. Brown
ea3c6e74e6 Add extra heap 2022-11-20 16:42:54 +11:00
Ben V. Brown
a7ca43da7f 👋 2022-11-20 16:42:54 +11:00
Ben V. Brown
1162094682 Match their ld 2022-11-20 16:42:54 +11:00
Ben V. Brown
d5f33814aa Update FreeRTOS 2022-11-20 16:42:54 +11:00
Ben V. Brown
6c69c2e241 Update bl702_flash.ld 2022-11-20 16:42:54 +11:00
Ben V. Brown
6a2dc1a9d2 Update Makefile 2022-11-20 16:42:54 +11:00
Ben V. Brown
69bf966015 Update FreeRTOSConfig.h 2022-11-20 16:42:26 +11:00
Ben V. Brown
4fcbb8656c . 2022-11-20 16:42:26 +11:00
Ben V. Brown
0a215e3996 Update system_bl702.c 2022-11-20 16:42:26 +11:00
Ben V. Brown
8a857ce757 ble linker 2022-11-20 16:42:26 +11:00
Ben V. Brown
721c7d36f3 rem dup 2022-11-20 16:42:26 +11:00
Ben V. Brown
a6bb022997 Update hex.c 2022-11-20 16:42:26 +11:00
Ben V. Brown
ea3bd86b52 Update Makefile 2022-11-20 16:42:26 +11:00
Ben V. Brown
69c2d475e3 Update postRTOS.cpp 2022-11-20 16:41:46 +11:00
Ben V. Brown
736bedc51a Scratch 2022-11-20 16:41:46 +11:00
Ben V. Brown
0c18c45490 Import BLE 2022-11-20 16:41:46 +11:00
324 changed files with 97715 additions and 30583 deletions

View File

@@ -28,8 +28,13 @@ jobs:
fetch-depth: 0
- uses: actions/setup-python@v4
- run: pip install --upgrade pip && pip install mkdocs mkdocs-gen-files
- run: |
pip install --upgrade pip &&
pip install mkdocs mkdocs-gen-files pymdown-extensions \
mkdocs-git-revision-date-plugin mkdocs-autolinks-plugin \
mkdocs-awesome-pages-plugin
- run: git config user.name 'github-actions[bot]' && git config user.email 'github-actions[bot]@users.noreply.github.com'
- name: Publish docs
run: mkdocs gh-deploy
run: mkdocs gh-deploy

View File

@@ -140,14 +140,14 @@ jobs:
steps:
- name: deps
run: apk add --no-cache python3 py3-pip make git
run: apk add --no-cache python3 py3-pip make git black
- uses: actions/checkout@v3
with:
submodules: true
- name: install black
run: python3 -m pip install bdflib black flake8
run: python3 -m pip install bdflib flake8
- name: Check formatting with clang-format
run: cd source && make clean && make check-style

View File

@@ -1,25 +0,0 @@
name: Weblate PR
on:
create:
branches: ["^translations$"]
jobs:
pull-request:
name: Open PR to dev
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
name: checkout
- uses: repo-sync/pull-request@v2
name: pull-request
with:
destination_branch: "dev"
pr_title: "Merging newest translations into dev" # Title of pull request
pr_body: | # Full markdown support, requires pr_title to be set
Translations automatically submitted by Weblate
_Translations from [Weblate](https://hosted.weblate.org/projects/ironos/main-firmware/)_
pr_reviewer: "ralim"
pr_draft: false
github_token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -8,12 +8,20 @@ WORKDIR /build
# Misc -> findutils make git
# musl-dev is required for the multi lang firmwares
# clang is required for clang-format (for dev)
ARG APK_COMPS="gcc-riscv-none-elf gcc-arm-none-eabi newlib-riscv-none-elf \
newlib-arm-none-eabi"
ARG APK_PYTHON="python3 py3-pip black"
ARG APK_MISC="findutils make git"
ARG APK_DEV="musl-dev clang bash clang-extra-tools"
RUN apk add --no-cache gcc-riscv-none-elf gcc-arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi findutils python3 py3-pip make git musl-dev clang bash clang-extra-tools
# PIP packages
ARG PIP_PKGS='bdflib'
RUN apk add --no-cache ${APK_COMPS} ${APK_PYTHON} ${APK_MISC} ${APK_DEV}
# Install Python3 packages
RUN python3 -m pip install bdflib black
RUN python3 -m pip install ${PIP_PKGS}
# Git trust
RUN git config --global --add safe.directory /build/source

View File

@@ -104,3 +104,40 @@ If you _need_ an IDE I have used [Nuclei's IDE](https://nucleisys.com/download.p
Follow the same idea as the STM Cube IDE notes above.
## Building Pinecil V2
To build the Pinecil V2 firmware, you can use a Docker container that provides a consistent development environment across different operating systems, including Windows with WSL2. Here's how to do it:
### Prerequisites
Docker Desktop: Install the latest version of Docker Desktop for your operating system from the official website.
On Windows follow the instructions on the official documentation to install 'Windows Subsystem for Linux' (WSL2).
### Building Steps
1. Clone the repository, initialize and update submodules:
```sh
git clone --recurse-submodules https://github.com/Ralim/IronOS.git
```
2. Start the Docker container with the development environment:
```sh
cd IronOS
./start_dev.sh
```
This script will build a Docker image and run a container with the necessary tools to build the firmware.
3. Build the firmware for Pinecil V2:
```sh
cd source/source
./build.sh -l EN -m Pinecilv2
```
This command will compile the firmware with English language support for Pinecil V2 board.
4. Find the firmware artifacts:
After the build completes successfully, you can find the firmware artifacts in the `source/Hexfile` directory.

View File

@@ -12,8 +12,8 @@ These are built on every change and can be found on the Actions tab (see below).
Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases).
Download the zip file that matches your model of soldering iron and extract it.
Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`.
Flash according to details below
Select the appropriate file type for your unit, in general Miniware devices need `.hex`, Pinecil V1 needs `.dfu`, and Pinecil V2 needs `.bin`.
Flash according to details below.
### Bleeding edge / latest
@@ -26,13 +26,16 @@ Then this works the same as a production release (use the correct file).
# Pinecil V1
- The MCU used in Pinecil supports usb-dfu. Reference [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil).
- Recommended Updater: the [Pine64 Updater](https://github.com/pine64/pinecil-firmware-updater/releases), is an easy-to-use GUI app. It is fast and works in several types of OS, i.e. Windows/Mac. It will automatically fetch the newest stable version of IronOS from GitHub.
- The MCU used in Pinecil supports usb-dfu. Reference [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil) for hardware and firmware instructions.
- Recommended Updater for Windows/MacOS: [Pine64 Updater](https://github.com/pine64/pine64_updater) is an easy-to-use GUI app. It is fast and automatically fetches the newest stable version of IronOS from GitHub. It can also be used to load custom boot logo art.
- Recommended Updater for Linux/MacOS: [PineFlash](https://github.com/Spagett1/PineFlash) is an easy-to-use GUI app. It is fast and automatically fetches the newest stable version of IronOS from Github. It can also be used to load custom boot logo art.
- Troubleshooting: if you have issues using the Pine64 Updater or your install fails, please go to troubleshooting tips below.
- Community chat: if troubleshooting doesn't work, then join the Pine64 > Pinecil channel. There are knowledgeable members in Discord/Telegram/Matrix. Discord has a bridge bot connection to Telegram and Matrix so that all pine volunteers/members can see advice for Pinecil and related items or just get tips on which Power supply to purchase.
- The [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil) is a great resource for all things Pinecil.
- Community chat: if troubleshooting doesn't work, then join the Pine64 > Pinecil channel [here](https://wiki.pine64.org/wiki/Pinecil#Live_Community_Chat). There are knowledgeable members in Discord/Telegram/Matrix. Discord has a bridge bot connection to Telegram and Matrix so that all pine64 volunteers/members can see advice for Pinecil and related items or just get tips on which power supply to purchase.
- One advantage of Pinecil is that you cannot permanently damage it doing a firmware update (because DFU is in ROM); an update could render Pinecil temporarily inoperable if you flash an invalid firmware. But no worries, simply re-flashing with a working firmware copy will fix everything.
- USB-C cable is required to do an update. Generally, all USB controllers work, but some hubs have issues, so it is preferred to avoid USB hubs for updates.
- Alternate Update Methods: if your OS is not currently supported by the [Updater](https://github.com/pine64/pinecil-firmware-updater/releases) or it does not meet your needs, i.e., you want to install a beta version, the below manual methods may be used.
- Alternate Update Methods: if your OS is not currently supported by the [Pine64 Updater](https://github.com/pine64/pine64_updater) or it does not meet your needs, i.e., you want to install a beta version, the below manual methods may be used.
## Linux and Mac

View File

@@ -12,21 +12,25 @@ These are built on every change and can be found on the Actions tab (see below).
Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases).
Download the zip file that matches your model of soldering iron and extract it.
Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`.
Flash according to details below
Select the appropriate file type for your unit, in general Miniware devices need `.hex`, Pinecil V1 needs `.dfu`, and Pinecil V2 needs `.bin`.
Flash according to details below.
### Bleeding edge / latest
For the _latest_ code, you will need to download the zip file from the artifacts page on the build for what you want.
Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch you would like.
For the _latest_ code, you need to download the zip file from the artifacts page for the build that you want.
Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch and beta you would like.
In general you probably want `master`.
Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file.
Once you click on a run, scroll down to the "Artifacts" section and then click on your device model name to download a zip file.
Then this works the same as a production release (use the correct file).
# Pinecil V2
- The MCU in V2 is Bouffalo BL706 and does _not_ use usb-dfu for flashing as the previous MCU did.
- The current firmware (2.18) is very fresh and no upgrade is available/needed.
- When an update is released for V2, then IronOS will also include an update method to follow.
- The MCU in Pinecil V2 is Bouffalo BL706 and does _not_ use usb-dfu for flashing as the previous Pinecil V1 MCU did.
- See the Pinecil Wiki page [here](https://wiki.pine64.org/wiki/Pinecil#Firmware_&_Updates) for instructions.
- The V2 uses the [BLISP flasher](https://github.com/pine64/blisp) to upload the firmware to the MCU.
- The [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil) is a great resource for all things Pinecil.
- Community chat: if there are issues updating, then join the Pine64 > Pinecil channel [here](https://wiki.pine64.org/wiki/Pinecil#Live_Community_Chat). There are knowledgeable members in Discord/Telegram/Matrix. Discord has a bridge bot connection to Telegram and Matrix so that all pine64 volunteers/members can see advice for Pinecil and related items or just get tips on which power supply to purchase.
- One advantage of Pinecil is that you cannot permanently damage it doing a firmware update (because BIN is in ROM); an update could render Pinecil temporarily inoperable if you flash an invalid firmware. But no worries, simply re-flashing with a working firmware copy will fix everything.
- USB-C cable is required to do an update. Generally, all USB controllers work, but some hubs have issues, so it is preferred to avoid USB hubs for updates.
- Background on the [BL706 chipset](https://lupyuen.github.io/articles/bl706)

View File

@@ -28,7 +28,7 @@ Note that this may be drawn mirrored depending on the orientation of your screen
The soldering iron symbol on the screen will appear near the tip. This is here to indicate that pressing the button closest to the front of the iron will enter soldering mode.
And naturally, the spanner like icon represents that pressing the button near the rear of the soldering iron will enter the settings menu.
And naturally, the slider controls icon (or spanner icon in older versions) represents that pressing the button near the rear of the soldering iron will enter the settings menu.
In the settings, you can turn on a detailed idle screen instead. The buttons still function the same, however, the image will be swapped for a text telling you the current status of the iron with extra details.

View File

@@ -39,11 +39,13 @@ To calibrate your iron:
7. Press both buttons at the same time to Save and Exit to the menu
### Calibrate Tip CJC
This performs a Tip Cold Junction Calibration (CJC) ([see Temperature for details](https://ralim.github.io/IronOS/Temperature/)). This is normally not needed unless you have an issue with tip temperature or your tips are wearing out prematurely. Changing tip lengths does not necessarily mean a calibration is needed. Check first that your tips are not defective, and measured resistance is close to specifications (Pinecil/TS100 short tips 6.2 Ω, long tips 8 Ω, TS80(P) ~4.5 Ω).
This calibrates the [Cold Junction Compensation](https://ralim.github.io/IronOS/Temperature/) *(CJC)* for the tip. This is normally not needed unless you have an issue with tip temperature or your tips are wearing out prematurely. Changing tip lengths does not necessarily mean a calibration is needed. Check first that your tips are not defective and measured resistance is close to specifications *[Pinecil / TS100 short tips **6.2 Ω**, long tips **8 Ω**, TS80/P ~**4.5 Ω**]*.
What this is for: some tips have an offset on their readings which causes issues, i.e., the actual temperature of the tip is much higher than displayed. To calibrate this out, perform the following steps.
What this is for:<br>
Some tips have an offset on their readings which causes issues, i.e. The actual temperature of the tip is much higher than displayed. Follow the steps below to calibrate this.
Caution: if the method below is not followed, the iron could be worse than before calibration. If you need to repeat the method, first unplug and let the handle/PCB cool down to room temperature.
Caution:<br>
If the method below is not followed, the iron could be worse than before calibration. If you need to repeat the method, first unplug and let the handle/PCB cool down to room temperature.
1. Connect power to your device.
2. Go to **`Advanced Settings`** using (`-/B`) and press (`+/A`) to select it. Use (`-/B`) to scroll to **`Calibrate CJC at next boot`** and confirm with (`+/A`).
@@ -52,11 +54,11 @@ Caution: if the method below is not followed, the iron could be worse than befor
4. Unplug you device.
5. **Critical: Make sure a tip is attached & wait until the tip & handle are at room temperature.** (Wait a reasonable amount of time after having used the device.)
6. Power the device and ideally keep it out of your hands (You know it might get warm.).
7. The display shows **`....`** for a short time while the device measures and compares the tip and handle voltages.
8. As a result the new *Offset value* is displayed. This value can later be viewed in the **`Debug menu`**.
7. The display shows **`calibrating ....`** for a short time while the device measures and compares the tip and handle voltages.
8. **`Calibration done!`** is displayed for 3 seconds. The new offset value can later be viewed in the **`Debug menu`**.
9. Calibration is done and the device proceeds booting.
Note: offsets are dependant on your tip, temperature sensor, and the MCU. It's the culmination of tolerances at rest. Typical values are 700-1000 range. This is only designed to be used at boot while cold (ambient room temperature), as temperatures drift apart as soon as power is connected. Doing this reading repeatedly could result in wide varience of the offset number and/or incorrect calibration.
Note: offsets are dependant on your tip, temperature sensor, and the MCU. It's the culmination of tolerances at rest. Typical values are 700-1000 range. This is only designed to be used at boot while cold (ambient / room temperature), as temperatures drift apart as soon as power is connected. Doing this reading repeatedly could result in wide varience of the offset number and/or incorrect calibration.
### Boost mode

View File

@@ -1,6 +1,12 @@
# Translation
If you would like to contribute a translation, use the [Translation Editor](http://htmlpreview.github.io/?https://github.com/Ralim/ts100/blob/master/Translations/TranslationEditor.html).
[Open a reference language file and optionally a target language file](https://github.com/Ralim/ts100/tree/master/Translations).
At the present time the main way of performing translations is to open a PR to this repository.
All translations are stored as `json` files in the repository. Currently there is ongoing work to look into a more user friendly method of editing translations than these but for now these are reliable.
You can create a pull request with the new / updated json configuration file, and this will include this language into the new builds for the firmware.
For testing you can build locally and test of course; but if you dont want to figure out the build environment; you can just open a PR and github will build the firmware for you using the _actions_ feature.
This means that once you have a github account you can perform all of your edits inside Github should this be desired.
Translations are _NOT_ accepted via issues/discussions or email.

View File

@@ -1,6 +1,7 @@
![CI](https://github.com/Ralim/ts100/workflows/CI%20Build%20all/badge.svg)
![GitHub all](https://img.shields.io/github/downloads/ralim/IronOS/total)
![Latest Release](https://img.shields.io/github/v/release/ralim/IronOS)
[![CI Build](https://github.com/Ralim/IronOS/actions/workflows/push.yml/badge.svg)](https://github.com/Ralim/IronOS/actions/workflows/push.yml)
[![Total Downloads](https://img.shields.io/github/downloads/ralim/IronOS/total)](https://github.com/Ralim/IronOS)
[![Contributors](https://img.shields.io/github/contributors-anon/ralim/ironos?color=blue&style=flat)](https://github.com/Ralim/IronOS/graphs/contributors)
[![Latest Release](https://img.shields.io/github/v/release/ralim/IronOS)](https://github.com/Ralim/IronOS/releases/latest)
# IronOS - Flexible Soldering iron control Firmware
@@ -22,15 +23,17 @@ _This firmware does **NOT** support the USB port while running for changing sett
| Device | DC | QC | PD | EPR | BLE | Battery | Recommended |
| :--------: | :-: | :-: | :-: | :-: | :-: | :-----: | :---------: |
| MHP30 | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ |
| Pinecil V1 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ |
| Pinecil V2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TS80P | ❌ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ |
| TS100 | ✔️ | ❌ | ❌ | ❌ | ❌ | ✔️ | |
| TS80 | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ |
| MHP30 | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ |
| Pinecil V1 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ |
| Pinecil V2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TS80P | ❌ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ |
| TS100 | ✔️ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌* |
| TS80 | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌** |
\*Please note that Miniware started shipping TS100's using cloned STM32 Chips. While these do work with IronOS, their DFU bootloader works terribly, and it is hard to get it to successfully flash larger firmware images like IronOS without timing out. This is the main reason why the TS100 is **_no longer recommended_**.
\**TS80 is replaced by TS80P. Production ramped down a long time ago and it's just existing stock clearing the system. It's marked not recommended being optimistic that people might pause and buy the far superior TS80P instead. This is the main reason why the TS80 is **_no longer recommended_**.
## Getting Started
To get started with IronOS firmware, please jump to [Getting Started Guide](https://ralim.github.io/IronOS/GettingStarted/).
@@ -79,6 +82,12 @@ When on the main screen and having the tip plugged in, the unit shows a pair of
Operation details are over in the [Menu information.](https://ralim.github.io/IronOS/Menu/)
## Translations
Is your preferred language missing localisation of some of the text?
Translations are stored as `json` files in the Translations folder.
PR's are loved and accepted to enhance the firmware.
## Thanks
If you love this firmware and want to continue my caffeine addiction, you can do so [here](https://paypal.me/RalimTek) (or email me for other options).

View File

@@ -1,652 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>IronOS Translation Editor</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="translations_commons.js"></script>
<script src="translations_def.js"></script>
<script>
var app;
var defMap = {};
function save() {
saveJSON(
app.current,
"translation_" + app.current.languageCode + ".json"
);
}
function view() {
showJSON(
app.current,
"translation_" + app.current.languageCode + ".json"
);
}
function fileChanged(e) {
var target = e;
var id = target.id;
var file = target.files[0];
if (!file) {
return;
}
var fr = new FileReader();
fr.onload = function (e) {
try {
var json = JSON.parse(e.target.result);
} catch (ex) {
console.log(ex);
alert("Invalid JSON file: " + file.name);
return;
}
if (id == "referent-lang-file") {
if (checkTranslationFile(file.name)) {
app.referent = json;
app.meta.referentLoaded = true;
}
} else if (id == "current-lang-file") {
if (checkTranslationFile(file.name)) {
app.current = json;
if (!app.current.fonts) {
app.current.fonts = ["ascii_basic"];
}
app.meta.currentLoaded = true;
}
}
synchronizeData();
};
fr.readAsText(file);
}
function synchronizeData() {
app.obsolete = {};
copyMissing(
app.def.messages,
app.referent.messages,
app.current.messages
);
copyMissing(
app.def.characters,
app.referent.characters,
app.current.characters
);
copyMissing(
app.def.menuGroups,
app.referent.menuGroups,
app.current.menuGroups
);
copyMissing(
app.def.menuOptions,
app.referent.menuOptions,
app.current.menuOptions
);
}
/**
* Copy all missing properties from referent to current
* for each entry in definition
*/
function copyMissing(defList, referentMap, currentMap) {
if (
!isDefined(defList) ||
!isDefined(referentMap) ||
!isDefined(currentMap)
) {
return;
}
var len = defList.length;
for (var i = 0; i < len; i++) {
var id = defList[i].id;
if (!isDefined(referentMap[id])) {
referentMap[id] = "";
}
if (!isDefined(currentMap[id])) {
currentMap[id] = referentMap[id];
}
}
processObsolete(defList, currentMap);
}
// Passes through all entries from the given map.
// If a corresponding entry is not found in the defList, it is removed from the map, and added into the obsolete map.
function processObsolete(defList, map) {
// Index list to map for faster search
var defMap = copyArrayToMap(defList);
Object.keys(map).forEach(function (key) {
if (!isDefined(defMap[key])) {
app.obsolete[key] = { id: key, value: map[key] };
delete map[key];
}
});
}
function length(obj, mode) {
if (!isDefined(mode) || mode == 0) {
// return direct length
return obj.length;
}
// return the longest length in text2 array
return Math.max(
isDefinedNN(obj.text2[0]) ? obj.text2[0].length : 0,
isDefinedNN(obj.text2[1]) ? obj.text2[1].length : 0
);
}
function getAttribute(obj, attribute) {
var d = "2";
var v = obj[attribute + d];
if (isDefined(v)) return v;
return obj[attribute];
}
function loaded() {
app = new Vue({
el: "#app",
data: {
meta: {
referentLoaded: false,
currentLoaded: false,
},
def: {},
referent: {
messages: {},
},
current: {
loaded: false,
},
obsolete: {},
fontToAdd: "latin_extended",
},
methods: {
validateInput: function (valMap, id, mode) {
var d = defMap[id];
var vLen = 0;
if (!isDefined(mode)) mode = 0;
try {
// Sum for complex length
for (var i = 0; i < d.lenSum.fields.length; i++) {
vLen += length(valMap[d.lenSum.fields[i]], mode);
}
d = d.lenSum;
} catch (e) {
// Single field length
vLen = length(valMap[id], mode);
}
var maxLen = getAttribute(d, "maxLen", mode == 2);
var minLen = getAttribute(d, "minLen", mode == 2);
var len = getAttribute(d, "len", mode == 2);
if (
(isNumber(maxLen) && vLen > maxLen) ||
(isNumber(minLen) && vLen < minLen) ||
(isNumber(len) && vLen != len)
) {
return "invalid";
}
},
constraintString: function (e) {
var str = "";
var delim = "";
var v;
d = "2";
if (isDefinedNN(e.lenSum)) {
str =
"len(" +
(e.lenSum.fields + "").replace(/,/g, " + ") +
") -> ";
e = e.lenSum;
}
v = getAttribute(e, "len", d);
if (isNumber(v)) {
str += delim + "len=" + v;
delim = " and ";
}
v = getAttribute(e, "minLen", d);
if (isNumber(v)) {
str += delim + "len>=" + v;
delim = " and ";
}
v = getAttribute(e, "maxLen", d);
if (isNumber(v)) {
str += delim + "len<=" + v;
delim = " and ";
}
return str;
},
getWholeScreenMessageMaxLen: function (valMap, id, prop) {
var v = prop ? valMap[id][prop] : valMap[id];
var maxLen;
if (this.isSmall(v)) {
maxLen = defMap[id].maxLen2 || 16;
} else {
maxLen = defMap[id].maxLen || 8;
}
return maxLen;
},
validateWholeScreenMessage: function (valMap, id, prop) {
var v = prop ? valMap[id][prop] : valMap[id];
var maxLen = this.getWholeScreenMessageMaxLen(valMap, id, prop);
if (this.isSmall(v)) {
if (v[0].length === 0) {
return "invalid";
} else if (Math.max(v[0].length, v[1].length) > maxLen) {
return "invalid";
}
} else {
if (v.length > maxLen) {
return "invalid";
}
}
},
constraintWholeScreenMessage: function (valMap, id, prop) {
return (
"len <= " + this.getWholeScreenMessageMaxLen(valMap, id, prop)
);
},
isSmall: function (v) {
return v instanceof Array;
},
convertToLarge: function (valMap, id, prop) {
var v = prop ? valMap[id][prop] : valMap[id];
var message = v[0] + (v[1] !== "" ? " " + v[1] : "");
if (prop) {
valMap[id][prop] = message;
} else {
valMap[id] = message;
}
},
convertToSmall: function (valMap, id, prop) {
var v = prop ? valMap[id][prop] : valMap[id];
var message = [v, ""];
if (prop) {
valMap[id][prop] = message;
} else {
valMap[id] = message;
}
},
removeFont: function (i) {
this.current.fonts.splice(i, 1);
},
addFont: function () {
this.current.fonts.push(this.fontToAdd);
},
},
});
app.def = def;
copyArrayToMap(app.def.messages, defMap);
copyArrayToMap(app.def.messagesWarn, defMap);
copyArrayToMap(app.def.characters, defMap);
copyArrayToMap(app.def.menuGroups, defMap);
copyArrayToMap(app.def.menuOptions, defMap);
}
window.onload = loaded;
</script>
<link href="translations.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="app">
<h1>
IronOS Translation Editor<span v-if="meta.currentLoaded">
- {{ current.languageLocalName }} [{{current.languageCode}}]</span
>
</h1>
<table class="header data">
<tr>
<td class="label">Reference Language</td>
<td class="value">
<input
type="file"
id="referent-lang-file"
onchange="fileChanged(this)"
accept=".json"
/>
<span class="selected" v-if="meta.referentLoaded"
>{{ referent.languageLocalName }}
[{{referent.languageCode}}]</span
>
</td>
</tr>
<tr v-if="meta.referentLoaded">
<td class="label">Current Language</td>
<td class="value">
<input
type="file"
id="current-lang-file"
onchange="fileChanged(this)"
accept=".json"
/>
<span class="selected" v-if="meta.currentLoaded"
>{{ current.languageLocalName }} [{{current.languageCode}}]</span
>
</td>
</tr>
<tr v-if="meta.currentLoaded">
<td class="label">Local Language Code</td>
<td class="value">
<input
type="text"
v-model="current.languageCode"
maxlength="8"
v-on:change="current.languageCode=current.languageCode.toUpperCase()"
class="short"
/>
</td>
</tr>
<tr v-if="meta.currentLoaded">
<td class="label">Local Language Name</td>
<td class="value">
<input
type="text"
v-model="current.languageLocalName"
class="short"
/>
</td>
</tr>
<tr v-if="meta.currentLoaded">
<td class="label">
Font tables to use<br />("ascii_basic" must be first)
</td>
<td class="value">
<ul>
<li v-for="(font, i) in current.fonts">
<button
type="button"
@click="removeFont(i)"
:disabled="i == 0 && font == 'ascii_basic'"
>
-
</button>
{{ font }}
</li>
</ul>
<select v-model="fontToAdd">
<!-- <option value="ascii_basic">ascii_basic: ASCII Basic</option> -->
<option value="latin_extended">
latin_extended: Latin Extended
</option>
<option value="greek">greek: Greek Glyphs</option>
<option value="cyrillic">cyrillic: Cyrillic Glyphs</option>
<option value="cjk">cjk: Chinese/Japanese/Korean</option>
</select>
<button type="button" @click="addFont()">Add</button>
</td>
</tr>
</table>
<div v-if="def.messages && referent.messages && current.messages">
<div class="footer">
<input type="button" value="Save" onclick="save()" />
<input type="button" value="View" onclick="view()" />
</div>
<div v-if="Object.keys(obsolete).length > 0">
<h2>Obsolete</h2>
<table class="data">
<tr v-for="entry in obsolete">
<td class="label"><div class="stringId">{{entry.id}}</div></td>
<td class="value"><div class="ref">{{entry.value}}</div></td>
</tr>
</table>
</div>
<h2>Messages and Strings</h2>
<table class="data">
<tr
v-for="message in def.messages"
v-bind:class="validateInput(current.messages, message.id)"
>
<td class="label"><div class="stringId">{{message.id}}</div></td>
<td class="value">
<div class="constraint">{{constraintString(message)}}</div>
<div class="label">Description</div>
<div class="ref">{{message.description}}</div>
<div class="label">Reference</div>
<div class="ref">{{referent.messages[message.id]}}</div>
<div class="note" v-if="message.note">{{message.note}}</div>
<div class="tran">
<input
:id="'in_'+message.id"
type="text"
v-model="current.messages[message.id]"
v-bind:class="{unchanged : current.messages[message.id] == referent.messages[message.id], empty : current.messages[message.id]==''}"
/>
</div>
</td>
</tr>
</table>
<h2>Warning Messages</h2>
<table class="data">
<tr
v-for="message in def.messagesWarn"
v-bind:class="validateWholeScreenMessage(current.messagesWarn, message.id)"
>
<td class="label"><div class="stringId">{{message.id}}</div></td>
<td class="value">
<div class="constraint">
{{constraintWholeScreenMessage(current.messagesWarn,
message.id)}}
</div>
<div class="label">Description</div>
<div class="ref">{{message.description}}</div>
<div class="label">Reference</div>
<div class="ref">{{referent.messagesWarn[message.id]}}</div>
<div class="note" v-if="message.note">{{message.note}}</div>
<div
class="tran"
v-if="isSmall(current.messagesWarn[message.id])"
>
<input
:id="'in_'+message.id+'_0'"
type="text"
v-model="current.messagesWarn[message.id][0]"
v-bind:class="{unchanged : current.messagesWarn[message.id][0] == referent.messagesWarn[message.id][0] && current.messagesWarn[message.id][1] == referent.messagesWarn[message.id][1], empty : current.messagesWarn[message.id][0] == '' && current.messagesWarn[message.id][1] == ''}"
/>
<input
:id="'in_'+message.id+'_1'"
type="text"
v-model="current.messagesWarn[message.id][1]"
v-bind:class="{unchanged : current.messagesWarn[message.id][0] == referent.messagesWarn[message.id][0] && current.messagesWarn[message.id][1] == referent.messagesWarn[message.id][1], empty : current.messagesWarn[message.id][0] == '' && current.messagesWarn[message.id][1] == ''}"
/>
<button
type="button"
@click="convertToLarge(current.messagesWarn, message.id)"
>
Convert to large text
</button>
</div>
<div class="tran" v-else>
<input
:id="'in_'+message.id"
type="text"
v-model="current.messagesWarn[message.id]"
v-bind:class="{unchanged : current.messagesWarn[message.id] == referent.messagesWarn[message.id], empty : current.messagesWarn[message.id]==''}"
/>
<button
type="button"
@click="convertToSmall(current.messagesWarn, message.id)"
>
Convert to small text
</button>
</div>
</td>
</tr>
</table>
<h2>Characters</h2>
<table class="data">
<tr
v-for="char in def.characters"
v-bind:class="validateInput(current.characters, char.id)"
>
<td class="label"><div class="stringId">{{char.id}}</div></td>
<td class="value">
<div class="constraint">{{constraintString(char)}}</div>
<div class="label">Description</div>
<div class="ref">{{char.description}}</div>
<div class="label">Reference</div>
<div class="ref">{{referent.characters[char.id]}}</div>
<div class="tran">
<input
type="text"
v-model="current.characters[char.id]"
v-bind:class="{unchanged : current.characters[char.id] == referent.characters[char.id], empty : current.characters[char.id].length != 1}"
/>
</div>
</td>
</tr>
</table>
<h2>Menu Groups</h2>
<table class="data">
<tr
v-for="menu in def.menuGroups"
v-bind:class="validateWholeScreenMessage(current.menuGroups, menu.id, 'text2')"
>
<td class="label"><div class="stringId">{{menu.id}}</div></td>
<td class="value">
<div class="label">Menu Name</div>
<div class="constraint">
{{constraintWholeScreenMessage(current.menuGroups, menu.id,
'text2')}}
</div>
<div class="label">Description</div>
<div class="ref">{{menu.description}}</div>
<div class="label">Reference</div>
<div class="ref">{{referent.menuGroups[menu.id].text2}}</div>
<div
class="tran"
v-if="isSmall(current.menuGroups[menu.id].text2)"
>
<input
type="text"
v-model="current.menuGroups[menu.id].text2[0]"
v-bind:class="{unchanged : current.menuGroups[menu.id].text2[0] == referent.menuGroups[menu.id].text2[0] && current.menuGroups[menu.id].text2[1] == referent.menuGroups[menu.id].text2[1], empty : current.menuGroups[menu.id].text2[0] == '' && current.menuGroups[menu.id].text2[1] == ''}"
/>
<input
type="text"
v-model="current.menuGroups[menu.id].text2[1]"
v-bind:class="{unchanged : current.menuGroups[menu.id].text2[0] == referent.menuGroups[menu.id].text2[0] && current.menuGroups[menu.id].text2[1] == referent.menuGroups[menu.id].text2[1], empty : current.menuGroups[menu.id].text2[0] == '' && current.menuGroups[menu.id].text2[1] == ''}"
/>
<button
type="button"
@click="convertToLarge(current.menuGroups, menu.id, 'text2')"
>
Convert to large text
</button>
</div>
<div class="tran" v-else>
<input
type="text"
v-model="current.menuGroups[menu.id].text2"
v-bind:class="{unchanged : current.menuGroups[menu.id].text2 == referent.menuGroups[menu.id].text2, empty : current.menuGroups[menu.id].text2==''}"
/>
<button
type="button"
@click="convertToSmall(current.menuGroups, menu.id, 'text2')"
>
Convert to small text
</button>
</div>
<div class="label">Description</div>
<div class="ref">{{referent.menuGroups[menu.id].desc}}</div>
<div class="tran">
<input
type="text"
v-model="current.menuGroups[menu.id].desc"
v-bind:class="{unchanged : current.menuGroups[menu.id].desc == referent.menuGroups[menu.id].desc, empty : current.menuGroups[menu.id].desc == ''}"
/>
</div>
</td>
</tr>
</table>
<h2>Menu Options</h2>
<table class="data">
<tr
v-for="menu in def.menuOptions"
v-bind:class="validateWholeScreenMessage(current.menuOptions, menu.id, 'text2')"
>
<td class="label"><div class="stringId">{{menu.id}}</div></td>
<td class="value">
<div v-bind:class="{hidden : false}">
<div class="label">Menu Name</div>
<div class="constraint">
{{constraintWholeScreenMessage(current.menuOptions, menu.id,
'text2')}}
</div>
<div class="label">Description</div>
<div class="ref">{{menu.description}}</div>
<div class="label">Reference</div>
<div class="ref">{{referent.menuOptions[menu.id].text2}}</div>
<div
class="tran"
v-if="isSmall(current.menuOptions[menu.id].text2)"
>
<input
type="text"
v-model="current.menuOptions[menu.id].text2[0]"
v-bind:class="{unchanged : current.menuOptions[menu.id].text2[0] == referent.menuOptions[menu.id].text2[0] && current.menuOptions[menu.id].text2[1] == referent.menuOptions[menu.id].text2[1], empty : current.menuOptions[menu.id].text2[0] == '' && current.menuOptions[menu.id].text2[1] == ''}"
/>
<input
type="text"
v-model="current.menuOptions[menu.id].text2[1]"
v-bind:class="{unchanged : current.menuOptions[menu.id].text2[0] == referent.menuOptions[menu.id].text2[0] && current.menuOptions[menu.id].text2[1] == referent.menuOptions[menu.id].text2[1], empty : current.menuOptions[menu.id].text2[0] == '' && current.menuOptions[menu.id].text2[1] == ''}"
/>
<button
type="button"
@click="convertToLarge(current.menuOptions, menu.id, 'text2')"
>
Convert to large text
</button>
</div>
<div class="tran" v-else>
<input
type="text"
v-model="current.menuOptions[menu.id].text2"
v-bind:class="{unchanged : current.menuOptions[menu.id].text2 == referent.menuOptions[menu.id].text2, empty : current.menuOptions[menu.id].text2==''}"
/>
<button
type="button"
@click="convertToSmall(current.menuOptions, menu.id, 'text2')"
>
Convert to small text
</button>
</div>
</div>
<div class="label">Description</div>
<div class="ref">{{referent.menuOptions[menu.id].desc}}</div>
<div class="tran">
<input
type="text"
v-model="current.menuOptions[menu.id].desc"
v-bind:class="{unchanged : current.menuOptions[menu.id].desc == referent.menuOptions[menu.id].desc, empty : current.menuOptions[menu.id].desc == ''}"
/>
</div>
</td>
</tr>
</table>
<div class="footer">
<input type="button" value="Save" onclick="save()" />
<input type="button" value="View" onclick="view()" />
</div>
</div>
</div>
</body>
</html>

View File

@@ -1,322 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TS100 Translation Parser</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="translations_commons.js"></script>
<script src="translations_def.js"></script>
<script>
var app;
var defMap = {};
var langMap = {};
var lang;
var defMsgMap;
var defCharMap;
var defGrpMap;
var defOptMap;
function save(langCode){
saveJSON(langMap[langCode], "translation_"+langCode.toLowerCase()+".json");
}
function view(langCode){
showJSON(langMap[langCode], "translation_"+langCode.toLowerCase()+".json");
}
function translationFileSelected(e) {
var target = e;
var id = target.id;
var file = target.files[0];
if (!file) {
return;
}
var fr = new FileReader();
fr.onload = function(e) {
parseTranslationFile(file.name, e.target.result);
}
fr.readAsText(file);
}
function parseTranslationFile(name, src) {
// remove multiline comments
src = src.replace(/\/\*[\s\S.]*?\*\//mg, "");
// remove single-line comments
src = src.replace(/\/\/.*/mg, "");
// remove empty lines
src = src.replace(/^\s*\n/gm, "");
var langCode = "";
var srcLines = src.split("\n");
var reMessage = /const\s+char\s*\*\s+([\w\d]+)\s*=\s*"(.*)"/;
var reSettingsDescStart = /const\s+char\s*\*\s+SettingsDescriptions\[/;
var reSettingsNamesStart = /const\s+char\s*\*\s+SettingsShortNames\[/;
var reSettingsMenuDescStart = /const\s+char\s*\*\s+SettingsMenuEntriesDescriptions\[/;
var reChar = /const\s+char\s+([\w\d]+)\s*=\s*'(\w)'/;
var reMenuMode = /SettingsShortNameType\s*=\s*SHORT_NAME_(\w+)_LINE/;
var reMenuStart = /\s*const\s+char\s*\*\s+SettingsMenuEntries\[/;
// var reString = /^\s*"(.*)"/;
var reString = /"(.*)"/;
var reSingleLine = /{\s*"(.*)"\s*}/;
var reDoubleLine = /{\s*"(.*)"\s*,\s*"(.*)"\s*}/;
var mode = '';
var entryIndex = 0;
for (var li = 0; li < srcLines.length; li++) {
// trim lines
line = srcLines[li] = srcLines[li].trim();
// if entering a new lang block
if (startsWith(line, "#ifdef LANG_")) {
mode = 'new-language';
langCode = line.substring(12);
lang = langMap[langCode];
// use existing or instantiate new
if (!isDefined(lang)) {
lang = {
languageCode: langCode,
cyrillicGlyphs: false,
messages: {},
characters: {},
menuGroups: {},
menuOptions: {}
};
langMap[langCode] = lang;
app.languages[app.languages.length] = langCode;
}
entryIndex = 0;
continue;
}
// Use Cyrillic glyphs
if (startsWith(line, "#define CYRILLIC_GLYPHS")) {
lang.cyrillicGlyphs = true;
entryIndex = 0;
continue;
}
// Menu type
reMenuMode.lastIndex = 0;
match = reMenuMode.exec(line);
if (match) {
entryIndex = 0;
continue;
}
// Messages
reMessage.lastIndex = 0;
match = reMessage.exec(line);
if (match) {
lang.messages[match[1]] = xunescape(match[2]);
entryIndex = 0;
continue;
}
// Chars descriptions
reChar.lastIndex = 0;
match = reChar.exec(line);
if (match) {
// found description block start
mode = 'char';
lang.characters[match[1]] = xunescape(match[2]);
entryIndex = 0;
continue;
}
// Settings descriptions
reSettingsDescStart.lastIndex = 0;
match = reSettingsDescStart.exec(line);
if (match) {
// found description block start
mode = 'settingsDesc';
entryIndex = 0;
continue;
}
reSettingsNamesStart.lastIndex = 0;
match = reSettingsNamesStart.exec(line);
if (match) {
// found description block start
mode = 'settingsNames';
entryIndex = 0;
continue;
}
reMenuStart.lastIndex = 0;
match = reMenuStart.exec(line);
if (match) {
// found description block start
mode = 'menu';
entryIndex = 0;
continue;
}
reSettingsMenuDescStart.lastIndex = 0;
match = reSettingsMenuDescStart.exec(line);
if (match) {
// found description block start
mode = 'menuDesc';
entryIndex = 0;
continue;
}
if (mode == 'menu') {
// processing menu group names
reString.lastIndex = 0;
match = reString.exec(line);
if (match) {
// found description string
var entry = getMenuGroup(entryIndex);
var m = match[1].split("\\n");
entry.text2[0] = xunescape(m[0]);
entry.text2[1] = xunescape(m[1]);
entryIndex++;
}
} else if (mode == 'menuDesc') {
// processing menu group descriptions
reString.lastIndex = 0;
match = reString.exec(line);
if (match) {
// found description string
var entry = getMenuGroup(entryIndex);
entry.desc = xunescape(match[1]);
entryIndex++;
}
} else if (mode == 'settingsDesc') {
// processing option descriptions
reString.lastIndex = 0;
match = reString.exec(line);
if (match) {
// found description string
var entry = getMenuOption(entryIndex);
entry.desc = xunescape(match[1]);
entryIndex++;
}
} else if (mode == 'settingsNames') {
reDoubleLine.lastIndex = 0;
match = reDoubleLine.exec(line);
if (match) {
var entry = getMenuOption(entryIndex);
entry.text2[0] = xunescape(match[1]);
entry.text2[1] = xunescape(match[2]);
entryIndex++;
} else {
reSingleLine.lastIndex = 0;
match = reSingleLine.exec(line);
if (match) {
var entry = getMenuOption(entryIndex);
entry.text = xunescape(match[1]);
entryIndex++;
}
}
}
}
app.done = 1;
}
function getMenuOption(entryIndex) {
var optionDef = def.menuOptions[entryIndex];
if (!isDefined(optionDef)) {
var s = "Could not find menu option with index "+entryIndex;
alert(s);
throw s;
}
var id = optionDef.id;
var entry = lang.menuOptions[id];
if (!isDefined(entry)) {
entry =
{
"text2": ["", ""],
"desc": ""
}
lang.menuOptions[id] = entry;
}
return entry;
}
function getMenuGroup(entryIndex) {
var optionDef = def.menuGroups[entryIndex];
if (!isDefined(optionDef)) {
var s = "Could not find menu group with index "+entryIndex;
alert(s);
throw s;
}
var id = optionDef.id;
var entry = lang.menuGroups[id];
if (!isDefined(entry)) {
entry =
{
"text2": ["", ""],
"desc": ""
}
lang.menuGroups[id] = entry;
}
return entry;
}
function markSaved(lang) {
document.getElementById("row_"+lang).classList.add("saved");
}
function loaded() {
app = new Vue({
el : '#app',
data : {
languages: [],
done : false,
def : {
}
},
methods : {
vSave : function(lang) {
save(lang);
markSaved(lang);
},
vView : function(lang) {
view(lang);
markSaved(lang);
}
}
});
app.def = def;
defMsgMap = copyArrayToMap(app.def.messages);
defCharMap = copyArrayToMap(app.def.characters);
defGrpMap = copyArrayToMap(app.def.menuGroups);
defOptMap = copyArrayToMap(app.def.menuOptions);
}
window.onload=loaded;
</script>
<link href="translations.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="app">
<h1>TS100 Translation Parser</h1>
<table class="header data">
<tr>
<td class="label">Translation.cpp</td>
<td class="value">
<input type="file" id="translation-cpp-file" onchange="translationFileSelected(this)" accept=".cpp">
</td>
</tr>
</table>
<div class="data" v-if="done">
<div class="value" v-for="lang in languages" :id="'row_'+lang">
<input type="button" :value="'Save '+lang" v-on:click="vSave(lang)">
<input type="button" :value="'View '+lang" v-on:click="vView(lang)">
</div>
</div>
</div>
</body>
</html>

View File

@@ -996,6 +996,12 @@ ALL_FONTS = [
NAME_GREEK,
NAME_CJK, # CJK must come last
]
ALL_PRE_RENDERED_FONTS = [
NAME_ASCII_BASIC,
NAME_LATIN_EXTENDED,
NAME_CYRILLIC,
NAME_GREEK,
]
def get_font_maps_for_name(

View File

@@ -11,7 +11,7 @@ logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
HERE = Path(__file__).resolve().parent
TRANSLATION_DEFS_PATH = os.path.join(HERE, "translations_def.js")
TRANSLATION_DEFS_PATH = os.path.join(HERE, "translations_definitions.json")
ENGLISH_TRANSLATION_PATH = os.path.join(HERE, "translation_EN.json")
MENU_DOCS_FILE_PATH = os.path.join(HERE.parent, "Documentation/Settings.md")
@@ -99,8 +99,8 @@ def main() -> None:
json_dir = HERE
print(json_dir)
logging.info("Loading translation definitions")
defs = load_json(TRANSLATION_DEFS_PATH, True)
eng_translation = load_json(ENGLISH_TRANSLATION_PATH, False)
defs = load_json(TRANSLATION_DEFS_PATH)
eng_translation = load_json(ENGLISH_TRANSLATION_PATH)
with open(MENU_DOCS_FILE_PATH, "w") as outputf:
write_header(outputf)
write_menu_categories(outputf, defs, eng_translation)

File diff suppressed because it is too large Load Diff

75
Translations/migrate.py Executable file
View File

@@ -0,0 +1,75 @@
#!/usr/bin/env python3
import json
import os
import sys
# Migrate json files to use "\n" encoding rather than []
def load_json(filename: str) -> dict:
with open(filename, "r", encoding="utf8") as f:
return json.loads(f.read())
def save_json(filename: str, data: dict):
with open(filename, "w", encoding="utf8") as f:
json.dump(data, f, indent=4, ensure_ascii=False)
file_name = sys.argv[1]
print(file_name)
data = load_json(file_name)
# Migrate messages to be delimited
for key in data["messagesWarn"]:
old_message = data["messagesWarn"][key]
if isinstance(old_message, list):
print(old_message)
new_message = "\n".join(old_message)
data["messagesWarn"][key] = {"message": new_message}
else:
data["messagesWarn"][key] = {"message": old_message}
for key in data["messages"]:
old_message = data["messages"][key]
if isinstance(old_message, list):
print(old_message)
new_message = "\n".join(old_message)
data["messagesWarn"][key] = {"message": new_message}
else:
data["messagesWarn"][key] = {"message": old_message}
del data["messages"]
print("Part 2")
# for menu-groups break out the text2 field
for key in data["menuGroups"]:
old_data = data["menuGroups"][key]
if isinstance(old_data.get("text2", ""), list):
new_data = "\n".join(old_data["text2"])
data["menuGroups"][key]["displayText"] = new_data
del data["menuGroups"][key]["text2"]
else:
data["menuGroups"][key]["displayText"] = old_data["text2"].replace("\n", "")
del data["menuGroups"][key]["text2"]
data["menuGroups"][key]["description"] = data["menuGroups"][key]["desc"]
del data["menuGroups"][key]["desc"]
print("Part 3")
# for menu-groups break out the text2 field
for key in data["menuOptions"]:
old_data = data["menuOptions"][key]
if isinstance(old_data.get("text2", ""), list):
new_data = "\n".join(old_data["text2"])
data["menuOptions"][key]["displayText"] = new_data
del data["menuOptions"][key]["text2"]
else:
data["menuOptions"][key]["displayText"] = old_data["text2"].replace("\n", "")
del data["menuOptions"][key]["text2"]
data["menuOptions"][key]["description"] = data["menuOptions"][key]["desc"]
del data["menuOptions"][key]["desc"]
save_json(file_name, data)

View File

@@ -1,341 +1,251 @@
{
"languageCode": "BE",
"languageLocalName": "Беларуская",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Пераканайцеся, што пры наступнай загрузцы наканечнік і ручка маюць пакаёвую тэмпературу!",
"CJCCalibrating": "каліброўка",
"SettingsResetWarning": "Вы ўпэннены, што жадаеце зкінуць налады да першапачатковых значэнняў?",
"UVLOWarningString": "НАПРУГА--",
"UndervoltageString": "Нізкая напруга",
"InputVoltageString": "Сілкаванне В: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Чаканне...",
"SleepingTipAdvancedString": "Джала:",
"OffString": "Выкл.",
"DeviceFailedValidationWarning": "Ваша прылада, хутчэй за ўсё, падробка!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Скід OK",
"SettingsResetMessage": [
"Налады",
"зкінуты!"
],
"NoAccelerometerMessage": [
"Ня вызначаны",
"акселерометр!"
],
"NoPowerDeliveryMessage": [
"Няма USB-PD IC",
"выяўлены!"
],
"LockingKeysString": "ЗАМКНУТЫ",
"UnlockingKeysString": "АДЫМКНУТЫ",
"WarningKeysLockedString": "!ЗАМКНУТЫ!",
"WarningThermalRunaway": [
"Цеплавы",
"Уцякач"
]
},
"characters": {
"SettingRightChar": "П",
"SettingLeftChar": "Л",
"SettingAutoChar": "А",
"SettingOffChar": "O",
"SettingSlowChar": "М",
"SettingMediumChar": "С",
"SettingFastChar": "Х",
"SettingStartNoneChar": "В",
"SettingStartSolderingChar": "П",
"SettingStartSleepChar": "Ч",
"SettingStartSleepOffChar": "К",
"SettingSensitivityOff": "А",
"SettingSensitivityLow": "Н",
"SettingSensitivityMedium": "С",
"SettingSensitivityHigh": "В",
"SettingLockDisableChar": "А",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Налады",
"сілкавання"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Налады",
"пайкі"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Рэжымы",
"сну"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Налады",
"інтэрфейсу"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Дадатковыя",
"налады"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Крыніца",
"сілкавання"
],
"desc": "Крыніца сілкавання. Усталюе напругу адсечкі. (DC 10В) (S 3,3В на ячэйку, без абмежавання магутнасці)"
},
"MinVolCell": {
"text2": [
"Мін.",
"напр."
],
"desc": "Мінімальная дазволеная напруга на ячэйку (3S: 3 - 3,7V | 4S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"text2": [
"Магутнасць",
"сілкавання"
],
"desc": "Магутнасць выкарыстоўваемай крыніцы сілкавання"
},
"PDNegTimeout": {
"text2": [
"PD",
"прыпынак"
],
"desc": "Час чакання ўзгаднення PD з крокам 100 мс для сумяшчальнасці з некаторымі зараднымі зараднымі прыладамі QC (0: адключана)"
},
"BoostTemperature": {
"text2": [
"t° турба",
"рэжыму"
],
"desc": "Тэмпература джала ў турба-рэжыме"
},
"AutoStart": {
"text2": [
"Аўта",
"старт"
],
"desc": "Рэжым, у якім запускаецца паяльнік пры падачы сілкавання (В=Выкл. | П=Пайка | Ч=Чаканне | К=Чаканне пры комн. тэмп.)"
},
"TempChangeShortStep": {
"text2": [
"Крок тэмп.",
"кар. нац."
],
"desc": "Крок вымярэння тэмпературы пры кароткім націску кнопак"
},
"TempChangeLongStep": {
"text2": [
"Крок тэмп.",
"пад. нац."
],
"desc": "Крок вымярэння тэмпературы пры падоўжаным націску кнопак"
},
"LockingMode": {
"text2": [
"Дазволіць",
"блок. кнопак"
],
"desc": "Пры рабоце падоўжаны націск дзьвух кнопак блакуе іх (А=Адключана | Т=Толькі турба | П=Поўная блакіроўка)"
},
"MotionSensitivity": {
"text2": [
"Адчувальнасць",
"акселерометра"
],
"desc": "Адчувальнасць акселерометра (0=Выкл. | 1=Мін. | ... | 9=Макс.)"
},
"SleepTemperature": {
"text2": [
"Тэмп.",
"чакання"
],
"desc": "Тэмпература рэжыму чакання"
},
"SleepTimeout": {
"text2": [
"Таймаўт",
"чакання"
],
"desc": "Час да пераходу ў рэжым чакання (Хвіліны | Секунды)"
},
"ShutdownTimeout": {
"text2": [
"Таймаут",
"выключэння"
],
"desc": "Час да адключэння паяльніка (Хвіліны)"
},
"HallEffSensitivity": {
"text2": [
"Эфект Хола",
"адчувальнасць"
],
"desc": "Узровень адчувальнасці датчыка хола ў рэжыме сну (0=Выкл. | 1=Мін. | ... | 9=Макс.)"
},
"TemperatureUnit": {
"text2": [
"Адзінкі",
"тэмпературы"
],
"desc": "Адзінкі вымярэння тэмпературы (C=Цэльcія | F=Фарэнгейта)"
},
"DisplayRotation": {
"text2": [
"Арыентацыя",
"экрану"
],
"desc": "Арыентацыя экрану (П=Правая рука | Л=Левая рука | А=Аўта)"
},
"CooldownBlink": {
"text2": [
"Мігценне t°",
"пры астуджэнні"
],
"desc": "Міргаць тэмпературай на экране астуджэння, пакуль джала яшчэ гарачае"
},
"ScrollingSpeed": {
"text2": [
"Хуткацсь",
"тексту"
],
"desc": "Хуткасць гартання тэксту (М=марудна | Х=хутка)"
},
"ReverseButtonTempChange": {
"text2": [
"Інвертаваць",
"кнопкі"
],
"desc": "Інвертаваць кнопкі вымярэння тэмпературы"
},
"AnimSpeed": {
"text2": [
"Хуткасць",
"анімацыі"
],
"desc": "Хуткасць анімацыі гузікаў у галоўным меню (Мілісекунды) (А=Адключана | Н=Нізкая | С=Сярэдняя | В=Высокая)"
},
"AnimLoop": {
"text2": [
"Зацыкленая",
"анімацыя"
],
"desc": "Зацыкленая анімацыя гузікаў у галоўным меню"
},
"Brightness": {
"text2": [
"Экран",
"Яркасць"
],
"desc": "Адрэгулюйце кантраснасць / яркасць OLED-экрана"
},
"ColourInversion": {
"text2": [
"Экран",
"Інвертаваць"
],
"desc": "Інвертаваць колеры OLED-экрана"
},
"LOGOTime": {
"text2": [
"Лагатып загрузкі",
"працягласць"
],
"desc": "Усталяваць працягласць лагатыпа загрузкі (s=Секунды)"
},
"AdvancedIdle": {
"text2": [
"Падрабязны",
"рэжым чакання"
],
"desc": "Адлюстроўваць дэталёвую инфармацыю паменьшаным шрыфтом на экране чакання"
},
"AdvancedSoldering": {
"text2": [
"Падрабязны",
"экран пайкі"
],
"desc": "Паказваць дэталёвую інформацыю на экране пайкі"
},
"PowerLimit": {
"text2": [
"Межы",
"магутнасці"
],
"desc": "Максімальная магутнасць, якую можа выкарыстоўваць паяльнік (Ватт)"
},
"CalibrateCJC": {
"text2": [
"Каліброўка тэмпературы",
"пры наступнай загрузцы"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Каліброўка",
"напругі"
],
"desc": "Каліброўка ўваходнай напругі (падоўжаны націск для выхаду)"
},
"PowerPulsePower": {
"text2": [
"Сіла імп.",
"сілкав. Вт"
],
"desc": "Моц імпульса ўтрымливаючага ад сну павербанку ці іншай крыніцы сілкавання"
},
"PowerPulseWait": {
"text2": [
"Імпульс магутнасці",
"час чакання"
],
"desc": "Час чакання перад запускам кожнага імпульсу няспання (x 2.5 с)"
},
"PowerPulseDuration": {
"text2": [
"Імпульс магутнасці",
"працягласць"
],
"desc": "Працягласць імпульсу няспання (x 250 мс)"
},
"SettingsReset": {
"text2": [
"Скід",
"наладаў"
],
"desc": "Скід наладаў да першапачатковых значэнняў"
},
"LanguageSwitch": {
"text2": [
"Мова:",
" BY Беларуская"
],
"desc": ""
}
}
}
{
"languageCode": "BE",
"languageLocalName": "Беларуская",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Каліброўка\nзроблена!"
},
"ResetOKMessage": {
"message": "Скід OK"
},
"SettingsResetMessage": {
"message": "Налады\nзкінуты!"
},
"NoAccelerometerMessage": {
"message": "Ня вызначаны\nакселерометр!"
},
"NoPowerDeliveryMessage": {
"message": "Няма USB-PD IC\nвыяўлены!"
},
"LockingKeysString": {
"message": "ЗАМКНУТЫ"
},
"UnlockingKeysString": {
"message": "АДЫМКНУТЫ"
},
"WarningKeysLockedString": {
"message": "!ЗАМКНУТЫ!"
},
"WarningThermalRunaway": {
"message": "Некантралюемае\nразаграванне"
},
"SettingsCalibrationWarning": {
"message": "Пераканайцеся, што пры наступнай загрузцы наканечнік і ручка маюць пакаёвую тэмпературу!"
},
"CJCCalibrating": {
"message": "каліброўка\n"
},
"SettingsResetWarning": {
"message": "Вы ўпэннены, што жадаеце зкінуць налады да першапачатковых значэнняў?"
},
"UVLOWarningString": {
"message": "НАПРУГА--"
},
"UndervoltageString": {
"message": "Нізкая напруга\n"
},
"InputVoltageString": {
"message": "Сілкаванне В: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Чаканне...\n"
},
"SleepingTipAdvancedString": {
"message": "Джала: \n"
},
"OffString": {
"message": "Выкл."
},
"DeviceFailedValidationWarning": {
"message": "Ваша прылада, хутчэй за ўсё, падробка!"
}
},
"characters": {
"SettingRightChar": "П",
"SettingLeftChar": "Л",
"SettingAutoChar": "А",
"SettingOffChar": "O",
"SettingSlowChar": "М",
"SettingMediumChar": "С",
"SettingFastChar": "Х",
"SettingStartNoneChar": "В",
"SettingStartSolderingChar": "П",
"SettingStartSleepChar": "Ч",
"SettingStartSleepOffChar": "К",
"SettingLockDisableChar": "А",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Налады\nсілкавання",
"description": ""
},
"SolderingMenu": {
"displayText": "Налады\nпайкі",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Рэжымы\nсну",
"description": ""
},
"UIMenu": {
"displayText": "Налады\nінтэрфейсу",
"description": ""
},
"AdvancedMenu": {
"displayText": "Дадатковыя\nналады",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Крыніца\nсілкавання",
"description": "Крыніца сілкавання. Усталюе напругу адсечкі. (DC 10В) (S 3,3В на ячэйку, без абмежавання магутнасці)"
},
"MinVolCell": {
"displayText": "Мін.\nнапр.",
"description": "Мінімальная дазволеная напруга на ячэйку (3S: 3 - 3,7V | 4S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "Магутнасць\nсілкавання",
"description": "Магутнасць выкарыстоўваемай крыніцы сілкавання"
},
"PDNegTimeout": {
"displayText": "PD\nпрыпынак",
"description": "Час чакання ўзгаднення PD з крокам 100 мс для сумяшчальнасці з некаторымі зараднымі зараднымі прыладамі QC (0: адключана)"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Уключае рэжымы PPS & EPR."
},
"BoostTemperature": {
"displayText": "t° турба\nрэжыму",
"description": "Тэмпература джала ў турба-рэжыме"
},
"AutoStart": {
"displayText": "Аўта\nстарт",
"description": "Рэжым, у якім запускаецца паяльнік пры падачы сілкавання (В=Выкл. | П=Пайка | Ч=Чаканне | К=Чаканне пры комн. тэмп.)"
},
"TempChangeShortStep": {
"displayText": "Крок тэмп.\nкар. нац.",
"description": "Крок вымярэння тэмпературы пры кароткім націску кнопак"
},
"TempChangeLongStep": {
"displayText": "Крок тэмп.\nпад. нац.",
"description": "Крок вымярэння тэмпературы пры падоўжаным націску кнопак"
},
"LockingMode": {
"displayText": "Дазволіць\nблок. кнопак",
"description": "Пры рабоце падоўжаны націск дзьвух кнопак блакуе іх (А=Адключана | Т=Толькі турба | П=Поўная блакіроўка)"
},
"MotionSensitivity": {
"displayText": "Адчувальнасць\nакселерометра",
"description": "Адчувальнасць акселерометра (0=Выкл. | 1=Мін. | ... | 9=Макс.)"
},
"SleepTemperature": {
"displayText": "Тэмп.\nчакання",
"description": "Тэмпература рэжыму чакання"
},
"SleepTimeout": {
"displayText": "Таймаўт\nчакання",
"description": "Час да пераходу ў рэжым чакання (Хвіліны | Секунды)"
},
"ShutdownTimeout": {
"displayText": "Таймаут\nвыключэння",
"description": "Час да адключэння паяльніка (Хвіліны)"
},
"HallEffSensitivity": {
"displayText": "Эфект Хола\nадчувальнасць",
"description": "Узровень адчувальнасці датчыка хола ў рэжыме сну (0=Выкл. | 1=Мін. | ... | 9=Макс.)"
},
"TemperatureUnit": {
"displayText": "Адзінкі\nтэмпературы",
"description": "Адзінкі вымярэння тэмпературы (C=Цэльcія | F=Фарэнгейта)"
},
"DisplayRotation": {
"displayText": "Арыентацыя\nэкрану",
"description": "Арыентацыя экрану (П=Правая рука | Л=Левая рука | А=Аўта)"
},
"CooldownBlink": {
"displayText": "Мігценне t°\nпры астуджэнні",
"description": "Міргаць тэмпературай на экране астуджэння, пакуль джала яшчэ гарачае"
},
"ScrollingSpeed": {
"displayText": "Хуткацсь\nтексту",
"description": "Хуткасць гартання тэксту (М=марудна | Х=хутка)"
},
"ReverseButtonTempChange": {
"displayText": "Інвертаваць\nкнопкі",
"description": "Інвертаваць кнопкі вымярэння тэмпературы"
},
"AnimSpeed": {
"displayText": "Хуткасць\nанімацыі",
"description": "Хуткасць анімацыі гузікаў у галоўным меню (Мілісекунды) (А=Адключана | Н=Нізкая | С=Сярэдняя | В=Высокая)"
},
"AnimLoop": {
"displayText": "Зацыкленая\nанімацыя",
"description": "Зацыкленая анімацыя гузікаў у галоўным меню"
},
"Brightness": {
"displayText": "Экран\nЯркасць",
"description": "Адрэгулюйце кантраснасць / яркасць OLED-экрана"
},
"ColourInversion": {
"displayText": "Экран\nІнвертаваць",
"description": "Інвертаваць колеры OLED-экрана"
},
"LOGOTime": {
"displayText": "Лагатып загрузкі\nпрацягласць",
"description": "Усталяваць працягласць лагатыпа загрузкі (s=Секунды)"
},
"AdvancedIdle": {
"displayText": "Падрабязны\nрэжым чакання",
"description": "Адлюстроўваць дэталёвую инфармацыю паменьшаным шрыфтом на экране чакання"
},
"AdvancedSoldering": {
"displayText": "Падрабязны\nэкран пайкі",
"description": "Паказваць дэталёвую інформацыю на экране пайкі"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Межы\nмагутнасці",
"description": "Максімальная магутнасць, якую можа выкарыстоўваць паяльнік (Ватт)"
},
"CalibrateCJC": {
"displayText": "Каліброўка тэмпературы\nпры наступнай загрузцы",
"description": "Каліброўка тэмпературы пры наступным уключэнні (не патрабуецца, калі розніца тэмператур меньш за 5°C)"
},
"VoltageCalibration": {
"displayText": "Каліброўка\nнапругі",
"description": "Каліброўка ўваходнай напругі (падоўжаны націск для выхаду)"
},
"PowerPulsePower": {
"displayText": "Сіла імп.\nсілкав. Вт",
"description": "Моц імпульса ўтрымливаючага ад сну павербанку ці іншай крыніцы сілкавання"
},
"PowerPulseWait": {
"displayText": "Імпульс магутнасці\nчас чакання",
"description": "Час чакання перад запускам кожнага імпульсу няспання (x 2.5 с)"
},
"PowerPulseDuration": {
"displayText": "Імпульс магутнасці\nпрацягласць",
"description": "Працягласць імпульсу няспання (x 250 мс)"
},
"SettingsReset": {
"displayText": "Скід\nналадаў",
"description": "Скід наладаў да першапачатковых значэнняў"
},
"LanguageSwitch": {
"displayText": "Мова:\n BY Беларуская",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "BG",
"languageLocalName": "Български",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Сигурни ли сте, че искате да върнете фабричните настройки?",
"UVLOWarningString": "Ниско DC Напрежение",
"UndervoltageString": "Ниско Напрежение",
"InputVoltageString": "Входно V: ",
"SleepingSimpleString": "Сън",
"SleepingAdvancedString": "Хър Хър Хър...",
"SleepingTipAdvancedString": "Връх:",
"OffString": "Изкл.",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Нулиране",
"SettingsResetMessage": [
"Настройките бяха",
"нулирани!"
],
"NoAccelerometerMessage": [
"No accelerometer",
"detected!"
],
"NoPowerDeliveryMessage": [
"No USB-PD IC",
"detected!"
],
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "И",
"SettingStartSolderingChar": "Р",
"SettingStartSleepChar": "С",
"SettingStartSleepOffChar": "П",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Power",
"settings"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Поялник",
"Настройки"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Режими",
"Настройки"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Интерфейс",
"Настройки"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Разширени",
"Настройки"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Източник",
"захранване"
],
"desc": "Източник на захранване. Минимално напрежение. (DC 10V) (S 3,3V за клетка)"
},
"MinVolCell": {
"text2": [
"Minimum",
"voltage"
],
"desc": "Minimum allowed voltage per battery cell (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"text2": [
"Мощност на",
"захранване"
],
"desc": "Мощност на избраното захранване"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"BoostTemperature": {
"text2": [
"Турбо",
"темп."
],
"desc": "Температура за \"турбо\" режим"
},
"AutoStart": {
"text2": [
"Автоматичен",
"работен режим"
],
"desc": "Режим на поялника при включване на захранването. (И=Изключен | Р=Работен | С=Сън | П=Сън температура помещение)"
},
"TempChangeShortStep": {
"text2": [
"Промяна T",
"бързо?"
],
"desc": "Промяна на температура при бързо натискане на бутон!"
},
"TempChangeLongStep": {
"text2": [
"Промяна Т",
"задържане?"
],
"desc": "Промяна на температура при задържане на бутон!"
},
"LockingMode": {
"text2": [
"Allow locking",
"buttons"
],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"text2": [
"Усещане",
"за движение"
],
"desc": "Усещане за движение (0=Изключено | 1=Слабо | ... | 9=Силно)"
},
"SleepTemperature": {
"text2": [
"Темп.",
"сън"
],
"desc": "Температура при режим \"сън\" (C)"
},
"SleepTimeout": {
"text2": [
"Време",
"сън"
],
"desc": "Включване в режим \"сън\" след: (Минути | Секунди)"
},
"ShutdownTimeout": {
"text2": [
"Време",
"изкл."
],
"desc": "Изключване след (Минути)"
},
"HallEffSensitivity": {
"text2": [
"Hall sensor",
"sensitivity"
],
"desc": "Sensitivity to magnets (0=Изключено | 1=Слабо | ... | 9=Силно)"
},
"TemperatureUnit": {
"text2": [
"Единици за",
"температура"
],
"desc": "Единици за температура (C=Целзии | F=Фаренхайт)"
},
"DisplayRotation": {
"text2": [
"Ориентация",
"на дисплея"
],
"desc": "Ориентация на дисплея (R=Дясна Ръка | L=Лява Ръка | A=Автоматично)"
},
"CooldownBlink": {
"text2": [
"Мигай при",
"топъл поялник"
],
"desc": "След изключване от работен режим, индикатора за температура да мига докато човката на поялника все още е топла"
},
"ScrollingSpeed": {
"text2": [
"Скорост",
"на текста"
],
"desc": "Скорост на движение на този текст"
},
"ReverseButtonTempChange": {
"text2": [
"Размяна",
"бутони +-?"
],
"desc": "Обръщане на бутоните \"+\" и \"-\" за промяна на температурата на върха на поялника"
},
"AnimSpeed": {
"text2": [
"Anim.",
"speed"
],
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"AnimLoop": {
"text2": [
"Anim.",
"loop"
],
"desc": "Loop icon animations in main menu"
},
"Brightness": {
"text2": [
"Screen",
"brightness"
],
"desc": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"text2": [
"Invert",
"screen"
],
"desc": "Invert the OLED screen colors"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Детайлен",
"екран в покой"
],
"desc": "Покажи детайлна информация със ситен шрифт на екрана в режим на покой."
},
"AdvancedSoldering": {
"text2": [
"Детайлен",
"работен екран"
],
"desc": "Детайлна информация в работен режим при запояване"
},
"PowerLimit": {
"text2": [
"Лимит на",
"мощност"
],
"desc": "Максимална мощност на поялника (Watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"text2": [
"Калибриране",
"напрежение?"
],
"desc": "Калибриране на входното напрежение. Задръжте бутонa за изход"
},
"PowerPulsePower": {
"text2": [
"Захранващ",
"импулс"
],
"desc": "Поддържане на интензивност на захранващия импулс"
},
"PowerPulseWait": {
"text2": [
"Power pulse",
"delay"
],
"desc": "Delay before keep-awake-pulse is triggered (x 2,5с)"
},
"PowerPulseDuration": {
"text2": [
"Power pulse",
"duration"
],
"desc": "Keep-awake-pulse duration (x 250мс)"
},
"SettingsReset": {
"text2": [
"Фабрични",
"настройки?"
],
"desc": "Връщане на фабрични настройки"
},
"LanguageSwitch": {
"text2": [
"Език:",
" BG Български"
],
"desc": ""
}
}
}
{
"languageCode": "BG",
"languageLocalName": "Български",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Нулиране"
},
"SettingsResetMessage": {
"message": "Настройките бяха\nнулирани!"
},
"NoAccelerometerMessage": {
"message": "No accelerometer\ndetected!"
},
"NoPowerDeliveryMessage": {
"message": "No USB-PD IC\ndetected!"
},
"LockingKeysString": {
"message": "LOCKED"
},
"UnlockingKeysString": {
"message": "UNLOCKED"
},
"WarningKeysLockedString": {
"message": "!LOCKED!"
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Сигурни ли сте, че искате да върнете фабричните настройки?"
},
"UVLOWarningString": {
"message": "Ниско DC Напрежение"
},
"UndervoltageString": {
"message": "Ниско Напрежение\n"
},
"InputVoltageString": {
"message": "Входно V: \n"
},
"SleepingSimpleString": {
"message": "Сън"
},
"SleepingAdvancedString": {
"message": "Хър Хър Хър...\n"
},
"SleepingTipAdvancedString": {
"message": "Връх: \n"
},
"OffString": {
"message": "Изкл."
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "И",
"SettingStartSolderingChar": "Р",
"SettingStartSleepChar": "С",
"SettingStartSleepOffChar": "П",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Power\nsettings",
"description": ""
},
"SolderingMenu": {
"displayText": "Поялник\nНастройки",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Режими\nНастройки",
"description": ""
},
"UIMenu": {
"displayText": "Интерфейс\nНастройки",
"description": ""
},
"AdvancedMenu": {
"displayText": "Разширени\nНастройки",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Източник\nзахранване",
"description": "Източник на захранване. Минимално напрежение. (DC 10V) (S 3,3V за клетка)"
},
"MinVolCell": {
"displayText": "Minimum\nvoltage",
"description": "Minimum allowed voltage per battery cell (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "Мощност на\nзахранване",
"description": "Мощност на избраното захранване"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Турбо\nтемп.",
"description": "Температура за \"турбо\" режим"
},
"AutoStart": {
"displayText": "Автоматичен\nработен режим",
"description": "Режим на поялника при включване на захранването. (И=Изключен | Р=Работен | С=Сън | П=Сън температура помещение)"
},
"TempChangeShortStep": {
"displayText": "Промяна T\nбързо?",
"description": "Промяна на температура при бързо натискане на бутон!"
},
"TempChangeLongStep": {
"displayText": "Промяна Т\nзадържане?",
"description": "Промяна на температура при задържане на бутон!"
},
"LockingMode": {
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"displayText": "Усещане\nза движение",
"description": "Усещане за движение (0=Изключено | 1=Слабо | ... | 9=Силно)"
},
"SleepTemperature": {
"displayText": "Темп.\nсън",
"description": "Температура при режим \"сън\" (C)"
},
"SleepTimeout": {
"displayText": "Време\nсън",
"description": "Включване в режим \"сън\" след: (Минути | Секунди)"
},
"ShutdownTimeout": {
"displayText": "Време\nизкл.",
"description": "Изключване след (Минути)"
},
"HallEffSensitivity": {
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (0=Изключено | 1=Слабо | ... | 9=Силно)"
},
"TemperatureUnit": {
"displayText": "Единици за\nтемпература",
"description": "Единици за температура (C=Целзии | F=Фаренхайт)"
},
"DisplayRotation": {
"displayText": "Ориентация\nна дисплея",
"description": "Ориентация на дисплея (R=Дясна Ръка | L=Лява Ръка | A=Автоматично)"
},
"CooldownBlink": {
"displayText": "Мигай при\nтопъл поялник",
"description": "След изключване от работен режим, индикатора за температура да мига докато човката на поялника все още е топла"
},
"ScrollingSpeed": {
"displayText": "Скорост\nна текста",
"description": "Скорост на движение на този текст"
},
"ReverseButtonTempChange": {
"displayText": "Размяна\nбутони +-?",
"description": "Обръщане на бутоните \"+\" и \"-\" за промяна на температурата на върха на поялника"
},
"AnimSpeed": {
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
"description": "Loop icon animations in main menu"
},
"Brightness": {
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Детайлен\nекран в покой",
"description": "Покажи детайлна информация със ситен шрифт на екрана в режим на покой."
},
"AdvancedSoldering": {
"displayText": "Детайлен\nработен екран",
"description": "Детайлна информация в работен режим при запояване"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Лимит на\nмощност",
"description": "Максимална мощност на поялника (Watt)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"displayText": "Калибриране\nнапрежение?",
"description": "Калибриране на входното напрежение. Задръжте бутонa за изход"
},
"PowerPulsePower": {
"displayText": "Захранващ\nимпулс",
"description": "Поддържане на интензивност на захранващия импулс"
},
"PowerPulseWait": {
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2,5с)"
},
"PowerPulseDuration": {
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250мс)"
},
"SettingsReset": {
"displayText": "Фабрични\nнастройки?",
"description": "Връщане на фабрични настройки"
},
"LanguageSwitch": {
"displayText": "Език:\n BG Български",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "CS",
"languageLocalName": "Český",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Opravdu chcete resetovat zařízení do továrního nastavení?",
"UVLOWarningString": "Nízké DC",
"UndervoltageString": "Nízké napětí",
"InputVoltageString": "Napětí: ",
"SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "Režim spánku...",
"SleepingTipAdvancedString": "Hrot:",
"OffString": "Vyp",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Nějaká nastavení",
"byla změněna!"
],
"NoAccelerometerMessage": [
"Akcelerometr",
"nebyl detekován!"
],
"NoPowerDeliveryMessage": [
"Žádný IO USB-PD",
"nebyl detekován!"
],
"LockingKeysString": "ZAMČENO",
"UnlockingKeysString": "ODEMČENO",
"WarningKeysLockedString": "ZAMČENO!",
"WarningThermalRunaway": [
"Teplotní",
"Ochrana"
]
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "D",
"SettingSlowChar": "P",
"SettingMediumChar": "S",
"SettingFastChar": "R",
"SettingStartNoneChar": "V",
"SettingStartSolderingChar": "P",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "M",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "M",
"SettingSensitivityMedium": "S",
"SettingSensitivityHigh": "V",
"SettingLockDisableChar": "Z",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "U"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Napájecí",
"nastavení"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Pájecí",
"nastavení"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Režim",
"spánku"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Uživatelské",
"rozhraní"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Pokročilá",
"nastavení"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Zdroj",
"napájení"
],
"desc": "Při nižším napětí ukončit pájení (DC 10V) (S 3,3V na článek, zakázat omezení napájení)."
},
"MinVolCell": {
"text2": [
"Minimální",
"napětí"
],
"desc": "Minimální dovolené napětí po článku (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"text2": [
"Napětí",
"QC"
],
"desc": "Maximální napětí QC pro jednání páječkou"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "Maximální prodleva při jednání PD ve 100ms krocích pro kompatibilitu s některými QC nabíječkami"
},
"BoostTemperature": {
"text2": [
"Teplota",
"boostu"
],
"desc": "Teplota hrotu v \"režimu boost\""
},
"AutoStart": {
"text2": [
"Chování",
"při startu"
],
"desc": "V=vypnuto | P=pájecí teplota | S=spánková teplota | M=zahřát hrot po pohybu"
},
"TempChangeShortStep": {
"text2": [
"Krok teploty",
"krátký?"
],
"desc": "Velikost přídavku při změně teploty krátkým stiskem tlačítka"
},
"TempChangeLongStep": {
"text2": [
"Krok teploty",
"dlouhý?"
],
"desc": "Velikost přídavku při změně teploty dlouhým stiskem tlačítka"
},
"LockingMode": {
"text2": [
"Povolit zamč.",
"tlačítek"
],
"desc": "Při pájení podržte obě tlačítka pro jejich zamčení (Z=zakázáno | B=pouze v režimu boost | U=úplné zamčení)"
},
"MotionSensitivity": {
"text2": [
"Citlivost",
"na pohyb"
],
"desc": "0=vyp | 1=nejméně citlivé | ... | 9=nejvíce citlivé"
},
"SleepTemperature": {
"text2": [
"Teplota",
"ve spánku"
],
"desc": "Teplota hrotu v režimu spánku."
},
"SleepTimeout": {
"text2": [
"Čas",
"do spánku"
],
"desc": "\"Režim spánku\" naběhne v (s=sekundách | m=minutách)"
},
"ShutdownTimeout": {
"text2": [
"Čas do",
"vypnutí"
],
"desc": "Interval automatického vypnutí (m=minut)"
},
"HallEffSensitivity": {
"text2": [
"Citlivost",
"Hall. čidla"
],
"desc": "Citlivost Hallova čidla pro detekci spánku (0=vypnuto | 1=nejméně citlivé | ... | 9=nejvíce citlivé)"
},
"TemperatureUnit": {
"text2": [
"Jednotka",
"teploty"
],
"desc": "C=Celsius | F=Fahrenheit"
},
"DisplayRotation": {
"text2": [
"Orientace",
"obrazovky"
],
"desc": "P=pravák | L=levák | A=automaticky"
},
"CooldownBlink": {
"text2": [
"Blikáni při",
"chladnutí"
],
"desc": "Blikat teplotou při chladnutí dokud je hrot horký"
},
"ScrollingSpeed": {
"text2": [
"Rychlost",
"posouvání"
],
"desc": "Rychlost posouvání popisků podobných tomuto (P=pomalu | R=rychle)"
},
"ReverseButtonTempChange": {
"text2": [
"Prohodit",
"tl. +-?"
],
"desc": "Prohodit tlačítka pro změnu teploty"
},
"AnimSpeed": {
"text2": [
"Anim.",
"rychlost"
],
"desc": "Tempo animace ikon v menu (O=vypnuto | P=pomalu | S=středně | R=rychle)"
},
"AnimLoop": {
"text2": [
"Anim.",
"smyčka"
],
"desc": "Animovat ikony hlavního menu ve smyčce"
},
"Brightness": {
"text2": [
"Jas",
"obrazovky"
],
"desc": "Upravit jas OLED"
},
"ColourInversion": {
"text2": [
"Invertovat",
"obrazovku"
],
"desc": "Invertovat barvy na OLED"
},
"LOGOTime": {
"text2": [
"Trvání",
"boot loga"
],
"desc": "Nastavení doby trvání boot loga (s=sekundy)"
},
"AdvancedIdle": {
"text2": [
"Podrobná obr.",
"nečinnosti"
],
"desc": "Zobrazit detailní informace malým fontem na obrazovce nečinnosti"
},
"AdvancedSoldering": {
"text2": [
"Podrobná obr.",
"pájení"
],
"desc": "Zobrazit detailní informace malým fontem na obrazovce pájení"
},
"PowerLimit": {
"text2": [
"Omezení",
"Výkonu"
],
"desc": "Maximální příkon páječky (W=watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Kalibrovat",
"vstupní napětí?"
],
"desc": "Začít kalibraci vstupního napětí (dlouhý stisk pro ukončení)"
},
"PowerPulsePower": {
"text2": [
"Napájecí",
"pulz"
],
"desc": "Intenzita výkonu pulzu pro udržení páječky vzhůru (watt)"
},
"PowerPulseWait": {
"text2": [
"Prodleva",
"napáj. pulzu"
],
"desc": "Prodleva než je spuštěn pulz pro udržení páječky vzhůru pulzu pro udržení páječky vzhůru (x 2,5s)"
},
"PowerPulseDuration": {
"text2": [
"Délka",
"napáj. pulzu"
],
"desc": "Délka pulzu pro udržení páječky vzhůru (x 250ms)"
},
"SettingsReset": {
"text2": [
"Obnovit tovární",
"nastavení?"
],
"desc": "Obnovit všechna nastavení na výchozí"
},
"LanguageSwitch": {
"text2": [
"Jazyk:",
" CS Český"
],
"desc": ""
}
}
}
{
"languageCode": "CS",
"languageLocalName": "Český",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Nějaká nastavení\nbyla změněna!"
},
"NoAccelerometerMessage": {
"message": "Akcelerometr\nnebyl detekován!"
},
"NoPowerDeliveryMessage": {
"message": "Žádný IO USB-PD\nnebyl detekován!"
},
"LockingKeysString": {
"message": "ZAMČENO"
},
"UnlockingKeysString": {
"message": "ODEMČENO"
},
"WarningKeysLockedString": {
"message": "ZAMČENO!"
},
"WarningThermalRunaway": {
"message": "Teplotní\nOchrana"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Opravdu chcete resetovat zařízení do továrního nastavení?"
},
"UVLOWarningString": {
"message": "Nízké DC"
},
"UndervoltageString": {
"message": "Nízké napětí\n"
},
"InputVoltageString": {
"message": "Napětí: \n"
},
"SleepingSimpleString": {
"message": "Zzz "
},
"SleepingAdvancedString": {
"message": "Režim spánku...\n"
},
"SleepingTipAdvancedString": {
"message": "Hrot: \n"
},
"OffString": {
"message": "Vyp"
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "D",
"SettingSlowChar": "P",
"SettingMediumChar": "S",
"SettingFastChar": "R",
"SettingStartNoneChar": "V",
"SettingStartSolderingChar": "P",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "M",
"SettingLockDisableChar": "Z",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "U"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Napájecí\nnastavení",
"description": ""
},
"SolderingMenu": {
"displayText": "Pájecí\nnastavení",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Režim\nspánku",
"description": ""
},
"UIMenu": {
"displayText": "Uživatelské\nrozhraní",
"description": ""
},
"AdvancedMenu": {
"displayText": "Pokročilá\nnastavení",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Zdroj\nnapájení",
"description": "Při nižším napětí ukončit pájení (DC 10V) (S 3,3V na článek, zakázat omezení napájení)."
},
"MinVolCell": {
"displayText": "Minimální\nnapětí",
"description": "Minimální dovolené napětí po článku (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "Napětí\nQC",
"description": "Maximální napětí QC pro jednání páječkou"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "Maximální prodleva při jednání PD ve 100ms krocích pro kompatibilitu s některými QC nabíječkami"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Teplota\nboostu",
"description": "Teplota hrotu v \"režimu boost\""
},
"AutoStart": {
"displayText": "Chování\npři startu",
"description": "V=vypnuto | P=pájecí teplota | S=spánková teplota | M=zahřát hrot po pohybu"
},
"TempChangeShortStep": {
"displayText": "Krok teploty\nkrátký?",
"description": "Velikost přídavku při změně teploty krátkým stiskem tlačítka"
},
"TempChangeLongStep": {
"displayText": "Krok teploty\ndlouhý?",
"description": "Velikost přídavku při změně teploty dlouhým stiskem tlačítka"
},
"LockingMode": {
"displayText": "Povolit zamč.\ntlačítek",
"description": "Při pájení podržte obě tlačítka pro jejich zamčení (Z=zakázáno | B=pouze v režimu boost | U=úplné zamčení)"
},
"MotionSensitivity": {
"displayText": "Citlivost\nna pohyb",
"description": "0=vyp | 1=nejméně citlivé | ... | 9=nejvíce citlivé"
},
"SleepTemperature": {
"displayText": "Teplota\nve spánku",
"description": "Teplota hrotu v režimu spánku."
},
"SleepTimeout": {
"displayText": "Čas\ndo spánku",
"description": "\"Režim spánku\" naběhne v (s=sekundách | m=minutách)"
},
"ShutdownTimeout": {
"displayText": "Čas do\nvypnutí",
"description": "Interval automatického vypnutí (m=minut)"
},
"HallEffSensitivity": {
"displayText": "Citlivost\nHall. čidla",
"description": "Citlivost Hallova čidla pro detekci spánku (0=vypnuto | 1=nejméně citlivé | ... | 9=nejvíce citlivé)"
},
"TemperatureUnit": {
"displayText": "Jednotka\nteploty",
"description": "C=Celsius | F=Fahrenheit"
},
"DisplayRotation": {
"displayText": "Orientace\nobrazovky",
"description": "P=pravák | L=levák | A=automaticky"
},
"CooldownBlink": {
"displayText": "Blikáni při\nchladnutí",
"description": "Blikat teplotou při chladnutí dokud je hrot horký"
},
"ScrollingSpeed": {
"displayText": "Rychlost\nposouvání",
"description": "Rychlost posouvání popisků podobných tomuto (P=pomalu | R=rychle)"
},
"ReverseButtonTempChange": {
"displayText": "Prohodit\ntl. +-?",
"description": "Prohodit tlačítka pro změnu teploty"
},
"AnimSpeed": {
"displayText": "Anim.\nrychlost",
"description": "Tempo animace ikon v menu (O=vypnuto | P=pomalu | S=středně | R=rychle)"
},
"AnimLoop": {
"displayText": "Anim.\nsmyčka",
"description": "Animovat ikony hlavního menu ve smyčce"
},
"Brightness": {
"displayText": "Jas\nobrazovky",
"description": "Upravit jas OLED"
},
"ColourInversion": {
"displayText": "Invertovat\nobrazovku",
"description": "Invertovat barvy na OLED"
},
"LOGOTime": {
"displayText": "Trvání\nboot loga",
"description": "Nastavení doby trvání boot loga (s=sekundy)"
},
"AdvancedIdle": {
"displayText": "Podrobná obr.\nnečinnosti",
"description": "Zobrazit detailní informace malým fontem na obrazovce nečinnosti"
},
"AdvancedSoldering": {
"displayText": "Podrobná obr.\npájení",
"description": "Zobrazit detailní informace malým fontem na obrazovce pájení"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Omezení\nVýkonu",
"description": "Maximální příkon páječky (W=watt)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibrovat\nvstupní napětí?",
"description": "Začít kalibraci vstupního napětí (dlouhý stisk pro ukončení)"
},
"PowerPulsePower": {
"displayText": "Napájecí\npulz",
"description": "Intenzita výkonu pulzu pro udržení páječky vzhůru (watt)"
},
"PowerPulseWait": {
"displayText": "Prodleva\nnapáj. pulzu",
"description": "Prodleva než je spuštěn pulz pro udržení páječky vzhůru pulzu pro udržení páječky vzhůru (x 2,5s)"
},
"PowerPulseDuration": {
"displayText": "Délka\nnapáj. pulzu",
"description": "Délka pulzu pro udržení páječky vzhůru (x 250ms)"
},
"SettingsReset": {
"displayText": "Obnovit tovární\nnastavení?",
"description": "Obnovit všechna nastavení na výchozí"
},
"LanguageSwitch": {
"displayText": "Jazyk:\n CS Český",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "DA",
"languageLocalName": "Dansk",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Er du sikker du vil resette indstillingerne til standard?",
"UVLOWarningString": "Lav Volt",
"UndervoltageString": "Undervolt",
"InputVoltageString": "Input V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Dvale...",
"SleepingTipAdvancedString": "Tip:",
"OffString": "Off",
"DeviceFailedValidationWarning": "Din enhed er højst sandsyneligt en Kopivare!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Visse indstillinger",
"Er blevet ændret!"
],
"NoAccelerometerMessage": [
"ingen accelerometer",
"fundet!"
],
"NoPowerDeliveryMessage": [
"ingen USB-PD IC",
"Fundet!"
],
"LockingKeysString": "LÅST",
"UnlockingKeysString": "ULÅST",
"WarningKeysLockedString": "!LÅST!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "H",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "S",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "D",
"SettingStartSleepOffChar": "R",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Strøm",
"Indstillinger"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Lodde",
"Indstillinger"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Dvale",
"mode"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Bruger",
"Grændseflade"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Advancerede",
"Indstillinger"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Strøm",
"Kilde"
],
"desc": "Strømforsyning. Indstil Cutoff Spændingen. (DC 10V) (S 3,3V per celle)"
},
"MinVolCell": {
"text2": [
"Minimum",
"Spænding"
],
"desc": "Minimum tilladt spænding pr. celle (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"text2": [
"QC",
"Spænding"
],
"desc": "Max QC spænding Loddekolben skal forhandle sig til"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD-forhandlingstimeout i trin på 100 ms for kompatibilitet med nogle QC-opladere"
},
"BoostTemperature": {
"text2": [
"Boost",
"temp"
],
"desc": "Temperatur i \"boost mode\""
},
"AutoStart": {
"text2": [
"Start-up",
"Opførsel"
],
"desc": "Start automatisk med lodning når strøm sættes til. (S=Slukket | L=Lodning | D=Dvale tilstand | R=Dvale tilstand rumtemperatur)"
},
"TempChangeShortStep": {
"text2": [
"Temp ændring",
"kort"
],
"desc": "Temperatur-ændring-stigning ved kort tryk på knappen"
},
"TempChangeLongStep": {
"text2": [
"Temp ændring",
"lang"
],
"desc": "Temperatur-ændring-stigning ved lang tryk på knappen"
},
"LockingMode": {
"text2": [
"Tillad låsning",
"af knapperne"
],
"desc": "Hold begge knapper nede under lodning for at låse dem (D=deaktiver | B=kun boost-tilstand | F=fuld låsning)"
},
"MotionSensitivity": {
"text2": [
"Bevægelses",
"følsomhed"
],
"desc": "Bevægelsesfølsomhed (0=Slukket | 1=Mindst følsom | ... | 9=Mest følsom)"
},
"SleepTemperature": {
"text2": [
"Dvale",
"temp"
],
"desc": "Dvale Temperatur (C)"
},
"SleepTimeout": {
"text2": [
"Dvale",
"timeout"
],
"desc": "Dvale Timeout (Minutter | Sekunder)"
},
"ShutdownTimeout": {
"text2": [
"Sluknings",
"timeout"
],
"desc": "sluknings Timeout (Minutter)"
},
"HallEffSensitivity": {
"text2": [
"Hall sensor",
"følsomhed"
],
"desc": "følsomhed overfor magneten (0=Slukket | 1=Mindst følsom | ... | 9=Mest følsom)"
},
"TemperatureUnit": {
"text2": [
"Temperatur",
"Enhed"
],
"desc": "Temperatur Enhed (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"text2": [
"Skærm",
"Orientering"
],
"desc": "Skærm Orientering (H=Højre Håndet | V=Venstre Håndet | A=Automatisk)"
},
"CooldownBlink": {
"text2": [
"Køl ned",
"Blinkning"
],
"desc": "Blink temperaturen på skærmen, mens spidsen stadig er varm."
},
"ScrollingSpeed": {
"text2": [
"Scrolling",
"Hastighed"
],
"desc": "Hastigheden infotekst ruller forbi med (S=Langsom | F=Hurtigt)"
},
"ReverseButtonTempChange": {
"text2": [
"Skift",
"+ - tasterne"
],
"desc": "Skift tildeling af knapper til temperaturjustering"
},
"AnimSpeed": {
"text2": [
"Anim.",
"Hastighed"
],
"desc": "Hastigheden for ikonanimationer i menuen (O=fra | S=langsomt | M=medium | F=hurtigt)"
},
"AnimLoop": {
"text2": [
"Anim.",
"sløfe"
],
"desc": "ikonanimation sløfe i hovedmenuen"
},
"Brightness": {
"text2": [
"Skærm",
"lysstyrke"
],
"desc": "Juster lysstyrken på OLED-skærmen"
},
"ColourInversion": {
"text2": [
"spejlvende",
"skærm"
],
"desc": "spejlvende farverne på OLED-skærmen"
},
"LOGOTime": {
"text2": [
"opstartslogo",
"varighed"
],
"desc": "Indstiller varigheden for opstartslogoet (s=sekunder)"
},
"AdvancedIdle": {
"text2": [
"Detaljeret",
"Standby skærm"
],
"desc": "Vis detialieret information med en mindre skriftstørrelse på standby skærmen."
},
"AdvancedSoldering": {
"text2": [
"Detaljeret",
"loddeskærm"
],
"desc": "Vis detaljeret information mens der loddes"
},
"PowerLimit": {
"text2": [
"Strøm",
"begrænsning"
],
"desc": "Maksimal effekt Loddekolben kan bruge (W=watt)"
},
"CalibrateCJC": {
"text2": [
"kalibrere CJK",
"under næste opstart"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Kalibrere",
"input spændingen?"
],
"desc": "VIN kalibrering. Knapperne justere, Lang tryk for at gå ud"
},
"PowerPulsePower": {
"text2": [
"Strøm",
"puls"
],
"desc": "Intensiteten af strøm for hold-vågen-puls (watt)"
},
"PowerPulseWait": {
"text2": [
"Strøm puls",
"Forsinkelse"
],
"desc": "Forsinkelse før hold-vågen-puls udløses (x 2,5s)"
},
"PowerPulseDuration": {
"text2": [
"Strøm puls",
"varighed"
],
"desc": "Hold-vågen-pulsvarighed (x 250ms)"
},
"SettingsReset": {
"text2": [
"Gendan fabriks",
"Indstillinger"
],
"desc": "Gendan alle indstillinger"
},
"LanguageSwitch": {
"text2": [
"Sprog:",
" DA Dansk"
],
"desc": ""
}
}
}
{
"languageCode": "DA",
"languageLocalName": "Dansk",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Visse indstillinger\nEr blevet ændret!"
},
"NoAccelerometerMessage": {
"message": "ingen accelerometer\nfundet!"
},
"NoPowerDeliveryMessage": {
"message": "ingen USB-PD IC\nFundet!"
},
"LockingKeysString": {
"message": "LÅST"
},
"UnlockingKeysString": {
"message": "ULÅST"
},
"WarningKeysLockedString": {
"message": "!LÅST!"
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Er du sikker du vil resette indstillingerne til standard?"
},
"UVLOWarningString": {
"message": "Lav Volt"
},
"UndervoltageString": {
"message": "Undervolt\n"
},
"InputVoltageString": {
"message": "Input V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Dvale...\n"
},
"SleepingTipAdvancedString": {
"message": "Tip: \n"
},
"OffString": {
"message": "Off"
},
"DeviceFailedValidationWarning": {
"message": "Din enhed er højst sandsyneligt en Kopivare!"
}
},
"characters": {
"SettingRightChar": "H",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "S",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "D",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Strøm\nIndstillinger",
"description": ""
},
"SolderingMenu": {
"displayText": "Lodde\nIndstillinger",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Dvale\nmode",
"description": ""
},
"UIMenu": {
"displayText": "Bruger\nGrændseflade",
"description": ""
},
"AdvancedMenu": {
"displayText": "Advancerede\nIndstillinger",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Strøm\nKilde",
"description": "Strømforsyning. Indstil Cutoff Spændingen. (DC 10V) (S 3,3V per celle)"
},
"MinVolCell": {
"displayText": "Minimum\nSpænding",
"description": "Minimum tilladt spænding pr. celle (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nSpænding",
"description": "Max QC spænding Loddekolben skal forhandle sig til"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD-forhandlingstimeout i trin på 100 ms for kompatibilitet med nogle QC-opladere"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\ntemp",
"description": "Temperatur i \"boost mode\""
},
"AutoStart": {
"displayText": "Start-up\nOpførsel",
"description": "Start automatisk med lodning når strøm sættes til. (S=Slukket | L=Lodning | D=Dvale tilstand | R=Dvale tilstand rumtemperatur)"
},
"TempChangeShortStep": {
"displayText": "Temp ændring\nkort",
"description": "Temperatur-ændring-stigning ved kort tryk på knappen"
},
"TempChangeLongStep": {
"displayText": "Temp ændring\nlang",
"description": "Temperatur-ændring-stigning ved lang tryk på knappen"
},
"LockingMode": {
"displayText": "Tillad låsning\naf knapperne",
"description": "Hold begge knapper nede under lodning for at låse dem (D=deaktiver | B=kun boost-tilstand | F=fuld låsning)"
},
"MotionSensitivity": {
"displayText": "Bevægelses\nfølsomhed",
"description": "Bevægelsesfølsomhed (0=Slukket | 1=Mindst følsom | ... | 9=Mest følsom)"
},
"SleepTemperature": {
"displayText": "Dvale\ntemp",
"description": "Dvale Temperatur (C)"
},
"SleepTimeout": {
"displayText": "Dvale\ntimeout",
"description": "Dvale Timeout (Minutter | Sekunder)"
},
"ShutdownTimeout": {
"displayText": "Sluknings\ntimeout",
"description": "sluknings Timeout (Minutter)"
},
"HallEffSensitivity": {
"displayText": "Hall sensor\nfølsomhed",
"description": "følsomhed overfor magneten (0=Slukket | 1=Mindst følsom | ... | 9=Mest følsom)"
},
"TemperatureUnit": {
"displayText": "Temperatur\nEnhed",
"description": "Temperatur Enhed (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"displayText": "Skærm\nOrientering",
"description": "Skærm Orientering (H=Højre Håndet | V=Venstre Håndet | A=Automatisk)"
},
"CooldownBlink": {
"displayText": "Køl ned\nBlinkning",
"description": "Blink temperaturen på skærmen, mens spidsen stadig er varm."
},
"ScrollingSpeed": {
"displayText": "Scrolling\nHastighed",
"description": "Hastigheden infotekst ruller forbi med (S=Langsom | F=Hurtigt)"
},
"ReverseButtonTempChange": {
"displayText": "Skift\n+ - tasterne",
"description": "Skift tildeling af knapper til temperaturjustering"
},
"AnimSpeed": {
"displayText": "Anim.\nHastighed",
"description": "Hastigheden for ikonanimationer i menuen (O=fra | S=langsomt | M=medium | F=hurtigt)"
},
"AnimLoop": {
"displayText": "Anim.\nsløfe",
"description": "ikonanimation sløfe i hovedmenuen"
},
"Brightness": {
"displayText": "Skærm\nlysstyrke",
"description": "Juster lysstyrken på OLED-skærmen"
},
"ColourInversion": {
"displayText": "spejlvende\nskærm",
"description": "spejlvende farverne på OLED-skærmen"
},
"LOGOTime": {
"displayText": "opstartslogo\nvarighed",
"description": "Indstiller varigheden for opstartslogoet (s=sekunder)"
},
"AdvancedIdle": {
"displayText": "Detaljeret\nStandby skærm",
"description": "Vis detialieret information med en mindre skriftstørrelse på standby skærmen."
},
"AdvancedSoldering": {
"displayText": "Detaljeret\nloddeskærm",
"description": "Vis detaljeret information mens der loddes"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Strøm\nbegrænsning",
"description": "Maksimal effekt Loddekolben kan bruge (W=watt)"
},
"CalibrateCJC": {
"displayText": "kalibrere CJK\nunder næste opstart",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibrere\ninput spændingen?",
"description": "VIN kalibrering. Knapperne justere, Lang tryk for at gå ud"
},
"PowerPulsePower": {
"displayText": "Strøm\npuls",
"description": "Intensiteten af strøm for hold-vågen-puls (watt)"
},
"PowerPulseWait": {
"displayText": "Strøm puls\nForsinkelse",
"description": "Forsinkelse før hold-vågen-puls udløses (x 2,5s)"
},
"PowerPulseDuration": {
"displayText": "Strøm puls\nvarighed",
"description": "Hold-vågen-pulsvarighed (x 250ms)"
},
"SettingsReset": {
"displayText": "Gendan fabriks\nIndstillinger",
"description": "Gendan alle indstillinger"
},
"LanguageSwitch": {
"displayText": "Sprog:\n DA Dansk",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "DE",
"languageLocalName": "Deutsch",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Vor dem Neustart bitte sicherstellen, dass Lötspitze & Gerät Raumtemperatur haben!",
"CJCCalibrating": "kalibriere",
"SettingsResetWarning": "Sicher, dass alle Werte zurückgesetzt werden sollen?",
"UVLOWarningString": "V niedr.",
"UndervoltageString": "Unterspannung",
"InputVoltageString": "V Eingang: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Ruhemodus...",
"SleepingTipAdvancedString": "Temp:",
"OffString": "Aus",
"DeviceFailedValidationWarning": "Höchstwahrscheinlich ist das Gerät eine Fälschung!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Erfolgreich",
"kalibriert!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Einstellungen",
"zurückgesetzt!"
],
"NoAccelerometerMessage": [
"Bewegungssensor",
"nicht erkannt!"
],
"NoPowerDeliveryMessage": [
"USB-PD IC",
"nicht erkannt!"
],
"LockingKeysString": "GESPERRT",
"UnlockingKeysString": "ENTSPERRT",
"WarningKeysLockedString": "!GESPERRT!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "A",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "A",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "K",
"SettingSensitivityOff": "A",
"SettingSensitivityLow": "N",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "A",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Energie-",
"einstellungen"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Löt-",
"einstellungen"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Ruhe-",
"modus"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Anzeige-",
"einstellungen"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Erweiterte",
"Einstellungen"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Spannungs-",
"quelle"
],
"desc": "Spannungsquelle (Abschaltspannung) (DC=10V | nS=n*3.3V für n LiIon-Zellen)"
},
"MinVolCell": {
"text2": [
"Minimale",
"Spannung"
],
"desc": "Minimal zulässige Spannung pro Zelle (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"text2": [
"Spannungs-",
"maximum"
],
"desc": "Maximal zulässige Spannung der verwendeten Spannungsversorgung (V=Volt)"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD Abfragedauer in 100ms Schritten (Kompatibilität mit best. QC-Ladegeräten)"
},
"BoostTemperature": {
"text2": [
"Boost-",
"temperatur"
],
"desc": "Temperatur der Lötspitze im Boostmodus"
},
"AutoStart": {
"text2": [
"Start im",
"Lötmodus"
],
"desc": "Heizverhalten beim Einschalten der Spannungsversorgung (A=aus | L=Lötmodus | R=Ruhemodus | K=Ruhemodus mit kalter Spitze)"
},
"TempChangeShortStep": {
"text2": [
"Temp-Schritt",
"Druck kurz"
],
"desc": "Schrittweite für Temperaturwechsel bei kurzem Tastendruck"
},
"TempChangeLongStep": {
"text2": [
"Temp-Schritt",
"Druck lang"
],
"desc": "Schrittweite für Temperaturwechsel bei langem Tastendruck"
},
"LockingMode": {
"text2": [
"Tasten-",
"sperre"
],
"desc": "Langes drücken beider Tasten im Lötmodus sperrt diese (A=aus | B=nur Boost | V=vollständig)"
},
"MotionSensitivity": {
"text2": [
"Bewegungs-",
"empfindlichk."
],
"desc": "0=aus | 1=minimal | ... | 9=maximal"
},
"SleepTemperature": {
"text2": [
"Ruhe-",
"temperatur"
],
"desc": "Ruhetemperatur der Spitze"
},
"SleepTimeout": {
"text2": [
"Ruhever-",
"zögerung"
],
"desc": "Dauer vor Übergang in den Ruhemodus (s=Sekunden | m=Minuten)"
},
"ShutdownTimeout": {
"text2": [
"Abschalt-",
"verzög."
],
"desc": "Dauer vor automatischer Abschaltung (m=Minuten)"
},
"HallEffSensitivity": {
"text2": [
"Empfindlichkeit",
"der Hall-Sonde"
],
"desc": "Empfindlichkeit der Hall-Sonde um den Ruhemodus auszulösen (0=aus | 1=minimal | ... | 9=maximal)"
},
"TemperatureUnit": {
"text2": [
"Temperatur-",
"einheit"
],
"desc": "C=°Celsius | F=°Fahrenheit"
},
"DisplayRotation": {
"text2": [
"Anzeige-",
"ausrichtung"
],
"desc": "R=rechtshändig | L=linkshändig | A=automatisch"
},
"CooldownBlink": {
"text2": [
"Abkühl-",
"blinken"
],
"desc": "Temperaturanzeige blinkt beim Abkühlen, solange Spitze heiß ist"
},
"ScrollingSpeed": {
"text2": [
"Scroll-",
"geschw."
],
"desc": "Scrollgeschwindigkeit der Erläuterungen (L=langsam | S=schnell)"
},
"ReverseButtonTempChange": {
"text2": [
"+- Tasten",
"umkehren?"
],
"desc": "Tastenbelegung zur Temperaturänderung umkehren"
},
"AnimSpeed": {
"text2": [
"Anim.",
"Geschw."
],
"desc": "Geschwindigkeit der Icon-Animationen im Menü (A=aus | L=langsam | M=mittel | S=schnell)"
},
"AnimLoop": {
"text2": [
"Anim.",
"Schleife"
],
"desc": "Icon-Animationen im Hauptmenü wiederholen"
},
"Brightness": {
"text2": [
"Bildschirm-",
"kontrast"
],
"desc": "Verändert die Helligkeit des OLED-Displays"
},
"ColourInversion": {
"text2": [
"Farben",
"umkehren"
],
"desc": "Invertiert die Farben des OLED-Displays"
},
"LOGOTime": {
"text2": [
"Startlogo-",
"dauer"
],
"desc": "Legt die Dauer der Anzeige des Startlogos fest (s=Sekunden)"
},
"AdvancedIdle": {
"text2": [
"Detaillierte",
"Ruheansicht"
],
"desc": "Detaillierte Anzeige im Ruhemodus"
},
"AdvancedSoldering": {
"text2": [
"Detaillierte",
"Lötansicht"
],
"desc": "Detaillierte Anzeige im Lötmodus"
},
"PowerLimit": {
"text2": [
"Leistungs-",
"maximum"
],
"desc": "Maximal zulässige Leistungsaufnahme des Lötkolbens (W=Watt)"
},
"CalibrateCJC": {
"text2": [
"Temperatur",
"kalibrieren?"
],
"desc": "Beim nächsten Start wird die Kaltstellenkompensation kalibriert (nicht nötig wenn Delta T < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Eingangsspannung",
"kalibrieren?"
],
"desc": "Kalibrierung der Eingangsspannung (Langer Tastendruck zum Verlassen)"
},
"PowerPulsePower": {
"text2": [
"Leistungs-",
"impuls"
],
"desc": "Powerbank mit einem Impuls wach halten (Watt)"
},
"PowerPulseWait": {
"text2": [
"Impuls-",
"verzögerung"
],
"desc": "Dauer vor Abgabe von Wachhalteimpulsen (x 2,5s)"
},
"PowerPulseDuration": {
"text2": [
"Impuls-",
"dauer"
],
"desc": "Dauer des Wachhalteimpulses (x 250ms)"
},
"SettingsReset": {
"text2": [
"Einstellungen",
"zurücksetzen?"
],
"desc": "Werte auf Werkseinstellungen zurücksetzen"
},
"LanguageSwitch": {
"text2": [
"Sprache:",
" DE Deutsch"
],
"desc": ""
}
}
}
{
"languageCode": "DE",
"languageLocalName": "Deutsch",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Erfolgreich\nkalibriert!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Einstellungen\nzurückgesetzt!"
},
"NoAccelerometerMessage": {
"message": "Bewegungssensor\nnicht erkannt!"
},
"NoPowerDeliveryMessage": {
"message": "USB-PD IC\nnicht erkannt!"
},
"LockingKeysString": {
"message": "GESPERRT"
},
"UnlockingKeysString": {
"message": "ENTSPERRT"
},
"WarningKeysLockedString": {
"message": "!GESPERRT!"
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Vor dem Neustart bitte sicherstellen, dass Lötspitze & Gerät Raumtemperatur haben!"
},
"CJCCalibrating": {
"message": "kalibriere\n"
},
"SettingsResetWarning": {
"message": "Sicher, dass alle Werte zurückgesetzt werden sollen?"
},
"UVLOWarningString": {
"message": "V niedr."
},
"UndervoltageString": {
"message": "Unterspannung\n"
},
"InputVoltageString": {
"message": "V Eingang: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Ruhemodus...\n"
},
"SleepingTipAdvancedString": {
"message": "Temp: \n"
},
"OffString": {
"message": "Aus"
},
"DeviceFailedValidationWarning": {
"message": "Höchstwahrscheinlich ist das Gerät eine Fälschung!"
}
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "A",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "A",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "K",
"SettingLockDisableChar": "A",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Energie-\neinstellungen",
"description": ""
},
"SolderingMenu": {
"displayText": "Löt-\neinstellungen",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Ruhe-\nmodus",
"description": ""
},
"UIMenu": {
"displayText": "Anzeige-\neinstellungen",
"description": ""
},
"AdvancedMenu": {
"displayText": "Erweiterte\nEinstellungen",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Spannungs-\nquelle",
"description": "Spannungsquelle (Abschaltspannung) (DC=10V | nS=n*3.3V für n LiIon-Zellen)"
},
"MinVolCell": {
"displayText": "Minimale\nSpannung",
"description": "Minimal zulässige Spannung pro Zelle (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "Spannungs-\nmaximum",
"description": "Maximal zulässige Spannung der verwendeten Spannungsversorgung (V=Volt)"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD Abfragedauer in 100ms Schritten (Kompatibilität mit best. QC-Ladegeräten)"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Aktiviert PPS & EPR"
},
"BoostTemperature": {
"displayText": "Boost-\ntemperatur",
"description": "Temperatur der Lötspitze im Boostmodus"
},
"AutoStart": {
"displayText": "Start im\nLötmodus",
"description": "Heizverhalten beim Einschalten der Spannungsversorgung (A=aus | L=Lötmodus | R=Ruhemodus | K=Ruhemodus mit kalter Spitze)"
},
"TempChangeShortStep": {
"displayText": "Temp-Schritt\nDruck kurz",
"description": "Schrittweite für Temperaturwechsel bei kurzem Tastendruck"
},
"TempChangeLongStep": {
"displayText": "Temp-Schritt\nDruck lang",
"description": "Schrittweite für Temperaturwechsel bei langem Tastendruck"
},
"LockingMode": {
"displayText": "Tasten-\nsperre",
"description": "Langes drücken beider Tasten im Lötmodus sperrt diese (A=aus | B=nur Boost | V=vollständig)"
},
"MotionSensitivity": {
"displayText": "Bewegungs-\nempfindlichk.",
"description": "0=aus | 1=minimal | ... | 9=maximal"
},
"SleepTemperature": {
"displayText": "Ruhe-\ntemperatur",
"description": "Ruhetemperatur der Spitze"
},
"SleepTimeout": {
"displayText": "Ruhever-\nzögerung",
"description": "Dauer vor Übergang in den Ruhemodus (s=Sekunden | m=Minuten)"
},
"ShutdownTimeout": {
"displayText": "Abschalt-\nverzög.",
"description": "Dauer vor automatischer Abschaltung (m=Minuten)"
},
"HallEffSensitivity": {
"displayText": "Empfindlichkeit\nder Hall-Sonde",
"description": "Empfindlichkeit der Hall-Sonde um den Ruhemodus auszulösen (0=aus | 1=minimal | ... | 9=maximal)"
},
"TemperatureUnit": {
"displayText": "Temperatur-\neinheit",
"description": "C=°Celsius | F=°Fahrenheit"
},
"DisplayRotation": {
"displayText": "Anzeige-\nausrichtung",
"description": "R=rechtshändig | L=linkshändig | A=automatisch"
},
"CooldownBlink": {
"displayText": "Abkühl-\nblinken",
"description": "Temperaturanzeige blinkt beim Abkühlen, solange Spitze heiß ist"
},
"ScrollingSpeed": {
"displayText": "Scroll-\ngeschw.",
"description": "Scrollgeschwindigkeit der Erläuterungen (L=langsam | S=schnell)"
},
"ReverseButtonTempChange": {
"displayText": "+- Tasten\numkehren",
"description": "Tastenbelegung zur Temperaturänderung umkehren"
},
"AnimSpeed": {
"displayText": "Anim.\nGeschw.",
"description": "Geschwindigkeit der Icon-Animationen im Menü (A=aus | L=langsam | M=mittel | S=schnell)"
},
"AnimLoop": {
"displayText": "Anim.\nSchleife",
"description": "Icon-Animationen im Hauptmenü wiederholen"
},
"Brightness": {
"displayText": "Bildschirm-\nhelligkeit",
"description": "Verändert die Helligkeit des OLED-Displays"
},
"ColourInversion": {
"displayText": "Farben\numkehren",
"description": "Invertiert die Farben des OLED-Displays"
},
"LOGOTime": {
"displayText": "Startlogo-\ndauer",
"description": "Legt die Dauer der Anzeige des Startlogos fest (s=Sekunden)"
},
"AdvancedIdle": {
"displayText": "Detaillierte\nRuheansicht",
"description": "Detaillierte Anzeige im Ruhemodus"
},
"AdvancedSoldering": {
"displayText": "Detaillierte\nLötansicht",
"description": "Detaillierte Anzeige im Lötmodus"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Aktiviert Bluetooth LE"
},
"PowerLimit": {
"displayText": "Leistungs-\nmaximum",
"description": "Maximal zulässige Leistungsaufnahme des Lötkolbens (W=Watt)"
},
"CalibrateCJC": {
"displayText": "Temperatur\nkalibrieren",
"description": "Beim nächsten Start wird die Kaltstellenkompensation kalibriert (nicht nötig wenn Delta T < 5°C)"
},
"VoltageCalibration": {
"displayText": "Eingangsspannung\nkalibrieren",
"description": "Kalibrierung der Eingangsspannung (Langer Tastendruck zum Verlassen)"
},
"PowerPulsePower": {
"displayText": "Leistungs-\nimpuls",
"description": "Powerbank mit einem Impuls wach halten (Watt)"
},
"PowerPulseWait": {
"displayText": "Impuls-\nverzögerung",
"description": "Dauer vor Abgabe von Wachhalteimpulsen (x 2,5s)"
},
"PowerPulseDuration": {
"displayText": "Impuls-\ndauer",
"description": "Dauer des Wachhalteimpulses (x 250ms)"
},
"SettingsReset": {
"displayText": "Einstellungen\nzurücksetzen",
"description": "Werte auf Werkseinstellungen zurücksetzen"
},
"LanguageSwitch": {
"displayText": "Sprache:\n DE Deutsch",
"description": ""
}
}
}

View File

@@ -1,344 +1,251 @@
{
"languageCode": "EL",
"languageLocalName": "Greek",
"tempUnitFahrenheit": true,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Σίγουρα θέλετε επαναφορά αρχικών ρυθμίσεων;",
"UVLOWarningString": "Χαμηλ DC",
"UndervoltageString": "Υπόταση",
"InputVoltageString": "Είσοδος V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Υπνος...",
"SleepingTipAdvancedString": "Μύτη:",
"OffString": "Απ.",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Επαν. OK",
"SettingsResetMessage": [
"Κάποιες ρυθμ.",
"άλλαξαν"
],
"NoAccelerometerMessage": [
"Δεν εντοπίστηκε",
"επιταχυνσιόμετρο"
],
"NoPowerDeliveryMessage": [
"Δεν εντοπίστηκε",
"κύκλωμα USB-PD"
],
"LockingKeysString": "ΚΛΕΙΔ.",
"UnlockingKeysString": "ΞΕΚΛΕΙΔ.",
"WarningKeysLockedString": [
"ΚΛΕΙΔΩΜΕΝΑ",
"ΠΛΗΚΤΡΑ!"
],
"WarningThermalRunaway": [
"Θερμική",
"Φυγή"
]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "Α",
"SettingOffChar": "0",
"SettingSlowChar": "Α",
"SettingMediumChar": "Μ",
"SettingFastChar": "Γ",
"SettingStartNoneChar": "0",
"SettingStartSolderingChar": "Κ",
"SettingStartSleepChar": "Ζ",
"SettingStartSleepOffChar": "Υ",
"SettingSensitivityOff": "0",
"SettingSensitivityLow": "Χ",
"SettingSensitivityMedium": "Μ",
"SettingSensitivityHigh": "Υ",
"SettingLockDisableChar": "Α",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "Π"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Ρυθμίσεις",
"ενέργειας"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Ρυθμίσεις",
"κόλλησης"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Λειτουργία",
"ύπνου"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Διεπαφή",
"χρήστη"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Προηγμένες",
"ρυθμίσεις"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Πηγή",
"ενέργειας"
],
"desc": "Πηγή ενέργειας. Oρισμός τάσης απενεργοποίησης. (DC 10V) (S 3.3V ανα κυψέλη, απενεργοποίηση ενεργειακού ορίου)"
},
"MinVolCell": {
"text2": [
"Ελάχιστη",
"τάση"
],
"desc": "Ελάχιστη επιτρεπτή τάση ανα κυψέλη (3 σε σειρά: 3 - 3.7V | 4-6 σε σειρά: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"Τάση",
"QC"
],
"desc": "Μέγιστη τάση QC που να ζητά το κολλητήρι από το τροφοδοτικό"
},
"PDNegTimeout": {
"text2": [
"χρονικό όριο",
"PD"
],
"desc": "Χρονικό όριο διαπραγμάτευσης PD σε βήματα 100ms για συμβατότητα με κάποιους φορτιστές QC"
},
"BoostTemperature": {
"text2": [
"Θερμοκ.",
"boost"
],
"desc": "Θερμοκρασία στη \"λειτουργία boost\""
},
"AutoStart": {
"text2": [
"Ζέσταμα",
"κατά την εν."
],
"desc": "0=off | Κ=θερμ. κόλλησης | Z=αναμονή σε θερμοκρασία ύπνου μέχρι την κίνηση | Υ=αναμονή χωρίς ζέσταμα μέχρι την κίνηση"
},
"TempChangeShortStep": {
"text2": [
"Αλλαγή θερμοκ.",
"στιγμιαίο"
],
"desc": "Βήμα αλλαγής θερμοκρασίας σε στιγμιαίο πάτημα πλήκτρου"
},
"TempChangeLongStep": {
"text2": [
"Αλλαγή θερμοκ.",
"παρατεταμένο"
],
"desc": "Βήμα αλλαγής θερμοκρασίας σε παρατεταμένο πάτημα πλήκτρου"
},
"LockingMode": {
"text2": [
"Κλείδωμα",
"πλήκτρων"
],
"desc": "Κατά την κόλληση, κρατήστε και τα δύο πλήκτρα για κλείδωμα (A=απενεργοποίηση | B=μόνο λειτ. boost | Π=πλήρες κλείδωμα)"
},
"MotionSensitivity": {
"text2": [
"Ευαισθησία",
"κίνησης"
],
"desc": "0=off | 1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο"
},
"SleepTemperature": {
"text2": [
"Θερμοκρ.",
"ύπνου"
],
"desc": "Θερμοκρασία μύτης σε λειτ. ύπνου"
},
"SleepTimeout": {
"text2": [
"Έναρξη",
"ύπνου"
],
"desc": "Χρονικό διάστημα πρίν την ενεργοποίηση λειτουργίας ύπνου (Δ=δευτ. | Λ=λεπτά)"
},
"ShutdownTimeout": {
"text2": [
"Έναρξη",
"απενεργ."
],
"desc": "Χρονικό διάστημα πρίν την απενεργοποίηση του κολλητηριού (Λ=λεπτά)"
},
"HallEffSensitivity": {
"text2": [
"Ευαισθ. αισθ. ",
"φαιν. Hall"
],
"desc": "Ευαισθησία του αισθητήρα φαινομένου Hall για εντοπισμό αδράνειας (0=off | 1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο)"
},
"TemperatureUnit": {
"text2": [
"Μονάδες",
"θερμοκρασίας"
],
"desc": "C=Κελσίου | F=Φαρενάιτ"
},
"DisplayRotation": {
"text2": [
"Διάταξη",
"οθόνης"
],
"desc": "R=δεξιόχειρες | L=αριστερόχειρες | Α=αυτόματο"
},
"CooldownBlink": {
"text2": [
"Αναβοσβήσιμο",
"ψύξης"
],
"desc": "Αναβοσβήσιμο της ενδειξης θερμοκρασίας κατά την παύση θέρμανσης όταν η μύτη είναι ακόμα καυτή"
},
"ScrollingSpeed": {
"text2": [
"Ταχύτητα",
"κύλισης"
],
"desc": "Ταχύτητα κύλισης κειμένου (Α=αργά | Γ=γρήγορα)"
},
"ReverseButtonTempChange": {
"text2": [
"Αντιστροφή",
"πλήκτρων + -"
],
"desc": "Αντιστροφή διάταξης πλήκτρων στη ρύθμιση θερμοκρασίας"
},
"AnimSpeed": {
"text2": [
"Ταχύτητα",
"κιν. εικονιδ."
],
"desc": "Ρυθμός κίνησης εικονιδίων στο μενού (0=off | Α=αργός | Μ=μέτριος | Γ=γρήγορος)"
},
"AnimLoop": {
"text2": [
"Επανάληψη",
"κιν. εικονιδ."
],
"desc": "Επανάληψη κίνησης εικονιδίων στο αρχικό μενού"
},
"Brightness": {
"text2": [
"Αντίθεση",
"οθόνης"
],
"desc": "Ρύθμιση φωτεινότητας οθόνης OLED"
},
"ColourInversion": {
"text2": [
"Αντιστροφή",
"χρωμάτων"
],
"desc": "Αντιστροφή χρωμάτων οθόνης OLED"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Sets the duration for the boot logo (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Λεπτομερής",
"οθ. αδράνειας"
],
"desc": "Προβολή λεπτομερών πληροφοριών σε μικρότερη γραμματοσειρά στην οθόνη αδράνειας"
},
"AdvancedSoldering": {
"text2": [
"Λεπτομερής",
"οθ. κόλλησης"
],
"desc": "Προβολή λεπτομερών πληροφοριών σε μικρότερη γραμματοσειρά στην οθόνη κόλλησης"
},
"PowerLimit": {
"text2": [
"Ενεργειακό",
"όριο"
],
"desc": "Μέγιστη ενέργεια που μπορεί να χρησιμοποιεί το κολλητήρι (W=watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"text2": [
"Βαθμονόμηση",
"τάσης εισόδου;"
],
"desc": "Έναρξη βαθμονόμησης τάσης εισόδου (κράτημα για έξοδο)"
},
"PowerPulsePower": {
"text2": [
"Παλμός",
"ενέργειας"
],
"desc": "Ένταση ενέργειας παλμού διατήρησης λειτουργίας (W=watt)"
},
"PowerPulseWait": {
"text2": [
"Καθυστέρηση",
"παλμού ενέργ."
],
"desc": "Καθυστέρηση πριν την ενεργοποίση παλμού διατήρησης λειτουργίας (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Διάρκεια",
"παλμού ενέργ."
],
"desc": "Διάρκεια παλμού διατήρησης ενέργειας (x 250ms)"
},
"SettingsReset": {
"text2": [
"Επαναφορά",
"εργ. ρυθμίσεων;"
],
"desc": "Επαναφορά στις προεπιλεγμένες ρυθμίσεις"
},
"LanguageSwitch": {
"text2": [
"Γλώσσα:",
" GR Ελληνικά"
],
"desc": ""
}
}
}
{
"languageCode": "EL",
"languageLocalName": "Greek",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Βαθμονόμηση\nολοκληρώθηκε!"
},
"ResetOKMessage": {
"message": "Επαν. OK"
},
"SettingsResetMessage": {
"message": "Κάποιες ρυθμ.\nάλλαξαν"
},
"NoAccelerometerMessage": {
"message": "Δεν εντοπίστηκε\nεπιταχυνσιόμετρο"
},
"NoPowerDeliveryMessage": {
"message": "Δεν εντοπίστηκε\nκύκλωμα USB-PD"
},
"LockingKeysString": {
"message": "ΚΛΕΙΔ."
},
"UnlockingKeysString": {
"message": "ΞΕΚΛΕΙΔ."
},
"WarningKeysLockedString": {
"message": "ΚΛΕΙΔΩΜΕΝΑ\nΠΛΗΚΤΡΑ!"
},
"WarningThermalRunaway": {
"message": "Θερμική\nΦυγή"
},
"SettingsCalibrationWarning": {
"message": "Πριν την επανεκκίνηση, βεβαιωθείτε ότι η μύτη και η συσκ. είναι σε θερμ. δωματίου!"
},
"CJCCalibrating": {
"message": "βαθμονόμηση\n"
},
"SettingsResetWarning": {
"message": "Σίγουρα θέλετε επαναφορά αρχικών ρυθμίσεων;"
},
"UVLOWarningString": {
"message": "Χαμηλ DC"
},
"UndervoltageString": {
"message": "Υπόταση\n"
},
"InputVoltageString": {
"message": "Είσοδος V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Υπνος...\n"
},
"SleepingTipAdvancedString": {
"message": "Μύτη: \n"
},
"OffString": {
"message": "Απ."
},
"DeviceFailedValidationWarning": {
"message": "Η συσκευή σας ίσως να μην είναι αυθεντική!"
}
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "Α",
"SettingOffChar": "0",
"SettingSlowChar": "Α",
"SettingMediumChar": "Μ",
"SettingFastChar": "Γ",
"SettingStartNoneChar": "0",
"SettingStartSolderingChar": "Κ",
"SettingStartSleepChar": "Ζ",
"SettingStartSleepOffChar": "Υ",
"SettingLockDisableChar": "Α",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "Π"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Ρυθμίσεις\nενέργειας",
"description": ""
},
"SolderingMenu": {
"displayText": "Ρυθμίσεις\nκόλλησης",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Λειτουργία\nύπνου",
"description": ""
},
"UIMenu": {
"displayText": "Διεπαφή\nχρήστη",
"description": ""
},
"AdvancedMenu": {
"displayText": "Προηγμένες\nρυθμίσεις",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Πηγή\nενέργειας",
"description": "Πηγή ενέργειας. Oρισμός τάσης απενεργοποίησης. (DC 10V) (S 3.3V ανα μπαταρία, απενεργοποίηση ενεργειακού ορίου)"
},
"MinVolCell": {
"displayText": "Ελάχιστη\nτάση",
"description": "Ελάχιστη επιτρεπτή τάση ανα μπαταρία (3 σε σειρά: 3 - 3.7V | 4-6 σε σειρά: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Τάση\nQC",
"description": "Μέγιστη τάση QC που να ζητείται από το τροφοδοτικό"
},
"PDNegTimeout": {
"displayText": "χρονικό όριο\nPD",
"description": "Χρονικό όριο διαπραγμάτευσης PD σε βήματα 100ms για συμβατότητα με κάποιους φορτιστές QC"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Ενεργοποιεί λειτουργίες PPS & EPR."
},
"BoostTemperature": {
"displayText": "Θερμοκ.\nboost",
"description": "Θερμοκρασία στη \"λειτουργία boost\""
},
"AutoStart": {
"displayText": "Ζέσταμα\nκατά την εν.",
"description": "0=off | Κ=θερμ. κόλλησης | Z=αναμονή σε θερμοκρασία ύπνου μέχρι την κίνηση | Υ=αναμονή χωρίς ζέσταμα μέχρι την κίνηση"
},
"TempChangeShortStep": {
"displayText": "Αλλαγή θερμοκ.\nστιγμιαίο",
"description": "Βήμα αλλαγής θερμοκρασίας σε στιγμιαίο πάτημα πλήκτρου"
},
"TempChangeLongStep": {
"displayText": "Αλλαγή θερμοκ.\nπαρατεταμένο",
"description": "Βήμα αλλαγής θερμοκρασίας σε παρατεταμένο πάτημα πλήκτρου"
},
"LockingMode": {
"displayText": "Κλείδωμα\nπλήκτρων",
"description": "Κατά την κόλληση, κρατήστε και τα δύο πλήκτρα για κλείδωμα (A=απενεργοποίηση | B=μόνο λειτ. boost | Π=πλήρες κλείδωμα)"
},
"MotionSensitivity": {
"displayText": "Ευαισθησία\nκίνησης",
"description": "0=off | 1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο"
},
"SleepTemperature": {
"displayText": "Θερμοκρ.\nύπνου",
"description": "Θερμοκρασία μύτης σε λειτ. ύπνου"
},
"SleepTimeout": {
"displayText": "Έναρξη\nύπνου",
"description": "Χρονικό διάστημα πρίν την ενεργοποίηση λειτουργίας ύπνου (Δ=δευτ. | Λ=λεπτά)"
},
"ShutdownTimeout": {
"displayText": "Έναρξη\nαπενεργ.",
"description": "Χρονικό διάστημα πρίν την απενεργοποίηση του κολλητηριού (Λ=λεπτά)"
},
"HallEffSensitivity": {
"displayText": "Ευαισθ. αισθ. \nφαιν. Hall",
"description": "Ευαισθησία του αισθητήρα φαινομένου Hall για εντοπισμό αδράνειας (0=off | 1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο)"
},
"TemperatureUnit": {
"displayText": "Μονάδες\nθερμοκρασίας",
"description": "C=Κελσίου | F=Φαρενάιτ"
},
"DisplayRotation": {
"displayText": "Διάταξη\nοθόνης",
"description": "R=δεξιόχειρες | L=αριστερόχειρες | Α=αυτόματο"
},
"CooldownBlink": {
"displayText": "Αναβοσβήσιμο\nψύξης",
"description": "Αναβοσβήσιμο της ενδειξης θερμοκρασίας κατά την παύση θέρμανσης όταν η μύτη είναι ακόμα καυτή"
},
"ScrollingSpeed": {
"displayText": "Ταχύτητα\nκύλισης",
"description": "Ταχύτητα κύλισης κειμένου (Α=αργά | Γ=γρήγορα)"
},
"ReverseButtonTempChange": {
"displayText": "Αντιστροφή\nπλήκτρων + -",
"description": "Αντιστροφή διάταξης πλήκτρων στη ρύθμιση θερμοκρασίας"
},
"AnimSpeed": {
"displayText": "Ταχύτητα\nκιν. εικονιδ.",
"description": "Ρυθμός κίνησης εικονιδίων στο μενού (0=off | Α=αργός | Μ=μέτριος | Γ=γρήγορος)"
},
"AnimLoop": {
"displayText": "Επανάληψη\nκιν. εικονιδ.",
"description": "Επανάληψη κίνησης εικονιδίων στο αρχικό μενού"
},
"Brightness": {
"displayText": "Αντίθεση\nοθόνης",
"description": "Ρύθμιση φωτεινότητας οθόνης OLED"
},
"ColourInversion": {
"displayText": "Αντιστροφή\nχρωμάτων",
"description": "Αντιστροφή χρωμάτων οθόνης OLED"
},
"LOGOTime": {
"displayText": "Διάρκεια\nlogo εκκίνησης",
"description": "Διάρκεια εμφάνισης της εικόνας εκκίνησης (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Λεπτομερής\nοθ. αδράνειας",
"description": "Προβολή λεπτομερών πληροφοριών σε μικρότερη γραμματοσειρά στην οθόνη αδράνειας"
},
"AdvancedSoldering": {
"displayText": "Λεπτομερής\nοθ. κόλλησης",
"description": "Προβολή λεπτομερών πληροφοριών σε μικρότερη γραμματοσειρά στην οθόνη κόλλησης"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Ενεργειακό\nόριο",
"description": "Μέγιστη ενέργεια που μπορεί να χρησιμοποιεί το κολλητήρι (W=watt)"
},
"CalibrateCJC": {
"displayText": "Βαθμονόμηση CJC\nσε επόμενη έναρξη",
"description": "Στην επόμενη εκκίνηση θα γίνει βαθμονόμηση θερμοκρασίας (δεν απαιτείται αν Δθερμ < 5 C)"
},
"VoltageCalibration": {
"displayText": "Βαθμονόμηση\nτάσης εισόδου;",
"description": "Έναρξη βαθμονόμησης τάσης εισόδου (κράτημα για έξοδο)"
},
"PowerPulsePower": {
"displayText": "Παλμός\nενέργειας",
"description": "Ένταση ενέργειας παλμού διατήρησης λειτουργίας (W=watt)"
},
"PowerPulseWait": {
"displayText": "Καθυστέρηση\nπαλμού ενέργ.",
"description": "Καθυστέρηση πριν την ενεργοποίση παλμού διατήρησης λειτουργίας (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Διάρκεια\nπαλμού ενέργ.",
"description": "Διάρκεια παλμού διατήρησης ενέργειας (x 250ms)"
},
"SettingsReset": {
"displayText": "Επαναφορά\nεργ. ρυθμίσεων;",
"description": "Επαναφορά στις προεπιλεγμένες ρυθμίσεις"
},
"LanguageSwitch": {
"displayText": "Γλώσσα:\n EL Ελληνικά",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "EN",
"languageLocalName": "English",
"tempUnitFahrenheit": true,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Are you sure you want to restore default settings?",
"UVLOWarningString": "DC LOW",
"UndervoltageString": "Undervoltage",
"InputVoltageString": "Input V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Sleeping...",
"SleepingTipAdvancedString": "Tip:",
"OffString": "Off",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Certain settings",
"changed!"
],
"NoAccelerometerMessage": [
"No accelerometer",
"detected!"
],
"NoPowerDeliveryMessage": [
"No USB-PD IC",
"detected!"
],
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "O",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "R",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Power",
"settings"
],
"desc": "Settings for Power Supply (Batteries, Quick Charge, PD etc)"
},
"SolderingMenu": {
"text2": [
"Soldering",
"settings"
],
"desc": "Soldering settings, boost modes; how the iron operates"
},
"PowerSavingMenu": {
"text2": [
"Sleep",
"mode"
],
"desc": "Sleep modes; methods we use to save power on the device by shutting down"
},
"UIMenu": {
"text2": [
"User",
"interface"
],
"desc": "User interactions (how it looks, animations, units etc)"
},
"AdvancedMenu": {
"text2": [
"Advanced",
"settings"
],
"desc": "Advanced or Misc options."
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Power",
"source"
],
"desc": "Set cutoff voltage to prevent battery overdrainage (DC 10V) (S=3.3V per cell, disable PWR limit)"
},
"MinVolCell": {
"text2": [
"Minimum",
"voltage"
],
"desc": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"QC",
"voltage"
],
"desc": "Max QC voltage the iron should negotiate for"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"BoostTemperature": {
"text2": [
"Boost",
"temp"
],
"desc": "Tip temperature used in \"boost mode\""
},
"AutoStart": {
"text2": [
"Start-up",
"behavior"
],
"desc": "O=off | S=heat to soldering temp | Z=standby at sleep temp until moved | R=standby without heating until moved"
},
"TempChangeShortStep": {
"text2": [
"Temp change",
"short"
],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": [
"Temp change",
"long"
],
"desc": "Temperature-change-increment on long button press"
},
"LockingMode": {
"text2": [
"Allow locking",
"buttons"
],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"text2": [
"Motion",
"sensitivity"
],
"desc": "0=off | 1=least sensitive | ... | 9=most sensitive"
},
"SleepTemperature": {
"text2": [
"Sleep",
"temp"
],
"desc": "Tip temperature while in \"sleep mode\""
},
"SleepTimeout": {
"text2": [
"Sleep",
"timeout"
],
"desc": "Interval before \"sleep mode\" starts (s=seconds | m=minutes)"
},
"ShutdownTimeout": {
"text2": [
"Shutdown",
"timeout"
],
"desc": "Interval before the iron shuts down (m=minutes)"
},
"HallEffSensitivity": {
"text2": [
"Hall sensor",
"sensitivity"
],
"desc": "Sensitivity to magnets (0=off | 1=least sensitive | ... | 9=most sensitive)"
},
"TemperatureUnit": {
"text2": [
"Temperature",
"unit"
],
"desc": "C=°Celsius | F=°Fahrenheit"
},
"DisplayRotation": {
"text2": [
"Display",
"orientation"
],
"desc": "R=right-handed | L=left-handed | A=automatic"
},
"CooldownBlink": {
"text2": [
"Cooldown",
"flashing"
],
"desc": "Flash temp reading at idle while tip is hot"
},
"ScrollingSpeed": {
"text2": [
"Scrolling",
"speed"
],
"desc": "Speed info text scrolls past at (S=slow | F=fast)"
},
"ReverseButtonTempChange": {
"text2": [
"Swap",
"+ - keys"
],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"AnimSpeed": {
"text2": [
"Anim.",
"speed"
],
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"AnimLoop": {
"text2": [
"Anim.",
"loop"
],
"desc": "Loop icon animations in main menu"
},
"Brightness": {
"text2": [
"Screen",
"brightness"
],
"desc": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"text2": [
"Invert",
"screen"
],
"desc": "Invert the OLED screen colors"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Detailed",
"idle screen"
],
"desc": "Display detailed info in a smaller font on idle screen"
},
"AdvancedSoldering": {
"text2": [
"Detailed",
"solder screen"
],
"desc": "Display detailed info in a smaller font on soldering screen"
},
"PowerLimit": {
"text2": [
"Power",
"limit"
],
"desc": "Maximum power the iron can use (W=watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Calibrate",
"input voltage"
],
"desc": "Start VIN calibration (long press to exit)"
},
"PowerPulsePower": {
"text2": [
"Power",
"pulse"
],
"desc": "Intensity of power of keep-awake-pulse (watt)"
},
"PowerPulseWait": {
"text2": [
"Power pulse",
"delay"
],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Power pulse",
"duration"
],
"desc": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"text2": [
"Restore default",
"settings"
],
"desc": "Reset all settings to default"
},
"LanguageSwitch": {
"text2": [
"Language:",
" EN English"
],
"desc": "Toggle active language"
}
}
}
{
"languageCode": "EN",
"languageLocalName": "English",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Certain settings\nchanged!"
},
"NoAccelerometerMessage": {
"message": "No accelerometer\ndetected!"
},
"NoPowerDeliveryMessage": {
"message": "No USB-PD IC\ndetected!"
},
"LockingKeysString": {
"message": "LOCKED"
},
"UnlockingKeysString": {
"message": "UNLOCKED"
},
"WarningKeysLockedString": {
"message": "!LOCKED!"
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Are you sure you want to restore default settings?"
},
"UVLOWarningString": {
"message": "DC LOW"
},
"UndervoltageString": {
"message": "Undervoltage\n"
},
"InputVoltageString": {
"message": "Input V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Sleeping...\n"
},
"SleepingTipAdvancedString": {
"message": "Tip: \n"
},
"OffString": {
"message": "Off"
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "O",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Power\nsettings",
"description": ""
},
"SolderingMenu": {
"displayText": "Soldering\nsettings",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Sleep\nmode",
"description": ""
},
"UIMenu": {
"displayText": "User\ninterface",
"description": ""
},
"AdvancedMenu": {
"displayText": "Advanced\nsettings",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Power\nsource",
"description": "Set cutoff voltage to prevent battery overdrainage (DC 10V) (S=3.3V per cell, disable PWR limit)"
},
"MinVolCell": {
"displayText": "Minimum\nvoltage",
"description": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nvoltage",
"description": "Max QC voltage the iron should negotiate for"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\ntemp",
"description": "Tip temperature used in \"boost mode\""
},
"AutoStart": {
"displayText": "Start-up\nbehavior",
"description": "O=off | S=heat to soldering temp | Z=standby at sleep temp until moved | R=standby without heating until moved"
},
"TempChangeShortStep": {
"displayText": "Temp change\nshort",
"description": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"displayText": "Temp change\nlong",
"description": "Temperature-change-increment on long button press"
},
"LockingMode": {
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"displayText": "Motion\nsensitivity",
"description": "0=off | 1=least sensitive | ... | 9=most sensitive"
},
"SleepTemperature": {
"displayText": "Sleep\ntemp",
"description": "Tip temperature while in \"sleep mode\""
},
"SleepTimeout": {
"displayText": "Sleep\ntimeout",
"description": "Interval before \"sleep mode\" starts (s=seconds | m=minutes)"
},
"ShutdownTimeout": {
"displayText": "Shutdown\ntimeout",
"description": "Interval before the iron shuts down (m=minutes)"
},
"HallEffSensitivity": {
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (0=off | 1=least sensitive | ... | 9=most sensitive)"
},
"TemperatureUnit": {
"displayText": "Temperature\nunit",
"description": "C=°Celsius | F=°Fahrenheit"
},
"DisplayRotation": {
"displayText": "Display\norientation",
"description": "R=right-handed | L=left-handed | A=automatic"
},
"CooldownBlink": {
"displayText": "Cooldown\nflashing",
"description": "Flash temp reading at idle while tip is hot"
},
"ScrollingSpeed": {
"displayText": "Scrolling\nspeed",
"description": "Scrolling speed of info text (S=slow | F=fast)"
},
"ReverseButtonTempChange": {
"displayText": "Swap\n+ - keys",
"description": "Reverse assignment of buttons for temperature adjustment"
},
"AnimSpeed": {
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
"description": "Loop icon animations in main menu"
},
"Brightness": {
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Detailed\nidle screen",
"description": "Display detailed info in a smaller font on idle screen"
},
"AdvancedSoldering": {
"displayText": "Detailed\nsolder screen",
"description": "Display detailed info in a smaller font on soldering screen"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Power\nlimit",
"description": "Maximum power the iron can use (W=watt)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "Calibrate Cold Junction Compensation at next boot (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Calibrate\ninput voltage",
"description": "Start VIN calibration (long press to exit)"
},
"PowerPulsePower": {
"displayText": "Power\npulse",
"description": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"displayText": "Restore default\nsettings",
"description": "Reset all settings to default"
},
"LanguageSwitch": {
"displayText": "Language:\n EN English",
"description": ""
}
}
}

View File

@@ -1,342 +1,251 @@
{
"languageCode": "ES",
"languageLocalName": "Castellano",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "¿Quieres restablecer los ajustes?",
"UVLOWarningString": "CC BAJA",
"UndervoltageString": "Voltaje bajo",
"InputVoltageString": "Voltaje: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "En reposo...",
"SleepingTipAdvancedString": "Punta:",
"OffString": " No",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Hecho.",
"SettingsResetMessage": [
"Ajustes",
"¡Reiniciados!"
],
"NoAccelerometerMessage": [
"Sin acelerómetro",
"¡Detectado!"
],
"NoPowerDeliveryMessage": [
"Sin USB-PD IC",
"¡Detectado!"
],
"LockingKeysString": " BLOQUEADO",
"UnlockingKeysString": "DESBLOQUEADO",
"WarningKeysLockedString": "¡BLOQUEADO!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "I",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "R",
"SettingStartNoneChar": "N",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "F",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Potencia",
"ajustes"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Soldadura",
"ajustes"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Modos de",
"reposo"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Interfaz",
"de usuario"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Ajustes",
"avanzados"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Fuente",
"de energía"
],
"desc": "Elige el tipo de fuente para limitar el voltaje (DC 10V) (S 3,3V por pila, ilimitado)"
},
"MinVolCell": {
"text2": [
"Mínimo",
"voltaje"
],
"desc": "voltaje mínimo permitido por célula (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"text2": [
"Potencia de",
"entrada"
],
"desc": "Potencia en vatios del adaptador de corriente utilizado."
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
},
"BoostTemperature": {
"text2": [
"Ajustar la",
"temp. extra"
],
"desc": "Temperatura momentánea que se alcanza al apretar el botón del modo extra."
},
"AutoStart": {
"text2": [
"Calentar",
"al enchufar"
],
"desc": "Se calienta él solo al arrancar (N=no | S=entrar en modo soldar | R=solo entrar en reposo | F=en reposo pero mantiene la punta fría)"
},
"TempChangeShortStep": {
"text2": [
"Cambio temp.",
"puls. cortas"
],
"desc": "Subir y bajar X grados de temperatura con cada pulsación corta de los botones +/-."
},
"TempChangeLongStep": {
"text2": [
"Cambio temp.",
"puls. largas"
],
"desc": "Subir y bajar X grados de temperatura con cada pulsación larga de los botones +/-."
},
"LockingMode": {
"text2": [
"Permitir botones",
"bloqueo"
],
"desc": "Al soldar, una pulsación larga en ambos botones los bloquea (D=desactivar | B=sólo potenciar | F=bloqueo total)."
},
"MotionSensitivity": {
"text2": [
"Detección de",
"movimiento"
],
"desc": "Tiempo de reacción al agarrar (0=no | 1=menos sensible | ... | 9=más sensible)"
},
"SleepTemperature": {
"text2": [
"Temperatura",
"en reposo"
],
"desc": "Temperatura de la punta en reposo."
},
"SleepTimeout": {
"text2": [
"Entrar",
"en reposo"
],
"desc": "Tiempo de inactividad para entrar en reposo (min | seg)"
},
"ShutdownTimeout": {
"text2": [
"Tiempo de",
"apagado"
],
"desc": "Tiempo de inactividad para apagarse (en minutos)"
},
"HallEffSensitivity": {
"text2": [
"Hall Eff",
"Sensibilidad"
],
"desc": "Sensibilidad del sensor de efecto Hall en la detección de reposo (0=no | 1=menos sensible | ... | 9=más sensible)"
},
"TemperatureUnit": {
"text2": [
"Unidad de",
"temperatura"
],
"desc": "Unidad de temperatura (C=centígrados | F=Fahrenheit)"
},
"DisplayRotation": {
"text2": [
"Orientación",
"de pantalla"
],
"desc": "Orientación de la pantalla (D=diestro | I=zurdo | A=automático)"
},
"CooldownBlink": {
"text2": [
"Parpadear",
"al enfriar"
],
"desc": "La temperatura en pantalla parpadea mientras la punta siga caliente."
},
"ScrollingSpeed": {
"text2": [
"Velocidad",
"del texto"
],
"desc": "Velocidad de desplazamiento del texto (R=rápida | L=lenta)"
},
"ReverseButtonTempChange": {
"text2": [
"Invertir",
"botones +/-"
],
"desc": "Intercambia las funciones de subir y bajar la temperatura de los botones +/- para que funcionen al revés."
},
"AnimSpeed": {
"text2": [
"Anim.",
"velocidad"
],
"desc": "Velocidad de las animaciones de los iconos en el menú (O=off | L=low | M=medium | R=high)"
},
"AnimLoop": {
"text2": [
"Anim.",
"bucle"
],
"desc": "Animaciones de iconos en bucle en el menú raíz"
},
"Brightness": {
"text2": [
"Pantalla",
"brillo"
],
"desc": "Ajusta el brillo de la pantalla OLED"
},
"ColourInversion": {
"text2": [
"Invertir",
"pantalla"
],
"desc": "Invertir la pantalla OLED"
},
"LOGOTime": {
"text2": [
"logo inicial",
"duración"
],
"desc": "Duración de la animación del logo inicial (s=segundos)"
},
"AdvancedIdle": {
"text2": [
"Info extra en",
"modo reposo"
],
"desc": "Muestra información detallada en letra pequeña al reposar."
},
"AdvancedSoldering": {
"text2": [
"Info extra",
"al soldar"
],
"desc": "Muestra más datos por pantalla cuando se está soldando."
},
"PowerLimit": {
"text2": [
"Ajustar la",
"potenc. máx."
],
"desc": "Elige el límite de potencia máxima del soldador (en vatios)"
},
"CalibrateCJC": {
"text2": [
"Calibrar CJC",
"en el próximo inicio"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Calibrar voltaje",
"de entrada"
],
"desc": "Calibra VIN. Ajusta con ambos botones y mantén pulsado para salir."
},
"PowerPulsePower": {
"text2": [
"Pulsos bat.",
"constantes"
],
"desc": "Aplica unos pulsos necesarios para mantener encendidas ciertas baterías portátiles. En vatios."
},
"PowerPulseWait": {
"text2": [
"Impulso de potencia",
"tiempo de espera"
],
"desc": "Tiempo de espera antes de disparar cada pulso de mantenimiento de la vigilia (x 2,5s)"
},
"PowerPulseDuration": {
"text2": [
"Impulso de potencia",
"duración"
],
"desc": "Duración del impulso de mantenimiento de la vigilia (x 250ms)"
},
"SettingsReset": {
"text2": [
"Volver a ajustes",
"de fábrica"
],
"desc": "Restablece todos los ajustes a los valores originales."
},
"LanguageSwitch": {
"text2": [
"Idioma:",
" ES Castellano"
],
"desc": ""
}
}
}
{
"languageCode": "ES",
"languageLocalName": "Castellano",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Hecho"
},
"SettingsResetMessage": {
"message": "Ajustes\n¡Reiniciados!"
},
"NoAccelerometerMessage": {
"message": "Sin acelerómetro\n¡Detectado!"
},
"NoPowerDeliveryMessage": {
"message": "Sin USB-PD IC\n¡Detectado!"
},
"LockingKeysString": {
"message": "BLOQUEADO"
},
"UnlockingKeysString": {
"message": "DESBLOQUEADO"
},
"WarningKeysLockedString": {
"message": "¡BLOQUEADO!"
},
"WarningThermalRunaway": {
"message": "Térmico\nFuera de control"
},
"SettingsCalibrationWarning": {
"message": "¡Antes de reiniciar, asegúrese de que la punta y el mango estén a temperatura ambiente!"
},
"CJCCalibrating": {
"message": "calibrando\n"
},
"SettingsResetWarning": {
"message": "¿Quieres restablecer los ajustes?"
},
"UVLOWarningString": {
"message": "CC BAJA"
},
"UndervoltageString": {
"message": "Voltaje bajo\n"
},
"InputVoltageString": {
"message": "Voltaje: \n"
},
"SleepingSimpleString": {
"message": "Reposo"
},
"SleepingAdvancedString": {
"message": "En reposo...\n"
},
"SleepingTipAdvancedString": {
"message": "Punta: \n"
},
"OffString": {
"message": "No"
},
"DeviceFailedValidationWarning": {
"message": "¡Lo más probable es que su dispositivo sea una falsificación!"
}
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "I",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "R",
"SettingStartNoneChar": "N",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "F",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Potencia\najustes",
"description": ""
},
"SolderingMenu": {
"displayText": "Soldadura\najustes",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Modos de\nreposo",
"description": ""
},
"UIMenu": {
"displayText": "Interfaz\nde usuario",
"description": ""
},
"AdvancedMenu": {
"displayText": "Ajustes\navanzados",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Fuente\nde energía",
"description": "Elige el tipo de fuente para limitar el voltaje (DC 10V) (S 3,3V por pila, ilimitado)"
},
"MinVolCell": {
"displayText": "Mínimo\nvoltaje",
"description": "voltaje mínimo permitido por célula (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "Potencia de\nentrada",
"description": "Potencia en vatios del adaptador de corriente utilizado"
},
"PDNegTimeout": {
"displayText": "PD\ntiempo de espera",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Ajustar la\ntemp. extra",
"description": "Temperatura de la punta utilizada en el \"modo de impulso\""
},
"AutoStart": {
"displayText": "Calentar\nal enchufar",
"description": "Se calienta él solo al arrancar (N=no | S=entrar en modo soldar | R=solo entrar en reposo | F=en reposo pero mantiene la punta fría)"
},
"TempChangeShortStep": {
"displayText": "Cambio temp.\npuls. cortas",
"description": "Aumento de la temperatura al pulsar brevemente un botón"
},
"TempChangeLongStep": {
"displayText": "Cambio temp.\npuls. largas",
"description": "Aumento de la temperatura al pulsar prolongadamente un botón"
},
"LockingMode": {
"displayText": "Permitir botones\nbloqueo",
"description": "Mientras suelda, mantenga pulsados ambos botones para alternar su bloqueo (D=desactivar | B=sólo modo boost | F=bloqueo total)"
},
"MotionSensitivity": {
"displayText": "Detección de\nmovimiento",
"description": "Tiempo de reacción al agarrar (0=no | 1=menos sensible | ... | 9=más sensible)"
},
"SleepTemperature": {
"displayText": "Temperatura\nen reposo",
"description": "Temperatura de la punta en \"reposo\""
},
"SleepTimeout": {
"displayText": "Entrar\nen reposo",
"description": "Tiempo de inactividad para entrar en reposo (min | seg)"
},
"ShutdownTimeout": {
"displayText": "Tiempo de\napagado",
"description": "Tiempo de inactividad para apagarse (en minutos)"
},
"HallEffSensitivity": {
"displayText": "Hall Eff\nSensibilidad",
"description": "Sensibilidad del sensor de efecto Hall en la detección de reposo (0=no | 1=menos sensible | ... | 9=más sensible)"
},
"TemperatureUnit": {
"displayText": "Unidad de\ntemperatura",
"description": "Unidad de temperatura (C=centígrados | F=Fahrenheit)"
},
"DisplayRotation": {
"displayText": "Orientación\nde pantalla",
"description": "Orientación de la pantalla (D=diestro | I=zurdo | A=automático)"
},
"CooldownBlink": {
"displayText": "Parpadear\nal enfriar",
"description": "Lectura de la temperatura al ralentí mientras la punta está caliente"
},
"ScrollingSpeed": {
"displayText": "Velocidad\ndel texto",
"description": "Velocidad de desplazamiento del texto (R=rápida | L=lenta)"
},
"ReverseButtonTempChange": {
"displayText": "Invertir\nbotones +/-",
"description": "Intercambio inversa de los botones para ajustar la temperatura"
},
"AnimSpeed": {
"displayText": "Anim.\nvelocidad",
"description": "Velocidad de las animaciones de los iconos en el menú (O=off | L=low | M=medium | R=high)"
},
"AnimLoop": {
"displayText": "Anim.\nbucle",
"description": "Animaciones de iconos en bucle en el menú raíz"
},
"Brightness": {
"displayText": "Pantalla\nbrillo",
"description": "Ajusta el brillo de la pantalla OLED"
},
"ColourInversion": {
"displayText": "Invertir\npantalla",
"description": "Invertir la pantalla OLED"
},
"LOGOTime": {
"displayText": "logo inicial\nduración",
"description": "Duración de la animación del logo inicial (s=segundos)"
},
"AdvancedIdle": {
"displayText": "Info extra en\nmodo reposo",
"description": "Mostrar información detallada en una fuente más pequeña en la pantalla inactiva"
},
"AdvancedSoldering": {
"displayText": "Info extra\nal soldar",
"description": "Mostrar información detallada en una fuente más pequeña en la pantalla de soldadura"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Habilita BLE"
},
"PowerLimit": {
"displayText": "Potencia\nlímite",
"description": "Elige el límite de potencia máxima del soldador (en vatios)"
},
"CalibrateCJC": {
"displayText": "Calibrar CJC\nen el próximo inicio",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Calibrar voltaje\nde entrada",
"description": "Iniciar calibración VIN (pulsación larga para salir)"
},
"PowerPulsePower": {
"displayText": "Pulsos bat.\nconstantes",
"description": "Intensidad de la potencia del pulso de mantenimiento del estado de vigilia (W=vatio)"
},
"PowerPulseWait": {
"displayText": "Impulso de potencia\ntiempo de espera",
"description": "Tiempo de espera antes de disparar cada pulso de mantenimiento de la vigilia (x 2,5s)"
},
"PowerPulseDuration": {
"displayText": "Impulso de potencia\nduración",
"description": "Duración del impulso de mantenimiento de la vigilia (x 250ms)"
},
"SettingsReset": {
"displayText": "Volver a ajustes\nde fábrica",
"description": "Restablecer todos los ajustes por defecto"
},
"LanguageSwitch": {
"displayText": "Idioma:\n ES Castellano",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "FI",
"languageLocalName": "Suomi",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Haluatko varmasti palauttaa oletusarvot?",
"UVLOWarningString": "DC ALH.",
"UndervoltageString": "Alijännite",
"InputVoltageString": "Jännite: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Lepotila...",
"SleepingTipAdvancedString": "Kärki:",
"OffString": "Off",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Palautus",
"SettingsResetMessage": [
"Asetukset",
"palautettu!"
],
"NoAccelerometerMessage": [
"Kiihtyvyysanturi",
"puuttuu!"
],
"NoPowerDeliveryMessage": [
"USB-PD IC",
"puuttuu!"
],
"LockingKeysString": " LUKITTU",
"UnlockingKeysString": "AUKI",
"WarningKeysLockedString": "!LUKKO!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "O",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "P",
"SettingSlowChar": "A",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "E",
"SettingStartSolderingChar": "J",
"SettingStartSleepChar": "L",
"SettingStartSleepOffChar": "H",
"SettingSensitivityOff": "P",
"SettingSensitivityLow": "A",
"SettingSensitivityMedium": "K",
"SettingSensitivityHigh": "S",
"SettingLockDisableChar": "P",
"SettingLockBoostChar": "V",
"SettingLockFullChar": "K"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Virta-",
"asetukset"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Juotos-",
"asetukset"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Lepotilan",
"asetukset"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Käyttö-",
"liittymä"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Lisä-",
"asetukset"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Virtalähde",
"DC"
],
"desc": "Virtalähde. Asettaa katkaisujännitteen. (DC 10V) (S 3.3V per kenno, poistaa virtarajoitukset)"
},
"MinVolCell": {
"text2": [
"Pienin",
"jännite"
],
"desc": "Pienin sallittu jännite per kenno (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"QC",
"jännite"
],
"desc": "Ensisijainen maksimi QC jännite"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"BoostTemperature": {
"text2": [
"Tehostus-",
"lämpötila"
],
"desc": "Tehostustilan lämpötila"
},
"AutoStart": {
"text2": [
"Autom.",
"käynnistys"
],
"desc": "Käynnistää virrat kytkettäessä juotostilan automaattisesti. (E=Ei käytössä | J=juotostila | L=Lepotila | H=Lepotila huoneenlämpö)"
},
"TempChangeShortStep": {
"text2": [
"Lämmön muutos",
"lyhyt painal."
],
"desc": "Lämpötilan muutos lyhyellä painalluksella"
},
"TempChangeLongStep": {
"text2": [
"Lämmön muutos",
"pitkä painal."
],
"desc": "Lämpötilan muutos pitkällä painalluksella"
},
"LockingMode": {
"text2": [
"Salli nappien",
"lukitus"
],
"desc": "Kolvatessa paina molempia näppäimiä lukitaksesi ne (P=pois | V=vain tehostus | K=kaikki)"
},
"MotionSensitivity": {
"text2": [
"Liikkeen",
"herkkyys"
],
"desc": "0=pois päältä | 1=vähäinen herkkyys | ... | 9=suurin herkkyys"
},
"SleepTemperature": {
"text2": [
"Lepotilan",
"lämpötila"
],
"desc": "Kärjen lämpötila \"lepotilassa\""
},
"SleepTimeout": {
"text2": [
"Lepotilan",
"viive"
],
"desc": "\"Lepotilan\" ajastus (s=sekuntia | m=minuuttia)"
},
"ShutdownTimeout": {
"text2": [
"Sammutus",
"viive"
],
"desc": "Automaattisen sammutuksen ajastus (m=minuuttia)"
},
"HallEffSensitivity": {
"text2": [
"Hall-",
"herk."
],
"desc": "Hall-efektianturin herkkyys lepotilan tunnistuksessa (0=pois päältä | 1=vähäinen herkkyys | ... | 9=suurin herkkyys)"
},
"TemperatureUnit": {
"text2": [
"Lämpötilan",
"yksikkö"
],
"desc": "C=celsius, F=fahrenheit"
},
"DisplayRotation": {
"text2": [
"Näytön",
"kierto"
],
"desc": "O=oikeakätinen | V=vasenkätinen | A=automaattinen"
},
"CooldownBlink": {
"text2": [
"Jäähdytyksen",
"vilkutus"
],
"desc": "Vilkuttaa jäähtyessä juotoskärjen lämpötilaa sen ollessa vielä vaarallisen kuuma"
},
"ScrollingSpeed": {
"text2": [
"Selityksien",
"nopeus"
],
"desc": "Selityksien vieritysnopeus (H=hidas | N=nopea)"
},
"ReverseButtonTempChange": {
"text2": [
"Suunnanvaihto",
"+ - näppäimille"
],
"desc": "Lämpötilapainikkeiden suunnan vaihtaminen"
},
"AnimSpeed": {
"text2": [
"Animaation",
"nopeus"
],
"desc": "Animaatioiden nopeus valikossa (P=pois | A=alhainen | K=keskiverto | S=suuri)"
},
"AnimLoop": {
"text2": [
"Animaation",
"toistaminen"
],
"desc": "Toista animaatiot valikossa"
},
"Brightness": {
"text2": [
"Screen",
"brightness"
],
"desc": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"text2": [
"Invert",
"screen"
],
"desc": "Invert the OLED screen colors"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Tiedot",
"lepotilassa"
],
"desc": "Näyttää yksityiskohtaisemmat pienemmällä fontilla tiedot lepotilassa."
},
"AdvancedSoldering": {
"text2": [
"Tarkempi",
"juotosnäyttö"
],
"desc": "Näyttää yksityiskohtaisemmat tiedot pienellä fontilla juotostilassa"
},
"PowerLimit": {
"text2": [
"Tehon-",
"rajoitus"
],
"desc": "Suurin sallittu teho (Watti)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Kalibroi",
"tulojännite?"
],
"desc": "Tulojännitten kalibrointi (VIN) (paina pitkään poistuaksesi)"
},
"PowerPulsePower": {
"text2": [
"Herätyspulssin",
"voimakkuus"
],
"desc": "Herätyspulssin voimakkuus (Watti)"
},
"PowerPulseWait": {
"text2": [
"Pulssin",
"odotusaika"
],
"desc": "Odotusaika herätyspulssin lähetykseen (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Pulssin",
"kesto"
],
"desc": "Herätyspulssin kesto (x 250ms)"
},
"SettingsReset": {
"text2": [
"Palauta",
"tehdasasetukset?"
],
"desc": "Palauta kaikki asetukset oletusarvoihin"
},
"LanguageSwitch": {
"text2": [
"Kieli:",
" FI Suomi"
],
"desc": ""
}
}
}
{
"languageCode": "FI",
"languageLocalName": "Suomi",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Palautus"
},
"SettingsResetMessage": {
"message": "Asetukset\npalautettu!"
},
"NoAccelerometerMessage": {
"message": "Kiihtyvyysanturi\npuuttuu!"
},
"NoPowerDeliveryMessage": {
"message": "USB-PD IC\npuuttuu!"
},
"LockingKeysString": {
"message": " LUKITTU"
},
"UnlockingKeysString": {
"message": "AUKI"
},
"WarningKeysLockedString": {
"message": "!LUKKO!"
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Haluatko varmasti palauttaa oletusarvot?"
},
"UVLOWarningString": {
"message": "DC ALH."
},
"UndervoltageString": {
"message": "Alijännite\n"
},
"InputVoltageString": {
"message": "Jännite: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Lepotila...\n"
},
"SleepingTipAdvancedString": {
"message": "Kärki: \n"
},
"OffString": {
"message": "Off"
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "O",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "P",
"SettingSlowChar": "A",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "E",
"SettingStartSolderingChar": "J",
"SettingStartSleepChar": "L",
"SettingStartSleepOffChar": "H",
"SettingLockDisableChar": "P",
"SettingLockBoostChar": "V",
"SettingLockFullChar": "K"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Virta-\nasetukset",
"description": ""
},
"SolderingMenu": {
"displayText": "Juotos-\nasetukset",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Lepotilan\nasetukset",
"description": ""
},
"UIMenu": {
"displayText": "Käyttö-\nliittymä",
"description": ""
},
"AdvancedMenu": {
"displayText": "Lisä-\nasetukset",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Virtalähde\nDC",
"description": "Virtalähde. Asettaa katkaisujännitteen. (DC 10V) (S 3.3V per kenno, poistaa virtarajoitukset)"
},
"MinVolCell": {
"displayText": "Pienin\njännite",
"description": "Pienin sallittu jännite per kenno (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\njännite",
"description": "Ensisijainen maksimi QC jännite"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Tehostus-\nlämpötila",
"description": "Tehostustilan lämpötila"
},
"AutoStart": {
"displayText": "Autom.\nkäynnistys",
"description": "Käynnistää virrat kytkettäessä juotostilan automaattisesti. (E=Ei käytössä | J=juotostila | L=Lepotila | H=Lepotila huoneenlämpö)"
},
"TempChangeShortStep": {
"displayText": "Lämmön muutos\nlyhyt painal.",
"description": "Lämpötilan muutos lyhyellä painalluksella"
},
"TempChangeLongStep": {
"displayText": "Lämmön muutos\npitkä painal.",
"description": "Lämpötilan muutos pitkällä painalluksella"
},
"LockingMode": {
"displayText": "Salli nappien\nlukitus",
"description": "Kolvatessa paina molempia näppäimiä lukitaksesi ne (P=pois | V=vain tehostus | K=kaikki)"
},
"MotionSensitivity": {
"displayText": "Liikkeen\nherkkyys",
"description": "0=pois päältä | 1=vähäinen herkkyys | ... | 9=suurin herkkyys"
},
"SleepTemperature": {
"displayText": "Lepotilan\nlämpötila",
"description": "Kärjen lämpötila \"lepotilassa\""
},
"SleepTimeout": {
"displayText": "Lepotilan\nviive",
"description": "\"Lepotilan\" ajastus (s=sekuntia | m=minuuttia)"
},
"ShutdownTimeout": {
"displayText": "Sammutus\nviive",
"description": "Automaattisen sammutuksen ajastus (m=minuuttia)"
},
"HallEffSensitivity": {
"displayText": "Hall-\nherk.",
"description": "Hall-efektianturin herkkyys lepotilan tunnistuksessa (0=pois päältä | 1=vähäinen herkkyys | ... | 9=suurin herkkyys)"
},
"TemperatureUnit": {
"displayText": "Lämpötilan\nyksikkö",
"description": "C=celsius, F=fahrenheit"
},
"DisplayRotation": {
"displayText": "Näytön\nkierto",
"description": "O=oikeakätinen | V=vasenkätinen | A=automaattinen"
},
"CooldownBlink": {
"displayText": "Jäähdytyksen\nvilkutus",
"description": "Vilkuttaa jäähtyessä juotoskärjen lämpötilaa sen ollessa vielä vaarallisen kuuma"
},
"ScrollingSpeed": {
"displayText": "Selityksien\nnopeus",
"description": "Selityksien vieritysnopeus (H=hidas | N=nopea)"
},
"ReverseButtonTempChange": {
"displayText": "Suunnanvaihto\n+ - näppäimille",
"description": "Lämpötilapainikkeiden suunnan vaihtaminen"
},
"AnimSpeed": {
"displayText": "Animaation\nnopeus",
"description": "Animaatioiden nopeus valikossa (P=pois | A=alhainen | K=keskiverto | S=suuri)"
},
"AnimLoop": {
"displayText": "Animaation\ntoistaminen",
"description": "Toista animaatiot valikossa"
},
"Brightness": {
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Tiedot\nlepotilassa",
"description": "Näyttää yksityiskohtaisemmat pienemmällä fontilla tiedot lepotilassa."
},
"AdvancedSoldering": {
"displayText": "Tarkempi\njuotosnäyttö",
"description": "Näyttää yksityiskohtaisemmat tiedot pienellä fontilla juotostilassa"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Tehon-\nrajoitus",
"description": "Suurin sallittu teho (Watti)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibroi\ntulojännite?",
"description": "Tulojännitten kalibrointi (VIN) (paina pitkään poistuaksesi)"
},
"PowerPulsePower": {
"displayText": "Herätyspulssin\nvoimakkuus",
"description": "Herätyspulssin voimakkuus (Watti)"
},
"PowerPulseWait": {
"displayText": "Pulssin\nodotusaika",
"description": "Odotusaika herätyspulssin lähetykseen (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Pulssin\nkesto",
"description": "Herätyspulssin kesto (x 250ms)"
},
"SettingsReset": {
"displayText": "Palauta\ntehdasasetukset?",
"description": "Palauta kaikki asetukset oletusarvoihin"
},
"LanguageSwitch": {
"displayText": "Kieli:\n FI Suomi",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "FR",
"languageLocalName": "Français",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Voulez-vous vraiment réinitialiser les paramètres aux valeurs par défaut ?",
"UVLOWarningString": "DC FAIBL",
"UndervoltageString": "Sous-tension",
"InputVoltageString": "V d'entrée: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "En veille...",
"SleepingTipAdvancedString": "Panne:",
"OffString": "Off",
"DeviceFailedValidationWarning": "Votre appareil semble être une contrefaçon !"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Réglages",
"réinitialisés !"
],
"NoAccelerometerMessage": [
"Accéléromètre",
"non détecté !"
],
"NoPowerDeliveryMessage": [
"USB-PD",
"non détecté !"
],
"LockingKeysString": "VERROUIL",
"UnlockingKeysString": "DEVERROU",
"WarningKeysLockedString": "! VERR. !",
"WarningThermalRunaway": [
"Emballement",
"thermique"
]
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "G",
"SettingAutoChar": "A",
"SettingOffChar": "D",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "R",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "A",
"SettingStartSleepChar": "V",
"SettingStartSleepOffChar": "O",
"SettingSensitivityOff": "D",
"SettingSensitivityLow": "B",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Paramètres",
"d'alim."
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Paramètres",
"de soudure"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Mode",
"veille"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Interface",
"utilisateur"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Options",
"avancées"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Source",
"d'alim."
],
"desc": "Source d'alimentation. Règle la tension de coupure (DC 10V) (S 3.3V par cellules, désactive la limite de puissance)"
},
"MinVolCell": {
"text2": [
"Tension",
"minimale"
],
"desc": "Tension minimale autorisée par cellule (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"Tension",
"QC"
],
"desc": "Tension maximale désirée avec une alimentation QC"
},
"PDNegTimeout": {
"text2": [
"Délai",
"expir. PD"
],
"desc": "Délai de la negociation PD par étapes de 100ms pour la compatiblité avec certains chargeurs QC"
},
"BoostTemperature": {
"text2": [
"Temp.",
"boost"
],
"desc": "Température utilisée en \"mode boost\""
},
"AutoStart": {
"text2": [
"Chauffer au",
"démarrage"
],
"desc": "D=désactivé | A=activé | V=mode veille | O=mode veille à température ambiante"
},
"TempChangeShortStep": {
"text2": [
"Incrément",
"appui court"
],
"desc": "Incrément de changement de température sur appui court"
},
"TempChangeLongStep": {
"text2": [
"Incrément",
"appui long"
],
"desc": "Incrément de changement de température sur appui long"
},
"LockingMode": {
"text2": [
"Verrouiller",
"les boutons"
],
"desc": "Pendant la soudure, appuyer sur les deux boutons pour les verrouiller (D=désactivé | B=boost seulement | V=verr. total)"
},
"MotionSensitivity": {
"text2": [
"Sensibilité",
"au mouvement"
],
"desc": "0=désactivé | 1=peu sensible | ... | 9=très sensible"
},
"SleepTemperature": {
"text2": [
"Temp.",
"veille"
],
"desc": "Température de la panne en \"mode veille\""
},
"SleepTimeout": {
"text2": [
"Délai",
"veille"
],
"desc": "Délai avant mise en veille (s=secondes | m=minutes)"
},
"ShutdownTimeout": {
"text2": [
"Délai",
"arrêt"
],
"desc": "Délai avant l'arrêt du fer à souder (m=minutes)"
},
"HallEffSensitivity": {
"text2": [
"Sensibilité",
"capteur effet hall"
],
"desc": "Sensibilité du capteur à effet Hall pour la mise en veille (0=désactivé | 1=peu sensible | ... | 9=très sensible)"
},
"TemperatureUnit": {
"text2": [
"Unité de",
"température"
],
"desc": "C=Celsius | F=Fahrenheit"
},
"DisplayRotation": {
"text2": [
"Orientation",
"de l'écran"
],
"desc": "D=droitier | G=gaucher | A=automatique"
},
"CooldownBlink": {
"text2": [
"Refroidir en",
"clignotant"
],
"desc": "Faire clignoter la température lors du refroidissement tant que la panne est chaude"
},
"ScrollingSpeed": {
"text2": [
"Vitesse de",
"défilement"
],
"desc": "Vitesse de défilement du texte (R=rapide | L=lent)"
},
"ReverseButtonTempChange": {
"text2": [
"Inverser les",
"touches + -"
],
"desc": "Inverser les boutons d'ajustement de température"
},
"AnimSpeed": {
"text2": [
"Vitesse",
"anim. icônes"
],
"desc": "Vitesse des animations des icônes dans le menu (D=désactivé | L=lente | M=moyenne | R=rapide)"
},
"AnimLoop": {
"text2": [
"Rejouer",
"anim. icônes"
],
"desc": "Rejouer en boucle les animations des icônes dans le menu principal"
},
"Brightness": {
"text2": [
"Luminosité",
"de l'écran"
],
"desc": "Ajuster la luminosité de l'écran OLED"
},
"ColourInversion": {
"text2": [
"Inverser",
"les couleurs"
],
"desc": "Inverser les couleurs de l'écran OLED"
},
"LOGOTime": {
"text2": [
"Durée logo",
"au démarrage"
],
"desc": "Définit la durée d'affichage du logo au démarrage (s=secondes)"
},
"AdvancedIdle": {
"text2": [
"Écran veille",
"détaillé"
],
"desc": "Afficher les informations détaillées sur l'écran de veille"
},
"AdvancedSoldering": {
"text2": [
"Écran soudure",
"détaillé"
],
"desc": "Afficher les informations détaillées sur l'écran de soudure"
},
"PowerLimit": {
"text2": [
"Limite de",
"puissance"
],
"desc": "Puissance maximale utilisable (W=watts)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Étalonner",
"tension d'entrée"
],
"desc": "Étalonner tension d'entrée (appui long pour quitter)"
},
"PowerPulsePower": {
"text2": [
"Puissance",
"impulsions"
],
"desc": "Puissance des impulsions pour éviter la mise en veille des batteries (watts)"
},
"PowerPulseWait": {
"text2": [
"Délai entre",
"les impulsions"
],
"desc": "Délai entre chaque impulsion pour empêcher la mise en veille (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Durée des",
"impulsions"
],
"desc": "Durée des impulsions pour empêcher la mise en veille (x 250ms)"
},
"SettingsReset": {
"text2": [
"Réinitialisation",
"d'usine"
],
"desc": "Réinitialiser tous les réglages"
},
"LanguageSwitch": {
"text2": [
"Langue:",
" FR Français"
],
"desc": ""
}
}
}
{
"languageCode": "FR",
"languageLocalName": "Français",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Étalonnage\nterminé!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Réglages\nréinitialisés !"
},
"NoAccelerometerMessage": {
"message": "Accéléromètre\nnon détecté !"
},
"NoPowerDeliveryMessage": {
"message": "USB-PD\nnon détecté !"
},
"LockingKeysString": {
"message": "VERROUIL"
},
"UnlockingKeysString": {
"message": "DEVERROU"
},
"WarningKeysLockedString": {
"message": "! VERR. !"
},
"WarningThermalRunaway": {
"message": "Emballement\nthermique"
},
"SettingsCalibrationWarning": {
"message": "Avant de redémarrer, assurez-vous que la panne et la poignée sont à température ambiante !"
},
"CJCCalibrating": {
"message": "Etalonnage\n"
},
"SettingsResetWarning": {
"message": "Voulez-vous vraiment réinitialiser les paramètres aux valeurs par défaut ?"
},
"UVLOWarningString": {
"message": "DC FAIBL"
},
"UndervoltageString": {
"message": "Sous-tension\n"
},
"InputVoltageString": {
"message": "V d'entrée: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "En veille...\n"
},
"SleepingTipAdvancedString": {
"message": "Panne: \n"
},
"OffString": {
"message": "Off"
},
"DeviceFailedValidationWarning": {
"message": "Votre appareil semble être une contrefaçon !"
}
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "G",
"SettingAutoChar": "A",
"SettingOffChar": "D",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "R",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "A",
"SettingStartSleepChar": "V",
"SettingStartSleepOffChar": "O",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Paramètres\nd'alim.",
"description": ""
},
"SolderingMenu": {
"displayText": "Paramètres\nde soudure",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Mode\nveille",
"description": ""
},
"UIMenu": {
"displayText": "Interface\nutilisateur",
"description": ""
},
"AdvancedMenu": {
"displayText": "Options\navancées",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Source\nd'alim.",
"description": "Source d'alimentation. Règle la tension de coupure (DC 10V) (S 3.3V par cellules, désactive la limite de puissance)"
},
"MinVolCell": {
"displayText": "Tension\nminimale",
"description": "Tension minimale autorisée par cellule (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Tension\nQC",
"description": "Tension maximale désirée avec une alimentation QC"
},
"PDNegTimeout": {
"displayText": "Délai\nexpir. PD",
"description": "Délai de la negociation PD par étapes de 100ms pour la compatiblité avec certains chargeurs QC"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Temp.\nboost",
"description": "Température utilisée en \"mode boost\""
},
"AutoStart": {
"displayText": "Chauffer au\ndémarrage",
"description": "D=désactivé | A=activé | V=mode veille | O=mode veille à température ambiante"
},
"TempChangeShortStep": {
"displayText": "Incrément\nappui court",
"description": "Incrément de changement de température sur appui court"
},
"TempChangeLongStep": {
"displayText": "Incrément\nappui long",
"description": "Incrément de changement de température sur appui long"
},
"LockingMode": {
"displayText": "Verrouiller\nles boutons",
"description": "Pendant la soudure, appuyer sur les deux boutons pour les verrouiller (D=désactivé | B=boost seulement | V=verr. total)"
},
"MotionSensitivity": {
"displayText": "Sensibilité\nau mouvement",
"description": "0=désactivé | 1=peu sensible | ... | 9=très sensible"
},
"SleepTemperature": {
"displayText": "Temp.\nveille",
"description": "Température de la panne en \"mode veille\""
},
"SleepTimeout": {
"displayText": "Délai\nveille",
"description": "Délai avant mise en veille (s=secondes | m=minutes)"
},
"ShutdownTimeout": {
"displayText": "Délai\narrêt",
"description": "Délai avant l'arrêt du fer à souder (m=minutes)"
},
"HallEffSensitivity": {
"displayText": "Sensibilité\ncapteur effet hall",
"description": "Sensibilité du capteur à effet Hall pour la mise en veille (0=désactivé | 1=peu sensible | ... | 9=très sensible)"
},
"TemperatureUnit": {
"displayText": "Unité de\ntempérature",
"description": "C=Celsius | F=Fahrenheit"
},
"DisplayRotation": {
"displayText": "Orientation\nde l'écran",
"description": "D=droitier | G=gaucher | A=automatique"
},
"CooldownBlink": {
"displayText": "Refroidir en\nclignotant",
"description": "Faire clignoter la température lors du refroidissement tant que la panne est chaude"
},
"ScrollingSpeed": {
"displayText": "Vitesse de\ndéfilement",
"description": "Vitesse de défilement du texte (R=rapide | L=lent)"
},
"ReverseButtonTempChange": {
"displayText": "Inverser les\ntouches + -",
"description": "Inverser les boutons d'ajustement de température"
},
"AnimSpeed": {
"displayText": "Vitesse\nanim. icônes",
"description": "Vitesse des animations des icônes dans le menu (D=désactivé | L=lente | M=moyenne | R=rapide)"
},
"AnimLoop": {
"displayText": "Rejouer\nanim. icônes",
"description": "Rejouer en boucle les animations des icônes dans le menu principal"
},
"Brightness": {
"displayText": "Luminosité\nde l'écran",
"description": "Ajuster la luminosité de l'écran OLED"
},
"ColourInversion": {
"displayText": "Inverser\nles couleurs",
"description": "Inverser les couleurs de l'écran OLED"
},
"LOGOTime": {
"displayText": "Durée logo\nau démarrage",
"description": "Définit la durée d'affichage du logo au démarrage (s=secondes)"
},
"AdvancedIdle": {
"displayText": "Écran veille\ndétaillé",
"description": "Afficher les informations détaillées sur l'écran de veille"
},
"AdvancedSoldering": {
"displayText": "Écran soudure\ndétaillé",
"description": "Afficher les informations détaillées sur l'écran de soudure"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Limite de\npuissance",
"description": "Puissance maximale utilisable (W=watts)"
},
"CalibrateCJC": {
"displayText": "Étalonner CJC\nau prochain démarage",
"description": "Au prochain démarrage, la compensation de soudure froide sera calibrée (non nécessaire si Delta T est < 5°C)."
},
"VoltageCalibration": {
"displayText": "Étalonner\ntension d'entrée",
"description": "Étalonner tension d'entrée (appui long pour quitter)"
},
"PowerPulsePower": {
"displayText": "Puissance\nimpulsions",
"description": "Puissance des impulsions pour éviter la mise en veille des batteries (watts)"
},
"PowerPulseWait": {
"displayText": "Délai entre\nles impulsions",
"description": "Délai entre chaque impulsion pour empêcher la mise en veille (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Durée des\nimpulsions",
"description": "Durée des impulsions pour empêcher la mise en veille (x 250ms)"
},
"SettingsReset": {
"displayText": "Réinitialisation\nd'usine",
"description": "Réinitialiser tous les réglages"
},
"LanguageSwitch": {
"displayText": "Langue:\n FR Français",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "HR",
"languageLocalName": "Hrvatski",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Jeste li sigurni da želite sve postavke vratiti na tvorničke vrijednosti?",
"UVLOWarningString": "BATERIJA",
"UndervoltageString": "PRENIZAK NAPON",
"InputVoltageString": "Napajanje: ",
"SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "SPAVANJE...",
"SleepingTipAdvancedString": "Vrh: ",
"OffString": "Off",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Certain settings",
"were changed!"
],
"NoAccelerometerMessage": [
"No accelerometer",
"detected!"
],
"NoPowerDeliveryMessage": [
"No USB-PD IC",
"detected!"
],
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "B",
"SettingStartNoneChar": "I",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "S",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Power",
"settings"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Postavke",
"lemljenja"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Ušteda",
"energije"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Korisničko",
"sučelje"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Napredne",
"opcije"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Izvor",
"napajanja"
],
"desc": "Izvor napajanja. Postavlja napon isključivanja. (DC 10V) (S 3.3V po ćeliji)"
},
"MinVolCell": {
"text2": [
"Minimum",
"voltage"
],
"desc": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"Snaga",
"napajanja"
],
"desc": "Snaga modula za napajanje"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"BoostTemperature": {
"text2": [
"Boost",
"temp"
],
"desc": "Temperatura u pojačanom (Boost) načinu."
},
"AutoStart": {
"text2": [
"Auto",
"start"
],
"desc": "Ako je aktivno, lemilica po uključivanju napajanja odmah počinje grijati. (I=isključeno | L=lemljenje | R=rezervni | S=rezervni sobna temperatura)"
},
"TempChangeShortStep": {
"text2": [
"Temp change",
"short"
],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": [
"Temp change",
"long"
],
"desc": "Temperature-change-increment on long button press"
},
"LockingMode": {
"text2": [
"Allow locking",
"buttons"
],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"text2": [
"Osjetljivost",
"pokreta"
],
"desc": "Osjetljivost prepoznavanja pokreta. (0=Ugašeno | 1=Najmanje osjetljivo | ... | 9=Najosjetljivije)"
},
"SleepTemperature": {
"text2": [
"Temp",
"spavanja"
],
"desc": "Temperatura na koju se spušta lemilica nakon određenog vremena mirovanja. (C | F)"
},
"SleepTimeout": {
"text2": [
"Vrijeme",
"spavanja"
],
"desc": "Vrijeme mirovanja nakon kojega lemilica spušta temperaturu. (Minute | Sekunde)"
},
"ShutdownTimeout": {
"text2": [
"Vrijeme",
"gašenja"
],
"desc": "Vrijeme mirovanja nakon kojega će se lemilica ugasiti. (Minute)"
},
"HallEffSensitivity": {
"text2": [
"Hall sensor",
"sensitivity"
],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=Ugašeno | 1=Najmanje osjetljivo | ... | 9=Najosjetljivije)"
},
"TemperatureUnit": {
"text2": [
"Jedinica",
"temperature"
],
"desc": "Jedinica temperature. (C=Celzij | F=Fahrenheit)"
},
"DisplayRotation": {
"text2": [
"Rotacija",
"ekrana"
],
"desc": "Orijentacija ekrana. (D=Desnoruki | L=Ljevoruki | A=Automatski)"
},
"CooldownBlink": {
"text2": [
"Upozorenje",
"pri hlađenju"
],
"desc": "Bljeskanje temperature prilikom hlađenja, ako je lemilica vruća."
},
"ScrollingSpeed": {
"text2": [
"Brzina",
"poruka"
],
"desc": "Brzina kretanja dugačkih poruka. (B=brzo | S=sporo)"
},
"ReverseButtonTempChange": {
"text2": [
"Swap",
"+ - keys"
],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"AnimSpeed": {
"text2": [
"Anim.",
"speed"
],
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | B=fast)"
},
"AnimLoop": {
"text2": [
"Anim.",
"loop"
],
"desc": "Loop icon animations in main menu"
},
"Brightness": {
"text2": [
"Screen",
"brightness"
],
"desc": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"text2": [
"Invert",
"screen"
],
"desc": "Invert the OLED screen colors"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Detalji",
"pri čekanju"
],
"desc": "Prikazivanje detaljnih informacija tijekom čekanja."
},
"AdvancedSoldering": {
"text2": [
"Detalji",
"pri lemljenju"
],
"desc": "Prikazivanje detaljnih informacija tijekom lemljenja."
},
"PowerLimit": {
"text2": [
"Power",
"limit"
],
"desc": "Maximum power the iron can use (W=watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Kalibracija",
"napona napajanja"
],
"desc": "Kalibracija ulaznog napona. Podešavanje gumbima, dugački pritisak za kraj."
},
"PowerPulsePower": {
"text2": [
"Power",
"pulse"
],
"desc": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"text2": [
"Power pulse",
"delay"
],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Power pulse",
"duration"
],
"desc": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"text2": [
"Tvorničke",
"postavke"
],
"desc": "Vraćanje svih postavki na tvorničke vrijednosti."
},
"LanguageSwitch": {
"text2": [
"Jezik:",
" HR Hrvatski"
],
"desc": ""
}
}
}
{
"languageCode": "HR",
"languageLocalName": "Hrvatski",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Kalibracija\ndovršena!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Neke postavke\nsu izmijenjene!"
},
"NoAccelerometerMessage": {
"message": "Akcelerometar\nnije pronađen!"
},
"NoPowerDeliveryMessage": {
"message": "USB-PD IC\nnije pronađen!"
},
"LockingKeysString": {
"message": "ZAKLJUČ"
},
"UnlockingKeysString": {
"message": "OTKLJUČ"
},
"WarningKeysLockedString": {
"message": "ZAKLJUČ!"
},
"WarningThermalRunaway": {
"message": "Neispravan\ngrijač"
},
"SettingsCalibrationWarning": {
"message": "Prije restarta provjerite da su vrh i ručka na sobnoj temperaturi!"
},
"CJCCalibrating": {
"message": "kalibriram\n"
},
"SettingsResetWarning": {
"message": "Jeste li sigurni da želite sve postavke vratiti na tvorničke vrijednosti?"
},
"UVLOWarningString": {
"message": "BAT!!!"
},
"UndervoltageString": {
"message": "PRENIZAK NAPON\n"
},
"InputVoltageString": {
"message": "Napon V: \n"
},
"SleepingSimpleString": {
"message": "Zzz "
},
"SleepingAdvancedString": {
"message": "SPAVAM...\n"
},
"SleepingTipAdvancedString": {
"message": "Vrh: \n"
},
"OffString": {
"message": "Off"
},
"DeviceFailedValidationWarning": {
"message": "Vaš uređaj je najvjerojatnije krivotvoren!"
}
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "U",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "B",
"SettingStartNoneChar": "U",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "T",
"SettingStartSleepOffChar": "H",
"SettingLockDisableChar": "O",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "Z"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Postavke\nnapajanja",
"description": ""
},
"SolderingMenu": {
"displayText": "Postavke\nlemljenja",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Ušteda\nenergije",
"description": ""
},
"UIMenu": {
"displayText": "Korisničko\nsučelje",
"description": ""
},
"AdvancedMenu": {
"displayText": "Napredne\nopcije",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Izvor\nnapajanja",
"description": "Izvor napajanja. Postavlja napon isključivanja. (DC 10V) (S 3.3V po ćeliji)"
},
"MinVolCell": {
"displayText": "Najniži\nnapon",
"description": "Najniži dozvoljeni napon po ćeliji baterije (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Snaga\nnapajanja",
"description": "Snaga modula za napajanje"
},
"PDNegTimeout": {
"displayText": "USB-PD\ntimeout",
"description": "Timeout za USB-Power Delivery u koracima od 100ms za kompatibilnost s nekim QC punjačima"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\ntemp",
"description": "Temperatura u pojačanom (Boost) načinu."
},
"AutoStart": {
"displayText": "Auto\nstart",
"description": "Ako je aktivno, lemilica po uključivanju napajanja odmah počinje grijati. (U=ugašeno | L=lemljenje | T=spavanje toplo | H=spavanje hladno)"
},
"TempChangeShortStep": {
"displayText": "Korak temp\nkratki pritisak",
"description": "Korak temperature pri kratkom pritisku tipke"
},
"TempChangeLongStep": {
"displayText": "Korak temp\ndugi pritisak",
"description": "Korak temperature pri dugačkom pritisku tipke"
},
"LockingMode": {
"displayText": "Zaključavanje\ntipki",
"description": "Tokom lemljenja, držite obje tipke kako biste ih zaključali ili otključali (O=otključano | B=zaključan boost | Z=zaključano sve)"
},
"MotionSensitivity": {
"displayText": "Osjetljivost\npokreta",
"description": "Osjetljivost prepoznavanja pokreta. (0=ugašeno | 1=najmanje osjetljivo | ... | 9=najosjetljivije)"
},
"SleepTemperature": {
"displayText": "Temp\nspavanja",
"description": "Temperatura na koju se spušta lemilica nakon određenog vremena mirovanja (C | F)"
},
"SleepTimeout": {
"displayText": "Vrijeme\nspavanja",
"description": "Vrijeme mirovanja nakon kojega lemilica spušta temperaturu. (Minute | Sekunde)"
},
"ShutdownTimeout": {
"displayText": "Vrijeme\ngašenja",
"description": "Vrijeme mirovanja nakon kojega će se lemilica ugasiti (Minute)"
},
"HallEffSensitivity": {
"displayText": "Osjetljivost\nHall senzora",
"description": "Osjetljivost senzora magnetskog polja za detekciju spavanja (U=Ugašeno | N=Najmanja | S=Srednja | V=Visoka)"
},
"TemperatureUnit": {
"displayText": "Jedinica\ntemperature",
"description": "Jedinica temperature (C=Celzij | F=Fahrenheit)"
},
"DisplayRotation": {
"displayText": "Rotacija\nekrana",
"description": "Orijentacija ekrana (D=desnoruki | L=ljevoruki | A=automatski)"
},
"CooldownBlink": {
"displayText": "Upozorenje\npri hlađenju",
"description": "Bljeskanje temperature prilikom hlađenja, ako je lemilica vruća"
},
"ScrollingSpeed": {
"displayText": "Brzina\nporuka",
"description": "Brzina kretanja dugačkih poruka (B=brzo | S=sporo)"
},
"ReverseButtonTempChange": {
"displayText": "Zamjena\n+ - tipki",
"description": "Zamjenjuje funkciju gornje i donje tipke za podešavanje temperature"
},
"AnimSpeed": {
"displayText": "Brzina\nanimacije",
"description": "Brzina animacije ikona u menijima (U=ugašeno | S=sporo | M=srednje | B=brzo)"
},
"AnimLoop": {
"displayText": "Ponavljanje\nanimacije",
"description": "Hoće li se animacije menija vrtiti u petlji - samo ako brzina animacije nije na \"Ugašeno\""
},
"Brightness": {
"displayText": "Svjetlina\nekrana",
"description": "Podešavanje svjetline OLED ekrana. Veća svjetlina može dugotrajno dovesti do pojave duhova na ekranu."
},
"ColourInversion": {
"displayText": "Inverzija\nekrana",
"description": "Inverzan prikaz slike na ekranu"
},
"LOGOTime": {
"displayText": "Trajanje\nboot logotipa",
"description": "Trajanje prikaza boot logotipa (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Detalji\npri čekanju",
"description": "Prikazivanje detaljnih informacija tijekom čekanja"
},
"AdvancedSoldering": {
"displayText": "Detalji\npri lemljenju",
"description": "Prikazivanje detaljnih informacija tijekom lemljenja"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Ograničenje\nsnage",
"description": "Najveća snaga koju lemilica smije vući iz napajanja (W=watt)"
},
"CalibrateCJC": {
"displayText": "Kalibracija kod\nsljed. starta",
"description": "Kod sljedećeg starta izvršit će se kalibracija (nije potrebno ako je pogreška manja od 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibracija\nnapajanja",
"description": "Kalibracija ulaznog napona napajanja (Podešavanje tipkama, dugački pritisak za kraj)"
},
"PowerPulsePower": {
"displayText": "Snaga period.\npulsa napajanja",
"description": "Intenzitet periodičkog pulsa kojega lemilica povlači kako se USB napajanje ne bi ugasilo (W=watt)"
},
"PowerPulseWait": {
"displayText": "Interval per.\npulsa nap.",
"description": "Razmak periodičkih pulseva koje lemilica povlači kako se USB napajanje ne bi ugasilo (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Trajanje per.\npulsa nap.",
"description": "Trajanje periodičkog pulsa kojega lemilica povlači kako se USB napajanje ne bi ugasilo (x 250ms)"
},
"SettingsReset": {
"displayText": "Tvorničke\npostavke",
"description": "Vraćanje svih postavki na tvorničke vrijednosti"
},
"LanguageSwitch": {
"displayText": "Jezik:\n HR Hrvatski",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "HU",
"languageLocalName": "Magyar",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Biztos visszaállítja a beállításokat alapértékekre?",
"UVLOWarningString": "DC TÚL KEVÉS",
"UndervoltageString": "Alulfeszültség",
"InputVoltageString": "Bemenet V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Alvás...",
"SleepingTipAdvancedString": "Hegy:",
"OffString": "Ki",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Törlés OK",
"SettingsResetMessage": [
"Beállítások",
"visszaállítva!"
],
"NoAccelerometerMessage": [
"Nincs",
"gyorsulásmérő!"
],
"NoPowerDeliveryMessage": [
"Nincs",
"USB-PD IC!"
],
"LockingKeysString": "LEZÁRVA",
"UnlockingKeysString": "FELOLDVA",
"WarningKeysLockedString": "!LEZÁRVA!",
"WarningThermalRunaway": [
"Kontrollálatlan",
"hőmérséklet!"
]
},
"characters": {
"SettingRightChar": "J",
"SettingLeftChar": "B",
"SettingAutoChar": "A",
"SettingOffChar": "0",
"SettingSlowChar": "L",
"SettingMediumChar": "K",
"SettingFastChar": "Gy",
"SettingStartNoneChar": "K",
"SettingStartSolderingChar": "F",
"SettingStartSleepChar": "A",
"SettingStartSleepOffChar": "Sz",
"SettingSensitivityOff": "0",
"SettingSensitivityLow": "A",
"SettingSensitivityMedium": "K",
"SettingSensitivityHigh": "M",
"SettingLockDisableChar": "K",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "T"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Táp",
"beállítások"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Forrasztási",
"beállítások"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Alvási",
"módok"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Felhasználói",
"felület"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Haladó",
"beállítások"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Áram",
"forrás"
],
"desc": "Kikapcsolási feszültség beállítása (DC:10V | S:3.3V/LiPo cella | ki)"
},
"MinVolCell": {
"text2": [
"Minimum",
"feszültség"
],
"desc": "Minimális engedélyezett cellafeszültség (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"Max. USB",
"feszültség"
],
"desc": "Maximális USB feszültség (QuickCharge)"
},
"PDNegTimeout": {
"text2": [
"PD",
"időtúllépés"
],
"desc": "PD egyeztetés időkerete (kompatibilitás QC töltőkkel) (x 100ms)"
},
"BoostTemperature": {
"text2": [
"Boost",
"hőmérséklet"
],
"desc": "Hőmérséklet \"boost\" módban"
},
"AutoStart": {
"text2": [
"Automatikus",
"indítás"
],
"desc": "Bekapcsolás után automatikusan lépjen forrasztás módba (K=ki | F=forrasztás | A=alvó mód | Sz=szobahőmérséklet)"
},
"TempChangeShortStep": {
"text2": [
"Hőm. állítás",
"rövid"
],
"desc": "Hőmérséklet állítás rövid gombnyomásra (C | F)"
},
"TempChangeLongStep": {
"text2": [
"Hőm. állítás",
"hosszú"
],
"desc": "Hőmérséklet állítás hosszú gombnyomásra (C | F)"
},
"LockingMode": {
"text2": [
"Lezárás",
"engedélyezés"
],
"desc": "Forrasztás közben mindkét gombot hosszan lenyomva lezárja a kezelést (K=ki | B=csak \"boost\" módban | T=teljes lezárás)"
},
"MotionSensitivity": {
"text2": [
"Mozgás",
"érzékenység"
],
"desc": "Mozgás érzékenység beállítása (0=kikapcsolva | 1=legkevésbé érzékeny | ... | 9=legérzékenyebb)"
},
"SleepTemperature": {
"text2": [
"Alvási",
"hőmérséklet"
],
"desc": "Hőmérséklet alvó módban (C | F)"
},
"SleepTimeout": {
"text2": [
"Alvás",
"időzítő"
],
"desc": "Alvási időzítő (perc | másodperc)"
},
"ShutdownTimeout": {
"text2": [
"Kikapcsolás",
"időzítő"
],
"desc": "Kikapcsolási időzítő (perc)"
},
"HallEffSensitivity": {
"text2": [
"Alvásérzékelő",
"érzékenység"
],
"desc": "Alvásérzékelő gyorsulásmérő érzékenysége (0=kikapcsolva | 1=legkevésbé érzékeny | ... | 9=legérzékenyebb)"
},
"TemperatureUnit": {
"text2": [
"Hőmérséklet",
"mértékegysége"
],
"desc": "Hőmérséklet mértékegysége (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"text2": [
"Kijelző",
"tájolása"
],
"desc": "Kijelző tájolása (J=jobbkezes | B=balkezes | A=automatikus)"
},
"CooldownBlink": {
"text2": [
"Villogás",
"hűléskor"
],
"desc": "Villogjon a hőmérséklet kijelzése hűlés közben, amíg a forrasztó hegy forró"
},
"ScrollingSpeed": {
"text2": [
"Görgetés",
"sebessége"
],
"desc": "Szöveggörgetés sebessége"
},
"ReverseButtonTempChange": {
"text2": [
"+/- gomb",
"megfordítása"
],
"desc": "Forrasztó hegy hőmérsékletállító gombok felcserélése"
},
"AnimSpeed": {
"text2": [
"Animáció",
"sebessége"
],
"desc": "Menüikonok animációjának sebessége (0=ki | L=lassú | K=közepes | Gy=gyors)"
},
"AnimLoop": {
"text2": [
"Folytonos",
"animáció"
],
"desc": "Főmenü ikonjainak folytonos animációja"
},
"Brightness": {
"text2": [
"Képernyő",
"kontraszt"
],
"desc": "Képernyő kontrasztjának állítása"
},
"ColourInversion": {
"text2": [
"Képernyő",
"invertálás"
],
"desc": "Képernyő színeinek invertálása"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Részletes",
"készenlét"
],
"desc": "Részletes információk megjelenítése kisebb betűméretben a készenléti képernyőn"
},
"AdvancedSoldering": {
"text2": [
"Részletes",
"forrasztás infó"
],
"desc": "Részletes információk megjelenítése forrasztás közben"
},
"PowerLimit": {
"text2": [
"Teljesítmény",
"maximum"
],
"desc": "Maximális felvett teljesitmény beállitása"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Bemeneti fesz.",
"kalibrálása?"
],
"desc": "Bemeneti feszültség kalibrálása (hosszan nyomva kilép)"
},
"PowerPulsePower": {
"text2": [
"Ébr. pulzus",
"nagysága"
],
"desc": "Powerbankot ébrentartó áramfelvételi pulzusok nagysága (W)"
},
"PowerPulseWait": {
"text2": [
"Ébr. pulzus",
"időköze"
],
"desc": "Powerbankot ébrentartó áramfelvételi pulzusok időköze (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Ébr. pulzus",
"időtartama"
],
"desc": "Powerbankot ébrentartó áramfelvételi pulzusok időtartama (x 250ms)"
},
"SettingsReset": {
"text2": [
"Gyári",
"beállítások?"
],
"desc": "Beállítások alaphelyzetbe állítása"
},
"LanguageSwitch": {
"text2": [
"Nyelv:",
" HU Magyar"
],
"desc": ""
}
}
}
{
"languageCode": "HU",
"languageLocalName": "Magyar",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Kalibráció\nkész!"
},
"ResetOKMessage": {
"message": "Törlés OK"
},
"SettingsResetMessage": {
"message": "Beállítások\nvisszaállítva!"
},
"NoAccelerometerMessage": {
"message": "Nincs\ngyorsulásmérő!"
},
"NoPowerDeliveryMessage": {
"message": "Nincs\nUSB-PD IC!"
},
"LockingKeysString": {
"message": "LEZÁRVA"
},
"UnlockingKeysString": {
"message": "FELOLDVA"
},
"WarningKeysLockedString": {
"message": "!LEZÁRVA!"
},
"WarningThermalRunaway": {
"message": "Kontrollálatlan\nhőmérséklet!"
},
"SettingsCalibrationWarning": {
"message": "Újraindítás előtt a hegy és az eszköz legyen szobahőmérsékletű!"
},
"CJCCalibrating": {
"message": "Kalibrálás\n"
},
"SettingsResetWarning": {
"message": "Biztos visszaállítja a beállításokat alapértékekre?"
},
"UVLOWarningString": {
"message": "DC túl alacsony"
},
"UndervoltageString": {
"message": "Alulfeszültség\n"
},
"InputVoltageString": {
"message": "Bemenet V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Alvás...\n"
},
"SleepingTipAdvancedString": {
"message": "Hegy: \n"
},
"OffString": {
"message": "Ki"
},
"DeviceFailedValidationWarning": {
"message": "Az eszköz valószínűleg nem eredeti!"
}
},
"characters": {
"SettingRightChar": "J",
"SettingLeftChar": "B",
"SettingAutoChar": "A",
"SettingOffChar": "0",
"SettingSlowChar": "L",
"SettingMediumChar": "K",
"SettingFastChar": "Gy",
"SettingStartNoneChar": "K",
"SettingStartSolderingChar": "F",
"SettingStartSleepChar": "A",
"SettingStartSleepOffChar": "Sz",
"SettingLockDisableChar": "K",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "T"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Táp\nbeállítások",
"description": ""
},
"SolderingMenu": {
"displayText": "Forrasztási\nbeállítások",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Alvási\nmódok",
"description": ""
},
"UIMenu": {
"displayText": "Felhasználói\nfelület",
"description": ""
},
"AdvancedMenu": {
"displayText": "Haladó\nbeállítások",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Áram\nforrás",
"description": "Kikapcsolási feszültség beállítása (DC:10V | S:3.3V/LiPo cella | ki)"
},
"MinVolCell": {
"displayText": "Minimum\nfeszültség",
"description": "Minimális engedélyezett cellafeszültség (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Max. USB\nfeszültség",
"description": "Maximális USB feszültség (QuickCharge)"
},
"PDNegTimeout": {
"displayText": "PD\nidőtúllépés",
"description": "PD egyeztetés időkerete (kompatibilitás QC töltőkkel) (x 100ms)"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\nhőmérséklet",
"description": "Hőmérséklet \"boost\" módban"
},
"AutoStart": {
"displayText": "Automatikus\nindítás",
"description": "Bekapcsolás után automatikusan lépjen forrasztás módba (K=ki | F=forrasztás | A=alvó mód | Sz=szobahőmérséklet)"
},
"TempChangeShortStep": {
"displayText": "Hőm. állítás\nrövid",
"description": "Hőmérséklet állítás rövid gombnyomásra (C | F)"
},
"TempChangeLongStep": {
"displayText": "Hőm. állítás\nhosszú",
"description": "Hőmérséklet állítás hosszú gombnyomásra (C | F)"
},
"LockingMode": {
"displayText": "Lezárás\nengedélyezés",
"description": "Forrasztás közben mindkét gombot hosszan lenyomva lezárja a kezelést (K=ki | B=csak \"boost\" módban | T=teljes lezárás)"
},
"MotionSensitivity": {
"displayText": "Mozgás\nérzékenység",
"description": "Mozgás érzékenység beállítása (0=kikapcsolva | 1=legkevésbé érzékeny | ... | 9=legérzékenyebb)"
},
"SleepTemperature": {
"displayText": "Alvási\nhőmérséklet",
"description": "Hőmérséklet alvó módban (C | F)"
},
"SleepTimeout": {
"displayText": "Alvás\nidőzítő",
"description": "Alvási időzítő (perc | másodperc)"
},
"ShutdownTimeout": {
"displayText": "Kikapcsolás\nidőzítő",
"description": "Kikapcsolási időzítő (perc)"
},
"HallEffSensitivity": {
"displayText": "Alvásérzékelő\nérzékenység",
"description": "Alvásérzékelő gyorsulásmérő érzékenysége (0=kikapcsolva | 1=legkevésbé érzékeny | ... | 9=legérzékenyebb)"
},
"TemperatureUnit": {
"displayText": "Hőmérséklet\nmértékegysége",
"description": "Hőmérséklet mértékegysége (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"displayText": "Kijelző\ntájolása",
"description": "Kijelző tájolása (J=jobbkezes | B=balkezes | A=automatikus)"
},
"CooldownBlink": {
"displayText": "Villogás\nhűléskor",
"description": "Villogjon a hőmérséklet kijelzése hűlés közben, amíg a forrasztó hegy forró"
},
"ScrollingSpeed": {
"displayText": "Görgetés\nsebessége",
"description": "Szöveggörgetés sebessége"
},
"ReverseButtonTempChange": {
"displayText": "+/- gomb\nmegfordítása",
"description": "Forrasztó hegy hőmérsékletállító gombok felcserélése"
},
"AnimSpeed": {
"displayText": "Animáció\nsebessége",
"description": "Menüikonok animációjának sebessége (0=ki | L=lassú | K=közepes | Gy=gyors)"
},
"AnimLoop": {
"displayText": "Folytonos\nanimáció",
"description": "Főmenü ikonjainak folytonos animációja"
},
"Brightness": {
"displayText": "Képernyő\nkontraszt",
"description": "Képernyő kontrasztjának állítása"
},
"ColourInversion": {
"displayText": "Képernyő\ninvertálás",
"description": "Képernyő színeinek invertálása"
},
"LOGOTime": {
"displayText": "Boot logo\nmegjelenítés",
"description": "Boot logo megjelenítési idejének beállítása (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Részletes\nkészenlét",
"description": "Részletes információk megjelenítése kisebb betűméretben a készenléti képernyőn"
},
"AdvancedSoldering": {
"displayText": "Részletes\nforrasztás infó",
"description": "Részletes információk megjelenítése forrasztás közben"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Teljesítmény\nmaximum",
"description": "Maximális felvett teljesitmény beállitása"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nköv. indításnál",
"description": "Következő indításnál a hegy Cold Junction Compensation kalibrálása (nem szükséges ha Delta T kisebb mint 5°C)"
},
"VoltageCalibration": {
"displayText": "Bemeneti fesz.\nkalibrálása?",
"description": "Bemeneti feszültség kalibrálása (hosszan nyomva kilép)"
},
"PowerPulsePower": {
"displayText": "Ébr. pulzus\nnagysága",
"description": "Powerbankot ébrentartó áramfelvételi pulzusok nagysága (W)"
},
"PowerPulseWait": {
"displayText": "Ébr. pulzus\nidőköze",
"description": "Powerbankot ébrentartó áramfelvételi pulzusok időköze (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Ébr. pulzus\nidőtartama",
"description": "Powerbankot ébrentartó áramfelvételi pulzusok időtartama (x 250ms)"
},
"SettingsReset": {
"displayText": "Gyári\nbeállítások?",
"description": "Beállítások alaphelyzetbe állítása"
},
"LanguageSwitch": {
"displayText": "Nyelv:\n HU Magyar",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "IT",
"languageLocalName": "Italiano",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Prima di riavvire assicurati che la punta e l'impugnatura siano a temperatura ambiente!",
"CJCCalibrating": "Calibrazione in corso",
"SettingsResetWarning": "Ripristinare le impostazioni iniziali?",
"UVLOWarningString": "DC BASSA",
"UndervoltageString": "DC INSUFFICIENTE",
"InputVoltageString": "V in:",
"SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "Riposo",
"SleepingTipAdvancedString": "Punta:",
"OffString": "OFF",
"DeviceFailedValidationWarning": "È probabile che il dispositivo in uso sia contraffatto!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibrazione",
"completata!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Impostazioni",
"ripristinate"
],
"NoAccelerometerMessage": [
"Accelerometro",
"non rilevato"
],
"NoPowerDeliveryMessage": [
"USB PD",
"non rilevato"
],
"LockingKeysString": "Blocc.",
"UnlockingKeysString": "Sblocc.",
"WarningKeysLockedString": "BLOCCATO",
"WarningThermalRunaway": [
"Temperatura",
"fuori controllo"
]
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "S",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "V",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "A",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "B",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "A",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "C"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Opzioni",
"alimentaz"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Opzioni",
"saldatura"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Risparmio",
"energetico"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Interfaccia",
"utente"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Opzioni",
"avanzate"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Sorgente",
"alimentaz"
],
"desc": "Imposta una tensione minima di alimentazione attraverso la selezione di una sorgente [DC: 10 V; 3S/4S/5S/6S: 3,3 V per cella]"
},
"MinVolCell": {
"text2": [
"Tensione",
"min celle"
],
"desc": "Modifica la tensione di minima carica delle celle di una batteria Li-Po [3S: 3,0-3,7 V; 4S/5S/6S: 2,4-3,7 V]"
},
"QCMaxVoltage": {
"text2": [
"Voltaggio",
"QC"
],
"desc": "Imposta il massimo voltaggio negoziabile con un alimentatore Quick Charge [volt]"
},
"PDNegTimeout": {
"text2": [
"Abilitazione",
"USB PD"
],
"desc": "Regola il massimo tempo utile per la negoziazione del protocollo USB Power Delivery con alimentatori compatibili [0: disattiva; multipli di 100 ms]"
},
"BoostTemperature": {
"text2": [
"Temp",
"Turbo"
],
"desc": "Imposta la temperatura della funzione Turbo [°C/°F]"
},
"AutoStart": {
"text2": [
"Avvio",
"automatico"
],
"desc": "Attiva automaticamente il saldatore quando viene alimentato [D: disattiva; S: saldatura; R: riposo; A: temperatura ambiente]"
},
"TempChangeShortStep": {
"text2": [
"Temp passo",
"breve"
],
"desc": "Imposta il passo dei valori di temperatura per una breve pressione dei tasti"
},
"TempChangeLongStep": {
"text2": [
"Temp passo",
"lungo"
],
"desc": "Imposta il passo dei valori di temperatura per una lunga pressione dei tasti"
},
"LockingMode": {
"text2": [
"Blocco",
"tasti"
],
"desc": "Blocca i tasti durante la modalità Saldatura; tieni premuto entrambi per bloccare o sbloccare [D: disattiva; T: consenti Turbo; C: blocco completo]"
},
"MotionSensitivity": {
"text2": [
"Sensibilità",
"al movimento"
],
"desc": "Imposta la sensibilità al movimento per uscire dalla modalità Riposo [0: nessuna; 1: minima; 9: massima]"
},
"SleepTemperature": {
"text2": [
"Temp",
"riposo"
],
"desc": "Imposta la temperatura da mantenere in modalità Riposo [°C/°F]"
},
"SleepTimeout": {
"text2": [
"Timer",
"riposo"
],
"desc": "Imposta il timer per entrare in modalità Riposo [secondi/minuti]"
},
"ShutdownTimeout": {
"text2": [
"Timer",
"spegnimento"
],
"desc": "Imposta il timer per lo spegnimento [minuti]"
},
"HallEffSensitivity": {
"text2": [
"Sensore",
"Hall"
],
"desc": "Regola la sensibilità del sensore ad effetto Hall per entrare in modalità Riposo [0: nessuna; 1: minima; 9: massima]"
},
"TemperatureUnit": {
"text2": [
"Unità di",
"temperatura"
],
"desc": "Scegli l'unità di misura per la temperatura [C: grado Celsius; F: grado Farenheit]"
},
"DisplayRotation": {
"text2": [
"Orientamento",
"schermo"
],
"desc": "Imposta l'orientamento dello schermo [D: mano destra; S: mano sinistra; A: automatico]"
},
"CooldownBlink": {
"text2": [
"Avviso",
"punta calda"
],
"desc": "Evidenzia il valore di temperatura durante il raffreddamento se la punta è ancora calda"
},
"ScrollingSpeed": {
"text2": [
"Velocità",
"testo"
],
"desc": "Imposta la velocità di scorrimento del testo [L: lenta; V: veloce]"
},
"ReverseButtonTempChange": {
"text2": [
"Inversione",
"tasti"
],
"desc": "Inverti i tasti per aumentare o diminuire la temperatura della punta"
},
"AnimSpeed": {
"text2": [
"Velocità",
"animazioni"
],
"desc": "Imposta la velocità di riproduzione delle animazioni del menù principale [O: OFF; L: lenta; M: media; V: veloce]"
},
"AnimLoop": {
"text2": [
"Ciclo",
"animazioni"
],
"desc": "Abilita la riproduzione ciclica delle animazioni del menù principale"
},
"Brightness": {
"text2": [
"Luminosità",
"schermo"
],
"desc": "Regola la luminosità dello schermo [1: minimo; 10: massimo]"
},
"ColourInversion": {
"text2": [
"Inverti",
"colori"
],
"desc": "Inverti i colori dello schermo"
},
"LOGOTime": {
"text2": [
"Durata",
"logo"
],
"desc": "Imposta la permanenza sullo schermo del logo iniziale [secondi]"
},
"AdvancedIdle": {
"text2": [
"Interfaccia",
"testuale"
],
"desc": "Mostra informazioni dettagliate all'interno della schermata principale"
},
"AdvancedSoldering": {
"text2": [
"Dettagli",
"saldatura"
],
"desc": "Mostra informazioni dettagliate durante la modalità Saldatura"
},
"PowerLimit": {
"text2": [
"Limite",
"potenza"
],
"desc": "Imposta il valore di potenza massima erogabile al saldatore [watt]"
},
"CalibrateCJC": {
"text2": [
"Calibra T",
"all'avvio"
],
"desc": "Calibra le rilevazioni di temperatura al prossimo riavvio (non necessario se il Delta T<5 °C)"
},
"VoltageCalibration": {
"text2": [
"Calibrazione",
"tensione"
],
"desc": "Calibra la tensione in ingresso; regola con entrambi i tasti, tieni premuto il tasto superiore per uscire"
},
"PowerPulsePower": {
"text2": [
"Potenza",
"impulso"
],
"desc": "Regola la potenza di un \"impulso sveglia\" atto a prevenire lo standby eventuale dell'alimentatore [watt]"
},
"PowerPulseWait": {
"text2": [
"Distanza",
"impulsi"
],
"desc": "Imposta il tempo che deve intercorrere tra due \"impulsi sveglia\" [multipli di 2,5 s]"
},
"PowerPulseDuration": {
"text2": [
"Durata",
"impulso"
],
"desc": "Regola la durata dell'«impulso sveglia» [multipli di 250 ms]"
},
"SettingsReset": {
"text2": [
"Ripristino",
"impostazioni"
],
"desc": "Ripristina le impostazioni allo stato iniziale"
},
"LanguageSwitch": {
"text2": [
"Lingua:",
" IT Italiano"
],
"desc": ""
}
}
}
{
"languageCode": "IT",
"languageLocalName": "Italiano",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibrazione\ncompletata!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Impostazioni\nripristinate"
},
"NoAccelerometerMessage": {
"message": "Accelerometro\nnon rilevato"
},
"NoPowerDeliveryMessage": {
"message": "USB PD\nnon rilevato"
},
"LockingKeysString": {
"message": "Blocc."
},
"UnlockingKeysString": {
"message": "Sblocc."
},
"WarningKeysLockedString": {
"message": "BLOCCATO"
},
"WarningThermalRunaway": {
"message": "Temperatura\nfuori controllo"
},
"SettingsCalibrationWarning": {
"message": "Prima di riavviare assicurati che la punta e l'impugnatura siano a temperatura ambiente!"
},
"CJCCalibrating": {
"message": "Calibrazione in corso\n"
},
"SettingsResetWarning": {
"message": "Ripristinare le impostazioni predefinite?"
},
"UVLOWarningString": {
"message": "DC BASSA"
},
"UndervoltageString": {
"message": "DC INSUFFICIENTE\n"
},
"InputVoltageString": {
"message": "V in: \n"
},
"SleepingSimpleString": {
"message": "Zzz "
},
"SleepingAdvancedString": {
"message": "Riposo\n"
},
"SleepingTipAdvancedString": {
"message": "Punta: \n"
},
"OffString": {
"message": "OFF"
},
"DeviceFailedValidationWarning": {
"message": "È probabile che questo dispositivo sia contraffatto!"
}
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "S",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "V",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "A",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "C"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Opzioni\nalimentaz",
"description": ""
},
"SolderingMenu": {
"displayText": "Opzioni\nsaldatura",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Risparmio\nenergetico",
"description": ""
},
"UIMenu": {
"displayText": "Interfaccia\nutente",
"description": ""
},
"AdvancedMenu": {
"displayText": "Opzioni\navanzate",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Sorgente\nalimentaz",
"description": "Imposta una tensione minima di alimentazione attraverso la selezione di una sorgente [DC: 10 V; 3S/4S/5S/6S: 3,3 V per cella]"
},
"MinVolCell": {
"displayText": "Tensione\nmin celle",
"description": "Modifica la tensione di minima carica delle celle di una batteria Li-Po [3S: 3,0-3,7 V; 4S/5S/6S: 2,4-3,7 V]"
},
"QCMaxVoltage": {
"displayText": "Tensione\nQC",
"description": "Imposta la massima tensione negoziabile con un alimentatore Quick Charge [volt]"
},
"PDNegTimeout": {
"displayText": "Abilitazione\nUSB PD",
"description": "Regola il massimo tempo utile per la negoziazione del protocollo USB Power Delivery con alimentatori compatibili [0: disattiva; multipli di 100 ms]"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Abilita le modalità Power Delivery PPS ed EPR"
},
"BoostTemperature": {
"displayText": "Temp\nTurbo",
"description": "Imposta la temperatura della funzione Turbo [°C/°F]"
},
"AutoStart": {
"displayText": "Avvio\nautomatico",
"description": "Attiva automaticamente il saldatore quando viene alimentato [D: disattiva; S: saldatura; R: riposo; A: temperatura ambiente]"
},
"TempChangeShortStep": {
"displayText": "Temp passo\nbreve",
"description": "Imposta il passo dei valori di temperatura per una breve pressione dei tasti"
},
"TempChangeLongStep": {
"displayText": "Temp passo\nlungo",
"description": "Imposta il passo dei valori di temperatura per una lunga pressione dei tasti"
},
"LockingMode": {
"displayText": "Blocco\ntasti",
"description": "Blocca i tasti durante la modalità Saldatura; tieni premuto entrambi per bloccare o sbloccare [D: disattiva; T: consenti Turbo; C: blocco completo]"
},
"MotionSensitivity": {
"displayText": "Sensibilità\nal movimento",
"description": "Imposta la sensibilità al movimento per uscire dalla modalità Riposo [0: nessuna; 1: minima; 9: massima]"
},
"SleepTemperature": {
"displayText": "Temp\nriposo",
"description": "Imposta la temperatura da mantenere in modalità Riposo [°C/°F]"
},
"SleepTimeout": {
"displayText": "Timer\nriposo",
"description": "Imposta il timer per entrare in modalità Riposo [secondi/minuti]"
},
"ShutdownTimeout": {
"displayText": "Timer\nspegnimento",
"description": "Imposta il timer per lo spegnimento [minuti]"
},
"HallEffSensitivity": {
"displayText": "Sensore\nHall",
"description": "Regola la sensibilità del sensore ad effetto Hall per entrare in modalità Riposo [0: nessuna; 1: minima; 9: massima]"
},
"TemperatureUnit": {
"displayText": "Unità di\ntemperatura",
"description": "Scegli l'unità di misura per la temperatura [C: grado Celsius; F: grado Farenheit]"
},
"DisplayRotation": {
"displayText": "Orientamento\nschermo",
"description": "Imposta l'orientamento dello schermo [D: mano destra; S: mano sinistra; A: automatico]"
},
"CooldownBlink": {
"displayText": "Avviso\npunta calda",
"description": "Evidenzia il valore di temperatura durante il raffreddamento se la punta è ancora calda"
},
"ScrollingSpeed": {
"displayText": "Velocità\ntesto",
"description": "Imposta la velocità di scorrimento del testo [L: lenta; V: veloce]"
},
"ReverseButtonTempChange": {
"displayText": "Inversione\ntasti",
"description": "Inverti i tasti per aumentare o diminuire la temperatura della punta"
},
"AnimSpeed": {
"displayText": "Velocità\nanimazioni",
"description": "Imposta la velocità di riproduzione delle animazioni del menù principale [O: OFF; L: lenta; M: media; V: veloce]"
},
"AnimLoop": {
"displayText": "Ciclo\nanimazioni",
"description": "Abilita la riproduzione ciclica delle animazioni del menù principale"
},
"Brightness": {
"displayText": "Luminosità\nschermo",
"description": "Regola la luminosità dello schermo [1: minimo; 10: massimo]"
},
"ColourInversion": {
"displayText": "Inverti\ncolori",
"description": "Inverti i colori dello schermo"
},
"LOGOTime": {
"displayText": "Durata\nlogo",
"description": "Imposta la permanenza sullo schermo del logo iniziale [secondi]"
},
"AdvancedIdle": {
"displayText": "Interfaccia\ntestuale",
"description": "Mostra informazioni dettagliate all'interno della schermata principale"
},
"AdvancedSoldering": {
"displayText": "Dettagli\nsaldatura",
"description": "Mostra informazioni dettagliate durante la modalità Saldatura"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Abilita BLE"
},
"PowerLimit": {
"displayText": "Limite\npotenza",
"description": "Imposta il valore di potenza massima erogabile al saldatore [watt]"
},
"CalibrateCJC": {
"displayText": "Calibra T\nall'avvio",
"description": "Calibra le rilevazioni di temperatura al prossimo riavvio (non necessario se il Delta T<5 °C)"
},
"VoltageCalibration": {
"displayText": "Calibrazione\ntensione",
"description": "Calibra la tensione in ingresso; regola con entrambi i tasti, tieni premuto il tasto superiore per uscire"
},
"PowerPulsePower": {
"displayText": "Potenza\nimpulso",
"description": "Regola la potenza di un \"impulso sveglia\" atto a prevenire lo standby eventuale dell'alimentatore [watt]"
},
"PowerPulseWait": {
"displayText": "Distanza\nimpulsi",
"description": "Imposta il tempo che deve intercorrere tra due \"impulsi sveglia\" [multipli di 2,5 s]"
},
"PowerPulseDuration": {
"displayText": "Durata\nimpulso",
"description": "Regola la durata dell'«impulso sveglia» [multipli di 250 ms]"
},
"SettingsReset": {
"displayText": "Ripristino\nimpostazioni",
"description": "Ripristina le impostazioni predefinite"
},
"LanguageSwitch": {
"displayText": "Lingua:\n IT Italiano",
"description": ""
}
}
}

View File

@@ -1,212 +1,251 @@
{
"languageCode": "JA_JP",
"languageLocalName": "日本語",
"tempUnitFahrenheit": true,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "設定をリセットしますか?",
"UVLOWarningString": "電圧が低すぎます",
"UndervoltageString": "Undervoltage",
"InputVoltageString": "Input V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Sleeping...",
"SleepingTipAdvancedString": "Tip:",
"OffString": "オフ",
"DeviceFailedValidationWarning": "このデバイスはおそらく偽造品です"
},
"messagesWarn": {
"CJCCalibrationDone": "Calibration done!",
"ResetOKMessage": "リセットOK",
"SettingsResetMessage": "初期化されました",
"NoAccelerometerMessage": "加速度計未検出",
"NoPowerDeliveryMessage": "PD IC未検出",
"LockingKeysString": "ボタンロック",
"UnlockingKeysString": "ロックを解除",
"WarningKeysLockedString": "!入力ロック中!",
"WarningThermalRunaway": "過熱"
},
"characters": {
"SettingRightChar": "右",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "×",
"SettingSlowChar": "遅",
"SettingMediumChar": "中",
"SettingFastChar": "速",
"SettingStartNoneChar": "×",
"SettingStartSolderingChar": "熱",
"SettingStartSleepChar": "待",
"SettingStartSleepOffChar": "室",
"SettingSensitivityOff": "×",
"SettingSensitivityLow": "低",
"SettingSensitivityMedium": "中",
"SettingSensitivityHigh": "高",
"SettingLockDisableChar": "×",
"SettingLockBoostChar": "ブ",
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
"text2": "電源設定",
"desc": ""
},
"SolderingMenu": {
"text2": "半田付け設定",
"desc": ""
},
"PowerSavingMenu": {
"text2": "待機設定",
"desc": ""
},
"UIMenu": {
"text2": "UI設定",
"desc": ""
},
"AdvancedMenu": {
"text2": "高度な設定",
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": "下限電圧",
"desc": "下限電圧を指定する <DC=10V | S=セルあたり3.3V、電力制限を無効化>"
},
"MinVolCell": {
"text2": "最低電圧",
"desc": "セルあたりの最低電圧 <ボルト> <3S: 3.0V - 3.7V, 4/5/6S: 2.4V - 3.7V>"
},
"QCMaxVoltage": {
"text2": "QC電圧",
"desc": "QC電源使用時に要求する目標電圧"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "一部のQC電源との互換性のため、PDネゴシエーションをタイムアウトする時間 <x100msミリ秒>"
},
"BoostTemperature": {
"text2": "ブースト温度",
"desc": "ブーストモードで使用される温度"
},
"AutoStart": {
"text2": "自動加熱",
"desc": "電源投入時に自動的に加熱する <×=オフ | 熱=半田付けモード | 待=スタンバイモード | 室=室温スタンバイモード>"
},
"TempChangeShortStep": {
"text2": "温度変化 短",
"desc": "ボタンを短く押した時の温度変化値"
},
"TempChangeLongStep": {
"text2": "温度変化 長",
"desc": "ボタンを長押しした時の温度変化値"
},
"LockingMode": {
"text2": "ボタンロック",
"desc": "半田付けモード時に両方のボタンを長押しし、ボタンロックする <×=オフ | ブ=ブーストのみ許可 | 全=すべてをロック>"
},
"MotionSensitivity": {
"text2": "動きの感度",
"desc": "0=オフ | 1=最低感度 | ... | 9=最高感度"
},
"SleepTemperature": {
"text2": "待機温度",
"desc": "スタンバイ時のコテ先温度"
},
"SleepTimeout": {
"text2": "待機遅延",
"desc": "スタンバイモードに入るまでの待機時間 <s=秒 | m=分>"
},
"ShutdownTimeout": {
"text2": "自動オフ",
"desc": "自動電源オフまでの待機時間 <m=分>"
},
"HallEffSensitivity": {
"text2": "磁界感度",
"desc": "スタンバイモードに入るのに使用される磁場センサーの感度 <0=オフ | 1=最低感度 | ... | 9=最高感度>"
},
"TemperatureUnit": {
"text2": "温度単位",
"desc": "C=摂氏 | F=華氏"
},
"DisplayRotation": {
"text2": "画面の向き",
"desc": "右=右利き | 左=左利き | 自=自動"
},
"CooldownBlink": {
"text2": "冷却中に点滅",
"desc": "加熱の停止後、コテ先が熱い間は温度表示を点滅する"
},
"ScrollingSpeed": {
"text2": "スクロール速度",
"desc": "テキストをスクロールする速さ <遅=遅い | 速=速い>"
},
"ReverseButtonTempChange": {
"text2": "キー入れ替え",
"desc": "温度設定時に+ボタンと-ボタンを入れ替える"
},
"AnimSpeed": {
"text2": "動画の速度",
"desc": "メニューアイコンのアニメーションの速さ <×=再生しない | 遅=低速 | 中=中速 | 速=高速>"
},
"AnimLoop": {
"text2": "動画をループ",
"desc": "メニューアイコンのアニメーションをループする"
},
"Brightness": {
"text2": "画面輝度",
"desc": "画面の明るさ・コントラストを変更する"
},
"ColourInversion": {
"text2": "色反転",
"desc": "画面の色を反転する"
},
"LOGOTime": {
"text2": "起動画面",
"desc": "起動画面の表示時間を設定する"
},
"AdvancedIdle": {
"text2": "詳細な待受画面",
"desc": "待ち受け画面に詳細情報を表示する"
},
"AdvancedSoldering": {
"text2": "詳細な作業画面",
"desc": "半田付け画面に詳細情報を表示する"
},
"PowerLimit": {
"text2": "電力制限",
"desc": "最大電力を制限する <W=ワット>"
},
"CalibrateCJC": {
"text2": "Calibrate CJC",
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"text2": "電圧校正",
"desc": "入力電圧(VIN)の校正を開始する <長押しで終了>"
},
"PowerPulsePower": {
"text2": "電力パルス",
"desc": "電源をオンに保つための電力パルス <ワット>"
},
"PowerPulseWait": {
"text2": "パルス間隔",
"desc": "電源をオンに保つための電力パルスの時間間隔 <x2.5s(秒)>"
},
"PowerPulseDuration": {
"text2": "パルス時間長",
"desc": "電源をオンに保つための電力パルスの時間長 <x250msミリ秒>"
},
"SettingsReset": {
"text2": "設定をリセット",
"desc": "すべての設定を初期化する"
},
"LanguageSwitch": {
"text2": "言語: 日本語",
"desc": ""
}
}
}
{
"languageCode": "JA_JP",
"languageLocalName": "日本語",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration done!"
},
"ResetOKMessage": {
"message": "リセットOK"
},
"SettingsResetMessage": {
"message": "初期化されました"
},
"NoAccelerometerMessage": {
"message": "加速度計未検出"
},
"NoPowerDeliveryMessage": {
"message": "PD IC未検出"
},
"LockingKeysString": {
"message": "ボタンロック"
},
"UnlockingKeysString": {
"message": "ロックを解除"
},
"WarningKeysLockedString": {
"message": "!入力ロック中!"
},
"WarningThermalRunaway": {
"message": "過熱"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating"
},
"SettingsResetWarning": {
"message": "設定をリセットしますか?"
},
"UVLOWarningString": {
"message": "電圧が低すぎます"
},
"UndervoltageString": {
"message": "Undervoltage"
},
"InputVoltageString": {
"message": "Input V: "
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Sleeping..."
},
"SleepingTipAdvancedString": {
"message": "Tip: "
},
"OffString": {
"message": "オフ"
},
"DeviceFailedValidationWarning": {
"message": "このデバイスはおそらく偽造品です"
}
},
"characters": {
"SettingRightChar": "",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "×",
"SettingSlowChar": "遅",
"SettingMediumChar": "",
"SettingFastChar": "速",
"SettingStartNoneChar": "×",
"SettingStartSolderingChar": "熱",
"SettingStartSleepChar": "",
"SettingStartSleepOffChar": "室",
"SettingLockDisableChar": "×",
"SettingLockBoostChar": "ブ",
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
"displayText": "電源設定",
"description": ""
},
"SolderingMenu": {
"displayText": "半田付け設定",
"description": ""
},
"PowerSavingMenu": {
"displayText": "待機設定",
"description": ""
},
"UIMenu": {
"displayText": "UI設定",
"description": ""
},
"AdvancedMenu": {
"displayText": "高度な設定",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "下限電圧",
"description": "下限電圧を指定する <DC=10V | S=セルあたり3.3V、電力制限を無効化>"
},
"MinVolCell": {
"displayText": "最低電圧",
"description": "セルあたりの最低電圧 <ボルト> <3S: 3.0V - 3.7V, 4/5/6S: 2.4V - 3.7V>"
},
"QCMaxVoltage": {
"displayText": "QC電圧",
"description": "QC電源使用時に要求する目標電圧"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "一部のQC電源との互換性のため、PDネゴシエーションをタイムアウトする時間 <x100msミリ秒>"
},
"PDVpdo": {
"displayText": "PD VPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "ブースト温度",
"description": "ブーストモードで使用される温度"
},
"AutoStart": {
"displayText": "自動加熱",
"description": "電源投入時に自動的に加熱する <×=オフ | 熱=半田付けモード | 待=スタンバイモード | 室=室温スタンバイモード>"
},
"TempChangeShortStep": {
"displayText": "温度変化 短",
"description": "ボタンを短く押した時の温度変化値"
},
"TempChangeLongStep": {
"displayText": "温度変化 長",
"description": "ボタンを長押しした時の温度変化値"
},
"LockingMode": {
"displayText": "ボタンロック",
"description": "半田付けモード時に両方のボタンを長押しし、ボタンロックする <×=オフ | ブ=ブーストのみ許可 | 全=すべてをロック>"
},
"MotionSensitivity": {
"displayText": "動きの感度",
"description": "0=オフ | 1=最低感度 | ... | 9=最高感度"
},
"SleepTemperature": {
"displayText": "待機温度",
"description": "スタンバイ時のコテ先温度"
},
"SleepTimeout": {
"displayText": "待機遅延",
"description": "スタンバイモードに入るまでの待機時間 <s=秒 | m=分>"
},
"ShutdownTimeout": {
"displayText": "自動オフ",
"description": "自動電源オフまでの待機時間 <m=分>"
},
"HallEffSensitivity": {
"displayText": "磁界感度",
"description": "スタンバイモードに入るのに使用される磁場センサーの感度 <0=オフ | 1=最低感度 | ... | 9=最高感度>"
},
"TemperatureUnit": {
"displayText": "温度単位",
"description": "C=摂氏 | F=華氏"
},
"DisplayRotation": {
"displayText": "画面の向き",
"description": "右=右利き | 左=左利き | 自=自動"
},
"CooldownBlink": {
"displayText": "冷却中に点滅",
"description": "加熱の停止後、コテ先が熱い間は温度表示を点滅する"
},
"ScrollingSpeed": {
"displayText": "スクロール速度",
"description": "テキストをスクロールする速さ <遅=遅い | 速=速い>"
},
"ReverseButtonTempChange": {
"displayText": "キー入れ替え",
"description": "温度設定時に+ボタンと-ボタンを入れ替える"
},
"AnimSpeed": {
"displayText": "動画の速度",
"description": "メニューアイコンのアニメーションの速さ <×=再生しない | 遅=低速 | 中=中速 | 速=高速>"
},
"AnimLoop": {
"displayText": "動画をループ",
"description": "メニューアイコンのアニメーションをループする"
},
"Brightness": {
"displayText": "画面輝度",
"description": "画面の明るさ・コントラストを変更する"
},
"ColourInversion": {
"displayText": "色反転",
"description": "画面の色を反転する"
},
"LOGOTime": {
"displayText": "起動画面",
"description": "起動画面の表示時間を設定する"
},
"AdvancedIdle": {
"displayText": "詳細な待受画面",
"description": "待ち受け画面に詳細情報を表示する"
},
"AdvancedSoldering": {
"displayText": "詳細な作業画面",
"description": "半田付け画面に詳細情報を表示する"
},
"BluetoothLE": {
"displayText": "Bluetooth",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "電力制限",
"description": "最大電力を制限する <W=ワット>"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"displayText": "電圧校正",
"description": "入力電圧(VIN)の校正を開始する <長押しで終了>"
},
"PowerPulsePower": {
"displayText": "電力パルス",
"description": "電源をオンに保つための電力パルス <ワット>"
},
"PowerPulseWait": {
"displayText": "パルス間隔",
"description": "電源をオンに保つための電力パルスの時間間隔 <x2.5s(秒)>"
},
"PowerPulseDuration": {
"displayText": "パルス時間長",
"description": "電源をオンに保つための電力パルスの時間長 <x250msミリ秒>"
},
"SettingsReset": {
"displayText": "設定をリセット",
"description": "すべての設定を初期化する"
},
"LanguageSwitch": {
"displayText": "言語: 日本語",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "LT",
"languageLocalName": "Lietuvių",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Ar norite atstatyti nustatymus į numatytas reikšmes?",
"UVLOWarningString": "MAŽ VOLT",
"UndervoltageString": "Žema įtampa",
"InputVoltageString": "Įvestis V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Miegu...",
"SleepingTipAdvancedString": "Antg:",
"OffString": "Išj",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Atstatyta",
"SettingsResetMessage": [
"Nust. atstatyti!",
""
],
"NoAccelerometerMessage": [
"Nerastas",
"akselerometras!"
],
"NoPowerDeliveryMessage": [
"Nerastas",
"USB-PD IC!"
],
"LockingKeysString": "UŽRAKIN",
"UnlockingKeysString": "ATRAKIN",
"WarningKeysLockedString": "!UŽRAK!",
"WarningThermalRunaway": [
"Perkaitimo",
"pavojus"
]
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "K",
"SettingAutoChar": "A",
"SettingOffChar": "I",
"SettingSlowChar": "L",
"SettingMediumChar": "V",
"SettingFastChar": "G",
"SettingStartNoneChar": "N",
"SettingStartSolderingChar": "T",
"SettingStartSleepChar": "M",
"SettingStartSleepOffChar": "K",
"SettingSensitivityOff": "I",
"SettingSensitivityLow": "Ž",
"SettingSensitivityMedium": "V",
"SettingSensitivityHigh": "A",
"SettingLockDisableChar": "I",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Maitinimo",
"nustatymai"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Litavimo",
"nustatymai"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Miego",
"režimai"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Naudotojo",
"sąsaja"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Išplėsti.",
"nustatymai"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Maitinimo",
"šaltinis"
],
"desc": "Išjungimo įtampa. (DC 10V) (arba celių [S] kiekis [3.3V per celę])"
},
"MinVolCell": {
"text2": [
"Minimalus",
"voltažas"
],
"desc": "Minimalus voltažas, kuris yra leidžiamas kiekvienam baterijos elementui (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"QC mait.",
"įtampa"
],
"desc": "Maksimali QC maitinimo bloko įtampa"
},
"PDNegTimeout": {
"text2": [
"PD",
"laikas"
],
"desc": "PD suderinimo laikas žingsniais po 100ms suderinamumui su kai kuriais QC įkrovikliais"
},
"BoostTemperature": {
"text2": [
"Turbo",
"temperat."
],
"desc": "Temperatūra turbo režimu"
},
"AutoStart": {
"text2": [
"Automatinis",
"paleidimas"
],
"desc": "Ar pradėti kaitininti iš karto įjungus lituoklį (N=Ne | T=Taip | M=Miegas | K=Miegoti kambario temperatūroje)"
},
"TempChangeShortStep": {
"text2": [
"Temp.keitim.",
"trump.spust."
],
"desc": "Temperatūros keitimo žingsnis trumpai spustėlėjus mygtuką"
},
"TempChangeLongStep": {
"text2": [
"Temp.keitim.",
"ilgas pasp."
],
"desc": "Temperatūros keitimo žingsnis ilgai paspaudus mygtuką"
},
"LockingMode": {
"text2": [
"Mygtukų",
"užraktas"
],
"desc": "Lituodami, ilgai paspauskite abu mygtukus, kad juos užrakintumėte (I=Išjungta | T=leidžiamas tik Turbo režimas | V=Visiškas užrakinimas)"
},
"MotionSensitivity": {
"text2": [
"Judesio",
"jautrumas"
],
"desc": "Judesio jautrumas (0=Išjungta | 1=Mažiausias | ... | 9=Didžiausias)"
},
"SleepTemperature": {
"text2": [
"Miego",
"temperat."
],
"desc": "Antgalio temperatūra miego režimu"
},
"SleepTimeout": {
"text2": [
"Miego",
"laikas"
],
"desc": "Užmigimo laikas (sekundės | minutės)"
},
"ShutdownTimeout": {
"text2": [
"Išjungimo",
"laikas"
],
"desc": "Išjungimo laikas (minutės)"
},
"HallEffSensitivity": {
"text2": [
"Holo",
"jutiklis"
],
"desc": "Holo jutiklio jautrumas nustatant miegą (0=Išjungta | 1=Mažiausias | ... | 9=Didžiausias)"
},
"TemperatureUnit": {
"text2": [
"Temperatūros",
"vienetai"
],
"desc": "Temperatūros vienetai (C=Celsijus | F=Farenheitas)"
},
"DisplayRotation": {
"text2": [
"Ekrano",
"orientacija"
],
"desc": "Ekrano orientacija (D=Dešiniarankiams | K=Kairiarankiams | A=Automatinė)"
},
"CooldownBlink": {
"text2": [
"Atvėsimo",
"mirksėjimas"
],
"desc": "Ar mirksėti temperatūrą ekrane kol vėstantis antgalis vis dar karštas?"
},
"ScrollingSpeed": {
"text2": [
"Aprašymo",
"greitis"
],
"desc": "Greitis, kuriuo šis tekstas slenka"
},
"ReverseButtonTempChange": {
"text2": [
"Sukeisti + -",
"mygtukus?"
],
"desc": "Sukeisti + - temperatūros keitimo mygtukus vietomis"
},
"AnimSpeed": {
"text2": [
"Animacijų",
"greitis"
],
"desc": "Paveiksliukų animacijų greitis meniu punktuose (I=Išjungtas | L=Lėtas | V=Vidutinis | G=Greitas)"
},
"AnimLoop": {
"text2": [
"Animacijų",
"pakartojimas"
],
"desc": "Leidžia kartoti animacijas be sustojimo pagrindiniame meniu"
},
"Brightness": {
"text2": [
"Ekrano",
"šviesumas"
],
"desc": "Nustato OLED ekrano kontrastą/šviesumą."
},
"ColourInversion": {
"text2": [
"Ekrano",
"invertavimas"
],
"desc": "Invertuoja OLED ekrano spalvas"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Detalus lau-",
"kimo ekranas"
],
"desc": "Ar rodyti papildomą informaciją mažesniu šriftu laukimo ekrane"
},
"AdvancedSoldering": {
"text2": [
"Detalus lita-",
"vimo ekranas"
],
"desc": "Ar rodyti išsamią informaciją lituojant"
},
"PowerLimit": {
"text2": [
"Galios",
"riba"
],
"desc": "Didžiausia galia, kurią gali naudoti lituoklis (Vatai)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Kalibruoti",
"įvesties įtampą?"
],
"desc": "Įvesties įtampos kalibravimas. Trumpai paspauskite, norėdami nustatyti, ilgai paspauskite, kad išeitumėte."
},
"PowerPulsePower": {
"text2": [
"Galios",
"pulso W"
],
"desc": "Periodinis galios pulso intensyvumas maitinblokiui, neleidžiantis jam užmigti."
},
"PowerPulseWait": {
"text2": [
"Galios pulso",
"dažnumas"
],
"desc": "Pasikartojantis laiko intervalas (x 2.5s), ties kuriuo kartojamas galios pulsas maitinblokiui, neleidžiantis jam užmigti"
},
"PowerPulseDuration": {
"text2": [
"Galios pulso",
"trukmė"
],
"desc": "Galios pulso aktyvioji trukmė (x 250ms)"
},
"SettingsReset": {
"text2": [
"Atstatyti",
"nustatymus?"
],
"desc": "Nustato nustatymus į numatytuosius"
},
"LanguageSwitch": {
"text2": [
"Kalba:",
" LT Lietuvių"
],
"desc": ""
}
}
}
{
"languageCode": "LT",
"languageLocalName": "Lietuvių",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Atstatyta"
},
"SettingsResetMessage": {
"message": "Nust. \natstatyti!"
},
"NoAccelerometerMessage": {
"message": "Nerastas\nakselerometras!"
},
"NoPowerDeliveryMessage": {
"message": "Nerastas\nUSB-PD IC!"
},
"LockingKeysString": {
"message": "UŽRAKIN"
},
"UnlockingKeysString": {
"message": "ATRAKIN"
},
"WarningKeysLockedString": {
"message": "!UŽRAK!"
},
"WarningThermalRunaway": {
"message": "Perkaitimo\npavojus"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Ar norite atstatyti nustatymus į numatytas reikšmes?"
},
"UVLOWarningString": {
"message": "MAŽ VOLT"
},
"UndervoltageString": {
"message": "Žema įtampa\n"
},
"InputVoltageString": {
"message": "Įvestis V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Miegu...\n"
},
"SleepingTipAdvancedString": {
"message": "Antg: \n"
},
"OffString": {
"message": "Išj"
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "K",
"SettingAutoChar": "A",
"SettingOffChar": "I",
"SettingSlowChar": "L",
"SettingMediumChar": "V",
"SettingFastChar": "G",
"SettingStartNoneChar": "N",
"SettingStartSolderingChar": "T",
"SettingStartSleepChar": "M",
"SettingStartSleepOffChar": "K",
"SettingLockDisableChar": "I",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Maitinimo\nnustatymai",
"description": ""
},
"SolderingMenu": {
"displayText": "Litavimo\nnustatymai",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Miego\nrežimai",
"description": ""
},
"UIMenu": {
"displayText": "Naudotojo\nsąsaja",
"description": ""
},
"AdvancedMenu": {
"displayText": "Išplėsti.\nnustatymai",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Maitinimo\nšaltinis",
"description": "Išjungimo įtampa. (DC 10V) (arba celių [S] kiekis [3.3V per celę])"
},
"MinVolCell": {
"displayText": "Minimalus\nvoltažas",
"description": "Minimalus voltažas, kuris yra leidžiamas kiekvienam baterijos elementui (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC mait.\nįtampa",
"description": "Maksimali QC maitinimo bloko įtampa"
},
"PDNegTimeout": {
"displayText": "PD\nlaikas",
"description": "PD suderinimo laikas žingsniais po 100ms suderinamumui su kai kuriais QC įkrovikliais"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Turbo\ntemperat.",
"description": "Temperatūra turbo režimu"
},
"AutoStart": {
"displayText": "Automatinis\npaleidimas",
"description": "Ar pradėti kaitininti iš karto įjungus lituoklį (N=Ne | T=Taip | M=Miegas | K=Miegoti kambario temperatūroje)"
},
"TempChangeShortStep": {
"displayText": "Temp.keitim.\ntrump.spust.",
"description": "Temperatūros keitimo žingsnis trumpai spustėlėjus mygtuką"
},
"TempChangeLongStep": {
"displayText": "Temp.keitim.\nilgas pasp.",
"description": "Temperatūros keitimo žingsnis ilgai paspaudus mygtuką"
},
"LockingMode": {
"displayText": "Mygtukų\nužraktas",
"description": "Lituodami, ilgai paspauskite abu mygtukus, kad juos užrakintumėte (I=Išjungta | T=leidžiamas tik Turbo režimas | V=Visiškas užrakinimas)"
},
"MotionSensitivity": {
"displayText": "Judesio\njautrumas",
"description": "Judesio jautrumas (0=Išjungta | 1=Mažiausias | ... | 9=Didžiausias)"
},
"SleepTemperature": {
"displayText": "Miego\ntemperat.",
"description": "Antgalio temperatūra miego režimu"
},
"SleepTimeout": {
"displayText": "Miego\nlaikas",
"description": "Užmigimo laikas (sekundės | minutės)"
},
"ShutdownTimeout": {
"displayText": "Išjungimo\nlaikas",
"description": "Išjungimo laikas (minutės)"
},
"HallEffSensitivity": {
"displayText": "Holo\njutiklis",
"description": "Holo jutiklio jautrumas nustatant miegą (0=Išjungta | 1=Mažiausias | ... | 9=Didžiausias)"
},
"TemperatureUnit": {
"displayText": "Temperatūros\nvienetai",
"description": "Temperatūros vienetai (C=Celsijus | F=Farenheitas)"
},
"DisplayRotation": {
"displayText": "Ekrano\norientacija",
"description": "Ekrano orientacija (D=Dešiniarankiams | K=Kairiarankiams | A=Automatinė)"
},
"CooldownBlink": {
"displayText": "Atvėsimo\nmirksėjimas",
"description": "Ar mirksėti temperatūrą ekrane kol vėstantis antgalis vis dar karštas?"
},
"ScrollingSpeed": {
"displayText": "Aprašymo\ngreitis",
"description": "Greitis, kuriuo šis tekstas slenka"
},
"ReverseButtonTempChange": {
"displayText": "Sukeisti + -\nmygtukus?",
"description": "Sukeisti + - temperatūros keitimo mygtukus vietomis"
},
"AnimSpeed": {
"displayText": "Animacijų\ngreitis",
"description": "Paveiksliukų animacijų greitis meniu punktuose (I=Išjungtas | L=Lėtas | V=Vidutinis | G=Greitas)"
},
"AnimLoop": {
"displayText": "Animacijų\npakartojimas",
"description": "Leidžia kartoti animacijas be sustojimo pagrindiniame meniu"
},
"Brightness": {
"displayText": "Ekrano\nšviesumas",
"description": "Nustato OLED ekrano kontrastą/šviesumą."
},
"ColourInversion": {
"displayText": "Ekrano\ninvertavimas",
"description": "Invertuoja OLED ekrano spalvas"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Detalus lau-\nkimo ekranas",
"description": "Ar rodyti papildomą informaciją mažesniu šriftu laukimo ekrane"
},
"AdvancedSoldering": {
"displayText": "Detalus lita-\nvimo ekranas",
"description": "Ar rodyti išsamią informaciją lituojant"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Galios\nriba",
"description": "Didžiausia galia, kurią gali naudoti lituoklis (Vatai)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibruoti\nįvesties įtampą?",
"description": "Įvesties įtampos kalibravimas. Trumpai paspauskite, norėdami nustatyti, ilgai paspauskite, kad išeitumėte."
},
"PowerPulsePower": {
"displayText": "Galios\npulso W",
"description": "Periodinis galios pulso intensyvumas maitinblokiui, neleidžiantis jam užmigti."
},
"PowerPulseWait": {
"displayText": "Galios pulso\ndažnumas",
"description": "Pasikartojantis laiko intervalas (x 2.5s), ties kuriuo kartojamas galios pulsas maitinblokiui, neleidžiantis jam užmigti"
},
"PowerPulseDuration": {
"displayText": "Galios pulso\ntrukmė",
"description": "Galios pulso aktyvioji trukmė (x 250ms)"
},
"SettingsReset": {
"displayText": "Atstatyti\nnustatymus?",
"description": "Nustato nustatymus į numatytuosius"
},
"LanguageSwitch": {
"displayText": "Kalba:\n LT Lietuvių",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "NB",
"languageLocalName": "Norsk bokmål",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Er du sikker på at du vil tilbakestille til standardinnstillinger?",
"UVLOWarningString": "Lavspenn",
"UndervoltageString": "Underspenning",
"InputVoltageString": "Innspenn.: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Dvale...",
"SleepingTipAdvancedString": "Spiss:",
"OffString": "Av",
"DeviceFailedValidationWarning": "Enheten din er sannsynligvis en forfalskning!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Tilbakestilling OK",
"SettingsResetMessage": [
"Noen innstillinger",
"ble endret!"
],
"NoAccelerometerMessage": [
"Ingen akselerometer",
"funnet!"
],
"NoPowerDeliveryMessage": [
"Ingen USB-PD IC",
"funnet!"
],
"LockingKeysString": "LÅST",
"UnlockingKeysString": "ÅPNET",
"WarningKeysLockedString": "!LÅST!",
"WarningThermalRunaway": [
"Termisk",
"rømling"
]
},
"characters": {
"SettingRightChar": "H",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "I",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "D",
"SettingStartSleepOffChar": "R",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Effekt-",
"innst."
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Lodde-",
"innst."
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Dvale-",
"innst."
],
"desc": ""
},
"UIMenu": {
"text2": [
"Bruker-",
"grensesn."
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Avanserte",
"valg"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Kilde",
""
],
"desc": "Strømforsyning. Sett nedre spenning for automatisk nedstenging. (DC 10V) (S 3.3V per celle)"
},
"MinVolCell": {
"text2": [
"Minimum",
"spenning"
],
"desc": "Minimum tillatt spenning per celle (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"QC-",
"spenning"
],
"desc": "Maks QC-spenning bolten skal forhandle om"
},
"PDNegTimeout": {
"text2": [
"PD-",
"tidsavb."
],
"desc": "PD-forhandlingstidsavbrudd i steg på 100 ms for kompatibilitet med noen QC-ladere"
},
"BoostTemperature": {
"text2": [
"KTmp",
""
],
"desc": "Temperatur i \"kraft-modus\""
},
"AutoStart": {
"text2": [
"AStart",
""
],
"desc": "Start automatisk med lodding når strøm kobles til. (I=Inaktiv | L=Lodding | D=Dvale | R=Dvale romtemperatur)"
},
"TempChangeShortStep": {
"text2": [
"Temp-endring",
"kort"
],
"desc": "Hvor mye temperaturen skal endres ved kort trykk på knapp"
},
"TempChangeLongStep": {
"text2": [
"Temp-endring",
"lang"
],
"desc": "Hvor mye temperaturen skal endres ved langt trykk på knapp"
},
"LockingMode": {
"text2": [
"Tillat å låse",
"knapper"
],
"desc": "Mens du lodder, hold nede begge knapper for å bytte mellom låsemodus (D=deaktiver | B=kun boost | F=full lås)"
},
"MotionSensitivity": {
"text2": [
"BSensr",
""
],
"desc": "Bevegelsesfølsomhet (0=Inaktiv | 1=Minst følsom | ... | 9=Mest følsom)"
},
"SleepTemperature": {
"text2": [
"DTmp",
""
],
"desc": "Dvaletemperatur (C)"
},
"SleepTimeout": {
"text2": [
"DTid",
""
],
"desc": "Tid før dvale (Minutter | Sekunder)"
},
"ShutdownTimeout": {
"text2": [
"AvTid",
""
],
"desc": "Tid før automatisk nedstenging (Minutter)"
},
"HallEffSensitivity": {
"text2": [
"Hall-sensor",
"følsomhet"
],
"desc": "Sensitiviteten til Hall-effekt-sensoren for å detektere inaktivitet (0=Inaktiv | 1=Minst følsom | ... | 9=Mest følsom)"
},
"TemperatureUnit": {
"text2": [
"TmpEnh",
""
],
"desc": "Temperaturskala (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"text2": [
"SkRetn",
""
],
"desc": "Skjermretning (H=Høyrehendt | V=Venstrehendt | A=Automatisk)"
},
"CooldownBlink": {
"text2": [
"KjBlnk",
""
],
"desc": "Blink temperaturen på skjermen mens spissen fortsatt er varm."
},
"ScrollingSpeed": {
"text2": [
"RullHa",
""
],
"desc": "Hastigheten på rulletekst"
},
"ReverseButtonTempChange": {
"text2": [
"Bytt",
"+ - kn."
],
"desc": "Bytt om på knappene for å stille temperatur"
},
"AnimSpeed": {
"text2": [
"Anim.",
"hastighet"
],
"desc": "Hastigheten til animasjonene i menyen (O=off | S=slow | M=medium | F=fast)"
},
"AnimLoop": {
"text2": [
"Anim.",
"loop"
],
"desc": "Loop ikon-animasjoner i hovedmenyen"
},
"Brightness": {
"text2": [
"Skjerm-",
"lysstyrke"
],
"desc": "Juster lysstyrken til OLED-skjermen"
},
"ColourInversion": {
"text2": [
"Inverter",
"skjerm"
],
"desc": "Inverter fargene på OLED-skjermen"
},
"LOGOTime": {
"text2": [
"Oppstartlogo",
"varighet"
],
"desc": "Setter varigheten til oppstartlogoen (s=sekunder)"
},
"AdvancedIdle": {
"text2": [
"AvDvSk",
""
],
"desc": "Vis detaljert informasjon med liten skrift på dvaleskjermen."
},
"AdvancedSoldering": {
"text2": [
"AvLdSk",
""
],
"desc": "Vis detaljert informasjon ved lodding"
},
"PowerLimit": {
"text2": [
"Effekt-",
"grense"
],
"desc": "Maks effekt jernet kan bruke (W=watt)"
},
"CalibrateCJC": {
"text2": [
"TempKal?",
""
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"KalSpIn?",
""
],
"desc": "Kalibrer spenning. Knappene justerer. Langt trykk for å gå ut"
},
"PowerPulsePower": {
"text2": [
"Effekt-",
"puls"
],
"desc": "Hvor høy effekt pulsen for å holde laderen våken skal ha (watt)"
},
"PowerPulseWait": {
"text2": [
"Effektpuls",
"forsink."
],
"desc": "Forsinkelse før effektpulsen utløses (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Effektpuls",
"varighet"
],
"desc": "Hvor lenge holde-våken-pulsen varer (x 250ms)"
},
"SettingsReset": {
"text2": [
"TilbStl?",
""
],
"desc": "Tilbakestill alle innstillinger"
},
"LanguageSwitch": {
"text2": [
"Språk:",
" NB Norsk bm"
],
"desc": ""
}
}
}
{
"languageCode": "NB",
"languageLocalName": "Norsk bokmål",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Tilbakestilling OK"
},
"SettingsResetMessage": {
"message": "Noen innstillinger\nble endret!"
},
"NoAccelerometerMessage": {
"message": "Ingen akselerometer\nfunnet!"
},
"NoPowerDeliveryMessage": {
"message": "Ingen USB-PD IC\nfunnet!"
},
"LockingKeysString": {
"message": "LÅST"
},
"UnlockingKeysString": {
"message": "ÅPNET"
},
"WarningKeysLockedString": {
"message": "!LÅST!"
},
"WarningThermalRunaway": {
"message": "Termisk\nrømling"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Er du sikker på at du vil tilbakestille til standardinnstillinger?"
},
"UVLOWarningString": {
"message": "Lavspenn"
},
"UndervoltageString": {
"message": "Underspenning\n"
},
"InputVoltageString": {
"message": "Innspenn.: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Dvale...\n"
},
"SleepingTipAdvancedString": {
"message": "Spiss: \n"
},
"OffString": {
"message": "Av"
},
"DeviceFailedValidationWarning": {
"message": "Enheten din er sannsynligvis en forfalskning!"
}
},
"characters": {
"SettingRightChar": "H",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "I",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "D",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Effekt-\ninnst.",
"description": ""
},
"SolderingMenu": {
"displayText": "Lodde-\ninnst.",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Dvale-\ninnst.",
"description": ""
},
"UIMenu": {
"displayText": "Bruker-\ngrensesn.",
"description": ""
},
"AdvancedMenu": {
"displayText": "Avanserte\nvalg",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Kilde\n",
"description": "Strømforsyning. Sett nedre spenning for automatisk nedstenging. (DC 10V) (S 3.3V per celle)"
},
"MinVolCell": {
"displayText": "Minimum\nspenning",
"description": "Minimum tillatt spenning per celle (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC-\nspenning",
"description": "Maks QC-spenning bolten skal forhandle om"
},
"PDNegTimeout": {
"displayText": "PD-\ntidsavb.",
"description": "PD-forhandlingstidsavbrudd i steg på 100 ms for kompatibilitet med noen QC-ladere"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "KTmp\n",
"description": "Temperatur i \"kraft-modus\""
},
"AutoStart": {
"displayText": "AStart\n",
"description": "Start automatisk med lodding når strøm kobles til. (I=Inaktiv | L=Lodding | D=Dvale | R=Dvale romtemperatur)"
},
"TempChangeShortStep": {
"displayText": "Temp-endring\nkort",
"description": "Hvor mye temperaturen skal endres ved kort trykk på knapp"
},
"TempChangeLongStep": {
"displayText": "Temp-endring\nlang",
"description": "Hvor mye temperaturen skal endres ved langt trykk på knapp"
},
"LockingMode": {
"displayText": "Tillat å låse\nknapper",
"description": "Mens du lodder, hold nede begge knapper for å bytte mellom låsemodus (D=deaktiver | B=kun boost | F=full lås)"
},
"MotionSensitivity": {
"displayText": "BSensr\n",
"description": "Bevegelsesfølsomhet (0=Inaktiv | 1=Minst følsom | ... | 9=Mest følsom)"
},
"SleepTemperature": {
"displayText": "DTmp\n",
"description": "Dvaletemperatur (C)"
},
"SleepTimeout": {
"displayText": "DTid\n",
"description": "Tid før dvale (Minutter | Sekunder)"
},
"ShutdownTimeout": {
"displayText": "AvTid\n",
"description": "Tid før automatisk nedstenging (Minutter)"
},
"HallEffSensitivity": {
"displayText": "Hall-sensor\nfølsomhet",
"description": "Sensitiviteten til Hall-effekt-sensoren for å detektere inaktivitet (0=Inaktiv | 1=Minst følsom | ... | 9=Mest følsom)"
},
"TemperatureUnit": {
"displayText": "TmpEnh\n",
"description": "Temperaturskala (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"displayText": "SkRetn\n",
"description": "Skjermretning (H=Høyrehendt | V=Venstrehendt | A=Automatisk)"
},
"CooldownBlink": {
"displayText": "KjBlnk\n",
"description": "Blink temperaturen på skjermen mens spissen fortsatt er varm."
},
"ScrollingSpeed": {
"displayText": "RullHa\n",
"description": "Hastigheten på rulletekst"
},
"ReverseButtonTempChange": {
"displayText": "Bytt\n+ - kn.",
"description": "Bytt om på knappene for å stille temperatur"
},
"AnimSpeed": {
"displayText": "Anim.\nhastighet",
"description": "Hastigheten til animasjonene i menyen (O=off | S=slow | M=medium | F=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
"description": "Loop ikon-animasjoner i hovedmenyen"
},
"Brightness": {
"displayText": "Skjerm-\nlysstyrke",
"description": "Juster lysstyrken til OLED-skjermen"
},
"ColourInversion": {
"displayText": "Inverter\nskjerm",
"description": "Inverter fargene på OLED-skjermen"
},
"LOGOTime": {
"displayText": "Oppstartlogo\nvarighet",
"description": "Setter varigheten til oppstartlogoen (s=sekunder)"
},
"AdvancedIdle": {
"displayText": "AvDvSk\n",
"description": "Vis detaljert informasjon med liten skrift på dvaleskjermen."
},
"AdvancedSoldering": {
"displayText": "AvLdSk\n",
"description": "Vis detaljert informasjon ved lodding"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Effekt-\ngrense",
"description": "Maks effekt jernet kan bruke (W=watt)"
},
"CalibrateCJC": {
"displayText": "TempKal?\n",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "KalSpIn?\n",
"description": "Kalibrer spenning. Knappene justerer. Langt trykk for å gå ut"
},
"PowerPulsePower": {
"displayText": "Effekt-\npuls",
"description": "Hvor høy effekt pulsen for å holde laderen våken skal ha (watt)"
},
"PowerPulseWait": {
"displayText": "Effektpuls\nforsink.",
"description": "Forsinkelse før effektpulsen utløses (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Effektpuls\nvarighet",
"description": "Hvor lenge holde-våken-pulsen varer (x 250ms)"
},
"SettingsReset": {
"displayText": "TilbStl?\n",
"description": "Tilbakestill alle innstillinger"
},
"LanguageSwitch": {
"displayText": "Språk:\n NB Norsk bm",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "NL",
"languageLocalName": "Nederlands",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Weet je zeker dat je de fabrieksinstellingen terug wilt zetten?",
"UVLOWarningString": "DC Laag",
"UndervoltageString": "Onderspanning",
"InputVoltageString": "Voeding V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Slaapstand...",
"SleepingTipAdvancedString": "Punt:",
"OffString": "Uit",
"DeviceFailedValidationWarning": "Jouw toestel is wellicht een namaak-versie!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Instellingen",
"zijn gereset!"
],
"NoAccelerometerMessage": [
"Geen accelerometer",
"gedetecteerd!"
],
"NoPowerDeliveryMessage": [
"Geen USB-PD IC ",
"gedetecteerd!"
],
"LockingKeysString": "GEBLOKKEERD",
"UnlockingKeysString": "GEDEBLOKKEERD",
"WarningKeysLockedString": "!GEBLOKKEERD!",
"WarningThermalRunaway": [
"Verwarming",
"Oncontroleerbaar"
]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "U",
"SettingSlowChar": "L",
"SettingMediumChar": "G",
"SettingFastChar": "S",
"SettingStartNoneChar": "U",
"SettingStartSolderingChar": "G",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "B",
"SettingSensitivityOff": "U",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "G",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "U",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Voeding",
"instellingen"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Soldeer",
"instellingen"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Slaap",
"Modes"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Weergave",
"instellingen"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Geavanceerde",
"instellingen"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Spannings-",
"bron"
],
"desc": "Spanningsbron. Stelt drempelspanning in. (DC 10V) (S 3.3V per cel)"
},
"MinVolCell": {
"text2": [
"Minimum",
"voltage"
],
"desc": "Minimum toegestaan voltage per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"QC",
"Voltage"
],
"desc": "Maximaal QC voltage dat gevraagd mag worden"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD afstemmingsduur in stappen van 100ms (voor compatibiliteit met sommige QC laders)"
},
"BoostTemperature": {
"text2": [
"Boost",
"temp"
],
"desc": "Punt temperatuur in boostmode"
},
"AutoStart": {
"text2": [
"Opstart",
"gedrag"
],
"desc": "Gedrag bij opstarten (U=Uit | G=Gebruiks-temperatuur | S=Slaapstand-temperatuur tot beweging | B=Uit tot beweging)"
},
"TempChangeShortStep": {
"text2": [
"Temp veranderen",
"kort"
],
"desc": "Temperatuur verandering bij kort drukken"
},
"TempChangeLongStep": {
"text2": [
"Temp veranderen",
"lang"
],
"desc": "Temperatuur verandering bij lang drukken"
},
"LockingMode": {
"text2": [
"Knopblokkering",
"inschakelen"
],
"desc": "Tijdens solderen lang op beide knoppen drukken blokkeert de knoppen (U=Uit | B=Alleen boost mode | V=Volledig blokkeren)"
},
"MotionSensitivity": {
"text2": [
"Bewegings-",
"gevoeligheid"
],
"desc": "Bewegingsgevoeligheid (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"SleepTemperature": {
"text2": [
"Slaap",
"temp"
],
"desc": "Punt temperatuur in slaapstand"
},
"SleepTimeout": {
"text2": [
"Slaap",
"time-out"
],
"desc": "Tijd voordat slaapmodus wordt geactiveerd (S=seconden | M=minuten)"
},
"ShutdownTimeout": {
"text2": [
"Uitschakel",
"time-out"
],
"desc": "Tijd voordat soldeerbout automatisch uitschakelt (M=minuten)"
},
"HallEffSensitivity": {
"text2": [
"Hall sensor",
"gevoeligheid"
],
"desc": "Gevoeligheid van de Hall effect sensor om naar slaapmodus te gaan (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"TemperatureUnit": {
"text2": [
"Temperatuur",
"eenheid"
],
"desc": "Temperatuureenheid (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"text2": [
"Scherm-",
"oriëntatie"
],
"desc": "Schermoriëntatie (R=Rechtshandig | L=Linkshandig | A=Automatisch)"
},
"CooldownBlink": {
"text2": [
"Afkoel",
"flitsen"
],
"desc": "Temperatuur laten flitsen in het hoofdmenu zo lang de punt nog warm is"
},
"ScrollingSpeed": {
"text2": [
"Scroll",
"snelheid"
],
"desc": "Snelheid waarmee de tekst scrolt (S=Snel | L=Langzaam)"
},
"ReverseButtonTempChange": {
"text2": [
"Draai",
"+ - knoppen om"
],
"desc": "Keer de +- knoppen van de temperatuurregeling om"
},
"AnimSpeed": {
"text2": [
"Animatie",
"snelheid"
],
"desc": "Tempo van de icoon animaties in het hoofdmenu (U=uit | L=langzaam | G=gemiddeld | S=snel)"
},
"AnimLoop": {
"text2": [
"Animatie",
"herhaling"
],
"desc": "Herhaal icoon animaties in hoofdmenu"
},
"Brightness": {
"text2": [
"Scherm",
"helderheid"
],
"desc": "Pas helderheid van het OLED scherm aan"
},
"ColourInversion": {
"text2": [
"Inverteer",
"scherm"
],
"desc": "Inverteer de kleuren van het OLED scherm"
},
"LOGOTime": {
"text2": [
"Opstart logo",
"duur"
],
"desc": "Stelt de weergaveduur van het opstartlogo in (s=seconden)"
},
"AdvancedIdle": {
"text2": [
"Gedetailleerd",
"startscherm"
],
"desc": "Gedetailleerde informatie weergeven in een kleine letters op het startscherm."
},
"AdvancedSoldering": {
"text2": [
"Gedetailleerd",
"soldeerscherm"
],
"desc": "Gedetailleerde informatie weergeven in een kleiner lettertype op het soldeerscherm"
},
"PowerLimit": {
"text2": [
"Vermogen",
"limiet"
],
"desc": "Maximaal vermogen (W=Watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Kalibreer",
"input-voltage?"
],
"desc": "Start VIN Kalibratie (druk lang om te sluiten)"
},
"PowerPulsePower": {
"text2": [
"Stroom",
"Puls"
],
"desc": "Intensiteit van stroompuls om voeding aan te houden (watt)"
},
"PowerPulseWait": {
"text2": [
"Stroompuls",
"interval"
],
"desc": "Tijdsduur tussen voeding wakker-blijf-pulsen (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Power pulse",
"duur"
],
"desc": "Duur van voeding-wakker-blijf-pulsen (x 250ms)"
},
"SettingsReset": {
"text2": [
"Instellingen",
"resetten?"
],
"desc": "Alle instellingen terugzetten naar fabrieksinstellingen"
},
"LanguageSwitch": {
"text2": [
"Taal:",
" NL Nederlands"
],
"desc": ""
}
}
}
{
"languageCode": "NL",
"languageLocalName": "Nederlands",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Instellingen\nzijn gereset!"
},
"NoAccelerometerMessage": {
"message": "Geen accelerometer\ngedetecteerd!"
},
"NoPowerDeliveryMessage": {
"message": "Geen USB-PD IC \ngedetecteerd!"
},
"LockingKeysString": {
"message": "GEBLOKKEERD"
},
"UnlockingKeysString": {
"message": "GEDEBLOKKEERD"
},
"WarningKeysLockedString": {
"message": "!GEBLOKKEERD!"
},
"WarningThermalRunaway": {
"message": "Verwarming\nOncontroleerbaar"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Weet je zeker dat je de fabrieksinstellingen terug wilt zetten?"
},
"UVLOWarningString": {
"message": "DC Laag"
},
"UndervoltageString": {
"message": "Onderspanning\n"
},
"InputVoltageString": {
"message": "Voeding V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Slaapstand...\n"
},
"SleepingTipAdvancedString": {
"message": "Punt: \n"
},
"OffString": {
"message": "Uit"
},
"DeviceFailedValidationWarning": {
"message": "Jouw toestel is wellicht een namaak-versie!"
}
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "U",
"SettingSlowChar": "L",
"SettingMediumChar": "G",
"SettingFastChar": "S",
"SettingStartNoneChar": "U",
"SettingStartSolderingChar": "G",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "B",
"SettingLockDisableChar": "U",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Voeding\ninstellingen",
"description": ""
},
"SolderingMenu": {
"displayText": "Soldeer\ninstellingen",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Slaap\nModes",
"description": ""
},
"UIMenu": {
"displayText": "Weergave\ninstellingen",
"description": ""
},
"AdvancedMenu": {
"displayText": "Geavanceerde\ninstellingen",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Spannings-\nbron",
"description": "Spanningsbron. Stelt drempelspanning in. (DC 10V) (S 3.3V per cel)"
},
"MinVolCell": {
"displayText": "Minimum\nvoltage",
"description": "Minimum toegestaan voltage per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nvoltage",
"description": "Maximaal QC voltage dat gevraagd mag worden"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD afstemmingsduur in stappen van 100ms (voor compatibiliteit met sommige QC laders)"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\ntemp",
"description": "Punt temperatuur in boostmode"
},
"AutoStart": {
"displayText": "Opstart\ngedrag",
"description": "Gedrag bij opstarten (U=Uit | G=Gebruiks-temperatuur | S=Slaapstand-temperatuur tot beweging | B=Uit tot beweging)"
},
"TempChangeShortStep": {
"displayText": "Temp veranderen\nkort",
"description": "Temperatuur verandering bij kort drukken"
},
"TempChangeLongStep": {
"displayText": "Temp veranderen\nlang",
"description": "Temperatuur verandering bij lang drukken"
},
"LockingMode": {
"displayText": "Knopblokkering\ninschakelen",
"description": "Tijdens solderen lang op beide knoppen drukken blokkeert de knoppen (U=Uit | B=Alleen boost mode | V=Volledig blokkeren)"
},
"MotionSensitivity": {
"displayText": "Bewegings-\ngevoeligheid",
"description": "Bewegingsgevoeligheid (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"SleepTemperature": {
"displayText": "Slaap\ntemp",
"description": "Punt temperatuur in slaapstand"
},
"SleepTimeout": {
"displayText": "Slaap\ntime-out",
"description": "Tijd voordat slaapmodus wordt geactiveerd (S=seconden | M=minuten)"
},
"ShutdownTimeout": {
"displayText": "Uitschakel\ntime-out",
"description": "Tijd voordat soldeerbout automatisch uitschakelt (M=minuten)"
},
"HallEffSensitivity": {
"displayText": "Hall sensor\ngevoeligheid",
"description": "Gevoeligheid van de Hall effect sensor om naar slaapmodus te gaan (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"TemperatureUnit": {
"displayText": "Temperatuur\neenheid",
"description": "Temperatuureenheid (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"displayText": "Scherm-\noriëntatie",
"description": "Schermoriëntatie (R=Rechtshandig | L=Linkshandig | A=Automatisch)"
},
"CooldownBlink": {
"displayText": "Afkoel\nflitsen",
"description": "Temperatuur laten flitsen in het hoofdmenu zo lang de punt nog warm is"
},
"ScrollingSpeed": {
"displayText": "Scroll\nsnelheid",
"description": "Snelheid waarmee de tekst scrolt (S=Snel | L=Langzaam)"
},
"ReverseButtonTempChange": {
"displayText": "Draai\n+ - knoppen om",
"description": "Keer de +- knoppen van de temperatuurregeling om"
},
"AnimSpeed": {
"displayText": "Animatie\nsnelheid",
"description": "Tempo van de icoon animaties in het hoofdmenu (U=uit | L=langzaam | G=gemiddeld | S=snel)"
},
"AnimLoop": {
"displayText": "Animatie\nherhaling",
"description": "Herhaal icoon animaties in hoofdmenu"
},
"Brightness": {
"displayText": "Scherm\nhelderheid",
"description": "Pas helderheid van het OLED scherm aan"
},
"ColourInversion": {
"displayText": "Inverteer\nscherm",
"description": "Inverteer de kleuren van het OLED scherm"
},
"LOGOTime": {
"displayText": "Opstart logo\nduur",
"description": "Stelt de weergaveduur van het opstartlogo in (s=seconden)"
},
"AdvancedIdle": {
"displayText": "Gedetailleerd\nstartscherm",
"description": "Gedetailleerde informatie weergeven in een kleine letters op het startscherm."
},
"AdvancedSoldering": {
"displayText": "Gedetailleerd\nsoldeerscherm",
"description": "Gedetailleerde informatie weergeven in een kleiner lettertype op het soldeerscherm"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Vermogen\nlimiet",
"description": "Maximaal vermogen (W=Watt)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibreer\ninput-voltage?",
"description": "Start VIN Kalibratie (druk lang om te sluiten)"
},
"PowerPulsePower": {
"displayText": "Stroom\nPuls",
"description": "Intensiteit van stroompuls om voeding aan te houden (watt)"
},
"PowerPulseWait": {
"displayText": "Stroompuls\ninterval",
"description": "Tijdsduur tussen voeding wakker-blijf-pulsen (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Power pulse\nduur",
"description": "Duur van voeding-wakker-blijf-pulsen (x 250ms)"
},
"SettingsReset": {
"displayText": "Instellingen\nresetten?",
"description": "Alle instellingen terugzetten naar fabrieksinstellingen"
},
"LanguageSwitch": {
"displayText": "Taal:\n NL Nederlands",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "NL_BE",
"languageLocalName": "Vlaams",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Ben je zeker dat je alle standaardwaarden wil resetten?",
"UVLOWarningString": "Voedingsspanning LAAG",
"UndervoltageString": "Onderspanning",
"InputVoltageString": "Voedingsspanning: ",
"SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "Slaapstand...",
"SleepingTipAdvancedString": "Punt:",
"OffString": "Uit",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Certain settings",
"were changed!"
],
"NoAccelerometerMessage": [
"No accelerometer",
"detected!"
],
"NoPowerDeliveryMessage": [
"No USB-PD IC",
"detected!"
],
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "T",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "F",
"SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "K",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Power",
"settings"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Soldeer",
"Instellingen"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Slaap",
"standen"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Gebruikers-",
"Interface"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Gevorderde",
"Instellingen"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Spannings-",
"bron"
],
"desc": "Spanningsbron. Stelt minimumspanning in. (DC 10V) (S 3.3V per cel)"
},
"MinVolCell": {
"text2": [
"Minimum",
"voltage"
],
"desc": "Minimum allowed voltage per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"Vermogen",
"Watt"
],
"desc": "Vermogen van de adapter"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"BoostTemperature": {
"text2": [
"Verhogings",
"temp"
],
"desc": "Verhogingstemperatuur"
},
"AutoStart": {
"text2": [
"Auto",
"start"
],
"desc": "Breng de soldeerbout op temperatuur bij het opstarten. (F=Uit | T=Soldeertemperatuur | S=Slaapstand-temperatuur | K=Slaapstand kamertemperatuur)"
},
"TempChangeShortStep": {
"text2": [
"Temp change",
"short"
],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": [
"Temp change",
"long"
],
"desc": "Temperature-change-increment on long button press"
},
"LockingMode": {
"text2": [
"Allow locking",
"buttons"
],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"text2": [
"Bewegings-",
"gevoeligheid"
],
"desc": "Bewegingsgevoeligheid (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"SleepTemperature": {
"text2": [
"Slaap",
"temp"
],
"desc": "Temperatuur in slaapstand (°C)"
},
"SleepTimeout": {
"text2": [
"Slaap",
"time-out"
],
"desc": "Slaapstand time-out (Minuten | Seconden)"
},
"ShutdownTimeout": {
"text2": [
"Uitschakel",
"time-out"
],
"desc": "Automatisch afsluiten time-out (Minuten)"
},
"HallEffSensitivity": {
"text2": [
"Hall sensor",
"sensitivity"
],
"desc": "Sensitivity to magnets (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"TemperatureUnit": {
"text2": [
"Temperatuur",
"schaal"
],
"desc": "Temperatuurschaal (°C=Celsius | °F=Fahrenheit)"
},
"DisplayRotation": {
"text2": [
"Scherm-",
"oriëntatie"
],
"desc": "Schermoriëntatie (R=Rechtshandig | L=Linkshandig | A=Automatisch)"
},
"CooldownBlink": {
"text2": [
"Afkoel",
"knipper"
],
"desc": "Temperatuur knippert in hoofdmenu tijdens afkoeling."
},
"ScrollingSpeed": {
"text2": [
"Scrol",
"snelheid"
],
"desc": "Scrolsnelheid van de tekst."
},
"ReverseButtonTempChange": {
"text2": [
"Swap",
"+ - keys"
],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"AnimSpeed": {
"text2": [
"Anim.",
"speed"
],
"desc": "Pace of icon animations in menu (O=off | T=slow | M=medium | S=fast)"
},
"AnimLoop": {
"text2": [
"Anim.",
"loop"
],
"desc": "Loop icon animations in main menu"
},
"Brightness": {
"text2": [
"Screen",
"brightness"
],
"desc": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"text2": [
"Invert",
"screen"
],
"desc": "Invert the OLED screen colors"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Gedetailleerd",
"slaapscherm"
],
"desc": "Gedetailleerde informatie in een kleiner lettertype in het slaapscherm."
},
"AdvancedSoldering": {
"text2": [
"Gedetailleerd",
"soldeerscherm"
],
"desc": "Gedetailleerde informatie in kleiner lettertype in soldeerscherm."
},
"PowerLimit": {
"text2": [
"Power",
"limit"
],
"desc": "Maximum power the iron can use (W=watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Calibreer",
"voedingsspanning?"
],
"desc": "VIN Calibreren. Bevestigen door knoppen lang in te drukken."
},
"PowerPulsePower": {
"text2": [
"Power",
"pulse"
],
"desc": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"text2": [
"Power pulse",
"delay"
],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Power pulse",
"duration"
],
"desc": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"text2": [
"Instellingen",
"resetten?"
],
"desc": "Alle instellingen resetten."
},
"LanguageSwitch": {
"text2": [
"Spraak:",
" NL_BE Vlaams"
],
"desc": ""
}
}
}
{
"languageCode": "NL_BE",
"languageLocalName": "Vlaams",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Certain settings\nwere changed!"
},
"NoAccelerometerMessage": {
"message": "No accelerometer\ndetected!"
},
"NoPowerDeliveryMessage": {
"message": "No USB-PD IC\ndetected!"
},
"LockingKeysString": {
"message": "LOCKED"
},
"UnlockingKeysString": {
"message": "UNLOCKED"
},
"WarningKeysLockedString": {
"message": "!LOCKED!"
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Ben je zeker dat je alle standaardwaarden wil resetten?"
},
"UVLOWarningString": {
"message": "Voedingsspanning LAAG"
},
"UndervoltageString": {
"message": "Onderspanning\n"
},
"InputVoltageString": {
"message": "Voedingsspanning: \n"
},
"SleepingSimpleString": {
"message": "Zzz "
},
"SleepingAdvancedString": {
"message": "Slaapstand...\n"
},
"SleepingTipAdvancedString": {
"message": "Punt: \n"
},
"OffString": {
"message": "Uit"
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "T",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "F",
"SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "K",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Power\nsettings",
"description": ""
},
"SolderingMenu": {
"displayText": "Soldeer\nInstellingen",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Slaap\nstanden",
"description": ""
},
"UIMenu": {
"displayText": "Gebruikers-\nInterface",
"description": ""
},
"AdvancedMenu": {
"displayText": "Gevorderde\nInstellingen",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Spannings-\nbron",
"description": "Spanningsbron. Stelt minimumspanning in. (DC 10V) (S 3.3V per cel)"
},
"MinVolCell": {
"displayText": "Minimum\nvoltage",
"description": "Minimum allowed voltage per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Vermogen\nWatt",
"description": "Vermogen van de adapter"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Verhogings\ntemp",
"description": "Verhogingstemperatuur"
},
"AutoStart": {
"displayText": "Auto\nstart",
"description": "Breng de soldeerbout op temperatuur bij het opstarten. (F=Uit | T=Soldeertemperatuur | S=Slaapstand-temperatuur | K=Slaapstand kamertemperatuur)"
},
"TempChangeShortStep": {
"displayText": "Temp change\nshort",
"description": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"displayText": "Temp change\nlong",
"description": "Temperature-change-increment on long button press"
},
"LockingMode": {
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"displayText": "Bewegings-\ngevoeligheid",
"description": "Bewegingsgevoeligheid (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"SleepTemperature": {
"displayText": "Slaap\ntemp",
"description": "Temperatuur in slaapstand (°C)"
},
"SleepTimeout": {
"displayText": "Slaap\ntime-out",
"description": "Slaapstand time-out (Minuten | Seconden)"
},
"ShutdownTimeout": {
"displayText": "Uitschakel\ntime-out",
"description": "Automatisch afsluiten time-out (Minuten)"
},
"HallEffSensitivity": {
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"TemperatureUnit": {
"displayText": "Temperatuur\nschaal",
"description": "Temperatuurschaal (°C=Celsius | °F=Fahrenheit)"
},
"DisplayRotation": {
"displayText": "Scherm-\noriëntatie",
"description": "Schermoriëntatie (R=Rechtshandig | L=Linkshandig | A=Automatisch)"
},
"CooldownBlink": {
"displayText": "Afkoel\nknipper",
"description": "Temperatuur knippert in hoofdmenu tijdens afkoeling."
},
"ScrollingSpeed": {
"displayText": "Scrol\nsnelheid",
"description": "Scrolsnelheid van de tekst."
},
"ReverseButtonTempChange": {
"displayText": "Swap\n+ - keys",
"description": "Reverse assignment of buttons for temperature adjustment"
},
"AnimSpeed": {
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (O=off | T=slow | M=medium | S=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
"description": "Loop icon animations in main menu"
},
"Brightness": {
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Gedetailleerd\nslaapscherm",
"description": "Gedetailleerde informatie in een kleiner lettertype in het slaapscherm."
},
"AdvancedSoldering": {
"displayText": "Gedetailleerd\nsoldeerscherm",
"description": "Gedetailleerde informatie in kleiner lettertype in soldeerscherm."
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Power\nlimit",
"description": "Maximum power the iron can use (W=watt)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Calibreer\nvoedingsspanning?",
"description": "VIN Calibreren. Bevestigen door knoppen lang in te drukken."
},
"PowerPulsePower": {
"displayText": "Power\npulse",
"description": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"displayText": "Instellingen\nresetten?",
"description": "Alle instellingen resetten."
},
"LanguageSwitch": {
"displayText": "Spraak:\n NL_BE Vlaams",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "PL",
"languageLocalName": "Polski",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Upewnij się, że końcówka i uchwyt mają temperaturę pokojową podczas następnego rozruchu!",
"CJCCalibrating": "kalibracja",
"SettingsResetWarning": "Czy na pewno chcesz przywrócić ustawienia fabryczne?",
"UVLOWarningString": "NIS. NAP",
"UndervoltageString": "Zbyt niskie nap.",
"InputVoltageString": "Nap. wej.:",
"SleepingSimpleString": "Zzz!",
"SleepingAdvancedString": "Tr. uśpienia",
"SleepingTipAdvancedString": "Grot:",
"OffString": "Wył",
"DeviceFailedValidationWarning": "Twoje urządzenie jest najprawdopodobniej podróbką!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Ust. zresetowane",
""
],
"NoAccelerometerMessage": [
"Nie rozpoznano",
"akcelerometru!"
],
"NoPowerDeliveryMessage": [
"Nie rozpoznano",
"kont. USB-PD IC!"
],
"LockingKeysString": " ZABLOK.",
"UnlockingKeysString": "ODBLOK.",
"WarningKeysLockedString": "!ZABLOK!",
"WarningThermalRunaway": [
"Ucieczka",
"termiczna"
]
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "W",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "B",
"SettingStartSolderingChar": "T",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "O",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "N",
"SettingSensitivityMedium": "Ś",
"SettingSensitivityHigh": "W",
"SettingLockDisableChar": "W",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "P"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Ustawienia",
"zasilania"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Lutowanie",
""
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Oszcz.",
"energii"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Interfejs",
"użytkownika"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Ustawienia",
"zaawans."
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Źródło",
"zasilania"
],
"desc": "Źródło zasilania. Ustaw napięcie odcięcia. (DC 10V) (S 3.3V dla ogniw Li, wyłącz limit mocy)"
},
"MinVolCell": {
"text2": [
"Minimalne",
"napięcie"
],
"desc": "Minimalne dozwolone napięcie na komórkę (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"text2": [
"QC",
"napięcie"
],
"desc": "Maksymalne napięcie, które lutownica będzie próbowała wynegocjować z ładowarką Quick Charge (V)"
},
"PDNegTimeout": {
"text2": [
"Limit czasu",
"PD"
],
"desc": "Limit czasu negocjacji PD w krokach co 100 ms dla zgodności z niektórymi ładowarkami QC (0: wyłączone)"
},
"BoostTemperature": {
"text2": [
"Temp.",
"boost"
],
"desc": "Temperatura w trybie \"boost\" "
},
"AutoStart": {
"text2": [
"Aut. uruch.",
"tr. lutowania"
],
"desc": "Automatyczne uruchamianie trybu lutowania po włączeniu zasilania. (B: wyłączone | T: lutowanie | Z: uśpienie | O: uśpienie w temp. pokojowej)"
},
"TempChangeShortStep": {
"text2": [
"Zm. temp.",
"kr. przyc."
],
"desc": "Wartość zmiany temperatury, po krótkim przyciśnięciu (°C)"
},
"TempChangeLongStep": {
"text2": [
"Zm. temp.",
"dł. przyc."
],
"desc": "Wartość zmiany temperatury, po długim przyciśnięciu (°C)"
},
"LockingMode": {
"text2": [
"Blokada",
"przycisków"
],
"desc": "W trybie lutowania, wciśnij oba przyciski aby je zablokować (O=Wyłączona | B=tylko Boost | P=pełna blokada)"
},
"MotionSensitivity": {
"text2": [
"Czułość",
"wykr. ruchu"
],
"desc": "Czułość wykrywania ruchu (0: Wyłączona | 1: Minimalna | ... | 9: Maksymalna)"
},
"SleepTemperature": {
"text2": [
"Temp.",
"uśpienia"
],
"desc": "Temperatura w trybie uśpienia (°C)"
},
"SleepTimeout": {
"text2": [
"Czas do",
"uśpienia"
],
"desc": "Czas do przejścia w tryb uśpienia (minuty | sekundy)"
},
"ShutdownTimeout": {
"text2": [
"Czas do",
"wyłączenia"
],
"desc": "Czas do wyłączenia (minuty)"
},
"HallEffSensitivity": {
"text2": [
"Czułość",
"cz. Halla"
],
"desc": "Czułość czujnika Halla, używanego do przechodznia w tryb uśpienia (0: Wyłączona | 1: Minimalna | ... | 9: Maksymalna)"
},
"TemperatureUnit": {
"text2": [
"Jednostka",
"temperatury"
],
"desc": "Jednostka temperatury (C: Celciusz | F: Fahrenheit)"
},
"DisplayRotation": {
"text2": [
"Obrót",
"ekranu"
],
"desc": "Obrót ekranu (P: dla praworęcznych | L: dla leworęcznych | A: automatycznie)"
},
"CooldownBlink": {
"text2": [
"Mig. podczas",
"wychładzania"
],
"desc": "Temperatura miga podczas wychładzania, gdy grot jest wciąż gorący"
},
"ScrollingSpeed": {
"text2": [
"Sz. przew.",
"tekstu"
],
"desc": "Szybkość przewijania tekstu"
},
"ReverseButtonTempChange": {
"text2": [
"Zamień przyc.",
"+ -"
],
"desc": "Zamienia działanie przycisków zmiany temperatury grotu"
},
"AnimSpeed": {
"text2": [
"Prędkosć",
"animacji"
],
"desc": "Prędkość animacji ikon w menu (O: wył. | W: mała | M: średnia | S: duża)"
},
"AnimLoop": {
"text2": [
"Zapętlona",
"animacja"
],
"desc": "Zapętla animację ikon w menu głównym"
},
"Brightness": {
"text2": [
"Jasność",
"wyświetlacza"
],
"desc": "Regulacja kontrastu/jasności wyświetlacza OLED"
},
"ColourInversion": {
"text2": [
"Odwrócenie",
"kolorów"
],
"desc": "Odwrócenie kolorów wyświetlacza OLED"
},
"LOGOTime": {
"text2": [
"Długość wyś.",
"loga"
],
"desc": "Ustawia czas wyświetlania loga podczas uruchamiania (s=sekund)"
},
"AdvancedIdle": {
"text2": [
"Szeczegółowy",
"ekran bezczy."
],
"desc": "Wyświetla szczegółowe informacje za pomocą mniejszej czcionki na ekranie bezczynności"
},
"AdvancedSoldering": {
"text2": [
"Sz. inf. w",
"tr. lutowania"
],
"desc": "Wyświetl szczegółowe informacje w trybie lutowania"
},
"PowerLimit": {
"text2": [
"Ogr.",
"mocy"
],
"desc": "Maksymalna moc (W), jakiej może użyć lutownica"
},
"CalibrateCJC": {
"text2": [
"Kalibracja temperatury",
"przy następnym uruchomieniu"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Kalibracja",
"napięcia"
],
"desc": "Kalibracja napięcia wejściowego. Krótkie naciśnięcie, aby ustawić, długie naciśnięcie, aby wyjść."
},
"PowerPulsePower": {
"text2": [
"Moc",
"impulsu"
],
"desc": "W przypadku używania powerbanku, utrzymuj moc na poziomie (W) aby nie uśpić powerbanku"
},
"PowerPulseWait": {
"text2": [
"Czas między",
"imp. mocy"
],
"desc": "Czas między kolejnymi impulsami mocy zapobiegającymi usypianiu powerbanku (x2,5 s)"
},
"PowerPulseDuration": {
"text2": [
"Długość",
"impulsu mocy"
],
"desc": "Długość impulsu mocy zapobiegającego usypianiu powerbanku (x250 ms)"
},
"SettingsReset": {
"text2": [
"Ustawienia",
"fabryczne"
],
"desc": "Resetuje wszystkie ustawienia"
},
"LanguageSwitch": {
"text2": [
"Język:",
" PL Polski"
],
"desc": ""
}
}
}
{
"languageCode": "PL",
"languageLocalName": "Polski",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Kalibracja\nwykonana!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Ust. \nzresetowane"
},
"NoAccelerometerMessage": {
"message": "Nie rozpoznano\nakcelerometru!"
},
"NoPowerDeliveryMessage": {
"message": "Nie rozpoznano\nkont. USB-PD IC!"
},
"LockingKeysString": {
"message": " ZABLOK."
},
"UnlockingKeysString": {
"message": "ODBLOK."
},
"WarningKeysLockedString": {
"message": "!ZABLOK!"
},
"WarningThermalRunaway": {
"message": "Ucieczka\ntermiczna"
},
"SettingsCalibrationWarning": {
"message": "Upewnij się, że końcówka i uchwyt mają temperaturę pokojową podczas następnego rozruchu!"
},
"CJCCalibrating": {
"message": "kalibracja\n"
},
"SettingsResetWarning": {
"message": "Czy na pewno chcesz przywrócić ustawienia fabryczne?"
},
"UVLOWarningString": {
"message": "NIS. NAP"
},
"UndervoltageString": {
"message": "Zbyt niskie nap.\n"
},
"InputVoltageString": {
"message": "Nap. wej.: \n"
},
"SleepingSimpleString": {
"message": "Zzz!"
},
"SleepingAdvancedString": {
"message": "Tr. uśpienia\n"
},
"SleepingTipAdvancedString": {
"message": "Grot: \n"
},
"OffString": {
"message": "Wył"
},
"DeviceFailedValidationWarning": {
"message": "Twoje urządzenie jest najprawdopodobniej podróbką!"
}
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "W",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "B",
"SettingStartSolderingChar": "T",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "O",
"SettingLockDisableChar": "W",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "P"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Ustawienia\nzasilania",
"description": ""
},
"SolderingMenu": {
"displayText": "Lutowanie\n",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Oszcz.\nenergii",
"description": ""
},
"UIMenu": {
"displayText": "Interfejs\nużytkownika",
"description": ""
},
"AdvancedMenu": {
"displayText": "Ustawienia\nzaawans.",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Źródło\nzasilania",
"description": "Źródło zasilania. Ustaw napięcie odcięcia. (DC 10V) (S 3.3V dla ogniw Li, wyłącz limit mocy)"
},
"MinVolCell": {
"displayText": "Minimalne\nnapięcie",
"description": "Minimalne dozwolone napięcie na komórkę (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nnapięcie",
"description": "Maksymalne napięcie, które lutownica będzie próbowała wynegocjować z ładowarką Quick Charge (V)"
},
"PDNegTimeout": {
"displayText": "Limit czasu\nPD",
"description": "Limit czasu negocjacji PD w krokach co 100 ms dla zgodności z niektórymi ładowarkami QC (0: wyłączone)"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Włącza tryby PPS & EPR."
},
"BoostTemperature": {
"displayText": "Temp.\nboost",
"description": "Temperatura w trybie \"boost\" "
},
"AutoStart": {
"displayText": "Aut. uruch.\ntr. lutowania",
"description": "Automatyczne uruchamianie trybu lutowania po włączeniu zasilania. (B: wyłączone | T: lutowanie | Z: uśpienie | O: uśpienie w temp. pokojowej)"
},
"TempChangeShortStep": {
"displayText": "Zm. temp.\nkr. przyc.",
"description": "Wartość zmiany temperatury, po krótkim przyciśnięciu (°C)"
},
"TempChangeLongStep": {
"displayText": "Zm. temp.\ndł. przyc.",
"description": "Wartość zmiany temperatury, po długim przyciśnięciu (°C)"
},
"LockingMode": {
"displayText": "Blokada\nprzycisków",
"description": "W trybie lutowania, wciśnij oba przyciski aby je zablokować (O=Wyłączona | B=tylko Boost | P=pełna blokada)"
},
"MotionSensitivity": {
"displayText": "Czułość\nwykr. ruchu",
"description": "Czułość wykrywania ruchu (0: Wyłączona | 1: Minimalna | ... | 9: Maksymalna)"
},
"SleepTemperature": {
"displayText": "Temp.\nuśpienia",
"description": "Temperatura w trybie uśpienia (°C)"
},
"SleepTimeout": {
"displayText": "Czas do\nuśpienia",
"description": "Czas do przejścia w tryb uśpienia (minuty | sekundy)"
},
"ShutdownTimeout": {
"displayText": "Czas do\nwyłączenia",
"description": "Czas do wyłączenia (minuty)"
},
"HallEffSensitivity": {
"displayText": "Czułość\ncz. Halla",
"description": "Czułość czujnika Halla, używanego do przechodznia w tryb uśpienia (0: Wyłączona | 1: Minimalna | ... | 9: Maksymalna)"
},
"TemperatureUnit": {
"displayText": "Jednostka\ntemperatury",
"description": "Jednostka temperatury (C: Celciusz | F: Fahrenheit)"
},
"DisplayRotation": {
"displayText": "Obrót\nekranu",
"description": "Obrót ekranu (P: dla praworęcznych | L: dla leworęcznych | A: automatycznie)"
},
"CooldownBlink": {
"displayText": "Mig. podczas\nwychładzania",
"description": "Temperatura miga podczas wychładzania, gdy grot jest wciąż gorący"
},
"ScrollingSpeed": {
"displayText": "Sz. przew.\ntekstu",
"description": "Szybkość przewijania tekstu"
},
"ReverseButtonTempChange": {
"displayText": "Zamień przyc.\n+ -",
"description": "Zamienia działanie przycisków zmiany temperatury grotu"
},
"AnimSpeed": {
"displayText": "Prędkosć\nanimacji",
"description": "Prędkość animacji ikon w menu (O: wył. | W: mała | M: średnia | S: duża)"
},
"AnimLoop": {
"displayText": "Zapętlona\nanimacja",
"description": "Zapętla animację ikon w menu głównym"
},
"Brightness": {
"displayText": "Jasność\nwyświetlacza",
"description": "Regulacja kontrastu/jasności wyświetlacza OLED"
},
"ColourInversion": {
"displayText": "Odwrócenie\nkolorów",
"description": "Odwrócenie kolorów wyświetlacza OLED"
},
"LOGOTime": {
"displayText": "Długość wyś.\nloga",
"description": "Ustawia czas wyświetlania loga podczas uruchamiania (s=sekund)"
},
"AdvancedIdle": {
"displayText": "Szeczegółowy\nekran bezczy.",
"description": "Wyświetla szczegółowe informacje za pomocą mniejszej czcionki na ekranie bezczynności"
},
"AdvancedSoldering": {
"displayText": "Sz. inf. w\ntr. lutowania",
"description": "Wyświetl szczegółowe informacje w trybie lutowania"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Ogr.\nmocy",
"description": "Maksymalna moc (W), jakiej może użyć lutownica"
},
"CalibrateCJC": {
"displayText": "Kalibracja temperatury\nprzy następnym uruchomieniu",
"description": "Kalibracja temperatury przy następnym włączeniu (nie jest wymagana, jeśli różnica temperatur jest mniejsza niż 5°C"
},
"VoltageCalibration": {
"displayText": "Kalibracja\nnapięcia",
"description": "Kalibracja napięcia wejściowego. Krótkie naciśnięcie, aby ustawić, długie naciśnięcie, aby wyjść."
},
"PowerPulsePower": {
"displayText": "Moc\nimpulsu",
"description": "W przypadku używania powerbanku, utrzymuj moc na poziomie (W) aby nie uśpić powerbanku"
},
"PowerPulseWait": {
"displayText": "Czas między\nimp. mocy",
"description": "Czas między kolejnymi impulsami mocy zapobiegającymi usypianiu powerbanku (x2,5 s)"
},
"PowerPulseDuration": {
"displayText": "Długość\nimpulsu mocy",
"description": "Długość impulsu mocy zapobiegającego usypianiu powerbanku (x250 ms)"
},
"SettingsReset": {
"displayText": "Ustawienia\nfabryczne",
"description": "Resetuje wszystkie ustawienia"
},
"LanguageSwitch": {
"displayText": "Język:\n PL Polski",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "PT",
"languageLocalName": "Português",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Definições de fábrica?",
"UVLOWarningString": "DC BAIXO",
"UndervoltageString": "Subtensão",
"InputVoltageString": "Tensão ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Repouso...",
"SleepingTipAdvancedString": "Ponta:",
"OffString": "Off",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Certain settings",
"were changed!"
],
"NoAccelerometerMessage": [
"No accelerometer",
"detected!"
],
"NoPowerDeliveryMessage": [
"No USB-PD IC",
"detected!"
],
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "C",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "H",
"SettingStartSleepOffChar": "A",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Power",
"settings"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Configurações",
"Solda"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Modos",
"Repouso"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Interface",
"Utilizador"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Menu",
"Avançado"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Fonte",
"alimentação"
],
"desc": "Fonte de alimentação. Define a tensão de corte. (DC=10V) (S=3.3V/célula)"
},
"MinVolCell": {
"text2": [
"Minimum",
"voltage"
],
"desc": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"Potência",
"Fonte"
],
"desc": "Potência da fonte usada (Watt)"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
},
"BoostTemperature": {
"text2": [
"Modo turbo",
"temperat."
],
"desc": "Ajuste de temperatura do \"modo turbo\""
},
"AutoStart": {
"text2": [
"Partida",
"automática"
],
"desc": "Aquece a ponta automaticamente ao ligar (D=desligar | S=soldagem | H=hibernar | A=hibernar temp. ambiente)"
},
"TempChangeShortStep": {
"text2": [
"Temp change",
"short"
],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": [
"Temp change",
"long"
],
"desc": "Temperature-change-increment on long button press"
},
"LockingMode": {
"text2": [
"Allow locking",
"buttons"
],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"text2": [
"Sensibilidade",
"movimento"
],
"desc": "Sensibilidade ao movimento (0=Desligado | 1=Menor | ... | 9=Maior)"
},
"SleepTemperature": {
"text2": [
"Temperat.",
"repouso"
],
"desc": "Temperatura de repouso (C)"
},
"SleepTimeout": {
"text2": [
"Tempo",
"repouso"
],
"desc": "Tempo para repouso (Minutos | Segundos)"
},
"ShutdownTimeout": {
"text2": [
"Tempo",
"desligam."
],
"desc": "Tempo para desligamento (Minutos)"
},
"HallEffSensitivity": {
"text2": [
"Hall sensor",
"sensitivity"
],
"desc": "Sensitivity to magnets (0=Desligado | 1=Menor | ... | 9=Maior)"
},
"TemperatureUnit": {
"text2": [
"Unidade",
"temperatura"
],
"desc": "Unidade de temperatura (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"text2": [
"Orientação",
"tela"
],
"desc": "Orientação da tela (D=estro | C=anhoto | A=utomática)"
},
"CooldownBlink": {
"text2": [
"Piscar ao",
"arrefecer"
],
"desc": "Faz o valor da temperatura piscar durante o arrefecimento"
},
"ScrollingSpeed": {
"text2": [
"Velocidade",
"texto ajuda"
],
"desc": "Velocidade a que o texto é exibido"
},
"ReverseButtonTempChange": {
"text2": [
"Swap",
"+ - keys"
],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"AnimSpeed": {
"text2": [
"Anim.",
"speed"
],
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"AnimLoop": {
"text2": [
"Anim.",
"loop"
],
"desc": "Loop icon animations in main menu"
},
"Brightness": {
"text2": [
"Screen",
"brightness"
],
"desc": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"text2": [
"Invert",
"screen"
],
"desc": "Invert the OLED screen colors"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Tela repouso",
"avançada"
],
"desc": "Exibe informações avançadas quando em espera"
},
"AdvancedSoldering": {
"text2": [
"Tela trabalho",
"avançada"
],
"desc": "Exibe informações avançadas durante o uso"
},
"PowerLimit": {
"text2": [
"Power",
"limit"
],
"desc": "Maximum power the iron can use (W=watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Calibrar",
"tensão"
],
"desc": "Calibra a tensão de alimentação. Use os botões para ajustar o valor. Mantenha pressionado para sair"
},
"PowerPulsePower": {
"text2": [
"Power",
"pulse"
],
"desc": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"text2": [
"Power pulse",
"delay"
],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Power pulse",
"duration"
],
"desc": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"text2": [
"Reset de",
"fábrica?"
],
"desc": "Reverte todos ajustes"
},
"LanguageSwitch": {
"text2": [
"Idioma:",
" PT Português"
],
"desc": ""
}
}
}
{
"languageCode": "PT",
"languageLocalName": "Português",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibração\nefetuada!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Algumas configurações\nforam alteradas!"
},
"NoAccelerometerMessage": {
"message": "Acelerómetro não\ndetectado!"
},
"NoPowerDeliveryMessage": {
"message": "USB-PD IC não\ndetectado!"
},
"LockingKeysString": {
"message": "Bloqueado"
},
"UnlockingKeysString": {
"message": "Desbloqueado"
},
"WarningKeysLockedString": {
"message": "!Bloqueado!"
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Antes de reninciar certifique-se que o ferro est à temperatura ambiente!"
},
"CJCCalibrating": {
"message": "calibrar\n"
},
"SettingsResetWarning": {
"message": "Definições de fábrica?"
},
"UVLOWarningString": {
"message": "DC BAIXO"
},
"UndervoltageString": {
"message": "Subtensão\n"
},
"InputVoltageString": {
"message": "Tensão: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Repouso...\n"
},
"SleepingTipAdvancedString": {
"message": "Ponta: \n"
},
"OffString": {
"message": "Off"
},
"DeviceFailedValidationWarning": {
"message": "Seu dispositivo provavelmente é falsificado!"
}
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "C",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "H",
"SettingStartSleepOffChar": "A",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Configurações de\nenergia",
"description": ""
},
"SolderingMenu": {
"displayText": "Configurações\nSolda",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Modos\nRepouso",
"description": ""
},
"UIMenu": {
"displayText": "Interface\nUtilizador",
"description": ""
},
"AdvancedMenu": {
"displayText": "Menu\nAvançado",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Fonte\nalimentação",
"description": "Fonte de alimentação. Define a tensão de corte. (DC=10V) (S=3.3V/célula)"
},
"MinVolCell": {
"displayText": "Tensão\nmínima",
"description": "Tensão mínima permitida por célula de bateria (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Potência\nFonte",
"description": "Potência da fonte usada (Watt)"
},
"PDNegTimeout": {
"displayText": "PD tempo\nlimite",
"description": "Tempo limite de negoiciação de PD de 100ms para compatibilidade com alguns carregadores é (0: disabled)"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Activa o modo PPS & EPR"
},
"BoostTemperature": {
"displayText": "Modo turbo\ntemperat.",
"description": "Ajuste de temperatura do \"modo turbo\""
},
"AutoStart": {
"displayText": "Aquecimento\nautomático",
"description": "Aquece a ponta automaticamente ao ligar (D=desligar | S=soldagem | H=hibernar | A=hibernar temp. ambiente)"
},
"TempChangeShortStep": {
"displayText": "Temp mudança\ncurta",
"description": "A temperatura será aumentada com um click curto"
},
"TempChangeLongStep": {
"displayText": "Temp mudança\nlonga",
"description": "A temperatura será aumentada com um click longo"
},
"LockingMode": {
"displayText": "Permitir bloquear\nbutões",
"description": "Durante a solda primir os dois butões para alternar entre (D=disativas | B=boost mode | F=bloqueio total)"
},
"MotionSensitivity": {
"displayText": "Sensibilidade\nmovimento",
"description": "Sensibilidade ao movimento (0=Desligado | 1=Menor | ... | 9=Maior)"
},
"SleepTemperature": {
"displayText": "Temperatura\nrepouso",
"description": "Temperatura de repouso (C)"
},
"SleepTimeout": {
"displayText": "Tempo\nrepouso",
"description": "Tempo para repouso (Minutos | Segundos)"
},
"ShutdownTimeout": {
"displayText": "Tempo\ndesligar",
"description": "Tempo para desligar (Minutos)"
},
"HallEffSensitivity": {
"displayText": "Sensibilidade de\nmagentismo",
"description": "Sensibilidade de magnetismo (0=Desligado | 1=Menor | ... | 9=Maior)"
},
"TemperatureUnit": {
"displayText": "Unidade\ntemperatura",
"description": "Unidade de temperatura (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"displayText": "Orientação\necrã",
"description": "Orientação do ecrã (D=estro | C=anhoto | A=utomática)"
},
"CooldownBlink": {
"displayText": "Piscar ao\narrefecer",
"description": "Faz o valor da temperatura piscar durante o arrefecimento"
},
"ScrollingSpeed": {
"displayText": "Velocidade\ntexto ajuda",
"description": "Velocidade a que o texto é mostrado"
},
"ReverseButtonTempChange": {
"displayText": "Mudar\n+ - teclas",
"description": "Inverter o alinhamento dos butões para ajudar a temperatura"
},
"AnimSpeed": {
"displayText": "Velocidade de\nanimação",
"description": "Sitio das animações no menu (O=off | S=lentas | M=medias | F=rapidas)"
},
"AnimLoop": {
"displayText": "Repetir\nanimações",
"description": "Repetir icon de animações no ecrã principal"
},
"Brightness": {
"displayText": "Screen\nbrightness",
"description": "Ajustar o brilho do ecrã OLED"
},
"ColourInversion": {
"displayText": "Inverter\necrã",
"description": "Inverter as cores do ecrã OLED"
},
"LOGOTime": {
"displayText": "Duração do\nlogo no arranque",
"description": "Definir a duração do logotipo no arranque em (s=segundos)"
},
"AdvancedIdle": {
"displayText": "Ecrã repouso\navançada",
"description": "Mostra informações avançadas quando em espera"
},
"AdvancedSoldering": {
"displayText": "Ecrã trabalho\navançado",
"description": "Mostra informações avançadas durante o uso"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Limite de\npotência",
"description": "Potência máxima a usar (W=watt)"
},
"CalibrateCJC": {
"displayText": "Calibrar CJC\nno prozimo arranque",
"description": "No próximo arranque CJC será calibrada (não será necessário caso o Delta T seja < 5°C)"
},
"VoltageCalibration": {
"displayText": "Calibrar\ntensão",
"description": "Calibra a tensão de alimentação. Use os botões para ajustar o valor. Mantenha pressionado para sair"
},
"PowerPulsePower": {
"displayText": "Potência\ndo pulso",
"description": "Intensidade de potência de arranque (W=watt)"
},
"PowerPulseWait": {
"displayText": "Espera do\npulso",
"description": "Espera entre o acordar e o envio da rectivação (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Duração\npulso",
"description": "Manter os inplosus de rectivação em (x 250ms)"
},
"SettingsReset": {
"displayText": "Reset de\nfábrica?",
"description": "Repôe todos os ajustes"
},
"LanguageSwitch": {
"displayText": "Idioma:\n PT Português",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "RO",
"languageLocalName": "Română",
"tempUnitFahrenheit": true,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Sigur doriti să restaurati la setările implicite?",
"UVLOWarningString": "DC LOW",
"UndervoltageString": "Sub tensiune",
"InputVoltageString": "Intrare V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Adormit...",
"SleepingTipAdvancedString": "Tip:",
"OffString": "Nu",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Setările au fost",
"resetate!"
],
"NoAccelerometerMessage": [
"Nu accelerometru",
"detectat!"
],
"NoPowerDeliveryMessage": [
"Fără USB-PD IC",
"detectat!"
],
"LockingKeysString": "BLOCAT",
"UnlockingKeysString": "DEBLOCAT",
"WarningKeysLockedString": "!BLOCAT!",
"WarningThermalRunaway": [
"Incalzire",
"Esuata"
]
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "S",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "Î",
"SettingMediumChar": "M",
"SettingFastChar": "R",
"SettingStartNoneChar": "O",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "R",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Setări de",
"alimentare"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Setări de",
"lipire"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Modul",
"repaus"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Interfată",
"utilizator"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Optiuni",
"avansate"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Sursa de",
"alimentare"
],
"desc": "Sursa de alimentare. Setează tensiunea de întrerupere. (DC 10V) (S 3.3V per celulă, dezactivati limita de alimentare)"
},
"MinVolCell": {
"text2": [
"Voltaj",
"minim"
],
"desc": "Tensiunea minimă admisă pe celulă (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"QC",
"voltaj"
],
"desc": "Tensiunea maximă QC dorită pentru care negociază letconul"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "Timp limita de negociere pentru tranzactia PD, in pasi de 100ms, pentru compatibilitate cu alimentatoarele QC"
},
"BoostTemperature": {
"text2": [
"Boost",
"temp"
],
"desc": "Temperatura utilizată în \"modul boost\""
},
"AutoStart": {
"text2": [
"Auto",
"start"
],
"desc": "Start letcon în modul de lipire la pornire (O=oprit | S=lipire | Z=repaus | R=repaus la temperatura camerei)"
},
"TempChangeShortStep": {
"text2": [
"Schimbare temp.",
"apăsare scută"
],
"desc": "Schimbarea temperaturii la apăsarea scurtă a butonului"
},
"TempChangeLongStep": {
"text2": [
"Schimbare temp.",
"apăsare lungă"
],
"desc": "Schimbarea temperaturii la apăsarea lungă a butonului"
},
"LockingMode": {
"text2": [
"Blocare",
"butoane"
],
"desc": "Când lipiti, apăsati lung ambele butoane, pentru a le bloca (D=dezactivare | B=numai \"modul boost\" | F=blocare completă)"
},
"MotionSensitivity": {
"text2": [
"Sensibilitate",
"la miscare"
],
"desc": "Sensibilitate senzor miscare (0=oprit | 1=putin sensibil | ... | 9=cel mai sensibil)"
},
"SleepTemperature": {
"text2": [
"Temp",
"repaus"
],
"desc": "Temperatura vârfului în \"modul repaus\""
},
"SleepTimeout": {
"text2": [
"Expirare",
"repaus"
],
"desc": "Interval înainte de lansarea \"modului de repaus\" în (s=secunde | m=minute)"
},
"ShutdownTimeout": {
"text2": [
"Expirare",
"oprire"
],
"desc": "Interval înainte ca letconul să se oprească (m=minute)"
},
"HallEffSensitivity": {
"text2": [
"Sensibilitate",
"senzor Hall"
],
"desc": "Sensibilitate senzor cu efect Hall pentru a detecta repausul (0=oprit | 1=putin sensibil | ... | 9=cel mai sensibil)"
},
"TemperatureUnit": {
"text2": [
"Unitate de",
"temperatură"
],
"desc": "C=Celsius | F=Fahrenheit"
},
"DisplayRotation": {
"text2": [
"Orientare",
"ecran"
],
"desc": "R=dreptaci | L=stângaci | A=auto"
},
"CooldownBlink": {
"text2": [
"Clipeste",
"la răcire"
],
"desc": "Clipeste temperatura după oprirea încălzirii, în timp ce vârful este încă fierbinte"
},
"ScrollingSpeed": {
"text2": [
"Viteză",
"derulare"
],
"desc": "Viteză derulare text cu informatii la (S=lent | F=rapid)"
},
"ReverseButtonTempChange": {
"text2": [
"Inversare",
"+ - butoane"
],
"desc": "Inversarea butoanelor de reglare a temperaturii"
},
"AnimSpeed": {
"text2": [
"Animatii",
"viteză"
],
"desc": "Ritmul animatiilor pictogramei din meniu (O=oprit | Î=încet | M=mediu | R=rapid)"
},
"AnimLoop": {
"text2": [
"Animatii",
"buclă"
],
"desc": "Animatii de pictograme în meniul principal"
},
"Brightness": {
"text2": [
"Ecranului",
"luminozitatea"
],
"desc": "Ajusteaza luminozitatea ecranului"
},
"ColourInversion": {
"text2": [
"Inverseaza",
"culoarea"
],
"desc": "Inverseaza culoarea ecranului"
},
"LOGOTime": {
"text2": [
"Durată",
"logo încărcare"
],
"desc": "Setati durata logo de pornire (s=secunde)"
},
"AdvancedIdle": {
"text2": [
"Detalii,",
"ecran inactiv"
],
"desc": "Afisati informatii detaliate într-un font mai mic pe ecranul de repaus"
},
"AdvancedSoldering": {
"text2": [
"Detalii",
"ecran lipire"
],
"desc": "Afisati informatii detaliate într-un font mai mic pe ecranul de lipire"
},
"PowerLimit": {
"text2": [
"Putere",
"limită"
],
"desc": "Puterea maximă pe care letconul o poate folosi (W=watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrare CJC",
"la următoarea pornire"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Calibrare tens.",
"de intrare?"
],
"desc": "Porniti calibrarea VIN (apăsati lung pentru a iesi)"
},
"PowerPulsePower": {
"text2": [
"Putere",
"puls"
],
"desc": "Puterea pulsului de mentinere activa a blocului de alimentare (watt)"
},
"PowerPulseWait": {
"text2": [
"Întârziere",
"puls putere"
],
"desc": "Perioada pulsului de mentinere (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Durată",
"puls putere"
],
"desc": "Durata pulsului de mentinere (x 250ms)"
},
"SettingsReset": {
"text2": [
"Setări",
"din fabrică"
],
"desc": "Reveniti la setările din fabrică"
},
"LanguageSwitch": {
"text2": [
"Limbă:",
" RO Română"
],
"desc": ""
}
}
}
{
"languageCode": "RO",
"languageLocalName": "Română",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Setările au fost\nresetate!"
},
"NoAccelerometerMessage": {
"message": "Fără accelerometru\ndetectat!"
},
"NoPowerDeliveryMessage": {
"message": "Fără USB-PD IC\ndetectat!"
},
"LockingKeysString": {
"message": "BLOCAT"
},
"UnlockingKeysString": {
"message": "DEBLOCAT"
},
"WarningKeysLockedString": {
"message": "!BLOCAT!"
},
"WarningThermalRunaway": {
"message": "Încălzire\nEşuată"
},
"SettingsCalibrationWarning": {
"message": "Înainte de repornire, asiguraţi-vă că vârful şi mânerul sunt la temperatura camerei!"
},
"CJCCalibrating": {
"message": "calibrare\n"
},
"SettingsResetWarning": {
"message": "Sigur doriţi să restauraţi la setările implicite?"
},
"UVLOWarningString": {
"message": "DC SCĂZUT"
},
"UndervoltageString": {
"message": "Voltaj scăzut\n"
},
"InputVoltageString": {
"message": "Intrare V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Adormit...\n"
},
"SleepingTipAdvancedString": {
"message": "Tip: \n"
},
"OffString": {
"message": "Nu"
},
"DeviceFailedValidationWarning": {
"message": "Dispozitivul dvs. este cel mai probabil un fals!"
}
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "S",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "Î",
"SettingMediumChar": "M",
"SettingFastChar": "R",
"SettingStartNoneChar": "O",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Setări de\nalimentare",
"description": ""
},
"SolderingMenu": {
"displayText": "Setări de\nlipire",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Modul\nrepaus",
"description": ""
},
"UIMenu": {
"displayText": "Interfaţă\nutilizator",
"description": ""
},
"AdvancedMenu": {
"displayText": "Opţiuni\navansate",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Sursa de\nalimentare",
"description": "Sursa de alimentare. Setează tensiunea de întrerupere. (DC 10V) (S 3.3V per celulă, dezactivaţi limita de alimentare)"
},
"MinVolCell": {
"displayText": "Voltaj\nminim",
"description": "Tensiunea minimă admisă pe celulă (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nvoltaj",
"description": "Tensiunea maximă QC dorită pentru care negociază letconul"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "Timp limită de negociere pentru tranzacţia PD, în paşi de 100ms, pentru compatibilitate cu alimentatoarele QC"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Modifică\ntemp. impuls",
"description": "Temperatura utilizată în \"modul de impuls\""
},
"AutoStart": {
"displayText": "Auto\nstart",
"description": "Start letcon în modul de lipire la pornire (O=oprit | S=lipire | Z=repaus | R=repaus la temperatura camerei)"
},
"TempChangeShortStep": {
"displayText": "Schimbare temp.\napăsare scută",
"description": "Schimbarea temperaturii la apăsarea scurtă a butonului"
},
"TempChangeLongStep": {
"displayText": "Schimbare temp.\napăsare lungă",
"description": "Schimbarea temperaturii la apăsarea lungă a butonului"
},
"LockingMode": {
"displayText": "Blocare\nbutoane",
"description": "Când lipiţi, apăsaţi lung ambele butoane, pentru a le bloca (D=dezactivare | B=numai \"modul boost\" | F=blocare completă)"
},
"MotionSensitivity": {
"displayText": "Sensibilitate\nla miscare",
"description": "Sensibilitate senzor miscare (0=oprit | 1=puţin sensibil | ... | 9=cel mai sensibil)"
},
"SleepTemperature": {
"displayText": "Temp\nrepaus",
"description": "Temperatura vârfului în \"modul repaus\""
},
"SleepTimeout": {
"displayText": "Expirare\nrepaus",
"description": "Interval înainte de lansarea \"modului de repaus\" în (s=secunde | m=minute)"
},
"ShutdownTimeout": {
"displayText": "Expirare\noprire",
"description": "Interval înainte ca letconul să se oprească (m=minute)"
},
"HallEffSensitivity": {
"displayText": "Sensibilitate\nsenzor Hall",
"description": "Sensibilitate senzor cu efect Hall pentru a detecta repausul (0=oprit | 1=putin sensibil | ... | 9=cel mai sensibil)"
},
"TemperatureUnit": {
"displayText": "Unitate de\ntemperatură",
"description": "C=Celsius | F=Fahrenheit"
},
"DisplayRotation": {
"displayText": "Orientare\necran",
"description": "R=dreptaci | L=stângaci | A=auto"
},
"CooldownBlink": {
"displayText": "Clipeşte\nla răcire",
"description": "Clipeşte temperatura după oprirea încălzirii, în timp ce vârful este încă fierbinte"
},
"ScrollingSpeed": {
"displayText": "Viteză\nderulare",
"description": "Viteză derulare text cu informatii la (S=lent | F=rapid)"
},
"ReverseButtonTempChange": {
"displayText": "Inversare\n+ - butoane",
"description": "Inversarea butoanelor de reglare a temperaturii"
},
"AnimSpeed": {
"displayText": "Animaţii\nviteză",
"description": "Ritmul animaţiilor pictogramei din meniu (O=oprit | Î=încet | M=mediu | R=rapid)"
},
"AnimLoop": {
"displayText": "Animaţii\nbuclă",
"description": "Animaţii de pictograme în meniul principal"
},
"Brightness": {
"displayText": "Ecranului\nluminozitatea",
"description": "Ajusteaza luminozitatea ecranului"
},
"ColourInversion": {
"displayText": "Inversează\nculoarea",
"description": "Inversează culoarea ecranului"
},
"LOGOTime": {
"displayText": "Durată\nlogo încărcare",
"description": "Setaţi durată logo de pornire (s=secunde)"
},
"AdvancedIdle": {
"displayText": "Detalii,\necran inactiv",
"description": "Afisaţi informaţii detaliate într-un font mai mic pe ecranul de repaus"
},
"AdvancedSoldering": {
"displayText": "Detalii\necran lipire",
"description": "Afisaţi informaţii detaliate într-un font mai mic pe ecranul de lipire"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Activează BLE"
},
"PowerLimit": {
"displayText": "Putere\nlimită",
"description": "Puterea maximă pe care letconul o poate folosi (W=watt)"
},
"CalibrateCJC": {
"displayText": "Calibrare CJC\nla următoarea pornire",
"description": "La următorul vârf de pornire, compensarea joncţiunii reci va fi calibrată (nu este necesară dacă Delta T este < 5°C)"
},
"VoltageCalibration": {
"displayText": "Calibrare tens.\nde intrare?",
"description": "Porniţi calibrarea VIN (apăsaţi lung pentru a ieşi)"
},
"PowerPulsePower": {
"displayText": "Putere\npuls",
"description": "Puterea pulsului de menţinere activă a blocului de alimentare (watt)"
},
"PowerPulseWait": {
"displayText": "Întârziere\npuls putere",
"description": "Perioada pulsului de mentinere (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Durată\npuls putere",
"description": "Durata pulsului de menţinere (x 250ms)"
},
"SettingsReset": {
"displayText": "Setări\ndin fabrică",
"description": "Reveniţi la setările din fabrică"
},
"LanguageSwitch": {
"displayText": "Limbă:\n RO Română",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "RU",
"languageLocalName": "Русский",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Пожалуйста, убедитесь, что жало и корпус имеют комнатную температуру при следующей загрузке!",
"CJCCalibrating": "калибровка",
"SettingsResetWarning": "Вы уверены, что хотите сбросить настройки к значениям по умолчанию?",
"UVLOWarningString": "НАПРЯЖ--",
"UndervoltageString": "Низ. напряжение",
"InputVoltageString": "Питание В: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Ожидание...",
"SleepingTipAdvancedString": "Жало:",
"OffString": "Вык",
"DeviceFailedValidationWarning": "Скорее всего, это устройство подделка!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Сброс OK",
"SettingsResetMessage": [
"Настройки",
"сброшены!"
],
"NoAccelerometerMessage": [
"Не определен",
"акселерометр!"
],
"NoPowerDeliveryMessage": [
"USB-PD питание",
"не обнаружено"
],
"LockingKeysString": "ЗАБЛОК",
"UnlockingKeysString": "РАЗБЛОК",
"WarningKeysLockedString": "!ЗАБЛОК!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "П",
"SettingLeftChar": "Л",
"SettingAutoChar": "А",
"SettingOffChar": "О",
"SettingSlowChar": "М",
"SettingMediumChar": "С",
"SettingFastChar": "Б",
"SettingStartNoneChar": "В",
"SettingStartSolderingChar": "П",
"SettingStartSleepChar": "О",
"SettingStartSleepOffChar": "К",
"SettingSensitivityOff": "О",
"SettingSensitivityLow": "Н",
"SettingSensitivityMedium": "С",
"SettingSensitivityHigh": "В",
"SettingLockDisableChar": "О",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Параметры",
"питания"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Параметры",
"пайки"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Режимы",
"сна"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Параметры",
"интерфейса"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Дополнител.",
"настройки"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Источник",
"питания"
],
"desc": "Источник питания. Устанавливает напряжение отсечки. (DC 10В) (S 3,3В на ячейку, без лимита мощности)"
},
"MinVolCell": {
"text2": [
"Мин.",
"напр."
],
"desc": "Минимальное разрешенное напряжение на ячейку (3S: 3 - 3,7V | 4S-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"text2": [
"Ограничение",
"напряжения QC"
],
"desc": "Максимальное напряжение для согласования с QC источником питания"
},
"PDNegTimeout": {
"text2": [
"PD",
"тайм-аут"
],
"desc": "Power Delivery тайм-аут согласования с шагом 100 мс для совместимости с некоторыми быстрыми зарядными QC (0: отключено)"
},
"BoostTemperature": {
"text2": [
"t° турбо",
"режима"
],
"desc": "Температура жала в турбо-режиме"
},
"AutoStart": {
"text2": [
"Авто",
"старт"
],
"desc": "Режим, в котором запускается паяльник при подаче питания (В=Выкл. | П=Пайка | О=Ожидание | К=Ожидание при комн. темп.)"
},
"TempChangeShortStep": {
"text2": [
"Шаг темп.",
"кор. наж."
],
"desc": "Шаг изменения температуры при коротком нажатии кнопок"
},
"TempChangeLongStep": {
"text2": [
"Шаг темп.",
"длин. наж."
],
"desc": "Шаг изменения температуры при длинном нажатии кнопок"
},
"LockingMode": {
"text2": [
"Разрешить",
"блок. кнопок"
],
"desc": "При работе длинное нажатие обеих кнопок блокирует их (О=Отключено | Т=Только турбо | П=Полная блокировка)"
},
"MotionSensitivity": {
"text2": [
"Чувствительн.",
"акселерометра"
],
"desc": "Чувствительность акселерометра (0=Выкл. | 1=Мин. | ... | 9=Макс.)"
},
"SleepTemperature": {
"text2": [
"Темп.",
"ожидания"
],
"desc": "Температура режима ожидания"
},
"SleepTimeout": {
"text2": [
"Таймаут",
"ожидания"
],
"desc": "Время до перехода в режим ожидания (Минуты | Секунды)"
},
"ShutdownTimeout": {
"text2": [
"Таймаут",
"выключения"
],
"desc": "Время до отключения паяльника (Минуты)"
},
"HallEffSensitivity": {
"text2": [
"Датчик",
"Холла"
],
"desc": "Чувствительность датчика Холла к переходу в спящий режим (0=Выкл. | 1=Мин. | ... | 9=Макс.)"
},
"TemperatureUnit": {
"text2": [
"Единицы",
"температуры"
],
"desc": "Единицы измерения температуры (C=Цельcия | F=Фаренгейта)"
},
"DisplayRotation": {
"text2": [
"Ориентация",
"экрана"
],
"desc": "Ориентация экрана (П=Правая рука | Л=Левая рука | А=Авто)"
},
"CooldownBlink": {
"text2": [
"Мигание t°",
"при остывании"
],
"desc": "Мигать температурой на экране охлаждения, пока жало еще горячее"
},
"ScrollingSpeed": {
"text2": [
"Скорость",
"текста"
],
"desc": "Скорость прокрутки текста (М=медленно | Б=быстро)"
},
"ReverseButtonTempChange": {
"text2": [
"Инвертировать",
"кнопки"
],
"desc": "Инвертировать кнопки изменения температуры"
},
"AnimSpeed": {
"text2": [
"Скорость",
"анимации"
],
"desc": "Скорость анимации иконок в главном меню (Милисекунды) (О=Отключено | Н=Низкий | С=Средний | В=Высокий)"
},
"AnimLoop": {
"text2": [
"Зацикленная",
"анимация"
],
"desc": "Зацикленная анимация иконок в главном меню"
},
"Brightness": {
"text2": [
"Яркость",
"экрана"
],
"desc": "Настройки контраста/яркости OLED экрана"
},
"ColourInversion": {
"text2": [
"Инверсия",
"экрана"
],
"desc": "Инвертировать цвета на OLED экране"
},
"LOGOTime": {
"text2": [
"Длительность",
"показа логотипа"
],
"desc": "Длительность отображения логотипа (в секундах)"
},
"AdvancedIdle": {
"text2": [
"Подробный",
"реж. ожидания"
],
"desc": "Отображать детальную информацию уменьшенным шрифтом на экране ожидания"
},
"AdvancedSoldering": {
"text2": [
"Подробный",
"экран пайки"
],
"desc": "Показывать детальную информацию на экране пайки"
},
"PowerLimit": {
"text2": [
"Предел",
"мощности"
],
"desc": "Максимальная мощность, которую может использовать паяльник (Ватт)"
},
"CalibrateCJC": {
"text2": [
"Калибровка",
"температуры"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Калибровка",
"напряжения"
],
"desc": "Калибровка входного напряжения (долгое нажатие для выхода)"
},
"PowerPulsePower": {
"text2": [
"Сила имп.",
"питания Вт"
],
"desc": "Сила импульса удерживающего от сна повербанк или другой источник питания"
},
"PowerPulseWait": {
"text2": [
"Пауза имп.",
"питания с"
],
"desc": "Пауза между импульсами удерживающими источник питания от сна (x 2,5с)"
},
"PowerPulseDuration": {
"text2": [
"Длина имп.",
"питания мс"
],
"desc": "Длина импульса удерживающего от сна источник питания (x 250мс)"
},
"SettingsReset": {
"text2": [
"Сброс",
"Настроек"
],
"desc": "Сброс настроек к значеням по умолчанию"
},
"LanguageSwitch": {
"text2": [
"Язык:",
" RU Русский"
],
"desc": ""
}
}
}
{
"languageCode": "RU",
"languageLocalName": "Русский",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Калибровка\nзавершена!"
},
"ResetOKMessage": {
"message": "Сброс OK"
},
"SettingsResetMessage": {
"message": "Настройки\nсброшены!"
},
"NoAccelerometerMessage": {
"message": "Не определен\nакселерометр!"
},
"NoPowerDeliveryMessage": {
"message": "USB-PD питание\nне обнаружено"
},
"LockingKeysString": {
"message": "ЗАБЛОК"
},
"UnlockingKeysString": {
"message": "РАЗБЛОК"
},
"WarningKeysLockedString": {
"message": "!ЗАБЛОК!"
},
"WarningThermalRunaway": {
"message": "Неуправляемый\nРазогрев"
},
"SettingsCalibrationWarning": {
"message": "Пожалуйста, убедитесь, что жало и корпус имеют комнатную температуру при следующей загрузке!"
},
"CJCCalibrating": {
"message": "калибровка\n"
},
"SettingsResetWarning": {
"message": "Вы уверены, что хотите сбросить настройки к значениям по умолчанию?"
},
"UVLOWarningString": {
"message": "НАПРЯЖ--"
},
"UndervoltageString": {
"message": "Низ. напряжение\n"
},
"InputVoltageString": {
"message": "Питание В: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Ожидание...\n"
},
"SleepingTipAdvancedString": {
"message": "Жало: \n"
},
"OffString": {
"message": "Вык"
},
"DeviceFailedValidationWarning": {
"message": "Скорее всего, это устройство подделка!"
}
},
"characters": {
"SettingRightChar": "П",
"SettingLeftChar": "Л",
"SettingAutoChar": "А",
"SettingOffChar": "О",
"SettingSlowChar": "М",
"SettingMediumChar": "С",
"SettingFastChar": ",
"SettingStartNoneChar": "В",
"SettingStartSolderingChar": "П",
"SettingStartSleepChar": "О",
"SettingStartSleepOffChar": "К",
"SettingLockDisableChar": "О",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Параметры\nпитания",
"description": ""
},
"SolderingMenu": {
"displayText": "Параметры\nпайки",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Режимы\nсна",
"description": ""
},
"UIMenu": {
"displayText": "Параметры\nинтерфейса",
"description": ""
},
"AdvancedMenu": {
"displayText": "Дополнител.\nнастройки",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Источник\nпитания",
"description": "Источник питания. Устанавливает напряжение отсечки. (DC 10В) (S 3,3В на ячейку, без лимита мощности)"
},
"MinVolCell": {
"displayText": "Мин.\nнапр.",
"description": "Минимальное разрешенное напряжение на ячейку (3S: 3 - 3,7V | 4S-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "Ограничение\nнапряжения QC",
"description": "Максимальное напряжение для согласования с QC источником питания"
},
"PDNegTimeout": {
"displayText": "PD\nтайм-аут",
"description": "Power Delivery тайм-аут согласования с шагом 100 мс для совместимости с некоторыми быстрыми зарядными QC (0: отключено)"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Включает режимы PPS & EPR."
},
"BoostTemperature": {
"displayText": "t° турбо\nрежима",
"description": "Температура жала в турбо-режиме"
},
"AutoStart": {
"displayText": "Авто\nстарт",
"description": "Режим, в котором запускается паяльник при подаче питания (В=Выкл. | П=Пайка | О=Ожидание | К=Ожидание при комн. темп.)"
},
"TempChangeShortStep": {
"displayText": "Шаг темп.\nкор. наж.",
"description": "Шаг изменения температуры при коротком нажатии кнопок"
},
"TempChangeLongStep": {
"displayText": "Шаг темп.\nдлин. наж.",
"description": "Шаг изменения температуры при длинном нажатии кнопок"
},
"LockingMode": {
"displayText": "Разрешить\nблок. кнопок",
"description": "При работе длинное нажатие обеих кнопок блокирует их (О=Отключено | Т=Только турбо | П=Полная блокировка)"
},
"MotionSensitivity": {
"displayText": "Чувствительн.\nакселерометра",
"description": "Чувствительность акселерометра (0=Выкл. | 1=мин. | ... | 9=макс.)"
},
"SleepTemperature": {
"displayText": "Темп.\nожидания",
"description": "Температура жала в режиме ожидания"
},
"SleepTimeout": {
"displayText": "Таймаут\nожидания",
"description": "Время до перехода в режим ожидания (Минуты | Секунды)"
},
"ShutdownTimeout": {
"displayText": "Таймаут\nвыключения",
"description": "Время до выключения паяльника (минуты)"
},
"HallEffSensitivity": {
"displayText": "Датчик\nХолла",
"description": "Чувствительность датчика Холла к переходу в спящий режим (0=Выкл. | 1=мин. | ... | 9=макс.)"
},
"TemperatureUnit": {
"displayText": "Единицы\nтемпературы",
"description": "Единицы измерения температуры (C=°Цельcия | F=°Фаренгейта)"
},
"DisplayRotation": {
"displayText": "Ориентация\nэкрана",
"description": "Ориентация экрана (П=Правая рука | Л=Левая рука | А=Авто)"
},
"CooldownBlink": {
"displayText": "Мигание t°\nпри остывании",
"description": "Мигать температурой на экране охлаждения, пока жало еще горячее"
},
"ScrollingSpeed": {
"displayText": "Скорость\nтекста",
"description": "Скорость прокрутки текста (М=медленно | Б=быстро)"
},
"ReverseButtonTempChange": {
"displayText": "Поменять\nкнопки+-",
"description": "Поменять кнопки изменения температуры"
},
"AnimSpeed": {
"displayText": "Скорость\nанимации",
"description": "Скорость анимации иконок в главном меню (Милисекунды) (О=Отключено | Н=Низкий | С=Средний | В=Высокий)"
},
"AnimLoop": {
"displayText": "Зацикленная\nанимация",
"description": "Зацикленная анимация иконок в главном меню"
},
"Brightness": {
"displayText": "Яркость\nэкрана",
"description": "Настройки контраста/яркости OLED экрана"
},
"ColourInversion": {
"displayText": "Инверсия\nэкрана",
"description": "Инвертировать цвета на OLED экране"
},
"LOGOTime": {
"displayText": "Длительность\nпоказа логотипа",
"description": "Длительность отображения логотипа (в секундах)"
},
"AdvancedIdle": {
"displayText": "Подробный\nреж. ожидания",
"description": "Отображать детальную информацию уменьшенным шрифтом на экране ожидания"
},
"AdvancedSoldering": {
"displayText": "Подробный\nэкран пайки",
"description": "Показывать детальную информацию на экране пайки"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Предел\nмощности",
"description": "Максимальная мощность, которую может использовать паяльник (Ватт)"
},
"CalibrateCJC": {
"displayText": "Калибровка\nтемпературы",
"description": "Калибровка температуры (CJC) при следующем включении (не требуется при разнице менее 5°C)"
},
"VoltageCalibration": {
"displayText": "Калибровка\nнапряжения",
"description": "Калибровка входного напряжения (долгое нажатие для выхода)"
},
"PowerPulsePower": {
"displayText": "Сила имп.\nпитания Вт",
"description": "Сила импульса удерживающего от сна повербанк или другой источник питания"
},
"PowerPulseWait": {
"displayText": "Пауза имп.\nпитания с",
"description": "Пауза между импульсами удерживающими источник питания от сна (x 2,5с)"
},
"PowerPulseDuration": {
"displayText": "Длина имп.\nпитания мс",
"description": "Длина импульса удерживающего от сна источник питания (x 250мс)"
},
"SettingsReset": {
"displayText": "Сброс\nНастроек",
"description": "Сброс настроек к значеням по умолчанию"
},
"LanguageSwitch": {
"displayText": "Язык:\n RU Русский",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "SK",
"languageLocalName": "Slovenčina",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Naozaj chcete obnoviť továrenské nastavenia?",
"UVLOWarningString": "Nízke U!",
"UndervoltageString": "Nízke napätie",
"InputVoltageString": "Vstupné U: ",
"SleepingSimpleString": "Chrr",
"SleepingAdvancedString": "Pokojový režim.",
"SleepingTipAdvancedString": "Hrot:",
"OffString": "Vyp",
"DeviceFailedValidationWarning": "Vaše zariadenie je pravdepodobne falzifikát!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Nastavenia",
"resetované"
],
"NoAccelerometerMessage": [
"Bez pohybového",
"senzora!"
],
"NoPowerDeliveryMessage": [
"Chýba čip",
"USB-PD!"
],
"LockingKeysString": "ZABLOK.",
"UnlockingKeysString": "ODBLOK.",
"WarningKeysLockedString": "!ZABLOK!",
"WarningThermalRunaway": [
"Únik",
"Tepla"
]
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "Z",
"SettingSlowChar": "P",
"SettingMediumChar": "S",
"SettingFastChar": "R",
"SettingStartNoneChar": "V",
"SettingStartSolderingChar": "Z",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "I",
"SettingSensitivityOff": "Z",
"SettingSensitivityLow": "N",
"SettingSensitivityMedium": "S",
"SettingSensitivityHigh": "V",
"SettingLockDisableChar": "Z",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "P"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Nastavenie",
"výkonu"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Nastavenie",
"spájkovania"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Úsporný",
"režim"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Nastavenie",
"zobrazenia"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Pokročilé",
"nastavenia"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Zdroj",
"napätia"
],
"desc": "Zdroj napätia. Nastavenie napätia pre vypnutie (cutoff) (DC=10V | nS=n*3.3V pre LiIon články)"
},
"MinVolCell": {
"text2": [
"Minimálne",
"napätie"
],
"desc": "Minimálne napätie povolené na jeden článok (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"Obmedzenie QC",
"napätia"
],
"desc": "Maximálne QC napätie ktoré si má systém vyžiadať"
},
"PDNegTimeout": {
"text2": [
"Čas vypršania",
"Power Delivery"
],
"desc": "Čas vyjednávania Power Delivery v 100ms krokoch pre kompatibilitu s niektorými QC nabíjačkami (0: vypnuté)"
},
"BoostTemperature": {
"text2": [
"Boost",
"teplota"
],
"desc": "Cieľová teplota pre prudký náhrev (v nastavených jednotkách)"
},
"AutoStart": {
"text2": [
"Automatické",
"spustenie"
],
"desc": "Pri štarte spustiť režim spájkovania (V=Vyp | Z=Spájkovanie | S=Spanok | I=Spanok izbová teplota)"
},
"TempChangeShortStep": {
"text2": [
"Malý krok",
"teploty"
],
"desc": "Zmena teploty pri krátkom stlačení tlačidla"
},
"TempChangeLongStep": {
"text2": [
"Veľký krok",
"teploty"
],
"desc": "Zmena teploty pri držaní tlačidla"
},
"LockingMode": {
"text2": [
"Povoliť zámok",
"tlačidiel"
],
"desc": "Zamknutie tlačidiel - dlhé stlačenie oboch naraz počas spájkovania (Z=Zakázať | B=Okrem boost | P=Plné zamknutie)"
},
"MotionSensitivity": {
"text2": [
"Citlivosť",
"pohybu"
],
"desc": "Citlivosť detekcie pohybu (0=Vyp | 1=Min | ... | 9=Max)"
},
"SleepTemperature": {
"text2": [
"Pokojová",
"teplota"
],
"desc": "Pokojová teplota (v nastavených jednotkách)"
},
"SleepTimeout": {
"text2": [
"Pokojový",
"režim po"
],
"desc": "Pokojový režim po (s=sekundách | m=minútach)"
},
"ShutdownTimeout": {
"text2": [
"Vypnutie",
"po"
],
"desc": "Čas na vypnutie (minúty)"
},
"HallEffSensitivity": {
"text2": [
"Citliv.",
"Hall"
],
"desc": "Citlivosť Hallovho senzora pre detekciu spánku (0=Vyp | 1=Min | ... | 9=Max)"
},
"TemperatureUnit": {
"text2": [
"Jednotka",
"teploty"
],
"desc": "Jednotky merania teploty (C=stupne Celzia | F=stupne Fahrenheita)"
},
"DisplayRotation": {
"text2": [
"Orientácia",
"displeja"
],
"desc": "Orientácia displeja (P=Pravák | L=Ľavák | A=Auto)"
},
"CooldownBlink": {
"text2": [
"Blikanie pri",
"chladnutí"
],
"desc": "Blikanie ukazovateľa teploty počas chladnutia hrotu"
},
"ScrollingSpeed": {
"text2": [
"Rýchlosť",
"skrolovania"
],
"desc": "Rýchlosť pohybu tohto textu"
},
"ReverseButtonTempChange": {
"text2": [
"Otočenie",
"tlačidiel +/-"
],
"desc": "Prehodenie tlačidiel na nastavovanie teploty"
},
"AnimSpeed": {
"text2": [
"Rýchlosť",
"animácií"
],
"desc": "Rýchlosť animácií ikoniek v menu (O=off | P=pomaly | S=stredne | R=rýchlo)"
},
"AnimLoop": {
"text2": [
"Opakovanie",
"animácií"
],
"desc": "Opakovanie animácií ikoniek v hlavnom menu"
},
"Brightness": {
"text2": [
"Jas",
"obrazovky"
],
"desc": "Mení jas/kontrast OLED displeja"
},
"ColourInversion": {
"text2": [
"Invertovať",
"obrazovku"
],
"desc": "Invertovať farby OLED displeja"
},
"LOGOTime": {
"text2": [
"Trvanie",
"boot loga"
],
"desc": "Doba trvania boot loga (s=sekundy)"
},
"AdvancedIdle": {
"text2": [
"Detaily v",
"pokoj. režime"
],
"desc": "Zobraziť detailné informácie v pokojovom režime (T=Zap | F=Vyp)"
},
"AdvancedSoldering": {
"text2": [
"Detaily počas",
"spájkovania"
],
"desc": "Zobrazenie detailov počas spájkovania"
},
"PowerLimit": {
"text2": [
"Obmedzenie",
"výkonu"
],
"desc": "Obmedzenie výkonu podľa použitého zdroja (watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Kalibrácia",
"nap. napätia"
],
"desc": "Kalibrácia napájacieho napätia. Krátke stlačenie mení nastavenie, dlhé stlačenie pre návrat"
},
"PowerPulsePower": {
"text2": [
"Intenzita",
"impulzu"
],
"desc": "Impulz udržujúci napájací zdroj zapnutý (power banky) (watt)"
},
"PowerPulseWait": {
"text2": [
"Interval",
"impulzu"
],
"desc": "Interval medzi impulzami udržujúcimi napájací zdroj zapnutý (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Dĺžka impulzu",
""
],
"desc": "Dĺžka impulzu udržujúci napájací zdroj zapnutý (x 250ms)"
},
"SettingsReset": {
"text2": [
"Obnovenie",
"nastavení"
],
"desc": "Obnovenie nastavení na pôvodné hodnoty"
},
"LanguageSwitch": {
"text2": [
"Jazyk:",
" SK Slovenčina"
],
"desc": ""
}
}
}
{
"languageCode": "SK",
"languageLocalName": "Slovenčina",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Nastavenia\nresetované"
},
"NoAccelerometerMessage": {
"message": "Bez pohybového\nsenzora!"
},
"NoPowerDeliveryMessage": {
"message": "Chýba čip\nUSB-PD!"
},
"LockingKeysString": {
"message": "ZABLOK."
},
"UnlockingKeysString": {
"message": "ODBLOK."
},
"WarningKeysLockedString": {
"message": "!ZABLOK!"
},
"WarningThermalRunaway": {
"message": "Únik\nTepla"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Naozaj chcete obnoviť továrenské nastavenia?"
},
"UVLOWarningString": {
"message": "Nízke U!"
},
"UndervoltageString": {
"message": "Nízke napätie\n"
},
"InputVoltageString": {
"message": "Vstupné U: \n"
},
"SleepingSimpleString": {
"message": "Chrr"
},
"SleepingAdvancedString": {
"message": "Pokojový režim.\n"
},
"SleepingTipAdvancedString": {
"message": "Hrot: \n"
},
"OffString": {
"message": "Vyp"
},
"DeviceFailedValidationWarning": {
"message": "Vaše zariadenie je pravdepodobne falzifikát!"
}
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "Z",
"SettingSlowChar": "P",
"SettingMediumChar": "S",
"SettingFastChar": "R",
"SettingStartNoneChar": "V",
"SettingStartSolderingChar": "Z",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "I",
"SettingLockDisableChar": "Z",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "P"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Nastavenie\nvýkonu",
"description": ""
},
"SolderingMenu": {
"displayText": "Nastavenie\nspájkovania",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Úsporný\nrežim",
"description": ""
},
"UIMenu": {
"displayText": "Nastavenie\nzobrazenia",
"description": ""
},
"AdvancedMenu": {
"displayText": "Pokročilé\nnastavenia",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Zdroj\nnapätia",
"description": "Zdroj napätia. Nastavenie napätia pre vypnutie (cutoff) (DC=10V | nS=n*3.3V pre LiIon články)"
},
"MinVolCell": {
"displayText": "Minimálne\nnapätie",
"description": "Minimálne napätie povolené na jeden článok (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Obmedzenie QC\nnapätia",
"description": "Maximálne QC napätie ktoré si má systém vyžiadať"
},
"PDNegTimeout": {
"displayText": "Čas vypršania\nPower Delivery",
"description": "Čas vyjednávania Power Delivery v 100ms krokoch pre kompatibilitu s niektorými QC nabíjačkami (0: vypnuté)"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\nteplota",
"description": "Cieľová teplota pre prudký náhrev (v nastavených jednotkách)"
},
"AutoStart": {
"displayText": "Automatické\nspustenie",
"description": "Pri štarte spustiť režim spájkovania (V=Vyp | Z=Spájkovanie | S=Spanok | I=Spanok izbová teplota)"
},
"TempChangeShortStep": {
"displayText": "Malý krok\nteploty",
"description": "Zmena teploty pri krátkom stlačení tlačidla"
},
"TempChangeLongStep": {
"displayText": "Veľký krok\nteploty",
"description": "Zmena teploty pri držaní tlačidla"
},
"LockingMode": {
"displayText": "Povoliť zámok\ntlačidiel",
"description": "Zamknutie tlačidiel - dlhé stlačenie oboch naraz počas spájkovania (Z=Zakázať | B=Okrem boost | P=Plné zamknutie)"
},
"MotionSensitivity": {
"displayText": "Citlivosť\npohybu",
"description": "Citlivosť detekcie pohybu (0=Vyp | 1=Min | ... | 9=Max)"
},
"SleepTemperature": {
"displayText": "Pokojová\nteplota",
"description": "Pokojová teplota (v nastavených jednotkách)"
},
"SleepTimeout": {
"displayText": "Pokojový\nrežim po",
"description": "Pokojový režim po (s=sekundách | m=minútach)"
},
"ShutdownTimeout": {
"displayText": "Vypnutie\npo",
"description": "Čas na vypnutie (minúty)"
},
"HallEffSensitivity": {
"displayText": "Citliv.\nHall",
"description": "Citlivosť Hallovho senzora pre detekciu spánku (0=Vyp | 1=Min | ... | 9=Max)"
},
"TemperatureUnit": {
"displayText": "Jednotka\nteploty",
"description": "Jednotky merania teploty (C=stupne Celzia | F=stupne Fahrenheita)"
},
"DisplayRotation": {
"displayText": "Orientácia\ndispleja",
"description": "Orientácia displeja (P=Pravák | L=Ľavák | A=Auto)"
},
"CooldownBlink": {
"displayText": "Blikanie pri\nchladnutí",
"description": "Blikanie ukazovateľa teploty počas chladnutia hrotu"
},
"ScrollingSpeed": {
"displayText": "Rýchlosť\nskrolovania",
"description": "Rýchlosť pohybu tohto textu"
},
"ReverseButtonTempChange": {
"displayText": "Otočenie\ntlačidiel +/-",
"description": "Prehodenie tlačidiel na nastavovanie teploty"
},
"AnimSpeed": {
"displayText": "Rýchlosť\nanimácií",
"description": "Rýchlosť animácií ikoniek v menu (O=off | P=pomaly | S=stredne | R=rýchlo)"
},
"AnimLoop": {
"displayText": "Opakovanie\nanimácií",
"description": "Opakovanie animácií ikoniek v hlavnom menu"
},
"Brightness": {
"displayText": "Jas\nobrazovky",
"description": "Mení jas/kontrast OLED displeja"
},
"ColourInversion": {
"displayText": "Invertovať\nobrazovku",
"description": "Invertovať farby OLED displeja"
},
"LOGOTime": {
"displayText": "Trvanie\nboot loga",
"description": "Doba trvania boot loga (s=sekundy)"
},
"AdvancedIdle": {
"displayText": "Detaily v\npokoj. režime",
"description": "Zobraziť detailné informácie v pokojovom režime (T=Zap | F=Vyp)"
},
"AdvancedSoldering": {
"displayText": "Detaily počas\nspájkovania",
"description": "Zobrazenie detailov počas spájkovania"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Obmedzenie\nvýkonu",
"description": "Obmedzenie výkonu podľa použitého zdroja (watt)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibrácia\nnap. napätia",
"description": "Kalibrácia napájacieho napätia. Krátke stlačenie mení nastavenie, dlhé stlačenie pre návrat"
},
"PowerPulsePower": {
"displayText": "Intenzita\nimpulzu",
"description": "Impulz udržujúci napájací zdroj zapnutý (power banky) (watt)"
},
"PowerPulseWait": {
"displayText": "Interval\nimpulzu",
"description": "Interval medzi impulzami udržujúcimi napájací zdroj zapnutý (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Dĺžka\nimpulzu",
"description": "Dĺžka impulzu udržujúci napájací zdroj zapnutý (x 250ms)"
},
"SettingsReset": {
"displayText": "Obnovenie\nnastavení",
"description": "Obnovenie nastavení na pôvodné hodnoty"
},
"LanguageSwitch": {
"displayText": "Jazyk:\n SK Slovenčina",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "SL",
"languageLocalName": "Slovenščina",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Res želite ponastaviti na privzete nastavitve?",
"UVLOWarningString": "NIZKA U",
"UndervoltageString": "Nizka napetost",
"InputVoltageString": "Vhodna U: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Spim...",
"SleepingTipAdvancedString": "Konica",
"OffString": "Off",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Nastavitve OK!",
""
],
"NoAccelerometerMessage": [
"Ni pospeševalnik",
""
],
"NoPowerDeliveryMessage": [
"Ni USB-PD čipa!",
""
],
"LockingKeysString": "ZAKLENJ.",
"UnlockingKeysString": "ODKLENJ.",
"WarningKeysLockedString": "ZAKLENJ.",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "L",
"SettingAutoChar": "S",
"SettingOffChar": "U",
"SettingSlowChar": "P",
"SettingMediumChar": "M",
"SettingFastChar": "H",
"SettingStartNoneChar": "U",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "V",
"SettingSensitivityOff": "U",
"SettingSensitivityLow": "N",
"SettingSensitivityMedium": "S",
"SettingSensitivityHigh": "V",
"SettingLockDisableChar": "O",
"SettingLockBoostChar": "L",
"SettingLockFullChar": "P"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Power",
"settings"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Nastavitve",
"spajkanja"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Način",
"spanja"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Uporabniški",
"vmesnik"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Napredne",
"možnosti"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Vir",
"napajanja"
],
"desc": "Vir napajanja. Nastavi napetost izklopa. (DC 10V) (S 3.3V na celico)"
},
"MinVolCell": {
"text2": [
"Minimum",
"voltage"
],
"desc": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"QC",
"napetost"
],
"desc": "Moč napajalnega vira v vatih [W]"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"BoostTemperature": {
"text2": [
"Pospešena",
"temp."
],
"desc": "Temperatura v pospešenem načinu"
},
"AutoStart": {
"text2": [
"Samodejni",
"zagon"
],
"desc": "Samodejno gretje konice ob vklopu (U=ugasnjeno | S=spajkanje | Z=spanje | V=spanje na sobni temperaturi)"
},
"TempChangeShortStep": {
"text2": [
"Kratka sprememba",
"temperature?"
],
"desc": "Temperatura se spremeni ob kratkem pritisku na gumb."
},
"TempChangeLongStep": {
"text2": [
"Dolga sprememba",
"temperature?"
],
"desc": "Temperatura se spremeni ob dolgem pritisku na gumb."
},
"LockingMode": {
"text2": [
"Omogoči",
"zaklep gumbov"
],
"desc": "Za zaklep med spajkanjem drži oba gumba (O=onemogoči | L=le pospešeno | P=polno)"
},
"MotionSensitivity": {
"text2": [
"Občutljivost",
"premikanja"
],
"desc": "0=izklopljeno | 1=najmanjša | ... | 9=največja"
},
"SleepTemperature": {
"text2": [
"Temp. med",
"spanjem"
],
"desc": "Temperatura med spanjem"
},
"SleepTimeout": {
"text2": [
"Čas do",
"spanja"
],
"desc": "Čas pred spanjem (s=sekunde | m=minute)"
},
"ShutdownTimeout": {
"text2": [
"Čas do",
"izklopa"
],
"desc": "Čas do izklopa (m=minute)"
},
"HallEffSensitivity": {
"text2": [
"Občut.",
"Hall son"
],
"desc": "Občutljivost Hallove sonde za zaznavanje spanja (0=izklopljeno | 1=najmanjša | ... | 9=največja)"
},
"TemperatureUnit": {
"text2": [
"Enota za",
"temperaturo"
],
"desc": "Enota za temperaturo (C=celzij | F=fahrenheit)"
},
"DisplayRotation": {
"text2": [
"Orientacija",
"zaslona"
],
"desc": "D=desničar | L=levičar | S=samodejno"
},
"CooldownBlink": {
"text2": [
"Utripanje med",
"hlajenjem"
],
"desc": "Ko je konica še vroča, utripaj prikaz temperature med hlajenjem."
},
"ScrollingSpeed": {
"text2": [
"Hitrost",
"besedila"
],
"desc": "Hitrost, s katero se prikazuje besedilo (P=počasi | H=hitro)"
},
"ReverseButtonTempChange": {
"text2": [
"Obrni",
"tipki + -?"
],
"desc": "Zamenjaj funkciji gumbov."
},
"AnimSpeed": {
"text2": [
"Anim.",
"speed"
],
"desc": "Pace of icon animations in menu (O=off | P=slow | M=medium | H=fast)"
},
"AnimLoop": {
"text2": [
"Anim.",
"loop"
],
"desc": "Loop icon animations in main menu"
},
"Brightness": {
"text2": [
"Screen",
"brightness"
],
"desc": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"text2": [
"Invert",
"screen"
],
"desc": "Invert the OLED screen colors"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Več info. na",
"mir. zaslonu"
],
"desc": "Prikaži več informacij z manjšo pisavo na mirovalnem zaslonu."
},
"AdvancedSoldering": {
"text2": [
"Več info na",
"zaslonu spaj."
],
"desc": "Prikaže več informacij z manjšo pisavo na zaslonu med spajkanjem."
},
"PowerLimit": {
"text2": [
"Meja",
"moči"
],
"desc": "Največja dovoljena moč v vatih [W]"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Kalibriram",
"vhodno napetost?"
],
"desc": "Kalibracija VIN (nastavitve z gumbi, dolg pritisk za izhod)"
},
"PowerPulsePower": {
"text2": [
"Pulz",
"moči"
],
"desc": "Velikost moči za vzdrževanje budnosti."
},
"PowerPulseWait": {
"text2": [
"Power pulse",
"delay"
],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Power pulse",
"duration"
],
"desc": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"text2": [
"Tovarniške",
"nastavitve?"
],
"desc": "Ponastavitev vseh nastavitev"
},
"LanguageSwitch": {
"text2": [
"Jezik:",
" SL Slovenščina"
],
"desc": ""
}
}
}
{
"languageCode": "SL",
"languageLocalName": "Slovenščina",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Nastavitve \nOK!"
},
"NoAccelerometerMessage": {
"message": "Ni \npospeševalnik"
},
"NoPowerDeliveryMessage": {
"message": "Ni USB-PD \nčipa!"
},
"LockingKeysString": {
"message": "ZAKLENJ."
},
"UnlockingKeysString": {
"message": "ODKLENJ."
},
"WarningKeysLockedString": {
"message": "ZAKLENJ."
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Res želite ponastaviti na privzete nastavitve?"
},
"UVLOWarningString": {
"message": "NIZKA U"
},
"UndervoltageString": {
"message": "Nizka napetost\n"
},
"InputVoltageString": {
"message": "Vhodna U: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Spim...\n"
},
"SleepingTipAdvancedString": {
"message": "Konica \n"
},
"OffString": {
"message": "Off"
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "L",
"SettingAutoChar": "S",
"SettingOffChar": "U",
"SettingSlowChar": "P",
"SettingMediumChar": "M",
"SettingFastChar": "H",
"SettingStartNoneChar": "U",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "V",
"SettingLockDisableChar": "O",
"SettingLockBoostChar": "L",
"SettingLockFullChar": "P"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Power\nsettings",
"description": ""
},
"SolderingMenu": {
"displayText": "Nastavitve\nspajkanja",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Način\nspanja",
"description": ""
},
"UIMenu": {
"displayText": "Uporabniški\nvmesnik",
"description": ""
},
"AdvancedMenu": {
"displayText": "Napredne\nmožnosti",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Vir\nnapajanja",
"description": "Vir napajanja. Nastavi napetost izklopa. (DC 10V) (S 3.3V na celico)"
},
"MinVolCell": {
"displayText": "Minimum\nvoltage",
"description": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nnapetost",
"description": "Moč napajalnega vira v vatih [W]"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Pospešena\ntemp.",
"description": "Temperatura v pospešenem načinu"
},
"AutoStart": {
"displayText": "Samodejni\nzagon",
"description": "Samodejno gretje konice ob vklopu (U=ugasnjeno | S=spajkanje | Z=spanje | V=spanje na sobni temperaturi)"
},
"TempChangeShortStep": {
"displayText": "Kratka sprememba\ntemperature?",
"description": "Temperatura se spremeni ob kratkem pritisku na gumb."
},
"TempChangeLongStep": {
"displayText": "Dolga sprememba\ntemperature?",
"description": "Temperatura se spremeni ob dolgem pritisku na gumb."
},
"LockingMode": {
"displayText": "Omogoči\nzaklep gumbov",
"description": "Za zaklep med spajkanjem drži oba gumba (O=onemogoči | L=le pospešeno | P=polno)"
},
"MotionSensitivity": {
"displayText": "Občutljivost\npremikanja",
"description": "0=izklopljeno | 1=najmanjša | ... | 9=največja"
},
"SleepTemperature": {
"displayText": "Temp. med\nspanjem",
"description": "Temperatura med spanjem"
},
"SleepTimeout": {
"displayText": "Čas do\nspanja",
"description": "Čas pred spanjem (s=sekunde | m=minute)"
},
"ShutdownTimeout": {
"displayText": "Čas do\nizklopa",
"description": "Čas do izklopa (m=minute)"
},
"HallEffSensitivity": {
"displayText": "Občut.\nHall son",
"description": "Občutljivost Hallove sonde za zaznavanje spanja (0=izklopljeno | 1=najmanjša | ... | 9=največja)"
},
"TemperatureUnit": {
"displayText": "Enota za\ntemperaturo",
"description": "Enota za temperaturo (C=celzij | F=fahrenheit)"
},
"DisplayRotation": {
"displayText": "Orientacija\nzaslona",
"description": "D=desničar | L=levičar | S=samodejno"
},
"CooldownBlink": {
"displayText": "Utripanje med\nhlajenjem",
"description": "Ko je konica še vroča, utripaj prikaz temperature med hlajenjem."
},
"ScrollingSpeed": {
"displayText": "Hitrost\nbesedila",
"description": "Hitrost, s katero se prikazuje besedilo (P=počasi | H=hitro)"
},
"ReverseButtonTempChange": {
"displayText": "Obrni\ntipki + -?",
"description": "Zamenjaj funkciji gumbov."
},
"AnimSpeed": {
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (O=off | P=slow | M=medium | H=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
"description": "Loop icon animations in main menu"
},
"Brightness": {
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Več info. na\nmir. zaslonu",
"description": "Prikaži več informacij z manjšo pisavo na mirovalnem zaslonu."
},
"AdvancedSoldering": {
"displayText": "Več info na\nzaslonu spaj.",
"description": "Prikaže več informacij z manjšo pisavo na zaslonu med spajkanjem."
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Meja\nmoči",
"description": "Največja dovoljena moč v vatih [W]"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibriram\nvhodno napetost?",
"description": "Kalibracija VIN (nastavitve z gumbi, dolg pritisk za izhod)"
},
"PowerPulsePower": {
"displayText": "Pulz\nmoči",
"description": "Velikost moči za vzdrževanje budnosti."
},
"PowerPulseWait": {
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"displayText": "Tovarniške\nnastavitve?",
"description": "Ponastavitev vseh nastavitev"
},
"LanguageSwitch": {
"displayText": "Jezik:\n SL Slovenščina",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "SR_CYRL",
"languageLocalName": "Српски",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Да ли заиста желите да вратите поставке на фабричке вредности?",
"UVLOWarningString": "НИЗ.НАП.",
"UndervoltageString": "ПРЕНИЗАК НАПОН",
"InputVoltageString": "Ул. напон: ",
"SleepingSimpleString": "Сан",
"SleepingAdvancedString": "Спавање...",
"SleepingTipAdvancedString": "Врх:",
"OffString": "Иск",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Certain settings",
"were changed!"
],
"NoAccelerometerMessage": [
"No accelerometer",
"detected!"
],
"NoPowerDeliveryMessage": [
"No USB-PD IC",
"detected!"
],
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "Д",
"SettingLeftChar": "Л",
"SettingAutoChar": "А",
"SettingOffChar": "O",
"SettingSlowChar": "С",
"SettingMediumChar": "M",
"SettingFastChar": "Б",
"SettingStartNoneChar": "И",
"SettingStartSolderingChar": "Л",
"SettingStartSleepChar": "С",
"SettingStartSleepOffChar": "X",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Power",
"settings"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Поставке",
"лемљења"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Уштеда",
"енергије"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Корисничко",
"сучеље"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Напредне",
"поставке"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Врста",
"напајања"
],
"desc": "Тип напајања; одређује најнижи радни напон. (DC=адаптер [10V] | S=батерија [3,3V по ћелији])"
},
"MinVolCell": {
"text2": [
"Minimum",
"voltage"
],
"desc": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"Улазна",
"снага"
],
"desc": "Снага напајања у ватима."
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"BoostTemperature": {
"text2": [
"Темп.",
"појачања"
],
"desc": "Температура врха лемилице у току појачања."
},
"AutoStart": {
"text2": [
"Врући",
"старт"
],
"desc": "Лемилица одмах по покретању прелази у режим лемљења и греје се. (И=искључити | Л=лемљење | С=спавати | X=спавати собна температура)"
},
"TempChangeShortStep": {
"text2": [
"Temp change",
"short"
],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": [
"Temp change",
"long"
],
"desc": "Temperature-change-increment on long button press"
},
"LockingMode": {
"text2": [
"Allow locking",
"buttons"
],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"text2": [
"Осетљивост",
"на покрет"
],
"desc": "Осетљивост сензора покрета. (0=искључено | 1=најмање осетљиво | ... | 9=најосетљивије)"
},
"SleepTemperature": {
"text2": [
"Темп.",
"спавања"
],
"desc": "Температура на коју се спушта лемилица након одређеног времена мировања. (C | F)"
},
"SleepTimeout": {
"text2": [
"Време до",
"спавања"
],
"desc": "Време мировања након кога лемилица спушта температуру. (m=минути | s=секунде)"
},
"ShutdownTimeout": {
"text2": [
"Време до",
"гашења"
],
"desc": "Време мировања након кога се лемилица гаси. (m=минути)"
},
"HallEffSensitivity": {
"text2": [
"Hall sensor",
"sensitivity"
],
"desc": "Sensitivity to magnets (0=искључено | 1=најмање осетљиво | ... | 9=најосетљивије)"
},
"TemperatureUnit": {
"text2": [
"Јединица",
"температуре"
],
"desc": "Јединице у којима се приказује температура. (C=целзијус | F=фаренхајт)"
},
"DisplayRotation": {
"text2": [
"Оријентација",
"екрана"
],
"desc": "Како је окренут екран. (Д=за десноруке | Л=за леворуке | А=аутоматски)"
},
"CooldownBlink": {
"text2": [
"Упозорење",
"при хлађењу"
],
"desc": "Приказ температуре трепће приликом хлађења докле год је врх и даље врућ."
},
"ScrollingSpeed": {
"text2": [
"Брзина",
"порука"
],
"desc": "Брзина кретања описних порука попут ове. (С=споро | Б=брзо)"
},
"ReverseButtonTempChange": {
"text2": [
"Swap",
"+ - keys"
],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"AnimSpeed": {
"text2": [
"Anim.",
"speed"
],
"desc": "Pace of icon animations in menu (O=off | С=slow | M=medium | Б=fast)"
},
"AnimLoop": {
"text2": [
"Anim.",
"loop"
],
"desc": "Loop icon animations in main menu"
},
"Brightness": {
"text2": [
"Screen",
"brightness"
],
"desc": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"text2": [
"Invert",
"screen"
],
"desc": "Invert the OLED screen colors"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Детаљи током",
"мировања"
],
"desc": "Приказивање детаљних информација на екрану током мировања."
},
"AdvancedSoldering": {
"text2": [
"Детаљи током",
"лемљења"
],
"desc": "Приказивање детаљних информација на екрану током лемљења."
},
"PowerLimit": {
"text2": [
"Power",
"limit"
],
"desc": "Maximum power the iron can use (W=watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"text2": [
"Калибрација",
"улазног напона"
],
"desc": "Калибрисање улазног напона. Подешава се на тастере; дуги притисак за крај."
},
"PowerPulsePower": {
"text2": [
"Power",
"pulse"
],
"desc": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"text2": [
"Power pulse",
"delay"
],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5с)"
},
"PowerPulseDuration": {
"text2": [
"Power pulse",
"duration"
],
"desc": "Keep-awake-pulse duration (x 250мс)"
},
"SettingsReset": {
"text2": [
"Фабричке",
"поставке"
],
"desc": "Враћање свих поставки на фабричке вредности."
},
"LanguageSwitch": {
"text2": [
"Jезик:",
" SR Српски"
],
"desc": ""
}
}
}
{
"languageCode": "SR_CYRL",
"languageLocalName": "Српски",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Certain settings\nwere changed!"
},
"NoAccelerometerMessage": {
"message": "No accelerometer\ndetected!"
},
"NoPowerDeliveryMessage": {
"message": "No USB-PD IC\ndetected!"
},
"LockingKeysString": {
"message": "LOCKED"
},
"UnlockingKeysString": {
"message": "UNLOCKED"
},
"WarningKeysLockedString": {
"message": "!LOCKED!"
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Да ли заиста желите да вратите поставке на фабричке вредности?"
},
"UVLOWarningString": {
"message": "НИЗ.НАП."
},
"UndervoltageString": {
"message": "ПРЕНИЗАК НАПОН\n"
},
"InputVoltageString": {
"message": "Ул. напон: \n"
},
"SleepingSimpleString": {
"message": "Сан"
},
"SleepingAdvancedString": {
"message": "Спавање...\n"
},
"SleepingTipAdvancedString": {
"message": "Врх: \n"
},
"OffString": {
"message": "Иск"
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "Д",
"SettingLeftChar": "Л",
"SettingAutoChar": "А",
"SettingOffChar": "O",
"SettingSlowChar": "С",
"SettingMediumChar": "M",
"SettingFastChar": ",
"SettingStartNoneChar": "И",
"SettingStartSolderingChar": "Л",
"SettingStartSleepChar": "С",
"SettingStartSleepOffChar": "X",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Power\nsettings",
"description": ""
},
"SolderingMenu": {
"displayText": "Поставке\nлемљења",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Уштеда\nенергије",
"description": ""
},
"UIMenu": {
"displayText": "Корисничко\nсучеље",
"description": ""
},
"AdvancedMenu": {
"displayText": "Напредне\nпоставке",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Врста\nнапајања",
"description": "Тип напајања; одређује најнижи радни напон. (DC=адаптер [10V] | S=батерија [3,3V по ћелији])"
},
"MinVolCell": {
"displayText": "Minimum\nvoltage",
"description": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Улазна\nснага",
"description": "Снага напајања у ватима."
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Темп.\nпојачања",
"description": "Температура врха лемилице у току појачања."
},
"AutoStart": {
"displayText": "Врући\nстарт",
"description": "Лемилица одмах по покретању прелази у режим лемљења и греје се. (И=искључити | Л=лемљење | С=спавати | X=спавати собна температура)"
},
"TempChangeShortStep": {
"displayText": "Temp change\nshort",
"description": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"displayText": "Temp change\nlong",
"description": "Temperature-change-increment on long button press"
},
"LockingMode": {
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"displayText": "Осетљивост\nна покрет",
"description": "Осетљивост сензора покрета. (0=искључено | 1=најмање осетљиво | ... | 9=најосетљивије)"
},
"SleepTemperature": {
"displayText": "Темп.\nспавања",
"description": "Температура на коју се спушта лемилица након одређеног времена мировања. (C | F)"
},
"SleepTimeout": {
"displayText": "Време до\nспавања",
"description": "Време мировања након кога лемилица спушта температуру. (m=минути | s=секунде)"
},
"ShutdownTimeout": {
"displayText": "Време до\nгашења",
"description": "Време мировања након кога се лемилица гаси. (m=минути)"
},
"HallEffSensitivity": {
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (0=искључено | 1=најмање осетљиво | ... | 9=најосетљивије)"
},
"TemperatureUnit": {
"displayText": "Јединица\nтемпературе",
"description": "Јединице у којима се приказује температура. (C=целзијус | F=фаренхајт)"
},
"DisplayRotation": {
"displayText": "Оријентација\nекрана",
"description": "Како је окренут екран. (Д=за десноруке | Л=за леворуке | А=аутоматски)"
},
"CooldownBlink": {
"displayText": "Упозорење\nпри хлађењу",
"description": "Приказ температуре трепће приликом хлађења докле год је врх и даље врућ."
},
"ScrollingSpeed": {
"displayText": "Брзина\nпорука",
"description": "Брзина кретања описних порука попут ове. (С=споро | Б=брзо)"
},
"ReverseButtonTempChange": {
"displayText": "Swap\n+ - keys",
"description": "Reverse assignment of buttons for temperature adjustment"
},
"AnimSpeed": {
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (O=off | С=slow | M=medium | Б=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
"description": "Loop icon animations in main menu"
},
"Brightness": {
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Детаљи током\nмировања",
"description": "Приказивање детаљних информација на екрану током мировања."
},
"AdvancedSoldering": {
"displayText": "Детаљи током\nлемљења",
"description": "Приказивање детаљних информација на екрану током лемљења."
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Power\nlimit",
"description": "Maximum power the iron can use (W=watt)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"displayText": "Калибрација\nулазног напона",
"description": "Калибрисање улазног напона. Подешава се на тастере; дуги притисак за крај."
},
"PowerPulsePower": {
"displayText": "Power\npulse",
"description": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2.5с)"
},
"PowerPulseDuration": {
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250мс)"
},
"SettingsReset": {
"displayText": "Фабричке\nпоставке",
"description": "Враћање свих поставки на фабричке вредности."
},
"LanguageSwitch": {
"displayText": "Jезик:\n SR Српски",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "SR_LATN",
"languageLocalName": "Srpski",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Da li zaista želite da vratite postavke na fabričke vrednosti?",
"UVLOWarningString": "NIZ.NAP.",
"UndervoltageString": "PRENIZAK NAPON",
"InputVoltageString": "Ul. napon: ",
"SleepingSimpleString": "Zzz",
"SleepingAdvancedString": "Spavanje...",
"SleepingTipAdvancedString": "Vrh:",
"OffString": "Isk",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Certain settings",
"were changed!"
],
"NoAccelerometerMessage": [
"No accelerometer",
"detected!"
],
"NoPowerDeliveryMessage": [
"No USB-PD IC",
"detected!"
],
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "B",
"SettingStartNoneChar": "I",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "X",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Power",
"settings"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Postavke",
"lemljenja"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Ušteda",
"energije"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Korisničko",
"sučelje"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Napredne",
"postavke"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Vrsta",
"napajanja"
],
"desc": "Tip napajanja; određuje najniži radni napon. (DC=adapter [10V], S=baterija [3,3V po ćeliji])"
},
"MinVolCell": {
"text2": [
"Minimum",
"voltage"
],
"desc": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"Ulazna",
"snaga"
],
"desc": "Snaga napajanja u vatima."
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"BoostTemperature": {
"text2": [
"Temp.",
"pojačanja"
],
"desc": "Temperatura vrha lemilice u toku pojačanja."
},
"AutoStart": {
"text2": [
"Vrući",
"start"
],
"desc": "Lemilica odmah po pokretanju prelazi u režim lemljenja i greje se. (I=isključiti | L=lemljenje | S=spavati | X=spavati sobna temperatura)"
},
"TempChangeShortStep": {
"text2": [
"Temp change",
"short"
],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": [
"Temp change",
"long"
],
"desc": "Temperature-change-increment on long button press"
},
"LockingMode": {
"text2": [
"Allow locking",
"buttons"
],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"text2": [
"Osetljivost",
"na pokret"
],
"desc": "Osetljivost senzora pokreta. (0=isključeno | 1=najmanje osetljivo | ... | 9=najosetljivije)"
},
"SleepTemperature": {
"text2": [
"Temp.",
"spavanja"
],
"desc": "Temperatura na koju se spušta lemilica nakon određenog vremena mirovanja. (C | F)"
},
"SleepTimeout": {
"text2": [
"Vreme do",
"spavanja"
],
"desc": "Vreme mirovanja nakon koga lemilica spušta temperaturu. (m=minuti | s=sekunde)"
},
"ShutdownTimeout": {
"text2": [
"Vreme do",
"gašenja"
],
"desc": "Vreme mirovanja nakon koga se lemilica gasi. (m=minuti)"
},
"HallEffSensitivity": {
"text2": [
"Hall sensor",
"sensitivity"
],
"desc": "Sensitivity to magnets (0=isključeno | 1=najmanje osetljivo | ... | 9=najosetljivije)"
},
"TemperatureUnit": {
"text2": [
"Jedinica",
"temperature"
],
"desc": "Jedinice u kojima se prikazuje temperatura. (C=celzijus | F=farenhajt)"
},
"DisplayRotation": {
"text2": [
"Orijentacija",
"ekrana"
],
"desc": "Kako je okrenut ekran. (D=za desnoruke | L=za levoruke | A=automatski)"
},
"CooldownBlink": {
"text2": [
"Upozorenje",
"pri hlađenju"
],
"desc": "Prikaz temperature trepće prilikom hlađenja dokle god je vrh i dalje vruć."
},
"ScrollingSpeed": {
"text2": [
"Brzina",
"poruka"
],
"desc": "Brzina kretanja opisnih poruka poput ove. (S=sporo | B=brzo)"
},
"ReverseButtonTempChange": {
"text2": [
"Swap",
"+ - keys"
],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"AnimSpeed": {
"text2": [
"Anim.",
"speed"
],
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | B=fast)"
},
"AnimLoop": {
"text2": [
"Anim.",
"loop"
],
"desc": "Loop icon animations in main menu"
},
"Brightness": {
"text2": [
"Screen",
"brightness"
],
"desc": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"text2": [
"Invert",
"screen"
],
"desc": "Invert the OLED screen colors"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Detalji tokom",
"mirovanja"
],
"desc": "Prikazivanje detaljnih informacija na ekranu tokom mirovanja."
},
"AdvancedSoldering": {
"text2": [
"Detalji tokom",
"lemljenja"
],
"desc": "Prikazivanje detaljnih informacija na ekranu tokom lemljenja."
},
"PowerLimit": {
"text2": [
"Power",
"limit"
],
"desc": "Maximum power the iron can use (W=watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Kalibracija",
"ulaznog napona"
],
"desc": "Kalibrisanje ulaznog napona. Podešava se na tastere; dugi pritisak za kraj."
},
"PowerPulsePower": {
"text2": [
"Power",
"pulse"
],
"desc": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"text2": [
"Power pulse",
"delay"
],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Power pulse",
"duration"
],
"desc": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"text2": [
"Fabričke",
"postavke"
],
"desc": "Vraćanje svih postavki na fabričke vrednosti."
},
"LanguageSwitch": {
"text2": [
"Jezik:",
" SR Srpski"
],
"desc": ""
}
}
}
{
"languageCode": "SR_LATN",
"languageLocalName": "Srpski",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Certain settings\nwere changed!"
},
"NoAccelerometerMessage": {
"message": "No accelerometer\ndetected!"
},
"NoPowerDeliveryMessage": {
"message": "No USB-PD IC\ndetected!"
},
"LockingKeysString": {
"message": "LOCKED"
},
"UnlockingKeysString": {
"message": "UNLOCKED"
},
"WarningKeysLockedString": {
"message": "!LOCKED!"
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Da li zaista želite da vratite postavke na fabričke vrednosti?"
},
"UVLOWarningString": {
"message": "NIZ.NAP."
},
"UndervoltageString": {
"message": "PRENIZAK NAPON\n"
},
"InputVoltageString": {
"message": "Ul. napon: \n"
},
"SleepingSimpleString": {
"message": "Zzz"
},
"SleepingAdvancedString": {
"message": "Spavanje...\n"
},
"SleepingTipAdvancedString": {
"message": "Vrh: \n"
},
"OffString": {
"message": "Isk"
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "B",
"SettingStartNoneChar": "I",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "X",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Power\nsettings",
"description": ""
},
"SolderingMenu": {
"displayText": "Postavke\nlemljenja",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Ušteda\nenergije",
"description": ""
},
"UIMenu": {
"displayText": "Korisničko\nsučelje",
"description": ""
},
"AdvancedMenu": {
"displayText": "Napredne\npostavke",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Vrsta\nnapajanja",
"description": "Tip napajanja; određuje najniži radni napon. (DC=adapter [10V], S=baterija [3,3V po ćeliji])"
},
"MinVolCell": {
"displayText": "Minimum\nvoltage",
"description": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Ulazna\nsnaga",
"description": "Snaga napajanja u vatima."
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Temp.\npojačanja",
"description": "Temperatura vrha lemilice u toku pojačanja."
},
"AutoStart": {
"displayText": "Vrući\nstart",
"description": "Lemilica odmah po pokretanju prelazi u režim lemljenja i greje se. (I=isključiti | L=lemljenje | S=spavati | X=spavati sobna temperatura)"
},
"TempChangeShortStep": {
"displayText": "Temp change\nshort",
"description": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"displayText": "Temp change\nlong",
"description": "Temperature-change-increment on long button press"
},
"LockingMode": {
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"displayText": "Osetljivost\nna pokret",
"description": "Osetljivost senzora pokreta. (0=isključeno | 1=najmanje osetljivo | ... | 9=najosetljivije)"
},
"SleepTemperature": {
"displayText": "Temp.\nspavanja",
"description": "Temperatura na koju se spušta lemilica nakon određenog vremena mirovanja. (C | F)"
},
"SleepTimeout": {
"displayText": "Vreme do\nspavanja",
"description": "Vreme mirovanja nakon koga lemilica spušta temperaturu. (m=minuti | s=sekunde)"
},
"ShutdownTimeout": {
"displayText": "Vreme do\ngašenja",
"description": "Vreme mirovanja nakon koga se lemilica gasi. (m=minuti)"
},
"HallEffSensitivity": {
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (0=isključeno | 1=najmanje osetljivo | ... | 9=najosetljivije)"
},
"TemperatureUnit": {
"displayText": "Jedinica\ntemperature",
"description": "Jedinice u kojima se prikazuje temperatura. (C=celzijus | F=farenhajt)"
},
"DisplayRotation": {
"displayText": "Orijentacija\nekrana",
"description": "Kako je okrenut ekran. (D=za desnoruke | L=za levoruke | A=automatski)"
},
"CooldownBlink": {
"displayText": "Upozorenje\npri hlađenju",
"description": "Prikaz temperature trepće prilikom hlađenja dokle god je vrh i dalje vruć."
},
"ScrollingSpeed": {
"displayText": "Brzina\nporuka",
"description": "Brzina kretanja opisnih poruka poput ove. (S=sporo | B=brzo)"
},
"ReverseButtonTempChange": {
"displayText": "Swap\n+ - keys",
"description": "Reverse assignment of buttons for temperature adjustment"
},
"AnimSpeed": {
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (O=off | S=slow | M=medium | B=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
"description": "Loop icon animations in main menu"
},
"Brightness": {
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Detalji tokom\nmirovanja",
"description": "Prikazivanje detaljnih informacija na ekranu tokom mirovanja."
},
"AdvancedSoldering": {
"displayText": "Detalji tokom\nlemljenja",
"description": "Prikazivanje detaljnih informacija na ekranu tokom lemljenja."
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Power\nlimit",
"description": "Maximum power the iron can use (W=watt)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibracija\nulaznog napona",
"description": "Kalibrisanje ulaznog napona. Podešava se na tastere; dugi pritisak za kraj."
},
"PowerPulsePower": {
"displayText": "Power\npulse",
"description": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"displayText": "Fabričke\npostavke",
"description": "Vraćanje svih postavki na fabričke vrednosti."
},
"LanguageSwitch": {
"displayText": "Jezik:\n SR Srpski",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "SV",
"languageLocalName": "Svenska",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Är du säker på att du vill återställa inställningarna?",
"UVLOWarningString": "DC LÅG",
"UndervoltageString": "Underspänning",
"InputVoltageString": "Inspän. V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Viloläge...",
"SleepingTipAdvancedString": "Spets:",
"OffString": "Av",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Inställningar",
"återställda"
],
"NoAccelerometerMessage": [
"Ingen",
"accelerometer"
],
"NoPowerDeliveryMessage": [
"Ingen USB-PD IC",
"hittades!"
],
"LockingKeysString": "LÅST",
"UnlockingKeysString": "UPPLÅST",
"WarningKeysLockedString": "!LÅST!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "H",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "A",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "A",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "V",
"SettingStartSleepOffChar": "R",
"SettingSensitivityOff": "A",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "A",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Effekt-",
"inställning"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Lödnings-",
"inställning"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Vilo-",
"läge"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Användar-",
"gränssnitt"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Avancerade",
"alternativ"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Ström-",
"källa"
],
"desc": "Strömkälla. Anger lägsta spänning. (DC 10V) (S 3.3V per cell)"
},
"MinVolCell": {
"text2": [
"Minimim-",
"spänning"
],
"desc": "Minimumspänning per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"QC",
"spänning"
],
"desc": "Maximal QC-spänning enheten skall efterfråga"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"BoostTemperature": {
"text2": [
"Turbo-",
"temp"
],
"desc": "Temperatur i \"turbo-läge\""
},
"AutoStart": {
"text2": [
"Auto",
"start"
],
"desc": "Startar automatiskt lödpennan vid uppstart. (A=Av | L=Lödning | V=Viloläge | R=Viloläge Rumstemperatur)"
},
"TempChangeShortStep": {
"text2": [
"Temp.just",
"korttryck"
],
"desc": "Temperaturjustering vid kort knapptryckning"
},
"TempChangeLongStep": {
"text2": [
"Temp.just",
"långtryck"
],
"desc": "Temperaturjustering vid lång knapptryckning"
},
"LockingMode": {
"text2": [
"Tillåt lås",
"via knappar"
],
"desc": "Vid lödning, håll nere bägge knappar för att slå på lås (A=Av | T=Bara turbo | F=Fullt lås)"
},
"MotionSensitivity": {
"text2": [
"Rörelse-",
"känslighet"
],
"desc": "Rörelsekänslighet (0=Av | 1=minst känslig | ... | 9=mest känslig)"
},
"SleepTemperature": {
"text2": [
"Vilo-",
"temp"
],
"desc": "Vilotemperatur (C)"
},
"SleepTimeout": {
"text2": [
"Vilo-",
"timeout"
],
"desc": "Vilo-timeout (m=Minuter | s=Sekunder)"
},
"ShutdownTimeout": {
"text2": [
"Avstängn.",
"timeout"
],
"desc": "Avstängnings-timeout (Minuter)"
},
"HallEffSensitivity": {
"text2": [
"Sensor-",
"känslght"
],
"desc": "Känslighet för halleffekt-sensorn för viloläges-detektering (0=Av | 1=minst känslig | ... | 9=mest känslig)"
},
"TemperatureUnit": {
"text2": [
"Temperatur-",
"enheter"
],
"desc": "Temperaturenhet (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"text2": [
"Visnings",
"läge"
],
"desc": "Visningsläge (H=Högerhänt | V=Vänsterhänt | A=Automatisk)"
},
"CooldownBlink": {
"text2": [
"Nedkylnings-",
"blink"
],
"desc": "Blinka temperaturen medan spetsen kyls av och fortfarande är varm."
},
"ScrollingSpeed": {
"text2": [
"Beskrivning",
"rullhast."
],
"desc": "Hastighet som den här texten rullar i"
},
"ReverseButtonTempChange": {
"text2": [
"Omvända",
"+- knappar"
],
"desc": "Omvänd ordning för temperaturjustering via plus/minus knapparna"
},
"AnimSpeed": {
"text2": [
"Anim.-",
"hastighet"
],
"desc": "Animationshastighet för ikoner i menyer (A=av | L=långsam | M=medel | S=snabb)"
},
"AnimLoop": {
"text2": [
"Anim.",
"loop"
],
"desc": "Loopa animationer i huvudmeny"
},
"Brightness": {
"text2": [
"Screen",
"brightness"
],
"desc": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"text2": [
"Invert",
"screen"
],
"desc": "Invert the OLED screen colors"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Detaljerad",
"vid inaktiv"
],
"desc": "Visa detaljerad information i mindre typsnitt när inaktiv."
},
"AdvancedSoldering": {
"text2": [
"Detaljerad",
"lödng.skärm"
],
"desc": "Visa detaljerad information vid lödning"
},
"PowerLimit": {
"text2": [
"Max-",
"effekt"
],
"desc": "Maximal effekt som enheten kan använda (Watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Kalibrera",
"inspänning?"
],
"desc": "Inspänningskalibrering. Knapparna justerar, håll inne för avslut"
},
"PowerPulsePower": {
"text2": [
"Power",
"pulse"
],
"desc": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"text2": [
"Power pulse",
"delay"
],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Power pulse",
"duration"
],
"desc": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"text2": [
"Fabriks-",
"inställ?"
],
"desc": "Återställ alla inställningar"
},
"LanguageSwitch": {
"text2": [
"Språk:",
" SV Svenska"
],
"desc": ""
}
}
}
{
"languageCode": "SV",
"languageLocalName": "Svenska",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Inställningar\nåterställda"
},
"NoAccelerometerMessage": {
"message": "Ingen\naccelerometer"
},
"NoPowerDeliveryMessage": {
"message": "Ingen USB-PD IC\nhittades!"
},
"LockingKeysString": {
"message": "LÅST"
},
"UnlockingKeysString": {
"message": "UPPLÅST"
},
"WarningKeysLockedString": {
"message": "!LÅST!"
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Är du säker på att du vill återställa inställningarna?"
},
"UVLOWarningString": {
"message": "DC LÅG"
},
"UndervoltageString": {
"message": "Underspänning\n"
},
"InputVoltageString": {
"message": "Inspän. V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Viloläge...\n"
},
"SleepingTipAdvancedString": {
"message": "Spets: \n"
},
"OffString": {
"message": "Av"
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "H",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "A",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "A",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "V",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "A",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Effekt-\ninställning",
"description": ""
},
"SolderingMenu": {
"displayText": "Lödnings-\ninställning",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Vilo-\nläge",
"description": ""
},
"UIMenu": {
"displayText": "Användar-\ngränssnitt",
"description": ""
},
"AdvancedMenu": {
"displayText": "Avancerade\nalternativ",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Ström-\nkälla",
"description": "Strömkälla. Anger lägsta spänning. (DC 10V) (S 3.3V per cell)"
},
"MinVolCell": {
"displayText": "Minimim-\nspänning",
"description": "Minimumspänning per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nspänning",
"description": "Maximal QC-spänning enheten skall efterfråga"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Turbo-\ntemp",
"description": "Temperatur i \"turbo-läge\""
},
"AutoStart": {
"displayText": "Auto\nstart",
"description": "Startar automatiskt lödpennan vid uppstart. (A=Av | L=Lödning | V=Viloläge | R=Viloläge Rumstemperatur)"
},
"TempChangeShortStep": {
"displayText": "Temp.just\nkorttryck",
"description": "Temperaturjustering vid kort knapptryckning"
},
"TempChangeLongStep": {
"displayText": "Temp.just\nlångtryck",
"description": "Temperaturjustering vid lång knapptryckning"
},
"LockingMode": {
"displayText": "Tillåt lås\nvia knappar",
"description": "Vid lödning, håll nere bägge knappar för att slå på lås (A=Av | T=Bara turbo | F=Fullt lås)"
},
"MotionSensitivity": {
"displayText": "Rörelse-\nkänslighet",
"description": "Rörelsekänslighet (0=Av | 1=minst känslig | ... | 9=mest känslig)"
},
"SleepTemperature": {
"displayText": "Vilo-\ntemp",
"description": "Vilotemperatur (C)"
},
"SleepTimeout": {
"displayText": "Vilo-\ntimeout",
"description": "Vilo-timeout (m=Minuter | s=Sekunder)"
},
"ShutdownTimeout": {
"displayText": "Avstängn.\ntimeout",
"description": "Avstängnings-timeout (Minuter)"
},
"HallEffSensitivity": {
"displayText": "Sensor-\nkänslght",
"description": "Känslighet för halleffekt-sensorn för viloläges-detektering (0=Av | 1=minst känslig | ... | 9=mest känslig)"
},
"TemperatureUnit": {
"displayText": "Temperatur-\nenheter",
"description": "Temperaturenhet (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"displayText": "Visnings\nläge",
"description": "Visningsläge (H=Högerhänt | V=Vänsterhänt | A=Automatisk)"
},
"CooldownBlink": {
"displayText": "Nedkylnings-\nblink",
"description": "Blinka temperaturen medan spetsen kyls av och fortfarande är varm."
},
"ScrollingSpeed": {
"displayText": "Beskrivning\nrullhast.",
"description": "Hastighet som den här texten rullar i"
},
"ReverseButtonTempChange": {
"displayText": "Omvända\n+- knappar",
"description": "Omvänd ordning för temperaturjustering via plus/minus knapparna"
},
"AnimSpeed": {
"displayText": "Anim.-\nhastighet",
"description": "Animationshastighet för ikoner i menyer (A=av | L=långsam | M=medel | S=snabb)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
"description": "Loopa animationer i huvudmeny"
},
"Brightness": {
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Detaljerad\nvid inaktiv",
"description": "Visa detaljerad information i mindre typsnitt när inaktiv."
},
"AdvancedSoldering": {
"displayText": "Detaljerad\nlödng.skärm",
"description": "Visa detaljerad information vid lödning"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Max-\neffekt",
"description": "Maximal effekt som enheten kan använda (Watt)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibrera\ninspänning?",
"description": "Inspänningskalibrering. Knapparna justerar, håll inne för avslut"
},
"PowerPulsePower": {
"displayText": "Power\npulse",
"description": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"displayText": "Fabriks-\ninställ?",
"description": "Återställ alla inställningar"
},
"LanguageSwitch": {
"displayText": "Språk:\n SV Svenska",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "TR",
"languageLocalName": "Türkçe",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Ayarları varsayılan değerlere sıfırlamak istediğinizden emin misiniz?",
"UVLOWarningString": "Güç Az",
"UndervoltageString": "Düşük Voltaj",
"InputVoltageString": "Giriş V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Bekleme Modu ...",
"SleepingTipAdvancedString": "Uç:",
"OffString": "Kapalı",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Sıfırlama Tamam",
"SettingsResetMessage": [
"Ayarlar",
"Sıfırlandı"
],
"NoAccelerometerMessage": [
"No accelerometer",
"detected!"
],
"NoPowerDeliveryMessage": [
"No USB-PD IC",
"detected!"
],
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": [
"Thermal",
"Runaway"
]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "O",
"SettingOffChar": "K",
"SettingSlowChar": "Y",
"SettingMediumChar": "O",
"SettingFastChar": "H",
"SettingStartNoneChar": "K",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "U",
"SettingStartSleepOffChar": "S",
"SettingSensitivityOff": "K",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "O",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "K",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Power",
"settings"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Lehimleme",
"Ayarları"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Uyku",
"Modları"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Kullanıcı",
"Arayüzü"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Gelişmiş",
"Ayarlar"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"GÇKYN",
""
],
"desc": "\"Güç Kaynağı\". En düşük çalışma voltajını ayarlar. (DC 10V) (S 3.3V hücre başına)"
},
"MinVolCell": {
"text2": [
"Minimum",
"voltage"
],
"desc": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"QC",
"voltage"
],
"desc": "Max QC voltage the iron should negotiate for"
},
"PDNegTimeout": {
"text2": [
"PD",
"timeout"
],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"BoostTemperature": {
"text2": [
"YKSC",
""
],
"desc": "Yüksek Performans Modu Sıcaklığı"
},
"AutoStart": {
"text2": [
"OTOBAŞ",
""
],
"desc": "Güç verildiğinde otomatik olarak lehimleme modunda başlat. (K=Kapalı | L=Lehimleme Modu | U=Uyku Modu | S=Uyku Modu Oda Sıcaklığı)"
},
"TempChangeShortStep": {
"text2": [
"Temp change",
"short"
],
"desc": "Kısa basışlardaki sıcaklık derecesi atlama oranı"
},
"TempChangeLongStep": {
"text2": [
"Temp change",
"long"
],
"desc": "Uzun başışlardaki sıcaklık derecesi atlama oranı"
},
"LockingMode": {
"text2": [
"Allow locking",
"buttons"
],
"desc": "While soldering, hold down both buttons to toggle locking them (K=Kapalı | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"text2": [
"HARHAS",
""
],
"desc": "Hareket Hassasiyeti (0=Kapalı | 1=En az duyarlı | ... | 9=En duyarlı)"
},
"SleepTemperature": {
"text2": [
"BKSC",
""
],
"desc": "Bekleme Modu Sıcaklığı (C)"
},
"SleepTimeout": {
"text2": [
"BMZA",
""
],
"desc": "Bekleme Modu Zaman Aşımı (Dakika | Saniye)"
},
"ShutdownTimeout": {
"text2": [
"KPTZA",
""
],
"desc": "Kapatma Zaman Aşımı (Dakika)"
},
"HallEffSensitivity": {
"text2": [
"Hall sensor",
"sensitivity"
],
"desc": "Sensitivity to magnets (0=Kapalı | 1=En az duyarlı | ... | 9=En duyarlı)"
},
"TemperatureUnit": {
"text2": [
"SCKBRM",
""
],
"desc": "Sıcaklık Birimi (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"text2": [
"GRNYÖN",
""
],
"desc": "Görüntü Yönlendirme (R=Sağlak | L=Solak | O=Otomatik)"
},
"CooldownBlink": {
"text2": [
"SĞGÖST",
""
],
"desc": "Soğutma ekranında uç hala sıcakken derece gösterilsin."
},
"ScrollingSpeed": {
"text2": [
"YZKYHZ",
""
],
"desc": "Bu yazının kayma hızı (Y=Yavaş | H=Hızlı)"
},
"ReverseButtonTempChange": {
"text2": [
"Swap",
"+ - keys"
],
"desc": "\"Düğme Yerleri Rotasyonu\" Sıcaklık ayar düğmelerinin yerini değiştirin"
},
"AnimSpeed": {
"text2": [
"Anim.",
"speed"
],
"desc": "Pace of icon animations in menu (K=Kapalı | Y=Yavaş | O=Orta | H=Hızlı)"
},
"AnimLoop": {
"text2": [
"Anim.",
"loop"
],
"desc": "Loop icon animations in main menu"
},
"Brightness": {
"text2": [
"Screen",
"brightness"
],
"desc": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"text2": [
"Invert",
"screen"
],
"desc": "Invert the OLED screen colors"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"AYRBİL",
""
],
"desc": "Boş ekranda ayrıntılı bilgileri daha küçük bir yazı tipi ile göster."
},
"AdvancedSoldering": {
"text2": [
"GELLHM",
""
],
"desc": "\"Gelişmiş Lehimleme\" Lehimleme yaparken detaylı bilgi göster"
},
"PowerLimit": {
"text2": [
"Power",
"limit"
],
"desc": "Havyanın kullanacağı en yüksek güç (W=Watts)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"VOL KAL?",
""
],
"desc": "Voltaj Girişi Kalibrasyonu. Düğmeler ayarlar, çıkmak için uzun bas."
},
"PowerPulsePower": {
"text2": [
"Power",
"pulse"
],
"desc": "Güç girişi voltajı ölçüm yoğunluğunu sık tut."
},
"PowerPulseWait": {
"text2": [
"Power pulse",
"delay"
],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Power pulse",
"duration"
],
"desc": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"text2": [
"SIFIRLA?",
""
],
"desc": "Bütün ayarları sıfırlar"
},
"LanguageSwitch": {
"text2": [
"Dil:",
" TR Türkçe"
],
"desc": ""
}
}
}
{
"languageCode": "TR",
"languageLocalName": "Türkçe",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Sıfırlama Tamam"
},
"SettingsResetMessage": {
"message": "Ayarlar\nSıfırlandı"
},
"NoAccelerometerMessage": {
"message": "No accelerometer\ndetected!"
},
"NoPowerDeliveryMessage": {
"message": "No USB-PD IC\ndetected!"
},
"LockingKeysString": {
"message": "LOCKED"
},
"UnlockingKeysString": {
"message": "UNLOCKED"
},
"WarningKeysLockedString": {
"message": "!LOCKED!"
},
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Ayarları varsayılan değerlere sıfırlamak istediğinizden emin misiniz?"
},
"UVLOWarningString": {
"message": "Güç Az"
},
"UndervoltageString": {
"message": "Düşük Voltaj\n"
},
"InputVoltageString": {
"message": "Giriş V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Bekleme Modu...\n"
},
"SleepingTipAdvancedString": {
"message": "Uç: \n"
},
"OffString": {
"message": "Kapalı"
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "O",
"SettingOffChar": "K",
"SettingSlowChar": "Y",
"SettingMediumChar": "O",
"SettingFastChar": "H",
"SettingStartNoneChar": "K",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "U",
"SettingStartSleepOffChar": "S",
"SettingLockDisableChar": "K",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Power\nsettings",
"description": ""
},
"SolderingMenu": {
"displayText": "Lehimleme\nAyarları",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Uyku\nModları",
"description": ""
},
"UIMenu": {
"displayText": "Kullanıcı\nArayüzü",
"description": ""
},
"AdvancedMenu": {
"displayText": "Gelişmiş\nAyarlar",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "GÇKYN\n",
"description": "\"Güç Kaynağı\". En düşük çalışma voltajını ayarlar. (DC 10V) (S 3.3V hücre başına)"
},
"MinVolCell": {
"displayText": "Minimum\nvoltage",
"description": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nvoltage",
"description": "Max QC voltage the iron should negotiate for"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "YKSC\n",
"description": "Yüksek Performans Modu Sıcaklığı"
},
"AutoStart": {
"displayText": "OTOBAŞ\n",
"description": "Güç verildiğinde otomatik olarak lehimleme modunda başlat. (K=Kapalı | L=Lehimleme Modu | U=Uyku Modu | S=Uyku Modu Oda Sıcaklığı)"
},
"TempChangeShortStep": {
"displayText": "Temp change\nshort",
"description": "Kısa basışlardaki sıcaklık derecesi atlama oranı"
},
"TempChangeLongStep": {
"displayText": "Temp change\nlong",
"description": "Uzun başışlardaki sıcaklık derecesi atlama oranı"
},
"LockingMode": {
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (K=Kapalı | B=boost mode only | F=full locking)"
},
"MotionSensitivity": {
"displayText": "HARHAS\n",
"description": "Hareket Hassasiyeti (0=Kapalı | 1=En az duyarlı | ... | 9=En duyarlı)"
},
"SleepTemperature": {
"displayText": "BKSC\n",
"description": "Bekleme Modu Sıcaklığı (C)"
},
"SleepTimeout": {
"displayText": "BMZA\n",
"description": "Bekleme Modu Zaman Aşımı (Dakika | Saniye)"
},
"ShutdownTimeout": {
"displayText": "KPTZA\n",
"description": "Kapatma Zaman Aşımı (Dakika)"
},
"HallEffSensitivity": {
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (0=Kapalı | 1=En az duyarlı | ... | 9=En duyarlı)"
},
"TemperatureUnit": {
"displayText": "SCKBRM\n",
"description": "Sıcaklık Birimi (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"displayText": "GRNYÖN\n",
"description": "Görüntü Yönlendirme (R=Sağlak | L=Solak | O=Otomatik)"
},
"CooldownBlink": {
"displayText": "SĞGÖST\n",
"description": "Soğutma ekranında uç hala sıcakken derece gösterilsin."
},
"ScrollingSpeed": {
"displayText": "YZKYHZ\n",
"description": "Bu yazının kayma hızı (Y=Yavaş | H=Hızlı)"
},
"ReverseButtonTempChange": {
"displayText": "Swap\n+ - keys",
"description": "\"Düğme Yerleri Rotasyonu\" Sıcaklık ayar düğmelerinin yerini değiştirin"
},
"AnimSpeed": {
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (K=Kapalı | Y=Yavaş | O=Orta | H=Hızlı)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
"description": "Loop icon animations in main menu"
},
"Brightness": {
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "AYRBİL\n",
"description": "Boş ekranda ayrıntılı bilgileri daha küçük bir yazı tipi ile göster."
},
"AdvancedSoldering": {
"displayText": "GELLHM\n",
"description": "\"Gelişmiş Lehimleme\" Lehimleme yaparken detaylı bilgi göster"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Power\nlimit",
"description": "Havyanın kullanacağı en yüksek güç (W=Watts)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "VOL KAL?\n",
"description": "Voltaj Girişi Kalibrasyonu. Düğmeler ayarlar, çıkmak için uzun bas."
},
"PowerPulsePower": {
"displayText": "Power\npulse",
"description": "Güç girişi voltajı ölçüm yoğunluğunu sık tut."
},
"PowerPulseWait": {
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"displayText": "SIFIRLA?\n",
"description": "Bütün ayarları sıfırlar"
},
"LanguageSwitch": {
"displayText": "Dil:\n TR Türkçe",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "UK",
"languageLocalName": "Українська",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Під час наступного завантаження переконайтеся, що жало і ручка мають кімнатну температуру!",
"CJCCalibrating": "калібрування",
"SettingsResetWarning": "Ви дійсно хочете скинути налаштування до значень за замовчуванням? (A=Так, В=Ні)",
"UVLOWarningString": "АККУМ--",
"UndervoltageString": "Низька напруга",
"InputVoltageString": "Жив.(B): ",
"SleepingSimpleString": "ZzZzz",
"SleepingAdvancedString": "Очікування...",
"SleepingTipAdvancedString": "Жало:",
"OffString": "Вимк",
"DeviceFailedValidationWarning": "Вірогідно ваш пристрій підробний!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"КХС",
"відкалібровано!"
],
"ResetOKMessage": "Скид. OK",
"SettingsResetMessage": [
"Налаштування",
"скинуті!"
],
"NoAccelerometerMessage": [
"Акселерометр",
"не виявлено!"
],
"NoPowerDeliveryMessage": [
"USB-PD IC",
"не виявлено!"
],
"LockingKeysString": "ЗАБЛОК.",
"UnlockingKeysString": "РОЗБЛОК.",
"WarningKeysLockedString": "!ЗАБЛОК!",
"WarningThermalRunaway": [
"Некерований",
"розігрів"
]
},
"characters": {
"SettingRightChar": "П",
"SettingLeftChar": "Л",
"SettingAutoChar": "A",
"SettingOffChar": "B",
"SettingSlowChar": "Н",
"SettingMediumChar": "M",
"SettingFastChar": "М",
"SettingStartNoneChar": "В",
"SettingStartSolderingChar": "П",
"SettingStartSleepChar": "О",
"SettingStartSleepOffChar": "К",
"SettingSensitivityOff": "В",
"SettingSensitivityLow": "Н",
"SettingSensitivityMedium": "С",
"SettingSensitivityHigh": "М",
"SettingLockDisableChar": "В",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Параметри",
"живлення"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Параметри",
"пайки"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Режим",
"сну"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Параметри",
"інтерфейсу"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Додаткові",
"параметри"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Джерело",
"живлення"
],
"desc": "Встановлює напругу відсічки. (DC - 10V) (3S - 9.9V | 4S - 13.2V | 5S - 16.5V | 6S - 19.8V)"
},
"MinVolCell": {
"text2": [
"Мін.",
"напруга"
],
"desc": "Мінімальна дозволена напруга на комірку (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"text2": [
"Потужність",
"дж. живлення"
],
"desc": "Потужність джерела живлення в Ватах"
},
"PDNegTimeout": {
"text2": [
"PD",
"затримка"
],
"desc": "Затримка у 100мс інкрементах для PD для сумісності з деякими QC зарядними пристроями (0: вимкнено)"
},
"BoostTemperature": {
"text2": [
"Темпер.",
"Турбо"
],
"desc": "Температура в \"Турбо\" режимі"
},
"AutoStart": {
"text2": [
"Гарячий",
"старт"
],
"desc": "Режим в якому запускається паяльник при ввімкненні (В=Вимк. | П=Пайка | О=Очікування | К=Очікування при кімн. темп.)"
},
"TempChangeShortStep": {
"text2": [
"Зміна темп.",
"коротко?"
],
"desc": "Змінювати температуру при короткому натисканні!"
},
"TempChangeLongStep": {
"text2": [
"Зміна темп.",
"довго?"
],
"desc": "Змінювати температуру при довгому натисканні!"
},
"LockingMode": {
"text2": [
"Дозволити",
"блок. кнопок"
],
"desc": "Під час пайки тривале натискання обох кнопок заблокує їх (В=Вимк | Т=Тільки турбо | П=Повне)"
},
"MotionSensitivity": {
"text2": [
"Чутливість",
"сенсору руху"
],
"desc": "Акселерометр (0=Вимк. | 1=мін. чутливості | ... | 9=макс. чутливості)"
},
"SleepTemperature": {
"text2": [
"Темпер.",
"сну"
],
"desc": "Температура режиму очікування (C° | F°)"
},
"SleepTimeout": {
"text2": [
"Тайм-аут",
"сну"
],
"desc": "Час до переходу в режим очікування (Хвилини | Секунди)"
},
"ShutdownTimeout": {
"text2": [
"Часу до",
"вимкнення"
],
"desc": "Час до вимкнення (Хвилини)"
},
"HallEffSensitivity": {
"text2": [
"Чутливість",
"Ефекту Холла"
],
"desc": "Чутливість датчика ефекту Холла при виявленні сну (0=Вимк. | 1=мін. чутливості | ... | 9=макс. чутливості)"
},
"TemperatureUnit": {
"text2": [
"Формат темпе-",
"ратури(C°/F°)"
],
"desc": "Одиниця виміру температури (C=Цельсій | F=Фаренгейт)"
},
"DisplayRotation": {
"text2": [
"Автоповорот",
"екрану"
],
"desc": "Орієнтація дисплея (П=Правша | Л=Лівша | A=Автоповорот)"
},
"CooldownBlink": {
"text2": [
"Показ t° при",
"охолодженні"
],
"desc": "Показувати температуру на екрані охолодження, поки жало залишається гарячим, при цьому екран моргає"
},
"ScrollingSpeed": {
"text2": [
"Швидкість",
"тексту"
],
"desc": "Швидкість прокрутки тексту (П=повільно | Ш=швидко)"
},
"ReverseButtonTempChange": {
"text2": [
"Інвертувати",
"кнопки +-?"
],
"desc": "Інвертувати кнопки зміни температури."
},
"AnimSpeed": {
"text2": [
"Швидкість",
"анімації"
],
"desc": "Швидкість анімації іконок у головному меню (Мілісекунди) (В=Вимк | Н=Низькa | С=Середня | М=Макс)"
},
"AnimLoop": {
"text2": [
"Циклічна",
"анімація"
],
"desc": "Циклічна анімація іконок в головному меню"
},
"Brightness": {
"text2": [
"Яскравість",
"екрану"
],
"desc": "Налаштування контрасту/яскравості OLED екрану"
},
"ColourInversion": {
"text2": [
"Інверт",
"екрану"
],
"desc": "Інвертувати кольори на OLED екрані"
},
"LOGOTime": {
"text2": [
"Тривалість",
"логотипу завантаження"
],
"desc": "Встановити тривалість показу лого при завантаженні (с=секунд)"
},
"AdvancedIdle": {
"text2": [
"Детальний ре-",
"жим очікуван."
],
"desc": "Показувати детальну інформацію маленьким шрифтом на домашньому екрані"
},
"AdvancedSoldering": {
"text2": [
"Детальний",
"режим пайки"
],
"desc": "Показувати детальну інформацію при пайці."
},
"PowerLimit": {
"text2": [
"Макс.",
"потуж."
],
"desc": "Макс. потужність, яку може використовувати паяльник (Ват)"
},
"CalibrateCJC": {
"text2": [
"Калібрувати КХС",
"при наступному завантаженні"
],
"desc": "При наступному завантаження буде відкалібровано Компенсацію Холодного Спаю жала (непотрібне при різниці температур < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Калібрування",
"напруги"
],
"desc": "Калібрування напруги входу. Налаштувати кнопками, натиснути і утримати щоб завершити."
},
"PowerPulsePower": {
"text2": [
"Пульс.",
"Навантаж."
],
"desc": "Деякі PowerBank-и з часом вимк. живлення, якщо пристрій споживає дуже мало енергії)"
},
"PowerPulseWait": {
"text2": [
"Час між імп.",
"напруги"
],
"desc": "Час між імпульсами напруги яка не дає PowerBank-у заснути (x 2.5с)"
},
"PowerPulseDuration": {
"text2": [
"Тривалість",
"імп. напруги"
],
"desc": "Тривалість імпульсу напруги яка не дає PowerBank-у заснути (x 250мс)"
},
"SettingsReset": {
"text2": [
"Скинути всі",
"налаштування?"
],
"desc": "Скидання всіх параметрів до стандартних значень."
},
"LanguageSwitch": {
"text2": [
"Мова:",
" UK Українська"
],
"desc": ""
}
}
}
{
"languageCode": "UK",
"languageLocalName": "Українська",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "КХС\nвідкалібровано!"
},
"ResetOKMessage": {
"message": "Скид. OK"
},
"SettingsResetMessage": {
"message": "Налаштування\nскинуті!"
},
"NoAccelerometerMessage": {
"message": "Акселерометр\nне виявлено!"
},
"NoPowerDeliveryMessage": {
"message": "USB-PD IC\nне виявлено!"
},
"LockingKeysString": {
"message": "ЗАБЛОК."
},
"UnlockingKeysString": {
"message": "РОЗБЛОК."
},
"WarningKeysLockedString": {
"message": "!ЗАБЛОК!"
},
"WarningThermalRunaway": {
"message": "Некерований\nрозігрів"
},
"SettingsCalibrationWarning": {
"message": "Під час наступного завантаження переконайтеся, що жало і ручка мають кімнатну температуру!"
},
"CJCCalibrating": {
"message": "калібрування\n"
},
"SettingsResetWarning": {
"message": "Ви дійсно хочете скинути налаштування до значень за замовчуванням? (A=Так, В=Ні)"
},
"UVLOWarningString": {
"message": "АККУМ--"
},
"UndervoltageString": {
"message": "Низька напруга\n"
},
"InputVoltageString": {
"message": "Жив.(B): \n"
},
"SleepingSimpleString": {
"message": "ZzZzz"
},
"SleepingAdvancedString": {
"message": "Очікування...\n"
},
"SleepingTipAdvancedString": {
"message": "Жало: \n"
},
"OffString": {
"message": "Вимк"
},
"DeviceFailedValidationWarning": {
"message": "Вірогідно ваш пристрій підробний!"
}
},
"characters": {
"SettingRightChar": "П",
"SettingLeftChar": "Л",
"SettingAutoChar": "A",
"SettingOffChar": "B",
"SettingSlowChar": "Н",
"SettingMediumChar": "M",
"SettingFastChar": "М",
"SettingStartNoneChar": "В",
"SettingStartSolderingChar": "П",
"SettingStartSleepChar": "О",
"SettingStartSleepOffChar": "К",
"SettingLockDisableChar": "В",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Параметри\nживлення",
"description": ""
},
"SolderingMenu": {
"displayText": "Параметри\nпайки",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Режим\nсну",
"description": ""
},
"UIMenu": {
"displayText": "Параметри\nінтерфейсу",
"description": ""
},
"AdvancedMenu": {
"displayText": "Додаткові\nпараметри",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Джерело\nживлення",
"description": "Встановлює напругу відсічки. (DC - 10V) (3S - 9.9V | 4S - 13.2V | 5S - 16.5V | 6S - 19.8V)"
},
"MinVolCell": {
"displayText": "Мін.\nнапруга",
"description": "Мінімальна дозволена напруга на комірку (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Потужність\nдж. живлення",
"description": "Потужність джерела живлення в Ватах"
},
"PDNegTimeout": {
"displayText": "PD\nзатримка",
"description": "Затримка у 100мс інкрементах для PD для сумісності з деякими QC зарядними пристроями (0: вимкнено)"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Вмикає режими PPS & EPR."
},
"BoostTemperature": {
"displayText": "Темпер.\nТурбо",
"description": "Температура в \"Турбо\" режимі"
},
"AutoStart": {
"displayText": "Гарячий\nстарт",
"description": "Режим в якому запускається паяльник при ввімкненні (В=Вимк. | П=Пайка | О=Очікування | К=Очікування при кімн. темп.)"
},
"TempChangeShortStep": {
"displayText": "Зміна темп.\nкоротко?",
"description": "Змінювати температуру при короткому натисканні!"
},
"TempChangeLongStep": {
"displayText": "Зміна темп.\nдовго?",
"description": "Змінювати температуру при довгому натисканні!"
},
"LockingMode": {
"displayText": "Дозволити\nблок. кнопок",
"description": "Під час пайки тривале натискання обох кнопок заблокує їх (В=Вимк | Т=Тільки турбо | П=Повне)"
},
"MotionSensitivity": {
"displayText": "Чутливість\nсенсору руху",
"description": "Акселерометр (0=Вимк. | 1=мін. чутливості | ... | 9=макс. чутливості)"
},
"SleepTemperature": {
"displayText": "Темпер.\nсну",
"description": "Температура режиму очікування (C° | F°)"
},
"SleepTimeout": {
"displayText": "Тайм-аут\nсну",
"description": "Час до переходу в режим очікування (Хвилини | Секунди)"
},
"ShutdownTimeout": {
"displayText": "Часу до\nвимкнення",
"description": "Час до вимкнення (Хвилини)"
},
"HallEffSensitivity": {
"displayText": "Чутливість\nЕфекту Холла",
"description": "Чутливість датчика ефекту Холла при виявленні сну (0=Вимк. | 1=мін. чутливості | ... | 9=макс. чутливості)"
},
"TemperatureUnit": {
"displayText": "Формат темпе-\nратури(C°/F°)",
"description": "Одиниця виміру температури (C=Цельсій | F=Фаренгейт)"
},
"DisplayRotation": {
"displayText": "Автоповорот\nекрану",
"description": "Орієнтація дисплея (П=Правша | Л=Лівша | A=Автоповорот)"
},
"CooldownBlink": {
"displayText": "Показ t° при\nохолодженні",
"description": "Показувати температуру на екрані охолодження, поки жало залишається гарячим, при цьому екран моргає"
},
"ScrollingSpeed": {
"displayText": "Швидкість\nтексту",
"description": "Швидкість прокрутки тексту (П=повільно | Ш=швидко)"
},
"ReverseButtonTempChange": {
"displayText": "Інвертувати\nкнопки +-?",
"description": "Інвертувати кнопки зміни температури."
},
"AnimSpeed": {
"displayText": "Швидкість\nанімації",
"description": "Швидкість анімації іконок у головному меню (Мілісекунди) (В=Вимк | Н=Низькa | С=Середня | М=Макс)"
},
"AnimLoop": {
"displayText": "Циклічна\nанімація",
"description": "Циклічна анімація іконок в головному меню"
},
"Brightness": {
"displayText": "Яскравість\nекрану",
"description": "Налаштування контрасту/яскравості OLED екрану"
},
"ColourInversion": {
"displayText": "Інверт\nекрану",
"description": "Інвертувати кольори на OLED екрані"
},
"LOGOTime": {
"displayText": "Тривалість\nлоготипу завантаження",
"description": "Встановити тривалість показу лого при завантаженні (с=секунд)"
},
"AdvancedIdle": {
"displayText": "Детальний ре-\nжим очікуван.",
"description": "Показувати детальну інформацію маленьким шрифтом на домашньому екрані"
},
"AdvancedSoldering": {
"displayText": "Детальний\nрежим пайки",
"description": "Показувати детальну інформацію при пайці."
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Макс.\nпотуж.",
"description": "Макс. потужність, яку може використовувати паяльник (Ват)"
},
"CalibrateCJC": {
"displayText": "Калібрувати КХС\nпри наступному завантаженні",
"description": "При наступному завантаження буде відкалібровано Компенсацію Холодного Спаю жала (непотрібне при різниці температур < 5°C)"
},
"VoltageCalibration": {
"displayText": "Калібрування\nнапруги",
"description": "Калібрування напруги входу. Налаштувати кнопками, натиснути і утримати щоб завершити."
},
"PowerPulsePower": {
"displayText": "Пульс.\nНавантаж.",
"description": "Деякі PowerBank-и з часом вимк. живлення, якщо пристрій споживає дуже мало енергії)"
},
"PowerPulseWait": {
"displayText": "Час між імп.\nнапруги",
"description": "Час між імпульсами напруги яка не дає PowerBank-у заснути (x 2.5с)"
},
"PowerPulseDuration": {
"displayText": "Тривалість\nімп. напруги",
"description": "Тривалість імпульсу напруги яка не дає PowerBank-у заснути (x 250мс)"
},
"SettingsReset": {
"displayText": "Скинути всі\nналаштування?",
"description": "Скидання всіх параметрів до стандартних значень."
},
"LanguageSwitch": {
"displayText": "Мова:\n UK Українська",
"description": ""
}
}
}

View File

@@ -1,341 +1,251 @@
{
"languageCode": "VI",
"languageLocalName": "Tieng Viet",
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "Ban chac chan muon khôi phuc tat ca cài đat ve mac đinh?",
"UVLOWarningString": "DC thap",
"UndervoltageString": "Đien áp thap",
"InputVoltageString": "Đau vào V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Đang ngu...",
"SleepingTipAdvancedString": "Meo:",
"OffString": "Tat",
"DeviceFailedValidationWarning": "Your device is most likely a counterfeit!"
},
"messagesWarn": {
"CJCCalibrationDone": [
"Calibration",
"done!"
],
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Mot so cài đat",
"đã thay đoi"
],
"NoAccelerometerMessage": [
"Không phát hien",
"gia toc ke!"
],
"NoPowerDeliveryMessage": [
"Không phát hien",
"USB-PD IC!"
],
"LockingKeysString": "Đã khóa",
"UnlockingKeysString": "Mo khóa",
"WarningKeysLockedString": "Đã khóa!",
"WarningThermalRunaway": [
"Nhiet",
"Tat gia nhiet"
]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "O",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "R",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Cài đat",
"nguon đien"
],
"desc": ""
},
"SolderingMenu": {
"text2": [
"Cài đat",
"tay hàn"
],
"desc": ""
},
"PowerSavingMenu": {
"text2": [
"Che đo",
"ngu"
],
"desc": ""
},
"UIMenu": {
"text2": [
"Giao dien",
"nguoi dùng"
],
"desc": ""
},
"AdvancedMenu": {
"text2": [
"Cài đat",
"nâng cao"
],
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Nguon",
"đien"
],
"desc": "Nguon đien, đat đien áp giam. (DC 10V) (S 3.3V moi cell, tat gioi han công suat)"
},
"MinVolCell": {
"text2": [
"Voltage",
"toi thieu"
],
"desc": "Đien áp toi thieu cho phép trên moi cell (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"text2": [
"QC",
"voltage"
],
"desc": "Đien áp QC toi đa mà tay hàn yêu cau"
},
"PDNegTimeout": {
"text2": [
"PD",
"sau"
],
"desc": "Thoi gian cho đàm phán PD trong các buoc 100ms đe tuong thích voi mot so bo sac QC"
},
"BoostTemperature": {
"text2": [
"Tăng",
"nhiet đo"
],
"desc": "Nhiet đo dùng trong che đo \"tăng cuong\""
},
"AutoStart": {
"text2": [
"Nhiet đo",
"đang tăng"
],
"desc": "- O=tat | S=nhiet đo hàn | Z=cho o nhiet đo ngu đen khi cu đong | R=cho mà không gia nhiet đen khi cu đong"
},
"TempChangeShortStep": {
"text2": [
"Thay đoi n.đo",
"an nút nhanh"
],
"desc": "Biên đo tăng/giam nhiet đo khi an nút nhanh"
},
"TempChangeLongStep": {
"text2": [
"Thay đoi n.đo",
"an nút lâu"
],
"desc": "Biên đo tăng/giam nhiet đo khi an nút lâu"
},
"LockingMode": {
"text2": [
"Cho phép khóa",
"các nút"
],
"desc": "Trong khi hàn, giu ca 2 nút đe khóa(D=tat | B=chi che đo tăng cuong | F=khóa hoàn toàn)"
},
"MotionSensitivity": {
"text2": [
"Cam bien",
"cu đong"
],
"desc": "- 0=tat | 1=đo nhay thap nhat| ... | 9=đo nhay cao nhat"
},
"SleepTemperature": {
"text2": [
"Nhiet đo",
"khi ngu"
],
"desc": "Giam nhiet đo khi o \"Che đo ngu\""
},
"SleepTimeout": {
"text2": [
"Ngu",
"sau"
],
"desc": "- thoi gian truoc khi \"Che đo ngu\" bat đau (s=giây | m=phút)"
},
"ShutdownTimeout": {
"text2": [
"Tat",
"sau"
],
"desc": "- khoang thoi gian truoc khi tay hàn tat (m=phút)"
},
"HallEffSensitivity": {
"text2": [
"Hall",
"đo nhay"
],
"desc": "Đo nhay cam bien Hall đe phát hien che đo ngu (0=tat | 1=ít nhay nhat |...| 9=nhay nhat)"
},
"TemperatureUnit": {
"text2": [
"Đon vi",
"nhiet đo"
],
"desc": "C= Đo C | F= Đo F"
},
"DisplayRotation": {
"text2": [
"Huong",
"hien thi"
],
"desc": "- R=huong tay phai | L=huong tay trái | A=tu đong"
},
"CooldownBlink": {
"text2": [
"Nguoi đi",
"chop mat"
],
"desc": "-Nhap nháy nhiet đo sau khi viec gia nhiet tam dung trong khi mui hàn van nóng"
},
"ScrollingSpeed": {
"text2": [
"Toc đo",
"cuon"
],
"desc": "Toc đo cuon văn ban(S=cham | F=nhanh)"
},
"ReverseButtonTempChange": {
"text2": [
"Đao nguoc",
"nút + -"
],
"desc": "Đao nguoc chuc năng các nút đieu chinh nhiet đo"
},
"AnimSpeed": {
"text2": [
"Toc đo",
"hoat anh"
],
"desc": "-Toc đo cua hoat anh menu (O=tat | S=cham | M=trung bình | F=nhanh)"
},
"AnimLoop": {
"text2": [
"Hoat anh",
"lap lai"
],
"desc": "Lap lai các hoat anh trong màn hình chính"
},
"Brightness": {
"text2": [
"Đo tuong phan",
"màn hình"
],
"desc": "-Đieu chinh đo sáng màn hình OLED"
},
"ColourInversion": {
"text2": [
"Đao nguoc màu",
"màn hình"
],
"desc": "-Đao nguoc màu màn hình OLED"
},
"LOGOTime": {
"text2": [
"Boot logo",
"duration"
],
"desc": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"text2": [
"Chi tiet",
"màn hình cho"
],
"desc": "- hien thi thông tin chi tiet bang phông chu nho hon trên màn hình cho"
},
"AdvancedSoldering": {
"text2": [
"Chi tiet",
"màn hình hàn"
],
"desc": "-Hien thi thông tin bang phông chu nho hon trên màn hình hàn"
},
"PowerLimit": {
"text2": [
"Công suat",
"gioi han"
],
"desc": "-Công suat toi đa mà tay hàn có the su dung (W=watt)"
},
"CalibrateCJC": {
"text2": [
"Calibrate CJC",
"at next boot"
],
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"text2": [
"Hieu chinh",
"đien áp đau vào?"
],
"desc": "-bat đau hieu chuan VIN (nhan và giu đe thoát)"
},
"PowerPulsePower": {
"text2": [
"Công suat",
"kích nguon"
],
"desc": "-Cuong đo công suat kích nguon (watt)"
},
"PowerPulseWait": {
"text2": [
"Trì hoãn",
"đien áp kích"
],
"desc": "Trì hoãn truoc khi kích hoat kích nguon(x 2,5 giây)"
},
"PowerPulseDuration": {
"text2": [
"Thoi luong",
"kích nguon"
],
"desc": "-thoi luong kích nguon (x 250ms)"
},
"SettingsReset": {
"text2": [
"Khôi phuc",
"cài đat goc?"
],
"desc": "-đat lai tat ca cài đat ve mac đinh"
},
"LanguageSwitch": {
"text2": [
"Ngôn ngu:",
" VI Tieng Viet"
],
"desc": ""
}
}
}
{
"languageCode": "VI",
"languageLocalName": "Tieng Viet",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Mot so cài đat\nđã thay đoi"
},
"NoAccelerometerMessage": {
"message": "Không phát hien\ngia toc ke!"
},
"NoPowerDeliveryMessage": {
"message": "Không phát hien\nUSB-PD IC!"
},
"LockingKeysString": {
"message": "Đã khóa"
},
"UnlockingKeysString": {
"message": "Mo khóa"
},
"WarningKeysLockedString": {
"message": "Đã khóa!"
},
"WarningThermalRunaway": {
"message": "Nhiet\nTat gia nhiet"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Ban chac chan muon khôi phuc tat ca cài đat ve mac đinh?"
},
"UVLOWarningString": {
"message": "DC thap"
},
"UndervoltageString": {
"message": "Đien áp thap\n"
},
"InputVoltageString": {
"message": "Đau vào V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Đang ngu...\n"
},
"SleepingTipAdvancedString": {
"message": "Meo: \n"
},
"OffString": {
"message": "Tat"
},
"DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!"
}
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "O",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Cài đat\nnguon đien",
"description": ""
},
"SolderingMenu": {
"displayText": "Cài đat\ntay hàn",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Che đo\nngu",
"description": ""
},
"UIMenu": {
"displayText": "Giao dien\nnguoi dùng",
"description": ""
},
"AdvancedMenu": {
"displayText": "Cài đat\nnâng cao",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Nguon\nđien",
"description": "Nguon đien, đat đien áp giam. (DC 10V) (S 3.3V moi cell, tat gioi han công suat)"
},
"MinVolCell": {
"displayText": "Voltage\ntoi thieu",
"description": "Đien áp toi thieu cho phép trên moi cell (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nvoltage",
"description": "Đien áp QC toi đa mà tay hàn yêu cau"
},
"PDNegTimeout": {
"displayText": "PD\nsau",
"description": "Thoi gian cho đàm phán PD trong các buoc 100ms đe tuong thích voi mot so bo sac QC"
},
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Tăng\nnhiet đo",
"description": "Nhiet đo dùng trong che đo \"tăng cuong\""
},
"AutoStart": {
"displayText": "Nhiet đo\nđang tăng",
"description": "- O=tat | S=nhiet đo hàn | Z=cho o nhiet đo ngu đen khi cu đong | R=cho mà không gia nhiet đen khi cu đong"
},
"TempChangeShortStep": {
"displayText": "Thay đoi n.đo\nan nút nhanh",
"description": "Biên đo tăng/giam nhiet đo khi an nút nhanh"
},
"TempChangeLongStep": {
"displayText": "Thay đoi n.đo\nan nút lâu",
"description": "Biên đo tăng/giam nhiet đo khi an nút lâu"
},
"LockingMode": {
"displayText": "Cho phép khóa\ncác nút",
"description": "Trong khi hàn, giu ca 2 nút đe khóa(D=tat | B=chi che đo tăng cuong | F=khóa hoàn toàn)"
},
"MotionSensitivity": {
"displayText": "Cam bien\ncu đong",
"description": "- 0=tat | 1=đo nhay thap nhat| ... | 9=đo nhay cao nhat"
},
"SleepTemperature": {
"displayText": "Nhiet đo\nkhi ngu",
"description": "Giam nhiet đo khi o \"Che đo ngu\""
},
"SleepTimeout": {
"displayText": "Ngu\nsau",
"description": "- thoi gian truoc khi \"Che đo ngu\" bat đau (s=giây | m=phút)"
},
"ShutdownTimeout": {
"displayText": "Tat\nsau",
"description": "- khoang thoi gian truoc khi tay hàn tat (m=phút)"
},
"HallEffSensitivity": {
"displayText": "Hall\nđo nhay",
"description": "Đo nhay cam bien Hall đe phát hien che đo ngu (0=tat | 1=ít nhay nhat |...| 9=nhay nhat)"
},
"TemperatureUnit": {
"displayText": "Đon vi\nnhiet đo",
"description": "C= Đo C | F= Đo F"
},
"DisplayRotation": {
"displayText": "Huong\nhien thi",
"description": "- R=huong tay phai | L=huong tay trái | A=tu đong"
},
"CooldownBlink": {
"displayText": "Nguoi đi\nchop mat",
"description": "-Nhap nháy nhiet đo sau khi viec gia nhiet tam dung trong khi mui hàn van nóng"
},
"ScrollingSpeed": {
"displayText": "Toc đo\ncuon",
"description": "Toc đo cuon văn ban(S=cham | F=nhanh)"
},
"ReverseButtonTempChange": {
"displayText": "Đao nguoc\nnút + -",
"description": "Đao nguoc chuc năng các nút đieu chinh nhiet đo"
},
"AnimSpeed": {
"displayText": "Toc đo\nhoat anh",
"description": "-Toc đo cua hoat anh menu (O=tat | S=cham | M=trung bình | F=nhanh)"
},
"AnimLoop": {
"displayText": "Hoat anh\nlap lai",
"description": "Lap lai các hoat anh trong màn hình chính"
},
"Brightness": {
"displayText": "Đo tuong phan\nmàn hình",
"description": "-Đieu chinh đo sáng màn hình OLED"
},
"ColourInversion": {
"displayText": "Đao nguoc màu\nmàn hình",
"description": "-Đao nguoc màu màn hình OLED"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Chi tiet\nmàn hình cho",
"description": "- hien thi thông tin chi tiet bang phông chu nho hon trên màn hình cho"
},
"AdvancedSoldering": {
"displayText": "Chi tiet\nmàn hình hàn",
"description": "-Hien thi thông tin bang phông chu nho hon trên màn hình hàn"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Công suat\ngioi han",
"description": "-Công suat toi đa mà tay hàn có the su dung (W=watt)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Hieu chinh\nđien áp đau vào?",
"description": "-bat đau hieu chuan VIN (nhan và giu đe thoát)"
},
"PowerPulsePower": {
"displayText": "Công suat\nkích nguon",
"description": "-Cuong đo công suat kích nguon (watt)"
},
"PowerPulseWait": {
"displayText": "Trì hoãn\nđien áp kích",
"description": "Trì hoãn truoc khi kích hoat kích nguon(x 2,5 giây)"
},
"PowerPulseDuration": {
"displayText": "Thoi luong\nkích nguon",
"description": "-thoi luong kích nguon (x 250ms)"
},
"SettingsReset": {
"displayText": "Khôi phuc\ncài đat goc?",
"description": "-đat lai tat ca cài đat ve mac đinh"
},
"LanguageSwitch": {
"displayText": "Ngôn ngu:\n VI Tieng Viet",
"description": ""
}
}
}

View File

@@ -1,209 +1,251 @@
{
"languageCode": "YUE_HK",
"languageLocalName": "廣東話 (香港)",
"tempUnitFahrenheit": true,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "你係咪確定要將全部設定重設到預設值?",
"UVLOWarningString": "電壓過低",
"UndervoltageString": "Undervoltage",
"InputVoltageString": "Input V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Sleeping...",
"SleepingTipAdvancedString": "Tip:",
"OffString": "關",
"DeviceFailedValidationWarning": "依支焫雞好有可能係冒牌貨!"
},
"messagesWarn": {
"CJCCalibrationDone": "Calibration done!",
"ResetOKMessage": "已重設!",
"SettingsResetMessage": "設定已被重設!",
"NoAccelerometerMessage": "未能偵測加速度計",
"NoPowerDeliveryMessage": "未能偵測PD晶片",
"LockingKeysString": "已鎖定",
"UnlockingKeysString": "已解除鎖定",
"WarningKeysLockedString": "!撳掣鎖定!",
"WarningThermalRunaway": "加熱失控"
},
"characters": {
"SettingRightChar": "右",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "關",
"SettingSlowChar": "慢",
"SettingMediumChar": "中",
"SettingFastChar": "快",
"SettingStartNoneChar": "無",
"SettingStartSolderingChar": "焊",
"SettingStartSleepChar": "待",
"SettingStartSleepOffChar": "室",
"SettingSensitivityOff": "關",
"SettingSensitivityLow": "低",
"SettingSensitivityMedium": "中",
"SettingSensitivityHigh": "高",
"SettingLockDisableChar": "無",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
"text2": "電源設定",
"desc": ""
},
"SolderingMenu": {
"text2": "焊接設定",
"desc": ""
},
"PowerSavingMenu": {
"text2": "待機設定",
"desc": ""
},
"UIMenu": {
"text2": "使用者介面",
"desc": ""
},
"AdvancedMenu": {
"text2": "進階設定",
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": "電源",
"desc": "輸入電源;設定自動停機電壓 <DC 10V> <S 鋰電池以每粒3.3V計算;依個設定會停用功率限制>"
},
"MinVolCell": {
"text2": "最低電壓",
"desc": "每粒電池嘅最低可用電壓 <伏特> <3S: 3.0V - 3.7V, 4/5/6S: 2.4V - 3.7V>"
},
"QCMaxVoltage": {
"text2": "QC電壓",
"desc": "使用QC電源時請求嘅最高目標電壓"
},
"PDNegTimeout": {
"text2": "PD逾時",
"desc": "設定USB PD協定交涉嘅逾時時限為兼容某啲QC電源而設 <x100ms亳秒>"
},
"BoostTemperature": {
"text2": "增熱温度",
"desc": "喺增熱模式時使用嘅温度"
},
"AutoStart": {
"text2": "自動啓用",
"desc": "開機時自動啓用 <無=停用 | 焊=焊接模式 | 待=待機模式 | 室=室温待機>"
},
"TempChangeShortStep": {
"text2": "温度調整 短",
"desc": "調校温度時短撳一下嘅温度變幅"
},
"TempChangeLongStep": {
"text2": "温度調整 長",
"desc": "調校温度時長撳嘅温度變幅"
},
"LockingMode": {
"text2": "撳掣鎖定",
"desc": "喺焊接模式時,同時長撳兩粒掣啓用撳掣鎖定 <無=停用 | 增=淨係容許增熱模式 | 全=鎖定全部>"
},
"MotionSensitivity": {
"text2": "動作敏感度",
"desc": "0=停用 | 1=最低敏感度 | ... | 9=最高敏感度"
},
"SleepTemperature": {
"text2": "待機温度",
"desc": "喺待機模式時嘅焫雞咀温度"
},
"SleepTimeout": {
"text2": "待機延時",
"desc": "自動進入待機模式前嘅閒置等候時間 <s=秒 | m=分鐘>"
},
"ShutdownTimeout": {
"text2": "自動熄機",
"desc": "自動熄機前嘅閒置等候時間 <m=分鐘>"
},
"HallEffSensitivity": {
"text2": "磁場敏感度",
"desc": "磁場感應器用嚟啓動待機模式嘅敏感度 <0=停用 | 1=最低敏感度 | ... | 9=最高敏感度>"
},
"TemperatureUnit": {
"text2": "温度單位",
"desc": "C=攝氏 | F=華氏"
},
"DisplayRotation": {
"text2": "畫面方向",
"desc": "右=使用右手 | 左=使用左手 | 自=自動"
},
"CooldownBlink": {
"text2": "降温時閃爍",
"desc": "停止加熱之後,當焫雞咀仲係熱嗰陣閃爍畫面"
},
"ScrollingSpeed": {
"text2": "捲動速度",
"desc": "解說文字嘅捲動速度"
},
"ReverseButtonTempChange": {
"text2": "反轉加減掣",
"desc": "反轉調校温度時加減掣嘅方向"
},
"AnimSpeed": {
"text2": "動畫速度",
"desc": "功能表圖示動畫嘅速度 <關=不顯示動畫 | 慢=慢速 | 中=中速 | 快=快速>"
},
"AnimLoop": {
"text2": "動畫循環",
"desc": "循環顯示功能表圖示動畫"
},
"Brightness": {
"text2": "熒幕亮度",
"desc": "設定OLED熒幕嘅亮度"
},
"ColourInversion": {
"text2": "熒幕反轉色",
"desc": "反轉OLED熒幕嘅黑白色"
},
"LOGOTime": {
"text2": "開機畫面",
"desc": "設定開機畫面顯示時長 <s=秒>"
},
"AdvancedIdle": {
"text2": "詳細閒置畫面",
"desc": "喺閒置畫面以英文細字顯示詳細嘅資料"
},
"AdvancedSoldering": {
"text2": "詳細焊接畫面",
"desc": "喺焊接模式畫面以英文細字顯示詳細嘅資料"
},
"PowerLimit": {
"text2": "功率限制",
"desc": "限制焫雞可用嘅最大功率 <W=watt>"
},
"CalibrateCJC": {
"text2": "校正CJC",
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"text2": "輸入電壓校正?",
"desc": "開始校正VIN輸入電壓 <長撳以退出>"
},
"PowerPulsePower": {
"text2": "電源脈衝",
"desc": "為保持電源喚醒而通電所用嘅功率 <watt>"
},
"PowerPulseWait": {
"text2": "電源脈衝間隔",
"desc": "為保持電源喚醒,每次通電之間嘅間隔時間 <x2.5s(秒)>"
},
"PowerPulseDuration": {
"text2": "電源脈衝時長",
"desc": "為保持電源喚醒,每次通電脈衝嘅時間長度 <x250ms亳秒>"
},
"SettingsReset": {
"text2": "全部重設?",
"desc": "將所有設定重設到預設值"
},
"LanguageSwitch": {
"text2": "語言: 廣東話",
"desc": ""
}
}
}
{
"languageCode": "YUE_HK",
"languageLocalName": "廣東話 (香港)",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration done!"
},
"ResetOKMessage": {
"message": "已重設!"
},
"SettingsResetMessage": {
"message": "設定已被重設!"
},
"NoAccelerometerMessage": {
"message": "未能偵測加速度計"
},
"NoPowerDeliveryMessage": {
"message": "未能偵測PD晶片"
},
"LockingKeysString": {
"message": "已鎖定"
},
"UnlockingKeysString": {
"message": "已解除鎖定"
},
"WarningKeysLockedString": {
"message": "!撳掣鎖定!"
},
"WarningThermalRunaway": {
"message": "加熱失控"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating"
},
"SettingsResetWarning": {
"message": "你係咪確定要將全部設定重設到預設值?"
},
"UVLOWarningString": {
"message": "電壓過低"
},
"UndervoltageString": {
"message": "Undervoltage"
},
"InputVoltageString": {
"message": "Input V: "
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Sleeping..."
},
"SleepingTipAdvancedString": {
"message": "Tip: "
},
"OffString": {
"message": "關"
},
"DeviceFailedValidationWarning": {
"message": "依支焫雞好有可能係冒牌貨!"
}
},
"characters": {
"SettingRightChar": "",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "關",
"SettingSlowChar": "慢",
"SettingMediumChar": "",
"SettingFastChar": "快",
"SettingStartNoneChar": "無",
"SettingStartSolderingChar": "焊",
"SettingStartSleepChar": "",
"SettingStartSleepOffChar": "室",
"SettingLockDisableChar": "無",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
"displayText": "電源設定",
"description": ""
},
"SolderingMenu": {
"displayText": "焊接設定",
"description": ""
},
"PowerSavingMenu": {
"displayText": "待機設定",
"description": ""
},
"UIMenu": {
"displayText": "使用者介面",
"description": ""
},
"AdvancedMenu": {
"displayText": "進階設定",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "電源",
"description": "輸入電源;設定自動停機電壓 <DC 10V> <S 鋰電池以每粒3.3V計算;依個設定會停用功率限制>"
},
"MinVolCell": {
"displayText": "最低電壓",
"description": "每粒電池嘅最低可用電壓 <伏特> <3S: 3.0V - 3.7V, 4/5/6S: 2.4V - 3.7V>"
},
"QCMaxVoltage": {
"displayText": "QC電壓",
"description": "使用QC電源時請求嘅最高目標電壓"
},
"PDNegTimeout": {
"displayText": "PD逾時",
"description": "設定USB PD協定交涉嘅逾時時限為兼容某啲QC電源而設 <x100ms亳秒>"
},
"PDVpdo": {
"displayText": "PD VPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "增熱温度",
"description": "喺增熱模式時使用嘅温度"
},
"AutoStart": {
"displayText": "自動啓用",
"description": "開機時自動啓用 <無=停用 | 焊=焊接模式 | 待=待機模式 | 室=室温待機>"
},
"TempChangeShortStep": {
"displayText": "温度調整 短",
"description": "調校温度時短撳一下嘅温度變幅"
},
"TempChangeLongStep": {
"displayText": "温度調整 長",
"description": "調校温度時長撳嘅温度變幅"
},
"LockingMode": {
"displayText": "撳掣鎖定",
"description": "喺焊接模式時,同時長撳兩粒掣啓用撳掣鎖定 <無=停用 | 增=淨係容許增熱模式 | 全=鎖定全部>"
},
"MotionSensitivity": {
"displayText": "動作敏感度",
"description": "0=停用 | 1=最低敏感度 | ... | 9=最高敏感度"
},
"SleepTemperature": {
"displayText": "待機温度",
"description": "喺待機模式時嘅焫雞咀温度"
},
"SleepTimeout": {
"displayText": "待機延時",
"description": "自動進入待機模式前嘅閒置等候時間 <s=秒 | m=分鐘>"
},
"ShutdownTimeout": {
"displayText": "自動熄機",
"description": "自動熄機前嘅閒置等候時間 <m=分鐘>"
},
"HallEffSensitivity": {
"displayText": "磁場敏感度",
"description": "磁場感應器用嚟啓動待機模式嘅敏感度 <0=停用 | 1=最低敏感度 | ... | 9=最高敏感度>"
},
"TemperatureUnit": {
"displayText": "温度單位",
"description": "C=攝氏 | F=華氏"
},
"DisplayRotation": {
"displayText": "畫面方向",
"description": "右=使用右手 | 左=使用左手 | 自=自動"
},
"CooldownBlink": {
"displayText": "降温時閃爍",
"description": "停止加熱之後,當焫雞咀仲係熱嗰陣閃爍畫面"
},
"ScrollingSpeed": {
"displayText": "捲動速度",
"description": "解說文字嘅捲動速度"
},
"ReverseButtonTempChange": {
"displayText": "反轉加減掣",
"description": "反轉調校温度時加減掣嘅方向"
},
"AnimSpeed": {
"displayText": "動畫速度",
"description": "功能表圖示動畫嘅速度 <關=不顯示動畫 | 慢=慢速 | 中=中速 | 快=快速>"
},
"AnimLoop": {
"displayText": "動畫循環",
"description": "循環顯示功能表圖示動畫"
},
"Brightness": {
"displayText": "熒幕亮度",
"description": "設定OLED熒幕嘅亮度"
},
"ColourInversion": {
"displayText": "熒幕反轉色",
"description": "反轉OLED熒幕嘅黑白色"
},
"LOGOTime": {
"displayText": "開機畫面",
"description": "設定開機畫面顯示時長 <s=秒>"
},
"AdvancedIdle": {
"displayText": "詳細閒置畫面",
"description": "喺閒置畫面以英文細字顯示詳細嘅資料"
},
"AdvancedSoldering": {
"displayText": "詳細焊接畫面",
"description": "喺焊接模式畫面以英文細字顯示詳細嘅資料"
},
"BluetoothLE": {
"displayText": "Bluetooth",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "功率限制",
"description": "限制焫雞可用嘅最大功率 <W=watt>"
},
"CalibrateCJC": {
"displayText": "校正CJC",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"displayText": "輸入電壓校正?",
"description": "開始校正VIN輸入電壓 <長撳以退出>"
},
"PowerPulsePower": {
"displayText": "電源脈衝",
"description": "為保持電源喚醒而通電所用嘅功率 <watt>"
},
"PowerPulseWait": {
"displayText": "電源脈衝間隔",
"description": "為保持電源喚醒,每次通電之間嘅間隔時間 <x2.5s(秒)>"
},
"PowerPulseDuration": {
"displayText": "電源脈衝時長",
"description": "為保持電源喚醒,每次通電脈衝嘅時間長度 <x250ms亳秒>"
},
"SettingsReset": {
"displayText": "全部重設?",
"description": "將所有設定重設到預設值"
},
"LanguageSwitch": {
"displayText": "語言: 廣東話",
"description": ""
}
}
}

View File

@@ -1,209 +1,251 @@
{
"languageCode": "ZH_CN",
"languageLocalName": "简体中文",
"tempUnitFahrenheit": true,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "你是否确定要将全部设定重置为默认值?",
"UVLOWarningString": "电压过低",
"UndervoltageString": "Undervoltage",
"InputVoltageString": "VIN: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Zzzz...",
"SleepingTipAdvancedString": "--->",
"OffString": "关",
"DeviceFailedValidationWarning": "这支电烙铁很有可能是冒牌货!"
},
"messagesWarn": {
"CJCCalibrationDone": "Calibration done!",
"ResetOKMessage": "已重置!",
"SettingsResetMessage": "设定已被重置!",
"NoAccelerometerMessage": "未检测到加速度计",
"NoPowerDeliveryMessage": "未检测到PD电路",
"LockingKeysString": "已锁定",
"UnlockingKeysString": "已解锁",
"WarningKeysLockedString": "!按键锁定!",
"WarningThermalRunaway": "加热失控"
},
"characters": {
"SettingRightChar": "右",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "关",
"SettingSlowChar": "慢",
"SettingMediumChar": "中",
"SettingFastChar": "快",
"SettingStartNoneChar": "无",
"SettingStartSolderingChar": "焊",
"SettingStartSleepChar": "待",
"SettingStartSleepOffChar": "室",
"SettingSensitivityOff": "关",
"SettingSensitivityLow": "低",
"SettingSensitivityMedium": "中",
"SettingSensitivityHigh": "高",
"SettingLockDisableChar": "无",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
"text2": "电源设置",
"desc": ""
},
"SolderingMenu": {
"text2": "焊接设置",
"desc": ""
},
"PowerSavingMenu": {
"text2": "待机设置",
"desc": ""
},
"UIMenu": {
"text2": "用户界面",
"desc": ""
},
"AdvancedMenu": {
"text2": "高级设置",
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": "下限电压",
"desc": "设置自动停机电压 <DC=10V | S=每节锂电池3.3V;此设置会禁用功率限制>"
},
"MinVolCell": {
"text2": "最低电压",
"desc": "每节电池的最低允许电压 <V伏特> <3S: 3.0V - 3.7V, 4/5/6S: 2.4V - 3.7V>"
},
"QCMaxVoltage": {
"text2": "QC电压",
"desc": "使用QC电源时请求的最高目标电压"
},
"PDNegTimeout": {
"text2": "PD超时",
"desc": "设定USB-PD协议交涉的超时时限为兼容某些QC电源而设 <x100ms亳秒>"
},
"BoostTemperature": {
"text2": "增热温度",
"desc": "增热模式时使用的温度"
},
"AutoStart": {
"text2": "自动启动",
"desc": "开机时自动启动 <无=禁用 | 焊=焊接模式 | 待=待机模式 | 室=室温待机>"
},
"TempChangeShortStep": {
"text2": "短按温度调整",
"desc": "调校温度时短按按键的温度变幅"
},
"TempChangeLongStep": {
"text2": "长按温度调整",
"desc": "调校温度时长按按键的温度变幅"
},
"LockingMode": {
"text2": "按键锁定",
"desc": "焊接模式时,同时长按两个按键启用按键锁定 <无=禁用 | 增=只容许增热模式 | 全=完全锁定>"
},
"MotionSensitivity": {
"text2": "动作灵敏度",
"desc": "0=禁用 | 1=最低灵敏度 | ... | 9=最高灵敏度"
},
"SleepTemperature": {
"text2": "待机温度",
"desc": "待机模式时的烙铁头温度"
},
"SleepTimeout": {
"text2": "待机超时",
"desc": "自动进入待机模式前的等候时间 <s=秒 | m=分钟>"
},
"ShutdownTimeout": {
"text2": "自动关机",
"desc": "自动关机前的等候时间 <m=分钟>"
},
"HallEffSensitivity": {
"text2": "磁场灵敏度",
"desc": "霍尔效应传感器用作启动待机模式的灵敏度 <0=禁用 | 1=最低灵敏度 | ... | 9=最高灵敏度>"
},
"TemperatureUnit": {
"text2": "温度单位",
"desc": "C=摄氏 | F=华氏"
},
"DisplayRotation": {
"text2": "显示方向",
"desc": "右=右手 | 左=左手 | 自=自动"
},
"CooldownBlink": {
"text2": "降温时闪显",
"desc": "停止加热之后,闪动温度显示提醒烙铁头仍处于高温状态"
},
"ScrollingSpeed": {
"text2": "滚动速度",
"desc": "解说文字的滚动速度"
},
"ReverseButtonTempChange": {
"text2": "调换加减键",
"desc": "调校温度时更换加减键的方向"
},
"AnimSpeed": {
"text2": "动画速度",
"desc": "主菜单中功能图标动画的播放速度 <关=不显示动画 | 慢=慢速 | 中=中速 | 快=快速>"
},
"AnimLoop": {
"text2": "动画循环",
"desc": "主菜单中循环播放功能图标动画"
},
"Brightness": {
"text2": "屏幕亮度",
"desc": "调整OLED屏幕的亮度"
},
"ColourInversion": {
"text2": "反转屏幕颜色",
"desc": "反转OLED黑/白屏幕"
},
"LOGOTime": {
"text2": "开机画面",
"desc": "设定开机画面显示时长 <s=秒>"
},
"AdvancedIdle": {
"text2": "闲置画面详情",
"desc": "闲置画面以英语小字体显示详情"
},
"AdvancedSoldering": {
"text2": "焊接画面详情",
"desc": "焊接模式画面以英语小字体显示详请"
},
"PowerLimit": {
"text2": "功率限制",
"desc": "限制烙铁可用的最大功率 <W=瓦特>"
},
"CalibrateCJC": {
"text2": "校正CJC",
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"text2": "输入电压校正?",
"desc": "开始校正输入电压VIN<长按以退出>"
},
"PowerPulsePower": {
"text2": "电源脉冲",
"desc": "为保持电源处于唤醒状态所用的功率 <Watt瓦特>"
},
"PowerPulseWait": {
"text2": "电源脉冲间隔",
"desc": "为保持电源处于唤醒状态,每次通电之间的间隔时间 <x2.5s(秒)>"
},
"PowerPulseDuration": {
"text2": "电源脉冲时长",
"desc": "为保持电源处于唤醒状态,每次通电脉冲的时间长度 <x250ms亳秒>"
},
"SettingsReset": {
"text2": "全部重置?",
"desc": "将所有设定重置为默认值"
},
"LanguageSwitch": {
"text2": "语言:简体中文",
"desc": ""
}
}
}
{
"languageCode": "ZH_CN",
"languageLocalName": "简体中文",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration done!"
},
"ResetOKMessage": {
"message": "已重置!"
},
"SettingsResetMessage": {
"message": "设定已被重置!"
},
"NoAccelerometerMessage": {
"message": "未检测到加速度计"
},
"NoPowerDeliveryMessage": {
"message": "未检测到PD电路"
},
"LockingKeysString": {
"message": "已锁定"
},
"UnlockingKeysString": {
"message": "已解锁"
},
"WarningKeysLockedString": {
"message": "!按键锁定!"
},
"WarningThermalRunaway": {
"message": "加热失控"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating"
},
"SettingsResetWarning": {
"message": "你是否确定要将全部设定重置为默认值?"
},
"UVLOWarningString": {
"message": "电压过低"
},
"UndervoltageString": {
"message": "Undervoltage"
},
"InputVoltageString": {
"message": "VIN: "
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Zzzz..."
},
"SleepingTipAdvancedString": {
"message": "<--- "
},
"OffString": {
"message": "关"
},
"DeviceFailedValidationWarning": {
"message": "这支电烙铁很有可能是冒牌货!"
}
},
"characters": {
"SettingRightChar": "",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "关",
"SettingSlowChar": "慢",
"SettingMediumChar": "",
"SettingFastChar": "快",
"SettingStartNoneChar": "无",
"SettingStartSolderingChar": "焊",
"SettingStartSleepChar": "",
"SettingStartSleepOffChar": "室",
"SettingLockDisableChar": "无",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
"displayText": "电源设置",
"description": ""
},
"SolderingMenu": {
"displayText": "焊接设置",
"description": ""
},
"PowerSavingMenu": {
"displayText": "待机设置",
"description": ""
},
"UIMenu": {
"displayText": "用户界面",
"description": ""
},
"AdvancedMenu": {
"displayText": "高级设置",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "下限电压",
"description": "设置自动停机电压 <DC=10V | S=每节锂电池3.3V;此设置会禁用功率限制>"
},
"MinVolCell": {
"displayText": "最低电压",
"description": "每节电池的最低允许电压 <V伏特> <3S: 3.0V - 3.7V, 4/5/6S: 2.4V - 3.7V>"
},
"QCMaxVoltage": {
"displayText": "QC电压",
"description": "使用QC电源时请求的最高目标电压"
},
"PDNegTimeout": {
"displayText": "PD超时",
"description": "设定USB-PD协议交涉的超时时限为兼容某些QC电源而设 <x100ms亳秒>"
},
"PDVpdo": {
"displayText": "PD VPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "增热温度",
"description": "增热模式时使用的温度"
},
"AutoStart": {
"displayText": "自动启动",
"description": "开机时自动启动 <无=禁用 | 焊=焊接模式 | 待=待机模式 | 室=室温待机>"
},
"TempChangeShortStep": {
"displayText": "短按温度调整",
"description": "调校温度时短按按键的温度变幅"
},
"TempChangeLongStep": {
"displayText": "长按温度调整",
"description": "调校温度时长按按键的温度变幅"
},
"LockingMode": {
"displayText": "按键锁定",
"description": "焊接模式时,同时长按两个按键启用按键锁定 <无=禁用 | 增=只容许增热模式 | 全=完全锁定>"
},
"MotionSensitivity": {
"displayText": "动作灵敏度",
"description": "0=禁用 | 1=最低灵敏度 | ... | 9=最高灵敏度"
},
"SleepTemperature": {
"displayText": "待机温度",
"description": "待机模式时的烙铁头温度"
},
"SleepTimeout": {
"displayText": "待机超时",
"description": "自动进入待机模式前的等候时间 <s=秒 | m=分钟>"
},
"ShutdownTimeout": {
"displayText": "自动关机",
"description": "自动关机前的等候时间 <m=分钟>"
},
"HallEffSensitivity": {
"displayText": "磁场灵敏度",
"description": "霍尔效应传感器用作启动待机模式的灵敏度 <0=禁用 | 1=最低灵敏度 | ... | 9=最高灵敏度>"
},
"TemperatureUnit": {
"displayText": "温度单位",
"description": "C=摄氏 | F=华氏"
},
"DisplayRotation": {
"displayText": "显示方向",
"description": "右=右手 | 左=左手 | 自=自动"
},
"CooldownBlink": {
"displayText": "降温时闪显",
"description": "停止加热之后,闪动温度显示提醒烙铁头仍处于高温状态"
},
"ScrollingSpeed": {
"displayText": "滚动速度",
"description": "解说文字的滚动速度"
},
"ReverseButtonTempChange": {
"displayText": "调换加减键",
"description": "调校温度时更换加减键的方向"
},
"AnimSpeed": {
"displayText": "动画速度",
"description": "主菜单中功能图标动画的播放速度 <关=不显示动画 | 慢=慢速 | 中=中速 | 快=快速>"
},
"AnimLoop": {
"displayText": "动画循环",
"description": "主菜单中循环播放功能图标动画"
},
"Brightness": {
"displayText": "屏幕亮度",
"description": "调整OLED屏幕的亮度"
},
"ColourInversion": {
"displayText": "反转屏幕颜色",
"description": "反转OLED黑/白屏幕"
},
"LOGOTime": {
"displayText": "开机画面",
"description": "设定开机画面显示时长 <s=秒>"
},
"AdvancedIdle": {
"displayText": "闲置画面详情",
"description": "闲置画面以英语小字体显示详情"
},
"AdvancedSoldering": {
"displayText": "焊接画面详情",
"description": "焊接模式画面以英语小字体显示详请"
},
"BluetoothLE": {
"displayText": "Bluetooth",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "功率限制",
"description": "限制烙铁可用的最大功率 <W=瓦特>"
},
"CalibrateCJC": {
"displayText": "校正CJC",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"displayText": "输入电压校正?",
"description": "开始校正输入电压VIN<长按以退出>"
},
"PowerPulsePower": {
"displayText": "电源脉冲",
"description": "为保持电源处于唤醒状态所用的功率 <Watt瓦特>"
},
"PowerPulseWait": {
"displayText": "电源脉冲间隔",
"description": "为保持电源处于唤醒状态,每次通电之间的间隔时间 <x2.5s(秒)>"
},
"PowerPulseDuration": {
"displayText": "电源脉冲时长",
"description": "为保持电源处于唤醒状态,每次通电脉冲的时间长度 <x250ms亳秒>"
},
"SettingsReset": {
"displayText": "全部重置?",
"description": "将所有设定重置为默认值"
},
"LanguageSwitch": {
"displayText": "语言:简体中文",
"description": ""
}
}
}

View File

@@ -1,209 +1,251 @@
{
"languageCode": "ZH_TW",
"languageLocalName": "正體中文",
"tempUnitFahrenheit": true,
"messages": {
"SettingsCalibrationWarning": "Before rebooting, make sure tip & handle are at room temperature!",
"CJCCalibrating": "calibrating",
"SettingsResetWarning": "你是否確定要將全部設定重設到預設值?",
"UVLOWarningString": "電壓過低",
"UndervoltageString": "Undervoltage",
"InputVoltageString": "Input V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Sleeping...",
"SleepingTipAdvancedString": "Tip:",
"OffString": "關",
"DeviceFailedValidationWarning": "這支電烙鐵很有可能是冒牌貨!"
},
"messagesWarn": {
"CJCCalibrationDone": "Calibration done!",
"ResetOKMessage": "已重設!",
"SettingsResetMessage": "設定已被重設!",
"NoAccelerometerMessage": "未能偵測加速度計",
"NoPowerDeliveryMessage": "未能偵測PD晶片",
"LockingKeysString": "已鎖定",
"UnlockingKeysString": "已解除鎖定",
"WarningKeysLockedString": "!按鍵鎖定!",
"WarningThermalRunaway": "加熱失控"
},
"characters": {
"SettingRightChar": "右",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "關",
"SettingSlowChar": "慢",
"SettingMediumChar": "中",
"SettingFastChar": "快",
"SettingStartNoneChar": "無",
"SettingStartSolderingChar": "焊",
"SettingStartSleepChar": "待",
"SettingStartSleepOffChar": "室",
"SettingSensitivityOff": "關",
"SettingSensitivityLow": "低",
"SettingSensitivityMedium": "中",
"SettingSensitivityHigh": "高",
"SettingLockDisableChar": "無",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
"text2": "電源設定",
"desc": ""
},
"SolderingMenu": {
"text2": "焊接設定",
"desc": ""
},
"PowerSavingMenu": {
"text2": "待機設定",
"desc": ""
},
"UIMenu": {
"text2": "使用者介面",
"desc": ""
},
"AdvancedMenu": {
"text2": "進階設定",
"desc": ""
}
},
"menuOptions": {
"DCInCutoff": {
"text2": "電源",
"desc": "輸入電源;設定自動停機電壓 <DC 10V> <S 鋰電池以每顆3.3V計算;此設定會停用功率限制>"
},
"MinVolCell": {
"text2": "最低電壓",
"desc": "每顆電池的最低可用電壓 <伏特> <3S: 3.0V - 3.7V, 4/5/6S: 2.4V - 3.7V>"
},
"QCMaxVoltage": {
"text2": "QC電壓",
"desc": "使用QC電源時請求的最高目標電壓"
},
"PDNegTimeout": {
"text2": "PD逾時",
"desc": "設定USB PD協定交涉的逾時時限為兼容某些QC電源而設 <x100ms亳秒>"
},
"BoostTemperature": {
"text2": "增熱溫度",
"desc": "於增熱模式時使用的溫度"
},
"AutoStart": {
"text2": "自動啟用",
"desc": "開機時自動啟用 <無=停用 | 焊=焊接模式 | 待=待機模式 | 室=室溫待機>"
},
"TempChangeShortStep": {
"text2": "溫度調整 短",
"desc": "調校溫度時短按一下的溫度變幅"
},
"TempChangeLongStep": {
"text2": "溫度調整 長",
"desc": "調校溫度時長按按鍵的溫度變幅"
},
"LockingMode": {
"text2": "按鍵鎖定",
"desc": "於焊接模式時,同時長按兩個按鍵啟用按鍵鎖定 <無=停用 | 增=只容許增熱模式 | 全=鎖定全部>"
},
"MotionSensitivity": {
"text2": "動作敏感度",
"desc": "0=停用 | 1=最低敏感度 | ... | 9=最高敏感度"
},
"SleepTemperature": {
"text2": "待機溫度",
"desc": "於待機模式時的烙鐵頭溫度"
},
"SleepTimeout": {
"text2": "待機延時",
"desc": "自動進入待機模式前的閒置等候時間 <s=秒 | m=分鐘>"
},
"ShutdownTimeout": {
"text2": "自動關機",
"desc": "自動關機前的閒置等候時間 <m=分鐘>"
},
"HallEffSensitivity": {
"text2": "磁場敏感度",
"desc": "磁場感應器用作啟動待機模式的敏感度 <0=停用 | 1=最低敏感度 | ... | 9=最高敏感度>"
},
"TemperatureUnit": {
"text2": "溫標",
"desc": "C=攝氏 | F=華氏"
},
"DisplayRotation": {
"text2": "畫面方向",
"desc": "右=使用右手 | 左=使用左手 | 自=自動"
},
"CooldownBlink": {
"text2": "降溫時閃爍",
"desc": "停止加熱之後,當烙鐵頭仍處於高溫時閃爍畫面"
},
"ScrollingSpeed": {
"text2": "捲動速度",
"desc": "解說文字的捲動速度"
},
"ReverseButtonTempChange": {
"text2": "調換加減鍵",
"desc": "調校溫度時調換加減鍵的方向"
},
"AnimSpeed": {
"text2": "動畫速度",
"desc": "功能表圖示動畫的速度 <關=不顯示動畫 | 慢=慢速 | 中=中速 | 快=快速>"
},
"AnimLoop": {
"text2": "動畫循環",
"desc": "循環顯示功能表圖示動畫"
},
"Brightness": {
"text2": "螢幕亮度",
"desc": "設定OLED螢幕的亮度"
},
"ColourInversion": {
"text2": "螢幕反轉色",
"desc": "反轉OLED螢幕的黑白色彩"
},
"LOGOTime": {
"text2": "開機畫面",
"desc": "設定開機畫面顯示時長 <s=秒>"
},
"AdvancedIdle": {
"text2": "詳細閒置畫面",
"desc": "於閒置畫面以英文小字型顯示詳細資料"
},
"AdvancedSoldering": {
"text2": "詳細焊接畫面",
"desc": "於焊接模式畫面以英文小字型顯示詳細資料"
},
"PowerLimit": {
"text2": "功率限制",
"desc": "限制烙鐵可用的最大功率 <W=watt瓦特>"
},
"CalibrateCJC": {
"text2": "校正CJC",
"desc": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"text2": "輸入電壓校正?",
"desc": "開始校正VIN輸入電壓 <長按以退出>"
},
"PowerPulsePower": {
"text2": "電源脈衝",
"desc": "為保持電源喚醒而通電所用的功率 <watt瓦特>"
},
"PowerPulseWait": {
"text2": "電源脈衝間隔",
"desc": "為保持電源喚醒,每次通電之間的間隔時間 <x2.5s(秒)>"
},
"PowerPulseDuration": {
"text2": "電源脈衝時長",
"desc": "為保持電源喚醒,每次通電脈衝的時間長度 <x250ms亳秒>"
},
"SettingsReset": {
"text2": "全部重設?",
"desc": "將所有設定重設到預設值"
},
"LanguageSwitch": {
"text2": "語言:正體中文",
"desc": ""
}
}
}
{
"languageCode": "ZH_TW",
"languageLocalName": "正體中文",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CJCCalibrationDone": {
"message": "Calibration done!"
},
"ResetOKMessage": {
"message": "已重設!"
},
"SettingsResetMessage": {
"message": "設定已被重設!"
},
"NoAccelerometerMessage": {
"message": "未能偵測加速度計"
},
"NoPowerDeliveryMessage": {
"message": "未能偵測PD晶片"
},
"LockingKeysString": {
"message": "已鎖定"
},
"UnlockingKeysString": {
"message": "已解除鎖定"
},
"WarningKeysLockedString": {
"message": "!按鍵鎖定!"
},
"WarningThermalRunaway": {
"message": "加熱失控"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "calibrating"
},
"SettingsResetWarning": {
"message": "你是否確定要將全部設定重設到預設值?"
},
"UVLOWarningString": {
"message": "電壓過低"
},
"UndervoltageString": {
"message": "Undervoltage"
},
"InputVoltageString": {
"message": "Input V: "
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Sleeping..."
},
"SleepingTipAdvancedString": {
"message": "Tip: "
},
"OffString": {
"message": "關"
},
"DeviceFailedValidationWarning": {
"message": "這支電烙鐵很有可能是冒牌貨!"
}
},
"characters": {
"SettingRightChar": "",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "關",
"SettingSlowChar": "慢",
"SettingMediumChar": "",
"SettingFastChar": "快",
"SettingStartNoneChar": "無",
"SettingStartSolderingChar": "焊",
"SettingStartSleepChar": "",
"SettingStartSleepOffChar": "室",
"SettingLockDisableChar": "無",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
"displayText": "電源設定",
"description": ""
},
"SolderingMenu": {
"displayText": "焊接設定",
"description": ""
},
"PowerSavingMenu": {
"displayText": "待機設定",
"description": ""
},
"UIMenu": {
"displayText": "使用者介面",
"description": ""
},
"AdvancedMenu": {
"displayText": "進階設定",
"description": ""
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "電源",
"description": "輸入電源;設定自動停機電壓 <DC 10V> <S 鋰電池以每顆3.3V計算;此設定會停用功率限制>"
},
"MinVolCell": {
"displayText": "最低電壓",
"description": "每顆電池的最低可用電壓 <伏特> <3S: 3.0V - 3.7V, 4/5/6S: 2.4V - 3.7V>"
},
"QCMaxVoltage": {
"displayText": "QC電壓",
"description": "使用QC電源時請求的最高目標電壓"
},
"PDNegTimeout": {
"displayText": "PD逾時",
"description": "設定USB PD協定交涉的逾時時限為兼容某些QC電源而設 <x100ms亳秒>"
},
"PDVpdo": {
"displayText": "PD VPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "增熱溫度",
"description": "於增熱模式時使用的溫度"
},
"AutoStart": {
"displayText": "自動啟用",
"description": "開機時自動啟用 <無=停用 | 焊=焊接模式 | 待=待機模式 | 室=室溫待機>"
},
"TempChangeShortStep": {
"displayText": "溫度調整 短",
"description": "調校溫度時短按一下的溫度變幅"
},
"TempChangeLongStep": {
"displayText": "溫度調整 長",
"description": "調校溫度時長按按鍵的溫度變幅"
},
"LockingMode": {
"displayText": "按鍵鎖定",
"description": "於焊接模式時,同時長按兩個按鍵啟用按鍵鎖定 <無=停用 | 增=只容許增熱模式 | 全=鎖定全部>"
},
"MotionSensitivity": {
"displayText": "動作敏感度",
"description": "0=停用 | 1=最低敏感度 | ... | 9=最高敏感度"
},
"SleepTemperature": {
"displayText": "待機溫度",
"description": "於待機模式時的烙鐵頭溫度"
},
"SleepTimeout": {
"displayText": "待機延時",
"description": "自動進入待機模式前的閒置等候時間 <s=秒 | m=分鐘>"
},
"ShutdownTimeout": {
"displayText": "自動關機",
"description": "自動關機前的閒置等候時間 <m=分鐘>"
},
"HallEffSensitivity": {
"displayText": "磁場敏感度",
"description": "磁場感應器用作啟動待機模式的敏感度 <0=停用 | 1=最低敏感度 | ... | 9=最高敏感度>"
},
"TemperatureUnit": {
"displayText": "溫標",
"description": "C=攝氏 | F=華氏"
},
"DisplayRotation": {
"displayText": "畫面方向",
"description": "右=使用右手 | 左=使用左手 | 自=自動"
},
"CooldownBlink": {
"displayText": "降溫時閃爍",
"description": "停止加熱之後,當烙鐵頭仍處於高溫時閃爍畫面"
},
"ScrollingSpeed": {
"displayText": "捲動速度",
"description": "解說文字的捲動速度"
},
"ReverseButtonTempChange": {
"displayText": "調換加減鍵",
"description": "調校溫度時調換加減鍵的方向"
},
"AnimSpeed": {
"displayText": "動畫速度",
"description": "功能表圖示動畫的速度 <關=不顯示動畫 | 慢=慢速 | 中=中速 | 快=快速>"
},
"AnimLoop": {
"displayText": "動畫循環",
"description": "循環顯示功能表圖示動畫"
},
"Brightness": {
"displayText": "螢幕亮度",
"description": "設定OLED螢幕的亮度"
},
"ColourInversion": {
"displayText": "螢幕反轉色",
"description": "反轉OLED螢幕的黑白色彩"
},
"LOGOTime": {
"displayText": "開機畫面",
"description": "設定開機畫面顯示時長 <s=秒>"
},
"AdvancedIdle": {
"displayText": "詳細閒置畫面",
"description": "於閒置畫面以英文小字型顯示詳細資料"
},
"AdvancedSoldering": {
"displayText": "詳細焊接畫面",
"description": "於焊接模式畫面以英文小字型顯示詳細資料"
},
"BluetoothLE": {
"displayText": "Bluetooth",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "功率限制",
"description": "限制烙鐵可用的最大功率 <W=watt瓦特>"
},
"CalibrateCJC": {
"displayText": "校正CJC",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"displayText": "輸入電壓校正?",
"description": "開始校正VIN輸入電壓 <長按以退出>"
},
"PowerPulsePower": {
"displayText": "電源脈衝",
"description": "為保持電源喚醒而通電所用的功率 <watt瓦特>"
},
"PowerPulseWait": {
"displayText": "電源脈衝間隔",
"description": "為保持電源喚醒,每次通電之間的間隔時間 <x2.5s(秒)>"
},
"PowerPulseDuration": {
"displayText": "電源脈衝時長",
"description": "為保持電源喚醒,每次通電脈衝的時間長度 <x250ms亳秒>"
},
"SettingsReset": {
"displayText": "全部重設?",
"description": "將所有設定重設到預設值"
},
"LanguageSwitch": {
"displayText": "語言:正體中文",
"description": ""
}
}
}

View File

@@ -1,110 +0,0 @@
* {
font-family: sans-serif;
}
h1 {
color: #66A;
}
h1 span {
color: #000;
}
table.data, div.data {
border: 1px solid #888;
width: 100%;
}
div.value {
margin: 2px;
}
.header input {
width: 50% !important;
}
input.short {
width: 150px !important;
font-family: monospace;
}
.header .selected {
display: block;
font-family: monospace;
}
.stringId {
font-family: monospace;
font-weight: bold;
}
.label {
background-color: #ddf;
padding: 0.5em;
width: 20%;
color: #66A;
}
.value {
background-color: #eef;
}
.value .label {
width: 99%;
font-weight: bold;
}
td input {
width: 99%;
}
input.unchanged, input.empty, .unchanged input, .empty input {
background-color: #ffc;
}
input.invalid, .invalid input {
background-color: #f99;
}
.ref, .tran input {
font-family: monospace;
}
.ref::before, .ref::after {
color: #99F;
font-family: sans-serif;
content: "\"";
}
.note {
color : #66A;
font-style: italic;
}
div.constraint {
float: right;
display: inline-block;
font-family: monospace;
color: #66A;
}
.invalid .constraint {
color: #f00;
}
.value {
font-size: smaller;
}
.hidden {
display: none;
}
.footer {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.saved {
background-color: #ddd;
}

View File

@@ -1,68 +0,0 @@
function saveToFile(txt, filename){
var a = document.createElement('a');
a.setAttribute("style", "display: none");
document.body.appendChild(a);
a.setAttribute('href', 'data:application/json;charset=utf-8,'+encodeURIComponent(txt));
a.setAttribute('download', filename);
a.click();
document.body.removeChild(a);
}
function saveJSON(obj, filename){
var txt = JSON.stringify(obj,"", "\t");
saveToFile(txt, filename);
}
function showJSON(obj, filename) {
var txt = JSON.stringify(obj,"", "\t");
var a = window.open("", "_blank").document;
a.write("<PLAINTEXT>");
a.write(txt);
a.title = filename;
}
function startsWith(str, prefix) {
return str.substring(0, prefix.length) == prefix;
}
function endsWith(str, suffix) {
return str.substring(str.length-suffix.length) == suffix;
}
function isDefined(obj) {
return typeof obj !== 'undefined';
}
function isNumber(obj) {
return isDefined(obj) && obj != null;
}
function isDefinedNN(obj) {
return isDefined(obj) && obj != null;
}
function padLeft(str, chr, maxLen) {
str = str.toString();
return str.length < maxLen ? padLeft(chr + str, chr, maxLen) : str;
}
// sourceArray contains a list of objects that have a property "id". This methods makes a map using the "id" as a key, and the owning object as a value.
function copyArrayToMap(sourceArray, map) {
if (!isDefined(map)) {
map = {};
}
var len = sourceArray.length;
for (var i = 0; i<len; i++) {
var v = sourceArray[i];
map[v.id] = v;
}
return map;
}
function checkTranslationFile(fileName) {
return startsWith(fileName, "translation_") && endsWith(fileName, ".json") || confirm("Are you sure that you want to use "+fileName+" instead of a translation_*.json file?");
}
function xunescape(str) {
return str.replace(/\\/g, "");
}

View File

@@ -1,424 +0,0 @@
var def = ///
{
"messages": [{
"id": "SettingsCalibrationWarning",
"description": "Confirmation message shown before performing an offset calibration. Should warn the user to make sure tip and handle are at the same temperature."
},
{
"id": "CJCCalibrating",
"description": "Message indicating CJC is being calibrated."
},
{
"id": "SettingsResetWarning",
"description": "Warning shown before confirming a settings reset."
},
{
"id": "UVLOWarningString",
"maxLen": 8,
"description": "Warning text shown when the unit turns off due to undervoltage in simple mode."
},
{
"id": "UndervoltageString",
"maxLen": 15,
"description": "Warning text shown when the unit turns off due to undervoltage in advanced mode."
},
{
"id": "InputVoltageString",
"maxLen": 11,
"note": "Preferably end with a space",
"description": "Prefix text for 'Input Voltage' shown before showing the input voltage reading."
},
{
"id": "SleepingSimpleString",
"maxLen": 4,
"description": "The text shown to indicate the unit is in sleep mode when the advanced view is NOT on."
},
{
"id": "SleepingAdvancedString",
"maxLen": 15,
"description": "The text shown to indicate the unit is in sleep mode when the advanced view is turned on."
},
{
"id": "SleepingTipAdvancedString",
"maxLen": 6,
"description": "The prefix text shown before tip temperature when the unit is sleeping with advanced view on."
},
{
"id": "OffString",
"maxLen": 3,
"description": "Shown when a setting is turned off."
},
{
"id": "DeviceFailedValidationWarning",
"default": "Device may be\ncounterfeit",
"description": "Warning shown if the device may be a clone or counterfeit unit."
}
],
"messagesWarn": [{
"id": "CJCCalibrationDone",
"description": "Confirmation message indicating CJC calibration is complete."
},
{
"id": "ResetOKMessage",
"description": "Confirmation message shown after a successful settings-reset."
},
{
"id": "SettingsResetMessage",
"description": "Shown after a firmware update when certain settings have been reset to factory defaults due to incompatible firmware changes."
},
{
"id": "NoAccelerometerMessage",
"description": "No accelerometer could be communicated with. This means that either the device's accelerometer is broken or unknown to IronOS. All motion-based settings are disabled and motion-based features will not work."
},
{
"id": "NoPowerDeliveryMessage",
"description": "The IC required for USB-PD could not be communicated with. This is an error warning that USB-PD WILL NOT FUNCTION. Generally indicative of either a hardware or software issues."
},
{
"id": "LockingKeysString",
"description": "Shown when keys are locked"
},
{
"id": "UnlockingKeysString",
"description": "Shown when keys are unlocked"
},
{
"id": "WarningKeysLockedString",
"description": "Warning that is shown when input is ignored due to the key lock being on"
},
{
"id": "WarningThermalRunaway",
"description": "Warning text shown when the software has disabled the heater as a safety precaution as the temperature reading didn't react as expected."
}
],
"characters": [{
"id": "SettingRightChar",
"len": 1,
"description": "Shown for fixed Right-handed display rotation."
},
{
"id": "SettingLeftChar",
"len": 1,
"description": "Shown for fixed Left-handed display rotation."
},
{
"id": "SettingAutoChar",
"len": 1,
"description": "Shown for automatic display rotation."
},
{
"id": "SettingFastChar",
"len": 1,
"description": "Shown when a setting is set to a fast value i.e. animation speed"
},
{
"id": "SettingSlowChar",
"len": 1,
"description": "Shown when a setting is set to a slow value i.e. animation speed"
},
{
"id": "SettingMediumChar",
"len": 1,
"description": "Shown when a setting is set to a medium value i.e. animation speed"
},
{
"id": "SettingOffChar",
"len": 1,
"description": "Shown when a setting is turned off"
},
{
"id": "SettingStartSolderingChar",
"len": 1,
"description": "Shown when the auto start mode is set to go straight to soldering."
},
{
"id": "SettingStartSleepChar",
"len": 1,
"description": "Shown when the auto start mode is set to start in sleep mode."
},
{
"id": "SettingStartSleepOffChar",
"len": 1,
"description": "Shown when the auto start state is set to go to an off state, but on movement wake into soldering mode."
},
{
"id": "SettingStartNoneChar",
"len": 1,
"description": "Shown when autostart state is to do nothing and go to a normal boot"
},
{
"id": "SettingSensitivityOff",
"len": 1,
"description": "Shown when a sensitivity (hall effect sensor) is disabled. Turning off the sensor."
},
{
"id": "SettingSensitivityLow",
"len": 1,
"description": "Shown when a sensitivity (hall effect) is not very sensitive"
},
{
"id": "SettingSensitivityMedium",
"len": 1,
"description": "Shown when a sensitivity (hall effect) is average sensitive"
},
{
"id": "SettingSensitivityHigh",
"len": 1,
"description": "Shown when a sensitivity (hall effect) is highly sensitive"
},
{
"id": "SettingLockDisableChar",
"len": 1,
"default": "D",
"description": "Shown when locking mode is turned off."
},
{
"id": "SettingLockBoostChar",
"len": 1,
"default": "B",
"description": "Shown when the locking mode is set to lock all buttons except for boost mode."
},
{
"id": "SettingLockFullChar",
"len": 1,
"default": "F",
"description": "Shown when the locking mode is set to lock all buttons."
}
],
"menuGroups": [{
"id": "PowerMenu",
"maxLen": 5,
"maxLen2": 11,
"description": "Menu for settings related to power. Main settings to do with the input voltage."
},
{
"id": "SolderingMenu",
"maxLen": 5,
"maxLen2": 11,
"description": "Settings for soldering mode, such as boost temps, the increment used when pressing buttons and if button locking is enabled."
},
{
"id": "PowerSavingMenu",
"maxLen": 5,
"maxLen2": 11,
"description": "Settings to do with power saving, such as sleep mode, sleep temps, and shutdown modes."
},
{
"id": "UIMenu",
"maxLen": 5,
"maxLen2": 11,
"description": "User interface related settings, such as units."
},
{
"id": "AdvancedMenu",
"maxLen": 5,
"maxLen2": 11,
"description": "Advanced settings. Misc catchall for settings that don't fit anywhere else or settings that require some thought before use."
}
],
"menuOptions": [{
"id": "DCInCutoff",
"maxLen": 5,
"maxLen2": 11,
"description": "When the device is powered by a battery, this adjusts the low voltage threshold for when the unit should turn off the heater to protect the battery."
},
{
"id": "MinVolCell",
"maxLen": 4,
"maxLen2": 9,
"description": "When powered by a battery, this adjusts the minimum voltage per cell before shutdown. (This is multiplied by the cell count.)"
},
{
"id": "QCMaxVoltage",
"maxLen": 8,
"maxLen2": 15,
"description": "This adjusts the maximum voltage the QC negotiation will adjust to. Does NOT affect USB-PD. Should be set safely based on the current rating of your power supply."
},
{
"id": "PDNegTimeout",
"maxLen": 8,
"maxLen2": 15,
"description": "How long until firmware stops trying to negotiate for USB-PD and tries QC instead. Longer times may help dodgy / old PD adapters, faster times move onto PD quickly. Units of 100ms. Recommended to keep small values."
},
{
"id": "BoostTemperature",
"maxLen": 4,
"maxLen2": 9,
"description": "When the unit is in soldering mode. You can hold down the button at the front of the device to temporarily override the soldering temperature to this value. This SETS the temperature, it does not ADD to it."
},
{
"id": "AutoStart",
"maxLen": 6,
"maxLen2": 13,
"description": "When the device powers up, should it enter into a special mode. These settings set it to either start into soldering mode, sleeping mode or auto mode (Enters into soldering mode on the first movement)."
},
{
"id": "TempChangeShortStep",
"maxLen": 8,
"maxLen2": 15,
"description": "Factor by which the temperature is changed with a quick press of the buttons."
},
{
"id": "TempChangeLongStep",
"maxLen": 6,
"maxLen2": 15,
"description": "Factor by which the temperature is changed with a hold of the buttons."
},
{
"id": "LockingMode",
"maxLen": 6,
"maxLen2": 13,
"description": "If locking the buttons against accidental presses is enabled."
},
{
"id": "MotionSensitivity",
"maxLen": 6,
"maxLen2": 13,
"description": "Scale of how sensitive the device is to movement. Higher numbers == more sensitive. 0 == motion detection turned off."
},
{
"id": "SleepTemperature",
"maxLen": 4,
"maxLen2": 9,
"description": "Temperature the device will drop down to while asleep. Typically around halfway between off and soldering temperature."
},
{
"id": "SleepTimeout",
"maxLen": 4,
"maxLen2": 9,
"description": "How long of a period without movement / button-pressing is required before the device drops down to the sleep temperature."
},
{
"id": "ShutdownTimeout",
"maxLen": 5,
"maxLen2": 11,
"description": "How long of a period without movement / button-pressing is required before the device turns off the tip heater completely and returns to the main idle screen."
},
{
"id": "HallEffSensitivity",
"maxLen": 6,
"maxLen2": 13,
"description": "If the unit has a hall effect sensor (Pinecil), this adjusts how sensitive it is at detecting a magnet to put the device into sleep mode."
},
{
"id": "TemperatureUnit",
"maxLen": 6,
"maxLen2": 13,
"description": "If the device shows temperatures in °C or °F."
},
{
"id": "DisplayRotation",
"maxLen": 6,
"maxLen2": 13,
"description": "If the display should rotate automatically or if it should be fixed for left- or right-handed mode."
},
{
"id": "CooldownBlink",
"maxLen": 6,
"maxLen2": 13,
"description": "If the idle screen should blink the tip temperature for attention while the tip is over 50°C. Intended as a 'tip is still hot' warning."
},
{
"id": "ScrollingSpeed",
"maxLen": 6,
"maxLen2": 11,
"description": "How fast the description text scrolls when hovering on a menu. Faster speeds may induce tearing, but allow reading the whole description faster."
},
{
"id": "ReverseButtonTempChange",
"maxLen": 6,
"maxLen2": 15,
"description": "Swaps which button increments and decrements on temperature change screens."
},
{
"id": "AnimSpeed",
"maxLen": 6,
"maxLen2": 13,
"description": "How fast should the menu animations loop, or if they should not loop at all."
},
{
"id": "AnimLoop",
"maxLen": 6,
"maxLen2": 13,
"description": "Should the menu animations loop. Only visible if the animation speed is not set to \"Off\""
},
{
"id": "Brightness",
"maxLen": 7,
"maxLen2": 15,
"description": "Display brightness. Higher values age the OLED faster due to burn-in. (However, it is notable that most of these screens die from other causes first.)"
},
{
"id": "ColourInversion",
"maxLen": 7,
"maxLen2": 15,
"description": "Inverts the entire OLED."
},
{
"id": "LOGOTime",
"maxLen": 7,
"maxLen2": 15,
"description": "Sets the duration for the boot logo (s=seconds)."
},
{
"id": "AdvancedIdle",
"maxLen": 6,
"maxLen2": 13,
"description": "Should the device show an 'advanced' view on the idle screen. The advanced view uses text to show more details than the typical icons."
},
{
"id": "AdvancedSoldering",
"maxLen": 6,
"maxLen2": 13,
"description": "Should the device show an 'advanced' soldering view. This is a text-based view that shows more information at the cost of no nice graphics."
},
{
"id": "PowerLimit",
"maxLen": 5,
"maxLen2": 11,
"description": "Allows setting a custom wattage for the device to aim to keep the AVERAGE power below. The unit can't control its peak power no matter how you set this. (Except for MHP30 which will regulate nicely to this). If USB-PD is in use, the limit will be set to the lower of this and the supplies advertised wattage."
},
{
"id": "CalibrateCJC",
"maxLen": 8,
"maxLen2": 15,
"description": "Used to calibrate the ADC+Op-amp offsets for the tip. This calibration must be performed when the tip temperature and the handle temperature are equal. Generally not required unless your device is reading more than 5°C off target."
},
{
"id": "VoltageCalibration",
"maxLen": 8,
"maxLen2": 15,
"description": "Enters an adjustment mode where you can gradually adjust the measured voltage to compensate for any unit-to-unit variance in the voltage sense resistors."
},
{
"id": "PowerPulsePower",
"maxLen": 6,
"maxLen2": 15,
"description": "Enables and sets the wattage of the power pulse. Power pulse causes the device to briefly turn on the heater to draw power to avoid power banks going to sleep."
},
{
"id": "PowerPulseWait",
"maxLen": 6,
"maxLen2": 13,
"description": "Adjusts the time interval between power pulses. Longer gaps reduce undesired heating of the tip, but needs to be fast enough to keep your power bank awake."
},
{
"id": "PowerPulseDuration",
"maxLen": 6,
"maxLen2": 13,
"description": "How long should the power pulse go for. Some power banks require seeing the power draw be sustained for a certain duration to keep awake. Should be kept as short as possible to avoid wasting power / undesired heating of the tip."
},
{
"id": "SettingsReset",
"maxLen": 8,
"maxLen2": 15,
"description": "Resets all settings and calibrations to factory defaults. Does NOT erase custom user boot up logo's."
},
{
"id": "LanguageSwitch",
"maxLen": 7,
"maxLen2": 15,
"description": "Changes the device language on multi-lingual builds."
}
]
}

View File

@@ -0,0 +1,413 @@
{
"messagesWarn": [{
"id": "CJCCalibrationDone",
"description": "Confirmation message indicating CJC calibration is complete."
},
{
"id": "ResetOKMessage",
"description": "Shown when the settings are reset to factory defaults by the user."
},
{
"id": "SettingsResetMessage",
"description": "Shown when certain settings are reset to factory defaults due to incompatible firmware changes."
},
{
"id": "NoAccelerometerMessage",
"description": "No accelerometer could be communicated with. This means that either the device's accelerometer is broken or unknown to IronOS. All motion-based settings are disabled and motion-based features will not work."
},
{
"id": "NoPowerDeliveryMessage",
"description": "The IC required for USB-PD could not be communicated with. This is an error warning that USB-PD WILL NOT FUNCTION. Generally indicative of either a hardware or software issues."
},
{
"id": "LockingKeysString",
"description": "Shown when keys are locked"
},
{
"id": "UnlockingKeysString",
"description": "Shown when keys are unlocked"
},
{
"id": "WarningKeysLockedString",
"description": "Warning that is shown when input is ignored due to the key lock being on"
},
{
"id": "WarningThermalRunaway",
"description": "Warning text shown when the software has disabled the heater as a safety precaution as the temperature reading didn't react as expected."
}, {
"id": "SettingsCalibrationWarning",
"description": "Confirmation message shown before performing an offset calibration. Should warn the user to make sure tip and handle are at the same temperature."
},
{
"id": "CJCCalibrating",
"description": "Message indicating CJC is being calibrated."
},
{
"id": "SettingsResetWarning",
"description": "Confirmation message shown before confirming a settings reset."
},
{
"id": "UVLOWarningString",
"maxLen": 8,
"description": "Warning text shown when the unit turns off due to undervoltage in simple mode."
},
{
"id": "UndervoltageString",
"maxLen": 15,
"description": "Warning text shown when the unit turns off due to undervoltage in advanced mode."
},
{
"id": "InputVoltageString",
"maxLen": 11,
"note": "Preferably end with a space",
"description": "Prefix text for 'Input Voltage' shown before showing the input voltage reading."
},
{
"id": "SleepingSimpleString",
"maxLen": 4,
"description": "The text shown to indicate the unit is in sleep mode when the advanced view is NOT on."
},
{
"id": "SleepingAdvancedString",
"maxLen": 15,
"description": "The text shown to indicate the unit is in sleep mode when the advanced view is turned on."
},
{
"id": "SleepingTipAdvancedString",
"maxLen": 6,
"description": "The prefix text shown before tip temperature when the unit is sleeping with advanced view on."
},
{
"id": "OffString",
"maxLen": 3,
"description": "Shown when a setting is turned off."
},
{
"id": "DeviceFailedValidationWarning",
"default": "Device may be\ncounterfeit",
"description": "Warning shown if the device may be a clone or counterfeit unit."
}
],
"characters": [{
"id": "SettingRightChar",
"len": 1,
"description": "Shown for fixed Right-handed display rotation."
},
{
"id": "SettingLeftChar",
"len": 1,
"description": "Shown for fixed Left-handed display rotation."
},
{
"id": "SettingAutoChar",
"len": 1,
"description": "Shown for automatic display rotation."
},
{
"id": "SettingOffChar",
"len": 1,
"description": "Shown when a setting is turned off"
},
{
"id": "SettingSlowChar",
"len": 1,
"description": "Shown when a setting is set to a slow value i.e. animation speed"
},
{
"id": "SettingMediumChar",
"len": 1,
"description": "Shown when a setting is set to a medium value i.e. animation speed"
},
{
"id": "SettingFastChar",
"len": 1,
"description": "Shown when a setting is set to a fast value i.e. animation speed"
},
{
"id": "SettingStartNoneChar",
"len": 1,
"description": "Shown when autostart state is to do nothing and go to a normal boot"
},
{
"id": "SettingStartSolderingChar",
"len": 1,
"description": "Shown when the auto start mode is set to go straight to soldering."
},
{
"id": "SettingStartSleepChar",
"len": 1,
"description": "Shown when the auto start mode is set to start in sleep mode."
},
{
"id": "SettingStartSleepOffChar",
"len": 1,
"description": "Shown when the auto start state is set to go to an off state, but on movement wake into soldering mode."
},
{
"id": "SettingLockDisableChar",
"len": 1,
"default": "D",
"description": "Shown when locking mode is turned off."
},
{
"id": "SettingLockBoostChar",
"len": 1,
"default": "B",
"description": "Shown when the locking mode is set to lock all buttons except for boost mode."
},
{
"id": "SettingLockFullChar",
"len": 1,
"default": "F",
"description": "Shown when the locking mode is set to lock all buttons."
}
],
"menuGroups": [{
"id": "PowerMenu",
"maxLen": 5,
"maxLen2": 11,
"description": "Menu for settings related to power. Main settings to do with the input voltage."
},
{
"id": "SolderingMenu",
"maxLen": 5,
"maxLen2": 11,
"description": "Settings for soldering mode, such as boost temps, the increment used when pressing buttons and if button locking is enabled."
},
{
"id": "PowerSavingMenu",
"maxLen": 5,
"maxLen2": 11,
"description": "Settings to do with power saving, such as sleep mode, sleep temps, and shutdown modes."
},
{
"id": "UIMenu",
"maxLen": 5,
"maxLen2": 11,
"description": "User interface related settings, such as units."
},
{
"id": "AdvancedMenu",
"maxLen": 5,
"maxLen2": 11,
"description": "Advanced settings. Misc catchall for settings that don't fit anywhere else or settings that require some thought before use."
}
],
"menuOptions": [{
"id": "DCInCutoff",
"maxLen": 5,
"maxLen2": 11,
"description": "When the device is powered by a battery, this adjusts the low voltage threshold for when the unit should turn off the heater to protect the battery."
},
{
"id": "MinVolCell",
"maxLen": 4,
"maxLen2": 9,
"description": "When powered by a battery, this adjusts the minimum voltage per cell before shutdown. (This is multiplied by the cell count.)"
},
{
"id": "QCMaxVoltage",
"maxLen": 8,
"maxLen2": 15,
"description": "This adjusts the maximum voltage the QC negotiation will adjust to. Does NOT affect USB-PD. Should be set safely based on the current rating of your power supply."
},
{
"id": "PDNegTimeout",
"maxLen": 8,
"maxLen2": 15,
"description": "How long until firmware stops trying to negotiate for USB-PD and tries QC instead. Longer times may help dodgy / old PD adapters, faster times move onto PD quickly. Units of 100ms. Recommended to keep small values."
},
{
"id": "PDVpdo",
"maxLen": 7,
"maxLen2": 15,
"description": "Enabled PPS & EPR modes."
},
{
"id": "BoostTemperature",
"maxLen": 4,
"maxLen2": 9,
"description": "When the unit is in soldering mode. You can hold down the button at the front of the device to temporarily override the soldering temperature to this value. This SETS the temperature, it does not ADD to it."
},
{
"id": "AutoStart",
"maxLen": 6,
"maxLen2": 13,
"description": "When the device powers up, should it enter into a special mode. These settings set it to either start into soldering mode, sleeping mode or auto mode (Enters into soldering mode on the first movement)."
},
{
"id": "TempChangeShortStep",
"maxLen": 8,
"maxLen2": 15,
"description": "Factor by which the temperature is changed with a quick press of the buttons."
},
{
"id": "TempChangeLongStep",
"maxLen": 6,
"maxLen2": 15,
"description": "Factor by which the temperature is changed with a hold of the buttons."
},
{
"id": "LockingMode",
"maxLen": 6,
"maxLen2": 13,
"description": "If locking the buttons against accidental presses is enabled."
},
{
"id": "MotionSensitivity",
"maxLen": 6,
"maxLen2": 13,
"description": "Scale of how sensitive the device is to movement. Higher numbers == more sensitive. 0 == motion detection turned off."
},
{
"id": "SleepTemperature",
"maxLen": 4,
"maxLen2": 9,
"description": "Temperature the device will drop down to while asleep. Typically around halfway between off and soldering temperature."
},
{
"id": "SleepTimeout",
"maxLen": 4,
"maxLen2": 9,
"description": "How long of a period without movement / button-pressing is required before the device drops down to the sleep temperature."
},
{
"id": "ShutdownTimeout",
"maxLen": 5,
"maxLen2": 11,
"description": "How long of a period without movement / button-pressing is required before the device turns off the tip heater completely and returns to the main idle screen."
},
{
"id": "HallEffSensitivity",
"maxLen": 6,
"maxLen2": 13,
"description": "If the unit has a hall effect sensor (Pinecil), this adjusts how sensitive it is at detecting a magnet to put the device into sleep mode."
},
{
"id": "TemperatureUnit",
"maxLen": 6,
"maxLen2": 13,
"description": "If the device shows temperatures in °C or °F."
},
{
"id": "DisplayRotation",
"maxLen": 6,
"maxLen2": 13,
"description": "If the display should rotate automatically or if it should be fixed for left- or right-handed mode."
},
{
"id": "CooldownBlink",
"maxLen": 6,
"maxLen2": 13,
"description": "If the idle screen should blink the tip temperature for attention while the tip is over 50°C. Intended as a 'tip is still hot' warning."
},
{
"id": "ScrollingSpeed",
"maxLen": 6,
"maxLen2": 11,
"description": "How fast the description text scrolls when hovering on a menu. Faster speeds may induce tearing, but allow reading the whole description faster."
},
{
"id": "ReverseButtonTempChange",
"maxLen": 6,
"maxLen2": 15,
"description": "Swaps which button increments and decrements on temperature change screens."
},
{
"id": "AnimSpeed",
"maxLen": 6,
"maxLen2": 13,
"description": "How fast should the menu animations loop, or if they should not loop at all."
},
{
"id": "AnimLoop",
"maxLen": 6,
"maxLen2": 13,
"description": "Should the menu animations loop. Only visible if the animation speed is not set to \"Off\""
},
{
"id": "Brightness",
"maxLen": 7,
"maxLen2": 15,
"description": "Display brightness. Higher values age the OLED faster due to burn-in. (However, it is notable that most of these screens die from other causes first.)"
},
{
"id": "ColourInversion",
"maxLen": 7,
"maxLen2": 15,
"description": "Inverts the entire OLED."
},
{
"id": "LOGOTime",
"maxLen": 7,
"maxLen2": 15,
"description": "Sets the duration for the boot logo (s=seconds)."
},
{
"id": "AdvancedIdle",
"maxLen": 6,
"maxLen2": 13,
"description": "Should the device show an 'advanced' view on the idle screen. The advanced view uses text to show more details than the typical icons."
},
{
"id": "AdvancedSoldering",
"maxLen": 6,
"maxLen2": 13,
"description": "Should the device show an 'advanced' soldering view. This is a text-based view that shows more information at the cost of no nice graphics."
},
{
"id": "BluetoothLE",
"maxLen": 7,
"maxLen2": 15,
"description": "Should BLE be enabled at boot time."
},
{
"id": "PowerLimit",
"maxLen": 5,
"maxLen2": 11,
"description": "Allows setting a custom wattage for the device to aim to keep the AVERAGE power below. The unit can't control its peak power no matter how you set this. (Except for MHP30 which will regulate nicely to this). If USB-PD is in use, the limit will be set to the lower of this and the supplies advertised wattage."
},
{
"id": "CalibrateCJC",
"maxLen": 8,
"maxLen2": 15,
"description": "Used to calibrate the ADC+Op-amp offsets for the tip. This calibration must be performed when the tip temperature and the handle temperature are equal. Generally not required unless your device is reading more than 5°C off target."
},
{
"id": "VoltageCalibration",
"maxLen": 8,
"maxLen2": 15,
"description": "Enters an adjustment mode where you can gradually adjust the measured voltage to compensate for any unit-to-unit variance in the voltage sense resistors."
},
{
"id": "PowerPulsePower",
"maxLen": 6,
"maxLen2": 15,
"description": "Enables and sets the wattage of the power pulse. Power pulse causes the device to briefly turn on the heater to draw power to avoid power banks going to sleep."
},
{
"id": "PowerPulseWait",
"maxLen": 6,
"maxLen2": 13,
"description": "Adjusts the time interval between power pulses. Longer gaps reduce undesired heating of the tip, but needs to be fast enough to keep your power bank awake."
},
{
"id": "PowerPulseDuration",
"maxLen": 6,
"maxLen2": 13,
"description": "How long should the power pulse go for. Some power banks require seeing the power draw be sustained for a certain duration to keep awake. Should be kept as short as possible to avoid wasting power / undesired heating of the tip."
},
{
"id": "SettingsReset",
"maxLen": 8,
"maxLen2": 15,
"description": "Resets all settings and calibrations to factory defaults. Does NOT erase custom user boot up logo's."
},
{
"id": "LanguageSwitch",
"maxLen": 7,
"maxLen2": 15,
"description": "Changes the device language on multi-lingual builds."
}
]
}

View File

@@ -1,4 +1,5 @@
version: "3"
name: "ironos"
services:
builder:
stdin_open: true

View File

@@ -1,8 +1,21 @@
# Project info
site_name: IronOS
site_url: https://ralim.github.io/IronOS/
repo_url: https://github.com/ralim/IronOS/
site_description: "IronOS Open Source Soldering Iron firmware for Miniware and Pinecil"
# repo config
repo_url: https://github.com/ralim/IronOS/
docs_dir: Documentation
edit_uri: edit/dev/Documentation/
# Theme and config
theme:
name: readthedocs
highlightsjs: true
hljs_languages:
- yaml
nav:
- Home: index.md
- Getting Started: GettingStarted.md
@@ -26,5 +39,18 @@ nav:
- Known Hardware Issues: HardwareIssues.md
- Translations: Translation.md
- Development: Development.md
theme: readthedocs
# Plugins
plugins:
- search
- autolinks
- awesome-pages
- git-revision-date
# Markdown Extensions
markdown_extensions:
- attr_list
- pymdownx.emoji:
emoji_index: !!python/name:pymdownx.emoji.twemoji
emoji_generator: !!python/name:pymdownx.emoji.to_svg

View File

@@ -60,6 +60,15 @@
#define ORIENTATION_MODE 0 // 0: Right 1:Left 2:Automatic - Default right
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assigment for temperature change
/**
* OLED Brightness
*
*/
#define MIN_BRIGHTNESS 0 // Min OLED brightness selectable
#define MAX_BRIGHTNESS 100 // Max OLED brightness selectable
#define BRIGHTNESS_STEP 25 // OLED brightness increment
#define DEFAULT_BRIGHTNESS 25 // default OLED brightness
/**
* Temp change settings
*/
@@ -137,7 +146,7 @@
#define MAX_TEMP_C 350 // Max soldering temp selectable °C
#define MAX_TEMP_F 660 // Max soldering temp selectable °F
#define MIN_TEMP_C 10 // Min soldering temp selectable °C
#define MIN_TEMP_F 60 // Min soldering temp selectable °F
#define MIN_TEMP_F 50 // Min soldering temp selectable °F
#define MIN_BOOST_TEMP_C 150 // The min settable temp for boost mode °C
#define MIN_BOOST_TEMP_F 300 // The min settable temp for boost mode °F
#define NO_DISPLAY_ROTATE // Disable OLED rotation by accel

View File

@@ -125,6 +125,6 @@ const int32_t uVtoDegC[] = {
38137, 500, //
};
#endif
const int uVtoDegCItems = sizeof(uVtoDegC) / (2 * sizeof(uint16_t));
const int uVtoDegCItems = sizeof(uVtoDegC) / (2 * sizeof(uVtoDegC[0]));
uint32_t TipThermoModel::convertuVToDegC(uint32_t tipuVDelta) { return Utils::InterpolateLookupTable(uVtoDegC, uVtoDegCItems, tipuVDelta); }

View File

@@ -59,6 +59,15 @@
#define ORIENTATION_MODE 2 // 0: Right 1:Left 2:Automatic - Default Automatic
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assigment for temperature change
/**
* OLED Brightness
*
*/
#define MIN_BRIGHTNESS 0 // Min OLED brightness selectable
#define MAX_BRIGHTNESS 100 // Max OLED brightness selectable
#define BRIGHTNESS_STEP 25 // OLED brightness increment
#define DEFAULT_BRIGHTNESS 25 // default OLED brightness
/**
* Temp change settings
*/
@@ -141,7 +150,7 @@
#define MAX_TEMP_C 450 // Max soldering temp selectable °C
#define MAX_TEMP_F 850 // Max soldering temp selectable °F
#define MIN_TEMP_C 10 // Min soldering temp selectable °C
#define MIN_TEMP_F 60 // Min soldering temp selectable °F
#define MIN_TEMP_F 50 // Min soldering temp selectable °F
#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C
#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F

View File

@@ -72,10 +72,7 @@ void unstick_I2C() {
uint8_t getButtonA() { return (gpio_input_bit_get(KEY_A_GPIO_Port, KEY_A_Pin) == SET) ? 1 : 0; }
uint8_t getButtonB() { return (gpio_input_bit_get(KEY_B_GPIO_Port, KEY_B_Pin) == SET) ? 1 : 0; }
void reboot() {
// Spin for watchdog
for (;;) {}
}
void reboot() { eclic_system_reset(); }
void delay_ms(uint16_t count) { delay_1ms(count); }
uint32_t __get_IPSR(void) {

View File

@@ -67,6 +67,6 @@ const int32_t uVtoDegC[] = {
};
#endif
const int uVtoDegCItems = sizeof(uVtoDegC) / (2 * sizeof(uint16_t));
const int uVtoDegCItems = sizeof(uVtoDegC) / (2 * sizeof(uVtoDegC[0]));
uint32_t TipThermoModel::convertuVToDegC(uint32_t tipuVDelta) { return Utils::InterpolateLookupTable(uVtoDegC, uVtoDegCItems, tipuVDelta); }

View File

@@ -59,6 +59,15 @@
#define ORIENTATION_MODE 2 // 0: Right 1:Left 2:Automatic - Default Automatic
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assigment for temperature change
/**
* OLED Brightness
*
*/
#define MIN_BRIGHTNESS 0 // Min OLED brightness selectable
#define MAX_BRIGHTNESS 100 // Max OLED brightness selectable
#define BRIGHTNESS_STEP 25 // OLED brightness increment
#define DEFAULT_BRIGHTNESS 25 // default OLED brightness
/**
* Temp change settings
*/
@@ -132,7 +141,7 @@
#define MAX_TEMP_C 450 // Max soldering temp selectable °C
#define MAX_TEMP_F 850 // Max soldering temp selectable °F
#define MIN_TEMP_C 10 // Min soldering temp selectable °C
#define MIN_TEMP_F 60 // Min soldering temp selectable °F
#define MIN_TEMP_F 50 // Min soldering temp selectable °F
#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C
#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F

View File

@@ -126,8 +126,7 @@ uint8_t getButtonB() {
}
void reboot() {
// Spin for watchdog
for (;;) {}
hal_system_reset();
}
void delay_ms(uint16_t count) {

View File

@@ -4,7 +4,7 @@
#define portCHAR char
#define configSUPPORT_STATIC_ALLOCATION 1
#define configSUPPORT_DYNAMIC_ALLOCATION 0
#define configSUPPORT_DYNAMIC_ALLOCATION 1
#define CLINT_CTRL_ADDR (0x02000000UL)
#define configCLINT_BASE_ADDRESS CLINT_CTRL_ADDR
#define configUSE_PREEMPTION 1
@@ -14,7 +14,7 @@
#define configTICK_RATE_HZ ((TickType_t)1000)
#define configMAX_PRIORITIES (7)
#define configMINIMAL_STACK_SIZE ((unsigned short)160) /* Only needs to be this high as some demo tasks also use this constant. In production only the idle task would use this. */
#define configTOTAL_HEAP_SIZE ((size_t)0)
#define configTOTAL_HEAP_SIZE ((size_t)1024 * 8)
#define configMAX_TASK_NAME_LEN (24)
#define configUSE_TRACE_FACILITY 0
#define configUSE_16_BIT_TICKS 0
@@ -35,7 +35,10 @@
#define configUSE_CO_ROUTINES 0
/* Software timer definitions. */
#define configUSE_TIMERS 0
#define configUSE_TIMERS 1
#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 1)
#define configTIMER_QUEUE_LENGTH 8
#define configTIMER_TASK_STACK_DEPTH (160)
/* Task priorities. Allow these to be overridden. */
#ifndef uartPRIMARY_PRIORITY
@@ -63,7 +66,7 @@ void vApplicationSleep(uint32_t xExpectedIdleTime);
#define INCLUDE_vTaskPrioritySet 0
#define INCLUDE_uxTaskPriorityGet 0
#define INCLUDE_vTaskDelete 0
#define INCLUDE_vTaskDelete 1
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_xResumeFromISR 1
#define INCLUDE_vTaskDelayUntil 1

View File

@@ -17,15 +17,18 @@ extern "C" {
#include "bl702_pwm.h"
#include "bl702_timer.h"
}
void start_PWM_output(void);
#define ADC_Filter_Smooth 4
history<uint16_t, ADC_Filter_Smooth> ADC_Vin;
history<uint16_t, ADC_Filter_Smooth> ADC_Temp;
history<uint16_t, ADC_Filter_Smooth> ADC_Tip;
volatile uint8_t ADCBurstCounter = 0;
void adc_fifo_irq(void) {
if (ADC_GetIntStatus(ADC_INT_FIFO_READY) == SET) {
// Read out all entries in the fifo
while (ADC_Get_FIFO_Count()) {
ADCBurstCounter++;
volatile uint32_t reading = ADC_Read_FIFO();
// As per manual, 26 bit reading; lowest 16 are the ADC
uint16_t sample = reading & 0xFFFF;
@@ -46,12 +49,17 @@ void adc_fifo_irq(void) {
}
}
// unblock the PID controller thread
if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED) {
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
if (pidTaskNotification) {
vTaskNotifyGiveFromISR(pidTaskNotification, &xHigherPriorityTaskWoken);
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
if (ADCBurstCounter >= 8) {
ADCBurstCounter = 0;
start_PWM_output();
// unblock the PID controller thread
if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED) {
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
if (pidTaskNotification) {
vTaskNotifyGiveFromISR(pidTaskNotification, &xHigherPriorityTaskWoken);
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
}
}
}
@@ -66,12 +74,8 @@ volatile uint16_t PWMSafetyTimer = 0;
volatile uint8_t pendingPWM = 0;
volatile bool lastPeriodWasFast = false;
// Timer 0 is used to co-ordinate the ADC and the output PWM
void timer0_comp0_callback(void) { ADC_Start(); }
void timer0_comp1_callback(void) { PWM_Channel_Disable(PWM_Channel); }
void timer0_comp2_callback(void) {
void start_PWM_output(void) {
// This occurs at timer rollover, so if we want to turn on the output PWM; we do so
if (PWMSafetyTimer) {
PWMSafetyTimer--;
if (lastPeriodWasFast != fastPWM) {
@@ -93,8 +97,16 @@ void timer0_comp2_callback(void) {
} else {
PWM_Channel_Disable(PWM_Channel);
}
TIMER_Enable(TIMER_CH0);
}
// Timer 0 is used to co-ordinate the ADC and the output PWM
void timer0_comp0_callback(void) {
TIMER_Disable(TIMER_CH0);
ADC_Start();
}
void timer0_comp1_callback(void) { PWM_Channel_Disable(PWM_Channel); } // Trigged at end of output cycle; turn off the tip PWM
void switchToFastPWM(void) {
fastPWM = true;
totalPWM = powerPWM + tempMeasureTicks + holdoffTicks;

View File

@@ -0,0 +1,550 @@
/*
* FreeRTOS Kernel V10.4.1
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* 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.
*
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
*
* 1 tab == 4 spaces!
*/
/*
* A sample implementation of pvPortMalloc() that allows the heap to be defined
* across multiple non-contigous blocks and combines (coalescences) adjacent
* memory blocks as they are freed.
*
* See heap_1.c, heap_2.c, heap_3.c and heap_4.c for alternative
* implementations, and the memory management pages of https://www.FreeRTOS.org
* for more information.
*
* Usage notes:
*
* vPortDefineHeapRegions() ***must*** be called before pvPortMalloc().
* pvPortMalloc() will be called if any task objects (tasks, queues, event
* groups, etc.) are created, therefore vPortDefineHeapRegions() ***must*** be
* called before any other objects are defined.
*
* vPortDefineHeapRegions() takes a single parameter. The parameter is an array
* of HeapRegion_t structures. HeapRegion_t is defined in portable.h as
*
* typedef struct HeapRegion
* {
* uint8_t *pucStartAddress; << Start address of a block of memory that will be part of the heap.
* size_t xSizeInBytes; << Size of the block of memory.
* } HeapRegion_t;
*
* The array is terminated using a NULL zero sized region definition, and the
* memory regions defined in the array ***must*** appear in address order from
* low address to high address. So the following is a valid example of how
* to use the function.
*
* HeapRegion_t xHeapRegions[] =
* {
* { ( uint8_t * ) 0x80000000UL, 0x10000 }, << Defines a block of 0x10000 bytes starting at address 0x80000000
* { ( uint8_t * ) 0x90000000UL, 0xa0000 }, << Defines a block of 0xa0000 bytes starting at address of 0x90000000
* { NULL, 0 } << Terminates the array.
* };
*
* vPortDefineHeapRegions( xHeapRegions ); << Pass the array into vPortDefineHeapRegions().
*
* Note 0x80000000 is the lower address so appears in the array first.
*
*/
#include <stdlib.h>
/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
* all the API functions to use the MPU wrappers. That should only be done when
* task.h is included from an application file. */
#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
#include "FreeRTOS.h"
#include "task.h"
#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
#if ( configSUPPORT_DYNAMIC_ALLOCATION == 0 )
#error This file must not be used if configSUPPORT_DYNAMIC_ALLOCATION is 0
#endif
/* Block sizes must not get too small. */
#define heapMINIMUM_BLOCK_SIZE ( ( size_t ) ( xHeapStructSize << 1 ) )
/* Assumes 8bit bytes! */
#define heapBITS_PER_BYTE ( ( size_t ) 8 )
/* Define the linked list structure. This is used to link free blocks in order
* of their memory address. */
typedef struct A_BLOCK_LINK
{
struct A_BLOCK_LINK * pxNextFreeBlock; /*<< The next free block in the list. */
size_t xBlockSize; /*<< The size of the free block. */
} BlockLink_t;
/*-----------------------------------------------------------*/
/*
* Inserts a block of memory that is being freed into the correct position in
* the list of free memory blocks. The block being freed will be merged with
* the block in front it and/or the block behind it if the memory blocks are
* adjacent to each other.
*/
static void prvInsertBlockIntoFreeList( BlockLink_t * pxBlockToInsert );
/*-----------------------------------------------------------*/
/* The size of the structure placed at the beginning of each allocated memory
* block must by correctly byte aligned. */
static const size_t xHeapStructSize = ( sizeof( BlockLink_t ) + ( ( size_t ) ( portBYTE_ALIGNMENT - 1 ) ) ) & ~( ( size_t ) portBYTE_ALIGNMENT_MASK );
/* Create a couple of list links to mark the start and end of the list. */
static BlockLink_t xStart, * pxEnd = NULL;
/* Keeps track of the number of calls to allocate and free memory as well as the
* number of free bytes remaining, but says nothing about fragmentation. */
static size_t xFreeBytesRemaining = 0U;
static size_t xMinimumEverFreeBytesRemaining = 0U;
static size_t xNumberOfSuccessfulAllocations = 0;
static size_t xNumberOfSuccessfulFrees = 0;
/* Gets set to the top bit of an size_t type. When this bit in the xBlockSize
* member of an BlockLink_t structure is set then the block belongs to the
* application. When the bit is free the block is still part of the free heap
* space. */
static size_t xBlockAllocatedBit = 0;
/*-----------------------------------------------------------*/
void * pvPortMalloc( size_t xWantedSize )
{
BlockLink_t * pxBlock, * pxPreviousBlock, * pxNewBlockLink;
void * pvReturn = NULL;
/* The heap must be initialised before the first call to
* prvPortMalloc(). */
configASSERT( pxEnd );
vTaskSuspendAll();
{
/* Check the requested block size is not so large that the top bit is
* set. The top bit of the block size member of the BlockLink_t structure
* is used to determine who owns the block - the application or the
* kernel, so it must be free. */
if( ( xWantedSize & xBlockAllocatedBit ) == 0 )
{
/* The wanted size is increased so it can contain a BlockLink_t
* structure in addition to the requested amount of bytes. */
if( xWantedSize > 0 )
{
xWantedSize += xHeapStructSize;
/* Ensure that blocks are always aligned to the required number
* of bytes. */
if( ( xWantedSize & portBYTE_ALIGNMENT_MASK ) != 0x00 )
{
/* Byte alignment required. */
xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) );
}
else
{
mtCOVERAGE_TEST_MARKER();
}
}
else
{
mtCOVERAGE_TEST_MARKER();
}
if( ( xWantedSize > 0 ) && ( xWantedSize <= xFreeBytesRemaining ) )
{
/* Traverse the list from the start (lowest address) block until
* one of adequate size is found. */
pxPreviousBlock = &xStart;
pxBlock = xStart.pxNextFreeBlock;
while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock != NULL ) )
{
pxPreviousBlock = pxBlock;
pxBlock = pxBlock->pxNextFreeBlock;
}
/* If the end marker was reached then a block of adequate size
* was not found. */
if( pxBlock != pxEnd )
{
/* Return the memory space pointed to - jumping over the
* BlockLink_t structure at its start. */
pvReturn = ( void * ) ( ( ( uint8_t * ) pxPreviousBlock->pxNextFreeBlock ) + xHeapStructSize );
/* This block is being returned for use so must be taken out
* of the list of free blocks. */
pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock;
/* If the block is larger than required it can be split into
* two. */
if( ( pxBlock->xBlockSize - xWantedSize ) > heapMINIMUM_BLOCK_SIZE )
{
/* This block is to be split into two. Create a new
* block following the number of bytes requested. The void
* cast is used to prevent byte alignment warnings from the
* compiler. */
pxNewBlockLink = ( void * ) ( ( ( uint8_t * ) pxBlock ) + xWantedSize );
/* Calculate the sizes of two blocks split from the
* single block. */
pxNewBlockLink->xBlockSize = pxBlock->xBlockSize - xWantedSize;
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
prvInsertBlockIntoFreeList( ( pxNewBlockLink ) );
}
else
{
mtCOVERAGE_TEST_MARKER();
}
xFreeBytesRemaining -= pxBlock->xBlockSize;
if( xFreeBytesRemaining < xMinimumEverFreeBytesRemaining )
{
xMinimumEverFreeBytesRemaining = xFreeBytesRemaining;
}
else
{
mtCOVERAGE_TEST_MARKER();
}
/* The block is being returned - it is allocated and owned
* by the application and has no "next" block. */
pxBlock->xBlockSize |= xBlockAllocatedBit;
pxBlock->pxNextFreeBlock = NULL;
xNumberOfSuccessfulAllocations++;
}
else
{
mtCOVERAGE_TEST_MARKER();
}
}
else
{
mtCOVERAGE_TEST_MARKER();
}
}
else
{
mtCOVERAGE_TEST_MARKER();
}
traceMALLOC( pvReturn, xWantedSize );
}
( void ) xTaskResumeAll();
#if ( configUSE_MALLOC_FAILED_HOOK == 1 )
{
if( pvReturn == NULL )
{
extern void vApplicationMallocFailedHook( void );
vApplicationMallocFailedHook();
}
else
{
mtCOVERAGE_TEST_MARKER();
}
}
#endif /* if ( configUSE_MALLOC_FAILED_HOOK == 1 ) */
return pvReturn;
}
/*-----------------------------------------------------------*/
void vPortFree( void * pv )
{
uint8_t * puc = ( uint8_t * ) pv;
BlockLink_t * pxLink;
if( pv != NULL )
{
/* The memory being freed will have an BlockLink_t structure immediately
* before it. */
puc -= xHeapStructSize;
/* This casting is to keep the compiler from issuing warnings. */
pxLink = ( void * ) puc;
/* Check the block is actually allocated. */
configASSERT( ( pxLink->xBlockSize & xBlockAllocatedBit ) != 0 );
configASSERT( pxLink->pxNextFreeBlock == NULL );
if( ( pxLink->xBlockSize & xBlockAllocatedBit ) != 0 )
{
if( pxLink->pxNextFreeBlock == NULL )
{
/* The block is being returned to the heap - it is no longer
* allocated. */
pxLink->xBlockSize &= ~xBlockAllocatedBit;
vTaskSuspendAll();
{
/* Add this block to the list of free blocks. */
xFreeBytesRemaining += pxLink->xBlockSize;
traceFREE( pv, pxLink->xBlockSize );
prvInsertBlockIntoFreeList( ( ( BlockLink_t * ) pxLink ) );
xNumberOfSuccessfulFrees++;
}
( void ) xTaskResumeAll();
}
else
{
mtCOVERAGE_TEST_MARKER();
}
}
else
{
mtCOVERAGE_TEST_MARKER();
}
}
}
/*-----------------------------------------------------------*/
size_t xPortGetFreeHeapSize( void )
{
return xFreeBytesRemaining;
}
/*-----------------------------------------------------------*/
size_t xPortGetMinimumEverFreeHeapSize( void )
{
return xMinimumEverFreeBytesRemaining;
}
/*-----------------------------------------------------------*/
static void prvInsertBlockIntoFreeList( BlockLink_t * pxBlockToInsert )
{
BlockLink_t * pxIterator;
uint8_t * puc;
/* Iterate through the list until a block is found that has a higher address
* than the block being inserted. */
for( pxIterator = &xStart; pxIterator->pxNextFreeBlock < pxBlockToInsert; pxIterator = pxIterator->pxNextFreeBlock )
{
/* Nothing to do here, just iterate to the right position. */
}
/* Do the block being inserted, and the block it is being inserted after
* make a contiguous block of memory? */
puc = ( uint8_t * ) pxIterator;
if( ( puc + pxIterator->xBlockSize ) == ( uint8_t * ) pxBlockToInsert )
{
pxIterator->xBlockSize += pxBlockToInsert->xBlockSize;
pxBlockToInsert = pxIterator;
}
else
{
mtCOVERAGE_TEST_MARKER();
}
/* Do the block being inserted, and the block it is being inserted before
* make a contiguous block of memory? */
puc = ( uint8_t * ) pxBlockToInsert;
if( ( puc + pxBlockToInsert->xBlockSize ) == ( uint8_t * ) pxIterator->pxNextFreeBlock )
{
if( pxIterator->pxNextFreeBlock != pxEnd )
{
/* Form one big block from the two blocks. */
pxBlockToInsert->xBlockSize += pxIterator->pxNextFreeBlock->xBlockSize;
pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock->pxNextFreeBlock;
}
else
{
pxBlockToInsert->pxNextFreeBlock = pxEnd;
}
}
else
{
pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock;
}
/* If the block being inserted plugged a gab, so was merged with the block
* before and the block after, then it's pxNextFreeBlock pointer will have
* already been set, and should not be set here as that would make it point
* to itself. */
if( pxIterator != pxBlockToInsert )
{
pxIterator->pxNextFreeBlock = pxBlockToInsert;
}
else
{
mtCOVERAGE_TEST_MARKER();
}
}
/*-----------------------------------------------------------*/
void vPortDefineHeapRegions( const HeapRegion_t * const pxHeapRegions )
{
BlockLink_t * pxFirstFreeBlockInRegion = NULL, * pxPreviousFreeBlock;
size_t xAlignedHeap;
size_t xTotalRegionSize, xTotalHeapSize = 0;
BaseType_t xDefinedRegions = 0;
size_t xAddress;
const HeapRegion_t * pxHeapRegion;
/* Can only call once! */
configASSERT( pxEnd == NULL );
pxHeapRegion = &( pxHeapRegions[ xDefinedRegions ] );
while( pxHeapRegion->xSizeInBytes > 0 )
{
xTotalRegionSize = pxHeapRegion->xSizeInBytes;
/* Ensure the heap region starts on a correctly aligned boundary. */
xAddress = ( size_t ) pxHeapRegion->pucStartAddress;
if( ( xAddress & portBYTE_ALIGNMENT_MASK ) != 0 )
{
xAddress += ( portBYTE_ALIGNMENT - 1 );
xAddress &= ~portBYTE_ALIGNMENT_MASK;
/* Adjust the size for the bytes lost to alignment. */
xTotalRegionSize -= xAddress - ( size_t ) pxHeapRegion->pucStartAddress;
}
xAlignedHeap = xAddress;
/* Set xStart if it has not already been set. */
if( xDefinedRegions == 0 )
{
/* xStart is used to hold a pointer to the first item in the list of
* free blocks. The void cast is used to prevent compiler warnings. */
xStart.pxNextFreeBlock = ( BlockLink_t * ) xAlignedHeap;
xStart.xBlockSize = ( size_t ) 0;
}
else
{
/* Should only get here if one region has already been added to the
* heap. */
configASSERT( pxEnd != NULL );
/* Check blocks are passed in with increasing start addresses. */
configASSERT( xAddress > ( size_t ) pxEnd );
}
/* Remember the location of the end marker in the previous region, if
* any. */
pxPreviousFreeBlock = pxEnd;
/* pxEnd is used to mark the end of the list of free blocks and is
* inserted at the end of the region space. */
xAddress = xAlignedHeap + xTotalRegionSize;
xAddress -= xHeapStructSize;
xAddress &= ~portBYTE_ALIGNMENT_MASK;
pxEnd = ( BlockLink_t * ) xAddress;
pxEnd->xBlockSize = 0;
pxEnd->pxNextFreeBlock = NULL;
/* To start with there is a single free block in this region that is
* sized to take up the entire heap region minus the space taken by the
* free block structure. */
pxFirstFreeBlockInRegion = ( BlockLink_t * ) xAlignedHeap;
pxFirstFreeBlockInRegion->xBlockSize = xAddress - ( size_t ) pxFirstFreeBlockInRegion;
pxFirstFreeBlockInRegion->pxNextFreeBlock = pxEnd;
/* If this is not the first region that makes up the entire heap space
* then link the previous region to this region. */
if( pxPreviousFreeBlock != NULL )
{
pxPreviousFreeBlock->pxNextFreeBlock = pxFirstFreeBlockInRegion;
}
xTotalHeapSize += pxFirstFreeBlockInRegion->xBlockSize;
/* Move onto the next HeapRegion_t structure. */
xDefinedRegions++;
pxHeapRegion = &( pxHeapRegions[ xDefinedRegions ] );
}
xMinimumEverFreeBytesRemaining = xTotalHeapSize;
xFreeBytesRemaining = xTotalHeapSize;
/* Check something was actually defined before it is accessed. */
configASSERT( xTotalHeapSize );
/* Work out the position of the top bit in a size_t variable. */
xBlockAllocatedBit = ( ( size_t ) 1 ) << ( ( sizeof( size_t ) * heapBITS_PER_BYTE ) - 1 );
}
/*-----------------------------------------------------------*/
void vPortGetHeapStats( HeapStats_t * pxHeapStats )
{
BlockLink_t * pxBlock;
size_t xBlocks = 0, xMaxSize = 0, xMinSize = portMAX_DELAY; /* portMAX_DELAY used as a portable way of getting the maximum value. */
vTaskSuspendAll();
{
pxBlock = xStart.pxNextFreeBlock;
/* pxBlock will be NULL if the heap has not been initialised. The heap
* is initialised automatically when the first allocation is made. */
if( pxBlock != NULL )
{
do
{
/* Increment the number of blocks and record the largest block seen
* so far. */
xBlocks++;
if( pxBlock->xBlockSize > xMaxSize )
{
xMaxSize = pxBlock->xBlockSize;
}
/* Heap five will have a zero sized block at the end of each
* each region - the block is only used to link to the next
* heap region so it not a real block. */
if( pxBlock->xBlockSize != 0 )
{
if( pxBlock->xBlockSize < xMinSize )
{
xMinSize = pxBlock->xBlockSize;
}
}
/* Move to the next block in the chain until the last block is
* reached. */
pxBlock = pxBlock->pxNextFreeBlock;
} while( pxBlock != pxEnd );
}
}
( void ) xTaskResumeAll();
pxHeapStats->xSizeOfLargestFreeBlockInBytes = xMaxSize;
pxHeapStats->xSizeOfSmallestFreeBlockInBytes = xMinSize;
pxHeapStats->xNumberOfFreeBlocks = xBlocks;
taskENTER_CRITICAL();
{
pxHeapStats->xAvailableHeapSpaceInBytes = xFreeBytesRemaining;
pxHeapStats->xNumberOfSuccessfulAllocations = xNumberOfSuccessfulAllocations;
pxHeapStats->xNumberOfSuccessfulFrees = xNumberOfSuccessfulFrees;
pxHeapStats->xMinimumEverFreeBytesRemaining = xMinimumEverFreeBytesRemaining;
}
taskEXIT_CRITICAL();
}

View File

@@ -8,6 +8,7 @@
#ifndef BSP_PINE64_PINS_H_
#define BSP_PINE64_PINS_H_
#include "bl702_adc.h"
#include "bl702_pwm.h"
#include "hal_gpio.h"
#define KEY_B_Pin GPIO_PIN_28

View File

@@ -8,21 +8,46 @@
#include "BSP.h"
#include "Debug.h"
#include "FreeRTOSConfig.h"
#include "Pins.h"
#include "IRQ.h"
#include "Pins.h"
#include "bl702_sec_eng.h"
#include "history.hpp"
#include <string.h>
#define ADC_NORM_SAMPLES 16
#define ADC_FILTER_LEN 4
uint16_t ADCReadings[ADC_NORM_SAMPLES]; // room for 32 lots of the pair of readings
// Heap
extern uint8_t _heap_start;
extern uint8_t _heap_size; // @suppress("Type cannot be resolved")
static HeapRegion_t xHeapRegions[] = {
{&_heap_start, (unsigned int)&_heap_size},
{NULL, 0}, /* Terminates the array. */
{NULL, 0} /* Terminates the array. */
};
// Functions
void setup_timer_scheduler(void);
void setup_pwm(void);
void setup_adc(void);
void hardware_init() {
vPortDefineHeapRegions(xHeapRegions);
HBN_Set_XCLK_CLK_Sel(HBN_XCLK_CLK_XTAL);
// Set capcode
{
uint32_t tmpVal = 0;
tmpVal = BL_RD_REG(AON_BASE, AON_XTAL_CFG);
tmpVal = BL_SET_REG_BITS_VAL(tmpVal, AON_XTAL_CAPCODE_IN_AON, 33);
tmpVal = BL_SET_REG_BITS_VAL(tmpVal, AON_XTAL_CAPCODE_OUT_AON, 33);
BL_WR_REG(AON_BASE, AON_XTAL_CFG, tmpVal);
}
Sec_Eng_Trng_Enable();
gpio_set_mode(OLED_RESET_Pin, GPIO_OUTPUT_MODE);
gpio_set_mode(KEY_A_Pin, GPIO_INPUT_PD_MODE);
gpio_set_mode(KEY_B_Pin, GPIO_INPUT_PD_MODE);
@@ -37,10 +62,10 @@ void hardware_init() {
setup_timer_scheduler();
setup_adc();
setup_pwm();
I2C_SetSclSync(I2C0_ID,1);
I2C_SetDeglitchCount(I2C0_ID,1); // Turn on de-glitch
//Note on I2C clock rate @ 100Khz the screen update == 20ms which is too long for USB-PD to work
//200kHz and above works
I2C_SetSclSync(I2C0_ID, 1);
I2C_SetDeglitchCount(I2C0_ID, 1); // Turn on de-glitch
// Note on I2C clock rate @ 100Khz the screen update == 20ms which is too long for USB-PD to work
// 200kHz and above works
I2C_ClockSet(I2C0_ID, 300000); // Sets clock to around 25 kHz less than set here
TIMER_SetCompValue(TIMER_CH0, TIMER_COMP_ID_1, 0);
}
@@ -114,32 +139,28 @@ void setup_timer_scheduler() {
TIMER_Disable(TIMER_CH0);
TIMER_CFG_Type cfg = {
TIMER_CH0, // Channel
TIMER_CLKSRC_32K, // Clock source
TIMER_PRELOAD_TRIG_COMP2, // Trigger
TIMER_COUNT_PRELOAD, // Counter mode
22, // Clock div
(uint16_t)(powerPWM + holdoffTicks), // CH0 compare (adc)
0, // CH1 compare (pwm out)
(uint16_t)(powerPWM + tempMeasureTicks + holdoffTicks), // CH2 comapre (total period)
0, // Preload
TIMER_CH0, // Channel
TIMER_CLKSRC_32K, // Clock source
TIMER_PRELOAD_TRIG_COMP0, // Trigger; reset after trigger 0
TIMER_COUNT_PRELOAD, // Counter mode
22, // Clock div
(uint16_t)(powerPWM + holdoffTicks), // CH0 compare (adc)
0, // CH1 compare (pwm out)
0, // CH2 compare not used
0, // Preload
};
TIMER_Init(&cfg);
Timer_Int_Callback_Install(TIMER_CH0, TIMER_INT_COMP_0, timer0_comp0_callback);
Timer_Int_Callback_Install(TIMER_CH0, TIMER_INT_COMP_1, timer0_comp1_callback);
Timer_Int_Callback_Install(TIMER_CH0, TIMER_INT_COMP_2, timer0_comp2_callback);
TIMER_ClearIntStatus(TIMER_CH0, TIMER_COMP_ID_0);
TIMER_ClearIntStatus(TIMER_CH0, TIMER_COMP_ID_1);
TIMER_ClearIntStatus(TIMER_CH0, TIMER_COMP_ID_2);
TIMER_IntMask(TIMER_CH0, TIMER_INT_COMP_0, UNMASK);
TIMER_IntMask(TIMER_CH0, TIMER_INT_COMP_1, UNMASK);
TIMER_IntMask(TIMER_CH0, TIMER_INT_COMP_2, UNMASK);
CPU_Interrupt_Enable(TIMER_CH0_IRQn);
TIMER_Enable(TIMER_CH0);
// switchToSlowPWM();
}
void setupFUSBIRQ() {
@@ -150,12 +171,3 @@ void setupFUSBIRQ() {
CPU_Interrupt_Enable(GPIO_INT0_IRQn);
gpio_irq_enable(FUSB302_IRQ_Pin, ENABLE);
}
void vAssertCalled(void) {
MSG((char *)"vAssertCalled\r\n");
PWM_Channel_Disable(PWM_Channel);
gpio_set_mode(PWM_Out_Pin, GPIO_INPUT_PD_MODE);
while (1)
;
}

View File

@@ -0,0 +1,323 @@
/*****************************************************************************************
*
* @file bl_hci_wrapper.c
*
* @brief Bouffalo Lab hci wrapper functions
*
* Copyright (C) Bouffalo Lab 2018
*
* History: 2018-08 crealted by llgong @ Shanghai
*
*****************************************************************************************/
#include <string.h>
#include <log.h>
#include "hci_host.h"
#include "bl_hci_wrapper.h"
#include "hci_driver.h"
#include "../common/include/errno.h"
#include "byteorder.h"
#include "hci_onchip.h"
#define DATA_MSG_CNT 10
struct rx_msg_struct data_msg[DATA_MSG_CNT];
struct k_queue msg_queue;
#if defined(BFLB_BLE_NOTIFY_ADV_DISCARDED)
extern void ble_controller_notify_adv_discarded(uint8_t *adv_bd_addr, uint8_t adv_type);
#endif
struct rx_msg_struct *bl_find_valid_data_msg()
{
struct rx_msg_struct empty_msg;
memset(&empty_msg, 0, sizeof(struct rx_msg_struct));
for (int i = 0; i < DATA_MSG_CNT; i++) {
if (!memcmp(&data_msg[i], &empty_msg, sizeof(struct rx_msg_struct))) {
return (data_msg + i);
}
}
return NULL;
}
int bl_onchiphci_send_2_controller(struct net_buf *buf)
{
uint16_t opcode;
uint16_t dest_id = 0x00;
uint8_t buf_type;
uint8_t pkt_type;
hci_pkt_struct pkt;
buf_type = bt_buf_get_type(buf);
switch (buf_type) {
case BT_BUF_CMD: {
struct bt_hci_cmd_hdr *chdr;
if (buf->len < sizeof(struct bt_hci_cmd_hdr)) {
return -EINVAL;
}
chdr = (void *)buf->data;
if (buf->len < chdr->param_len) {
return -EINVAL;
}
pkt_type = BT_HCI_CMD;
opcode = sys_le16_to_cpu(chdr->opcode);
//move buf to the payload
net_buf_pull(buf, sizeof(struct bt_hci_cmd_hdr));
switch (opcode) {
//ble refer to hci_cmd_desc_tab_le, for the ones of which dest_ll is BLE_CTRL
case BT_HCI_OP_LE_CONN_UPDATE:
case BT_HCI_OP_LE_READ_CHAN_MAP:
case BT_HCI_OP_LE_READ_REMOTE_FEATURES:
case BT_HCI_OP_LE_START_ENCRYPTION:
case BT_HCI_OP_LE_LTK_REQ_REPLY:
case BT_HCI_OP_LE_LTK_REQ_NEG_REPLY:
case BT_HCI_OP_LE_CONN_PARAM_REQ_REPLY:
case BT_HCI_OP_LE_CONN_PARAM_REQ_NEG_REPLY:
case BT_HCI_OP_LE_SET_DATA_LEN:
case BT_HCI_OP_LE_READ_PHY:
case BT_HCI_OP_LE_SET_PHY:
//bredr identify link id, according to dest_id
case BT_HCI_OP_READ_REMOTE_FEATURES:
case BT_HCI_OP_READ_REMOTE_EXT_FEATURES:
case BT_HCI_OP_READ_ENCRYPTION_KEY_SIZE: {
//dest_id is connectin handle
dest_id = buf->data[0];
}
default:
break;
}
pkt.p.hci_cmd.opcode = opcode;
pkt.p.hci_cmd.param_len = chdr->param_len;
pkt.p.hci_cmd.params = buf->data;
break;
}
case BT_BUF_ACL_OUT: {
struct bt_hci_acl_hdr *acl;
//connhandle +l2cap field
uint16_t connhdl_l2cf, tlt_len;
if (buf->len < sizeof(struct bt_hci_acl_hdr)) {
return -EINVAL;
}
pkt_type = BT_HCI_ACL_DATA;
acl = (void *)buf->data;
tlt_len = sys_le16_to_cpu(acl->len);
connhdl_l2cf = sys_le16_to_cpu(acl->handle);
//move buf to the payload
net_buf_pull(buf, sizeof(struct bt_hci_acl_hdr));
if (buf->len < tlt_len) {
return -EINVAL;
}
//get connection_handle
dest_id = bt_acl_handle(connhdl_l2cf);
pkt.p.acl_data.conhdl = dest_id;
pkt.p.acl_data.pb_bc_flag = bt_acl_flags(connhdl_l2cf);
pkt.p.acl_data.len = tlt_len;
pkt.p.acl_data.buffer = (uint8_t *)buf->data;
break;
}
default:
return -EINVAL;
}
return bt_onchiphci_send(pkt_type, dest_id, &pkt);
}
void bl_packet_to_host(uint8_t pkt_type, uint16_t src_id, uint8_t *param, uint8_t param_len, struct net_buf *buf)
{
uint16_t tlt_len;
bool prio = true;
uint8_t nb_h2c_cmd_pkts = 0x01;
uint8_t *buf_data = net_buf_tail(buf);
bt_buf_set_rx_adv(buf, false);
switch (pkt_type) {
case BT_HCI_CMD_CMP_EVT: {
tlt_len = BT_HCI_EVT_CC_PARAM_OFFSET + param_len;
*buf_data++ = BT_HCI_EVT_CMD_COMPLETE;
*buf_data++ = BT_HCI_CCEVT_HDR_PARLEN + param_len;
*buf_data++ = nb_h2c_cmd_pkts;
sys_put_le16(src_id, buf_data);
buf_data += 2;
memcpy(buf_data, param, param_len);
break;
}
case BT_HCI_CMD_STAT_EVT: {
tlt_len = BT_HCI_CSEVT_LEN;
*buf_data++ = BT_HCI_EVT_CMD_STATUS;
*buf_data++ = BT_HCI_CSVT_PARLEN;
*buf_data++ = *(uint8_t *)param;
*buf_data++ = nb_h2c_cmd_pkts;
sys_put_le16(src_id, buf_data);
break;
}
case BT_HCI_LE_EVT: {
prio = false;
bt_buf_set_type(buf, BT_BUF_EVT);
if (param[0] == BT_HCI_EVT_LE_ADVERTISING_REPORT) {
bt_buf_set_rx_adv(buf, true);
}
tlt_len = BT_HCI_EVT_LE_PARAM_OFFSET + param_len;
*buf_data++ = BT_HCI_EVT_LE_META_EVENT;
*buf_data++ = param_len;
memcpy(buf_data, param, param_len);
break;
}
case BT_HCI_EVT: {
if (src_id != BT_HCI_EVT_NUM_COMPLETED_PACKETS) {
prio = false;
}
bt_buf_set_type(buf, BT_BUF_EVT);
tlt_len = BT_HCI_EVT_LE_PARAM_OFFSET + param_len;
*buf_data++ = src_id;
*buf_data++ = param_len;
memcpy(buf_data, param, param_len);
break;
}
case BT_HCI_ACL_DATA: {
prio = false;
bt_buf_set_type(buf, BT_BUF_ACL_IN);
tlt_len = bt_onchiphci_hanlde_rx_acl(param, buf_data);
break;
}
default: {
net_buf_unref(buf);
return;
}
}
net_buf_add(buf, tlt_len);
if (prio) {
bt_recv_prio(buf);
} else {
hci_driver_enque_recvq(buf);
}
}
void bl_trigger_queued_msg()
{
struct net_buf *buf = NULL;
struct rx_msg_struct *msg = NULL;
do {
unsigned int lock = irq_lock();
if (k_queue_is_empty(&msg_queue)) {
break;
}
if (bt_buf_get_rx_avail_cnt() <= CONFIG_BT_RX_BUF_RSV_COUNT)
break;
buf = bt_buf_get_rx(BT_BUF_ACL_IN, K_NO_WAIT);
if (!buf) {
break;
}
msg = k_fifo_get(&msg_queue, K_NO_WAIT);
BT_ASSERT(msg);
bl_packet_to_host(msg->pkt_type, msg->src_id, msg->param, msg->param_len, buf);
irq_unlock(lock);
if (msg->param) {
k_free(msg->param);
}
memset(msg, 0, sizeof(struct rx_msg_struct));
} while (buf);
}
static void bl_onchiphci_rx_packet_handler(uint8_t pkt_type, uint16_t src_id, uint8_t *param, uint8_t param_len)
{
struct net_buf *buf = NULL;
struct rx_msg_struct *rx_msg = NULL;
if (pkt_type == BT_HCI_CMD_CMP_EVT || pkt_type == BT_HCI_CMD_STAT_EVT) {
buf = bt_buf_get_cmd_complete(K_FOREVER);
bl_packet_to_host(pkt_type, src_id, param, param_len, buf);
return;
} else if (pkt_type == BT_HCI_LE_EVT && param[0] == BT_HCI_EVT_LE_ADVERTISING_REPORT) {
if (bt_buf_get_rx_avail_cnt() <= CONFIG_BT_RX_BUF_RSV_COUNT) {
BT_INFO("Discard adv report.");
#if defined(BFLB_BLE_NOTIFY_ADV_DISCARDED)
ble_controller_notify_adv_discarded(&param[4], param[2]);
#endif
return;
}
buf = bt_buf_get_rx(BT_BUF_ACL_IN, K_NO_WAIT);
if (buf)
bl_packet_to_host(pkt_type, src_id, param, param_len, buf);
return;
} else {
if (pkt_type != BT_HCI_ACL_DATA) {
/* Using the reserved buf (CONFIG_BT_RX_BUF_RSV_COUNT) firstly. */
buf = bt_buf_get_rx(BT_BUF_ACL_IN, K_NO_WAIT);
if (buf) {
bl_packet_to_host(pkt_type, src_id, param, param_len, buf);
return;
}
}
rx_msg = bl_find_valid_data_msg();
}
BT_ASSERT(rx_msg);
rx_msg->pkt_type = pkt_type;
rx_msg->src_id = src_id;
rx_msg->param_len = param_len;
if (param_len) {
rx_msg->param = k_malloc(param_len);
memcpy(rx_msg->param, param, param_len);
}
k_fifo_put(&msg_queue, rx_msg);
bl_trigger_queued_msg();
}
uint8_t bl_onchiphci_interface_init(void)
{
for (int i = 0; i < DATA_MSG_CNT; i++) {
memset(data_msg + i, 0, sizeof(struct rx_msg_struct));
}
k_queue_init(&msg_queue, DATA_MSG_CNT);
return bt_onchiphci_interface_init(bl_onchiphci_rx_packet_handler);
}
void bl_onchiphci_interface_deinit(void)
{
struct rx_msg_struct *msg;
do {
msg = k_fifo_get(&msg_queue, K_NO_WAIT);
if (msg) {
if (msg->param) {
k_free(msg->param);
}
} else {
break;
}
} while (1);
k_queue_free(&msg_queue);
}

View File

@@ -0,0 +1,26 @@
#ifndef __BL_HCI_WRAPPER_H__
#define __BL_HCI_WRAPPER_H__
#include "net/buf.h"
#include "bluetooth.h"
struct rx_msg_struct {
uint8_t pkt_type;
uint16_t src_id;
uint8_t *param;
uint8_t param_len;
} __packed;
typedef enum {
DATA_TYPE_COMMAND = 1,
DATA_TYPE_ACL = 2,
DATA_TYPE_SCO = 3,
DATA_TYPE_EVENT = 4
} serial_data_type_t;
uint8_t bl_onchiphci_interface_init(void);
void bl_onchiphci_interface_deinit(void);
void bl_trigger_queued_msg(void);
int bl_onchiphci_send_2_controller(struct net_buf *buf);
#endif //__BL_CONTROLLER_H__

View File

@@ -0,0 +1,353 @@
/*
* Copyright (c) 2016 Intel Corporation
* Copyright (c) 2011-2014 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file Atomic ops in pure C
*
* This module provides the atomic operators for processors
* which do not support native atomic operations.
*
* The atomic operations are guaranteed to be atomic with respect
* to interrupt service routines, and to operations performed by peer
* processors.
*
* (originally from x86's atomic.c)
*/
#include <FreeRTOS.h>
#include <include/atomic.h>
#include "bl_port.h"
//#include <toolchain.h>
//#include <arch/cpu.h>
/**
*
* @brief Atomic compare-and-set primitive
*
* This routine provides the compare-and-set operator. If the original value at
* <target> equals <oldValue>, then <newValue> is stored at <target> and the
* function returns 1.
*
* If the original value at <target> does not equal <oldValue>, then the store
* is not done and the function returns 0.
*
* The reading of the original value at <target>, the comparison,
* and the write of the new value (if it occurs) all happen atomically with
* respect to both interrupts and accesses of other processors to <target>.
*
* @param target address to be tested
* @param old_value value to compare against
* @param new_value value to compare against
* @return Returns 1 if <new_value> is written, 0 otherwise.
*/
int atomic_cas(atomic_t *target, atomic_val_t old_value,
atomic_val_t new_value)
{
unsigned int key;
int ret = 0;
key = irq_lock();
if (*target == old_value) {
*target = new_value;
ret = 1;
}
irq_unlock(key);
return ret;
}
/**
*
* @brief Atomic addition primitive
*
* This routine provides the atomic addition operator. The <value> is
* atomically added to the value at <target>, placing the result at <target>,
* and the old value from <target> is returned.
*
* @param target memory location to add to
* @param value the value to add
*
* @return The previous value from <target>
*/
atomic_val_t atomic_add(atomic_t *target, atomic_val_t value)
{
unsigned int key;
atomic_val_t ret;
key = irq_lock();
ret = *target;
*target += value;
irq_unlock(key);
return ret;
}
/**
*
* @brief Atomic subtraction primitive
*
* This routine provides the atomic subtraction operator. The <value> is
* atomically subtracted from the value at <target>, placing the result at
* <target>, and the old value from <target> is returned.
*
* @param target the memory location to subtract from
* @param value the value to subtract
*
* @return The previous value from <target>
*/
atomic_val_t atomic_sub(atomic_t *target, atomic_val_t value)
{
unsigned int key;
atomic_val_t ret;
key = irq_lock();
ret = *target;
*target -= value;
irq_unlock(key);
return ret;
}
/**
*
* @brief Atomic increment primitive
*
* @param target memory location to increment
*
* This routine provides the atomic increment operator. The value at <target>
* is atomically incremented by 1, and the old value from <target> is returned.
*
* @return The value from <target> before the increment
*/
atomic_val_t atomic_inc(atomic_t *target)
{
unsigned int key;
atomic_val_t ret;
key = irq_lock();
ret = *target;
(*target)++;
irq_unlock(key);
return ret;
}
/**
*
* @brief Atomic decrement primitive
*
* @param target memory location to decrement
*
* This routine provides the atomic decrement operator. The value at <target>
* is atomically decremented by 1, and the old value from <target> is returned.
*
* @return The value from <target> prior to the decrement
*/
atomic_val_t atomic_dec(atomic_t *target)
{
unsigned int key;
atomic_val_t ret;
key = irq_lock();
ret = *target;
(*target)--;
irq_unlock(key);
return ret;
}
/**
*
* @brief Atomic get primitive
*
* @param target memory location to read from
*
* This routine provides the atomic get primitive to atomically read
* a value from <target>. It simply does an ordinary load. Note that <target>
* is expected to be aligned to a 4-byte boundary.
*
* @return The value read from <target>
*/
atomic_val_t atomic_get(const atomic_t *target)
{
return *target;
}
/**
*
* @brief Atomic get-and-set primitive
*
* This routine provides the atomic set operator. The <value> is atomically
* written at <target> and the previous value at <target> is returned.
*
* @param target the memory location to write to
* @param value the value to write
*
* @return The previous value from <target>
*/
atomic_val_t atomic_set(atomic_t *target, atomic_val_t value)
{
unsigned int key;
atomic_val_t ret;
key = irq_lock();
ret = *target;
*target = value;
irq_unlock(key);
return ret;
}
/**
*
* @brief Atomic clear primitive
*
* This routine provides the atomic clear operator. The value of 0 is atomically
* written at <target> and the previous value at <target> is returned. (Hence,
* atomic_clear(pAtomicVar) is equivalent to atomic_set(pAtomicVar, 0).)
*
* @param target the memory location to write
*
* @return The previous value from <target>
*/
atomic_val_t atomic_clear(atomic_t *target)
{
unsigned int key;
atomic_val_t ret;
key = irq_lock();
ret = *target;
*target = 0;
irq_unlock(key);
return ret;
}
/**
*
* @brief Atomic bitwise inclusive OR primitive
*
* This routine provides the atomic bitwise inclusive OR operator. The <value>
* is atomically bitwise OR'ed with the value at <target>, placing the result
* at <target>, and the previous value at <target> is returned.
*
* @param target the memory location to be modified
* @param value the value to OR
*
* @return The previous value from <target>
*/
atomic_val_t atomic_or(atomic_t *target, atomic_val_t value)
{
unsigned int key;
atomic_val_t ret;
key = irq_lock();
ret = *target;
*target |= value;
irq_unlock(key);
return ret;
}
/**
*
* @brief Atomic bitwise exclusive OR (XOR) primitive
*
* This routine provides the atomic bitwise exclusive OR operator. The <value>
* is atomically bitwise XOR'ed with the value at <target>, placing the result
* at <target>, and the previous value at <target> is returned.
*
* @param target the memory location to be modified
* @param value the value to XOR
*
* @return The previous value from <target>
*/
atomic_val_t atomic_xor(atomic_t *target, atomic_val_t value)
{
unsigned int key;
atomic_val_t ret;
key = irq_lock();
ret = *target;
*target ^= value;
irq_unlock(key);
return ret;
}
/**
*
* @brief Atomic bitwise AND primitive
*
* This routine provides the atomic bitwise AND operator. The <value> is
* atomically bitwise AND'ed with the value at <target>, placing the result
* at <target>, and the previous value at <target> is returned.
*
* @param target the memory location to be modified
* @param value the value to AND
*
* @return The previous value from <target>
*/
atomic_val_t atomic_and(atomic_t *target, atomic_val_t value)
{
unsigned int key;
atomic_val_t ret;
key = irq_lock();
ret = *target;
*target &= value;
irq_unlock(key);
return ret;
}
/**
*
* @brief Atomic bitwise NAND primitive
*
* This routine provides the atomic bitwise NAND operator. The <value> is
* atomically bitwise NAND'ed with the value at <target>, placing the result
* at <target>, and the previous value at <target> is returned.
*
* @param target the memory location to be modified
* @param value the value to NAND
*
* @return The previous value from <target>
*/
atomic_val_t atomic_nand(atomic_t *target, atomic_val_t value)
{
unsigned int key;
atomic_val_t ret;
key = irq_lock();
ret = *target;
*target = ~(*target & value);
irq_unlock(key);
return ret;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,33 @@
/*
* Copyright (c) 2019 Oticon A/S
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <util.h>
u8_t u8_to_dec(char *buf, u8_t buflen, u8_t value)
{
u8_t divisor = 100;
u8_t num_digits = 0;
u8_t digit;
while (buflen > 0 && divisor > 0) {
digit = value / divisor;
if (digit != 0 || divisor == 1 || num_digits != 0) {
*buf = (char)digit + '0';
buf++;
buflen--;
num_digits++;
}
value -= digit * divisor;
divisor /= 10;
}
if (buflen) {
*buf = '\0';
}
return num_digits;
}

View File

@@ -0,0 +1,40 @@
/**
* @file dummy.c
* Static compilation checks.
*/
/*
* Copyright (c) 2017 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr.h>
#if defined(CONFIG_BT_HCI_HOST)
/* The Bluetooth subsystem requires the Tx thread to execute at higher priority
* than the Rx thread as the Tx thread needs to process the acknowledgements
* before new Rx data is processed. This is a necessity to correctly detect
* transaction violations in ATT and SMP protocols.
*/
BUILD_ASSERT(CONFIG_BT_HCI_TX_PRIO < CONFIG_BT_RX_PRIO);
#endif
#if defined(CONFIG_BT_CTLR)
/* The Bluetooth Controller's priority receive thread priority shall be higher
* than the Bluetooth Host's Tx and the Controller's receive thread priority.
* This is required in order to dispatch Number of Completed Packets event
* before any new data arrives on a connection to the Host threads.
*/
BUILD_ASSERT(CONFIG_BT_CTLR_RX_PRIO < CONFIG_BT_HCI_TX_PRIO);
#endif /* CONFIG_BT_CTLR */
/* Immediate logging is not supported with the software-based Link Layer
* since it introduces ISR latency due to outputting log messages with
* interrupts disabled.
*/
#if !defined(CONFIG_TEST) && !defined(CONFIG_ARCH_POSIX) && \
(defined(CONFIG_BT_LL_SW_SPLIT) || defined(CONFIG_BT_LL_SW_LEGACY))
BUILD_ASSERT_MSG(!IS_ENABLED(CONFIG_LOG_IMMEDIATE), "Immediate logging not "
"supported with the software Link Layer");
#endif

View File

@@ -0,0 +1,11 @@
/*
* Copyright (c) 2019 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stddef.h>
#include <zephyr/types.h>
#include <errno.h>
// #include <sys/util.h>

View File

@@ -0,0 +1,444 @@
/* atomic operations */
/*
* Copyright (c) 1997-2015, Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __ATOMIC_H__
#define __ATOMIC_H__
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef int atomic_t;
typedef atomic_t atomic_val_t;
/**
* @defgroup atomic_apis Atomic Services APIs
* @ingroup kernel_apis
* @{
*/
/**
* @brief Atomic compare-and-set.
*
* This routine performs an atomic compare-and-set on @a target. If the current
* value of @a target equals @a old_value, @a target is set to @a new_value.
* If the current value of @a target does not equal @a old_value, @a target
* is left unchanged.
*
* @param target Address of atomic variable.
* @param old_value Original value to compare against.
* @param new_value New value to store.
* @return 1 if @a new_value is written, 0 otherwise.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline int atomic_cas(atomic_t *target, atomic_val_t old_value,
atomic_val_t new_value)
{
return __atomic_compare_exchange_n(target, &old_value, new_value,
0, __ATOMIC_SEQ_CST,
__ATOMIC_SEQ_CST);
}
#else
extern int atomic_cas(atomic_t *target, atomic_val_t old_value,
atomic_val_t new_value);
#endif
/**
*
* @brief Atomic addition.
*
* This routine performs an atomic addition on @a target.
*
* @param target Address of atomic variable.
* @param value Value to add.
*
* @return Previous value of @a target.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline atomic_val_t atomic_add(atomic_t *target, atomic_val_t value)
{
return __atomic_fetch_add(target, value, __ATOMIC_SEQ_CST);
}
#else
extern atomic_val_t atomic_add(atomic_t *target, atomic_val_t value);
#endif
/**
*
* @brief Atomic subtraction.
*
* This routine performs an atomic subtraction on @a target.
*
* @param target Address of atomic variable.
* @param value Value to subtract.
*
* @return Previous value of @a target.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline atomic_val_t atomic_sub(atomic_t *target, atomic_val_t value)
{
return __atomic_fetch_sub(target, value, __ATOMIC_SEQ_CST);
}
#else
extern atomic_val_t atomic_sub(atomic_t *target, atomic_val_t value);
#endif
/**
*
* @brief Atomic increment.
*
* This routine performs an atomic increment by 1 on @a target.
*
* @param target Address of atomic variable.
*
* @return Previous value of @a target.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline atomic_val_t atomic_inc(atomic_t *target)
{
return atomic_add(target, 1);
}
#else
extern atomic_val_t atomic_inc(atomic_t *target);
#endif
/**
*
* @brief Atomic decrement.
*
* This routine performs an atomic decrement by 1 on @a target.
*
* @param target Address of atomic variable.
*
* @return Previous value of @a target.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline atomic_val_t atomic_dec(atomic_t *target)
{
return atomic_sub(target, 1);
}
#else
extern atomic_val_t atomic_dec(atomic_t *target);
#endif
/**
*
* @brief Atomic get.
*
* This routine performs an atomic read on @a target.
*
* @param target Address of atomic variable.
*
* @return Value of @a target.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline atomic_val_t atomic_get(const atomic_t *target)
{
return __atomic_load_n(target, __ATOMIC_SEQ_CST);
}
#else
extern atomic_val_t atomic_get(const atomic_t *target);
#endif
/**
*
* @brief Atomic get-and-set.
*
* This routine atomically sets @a target to @a value and returns
* the previous value of @a target.
*
* @param target Address of atomic variable.
* @param value Value to write to @a target.
*
* @return Previous value of @a target.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline atomic_val_t atomic_set(atomic_t *target, atomic_val_t value)
{
/* This builtin, as described by Intel, is not a traditional
* test-and-set operation, but rather an atomic exchange operation. It
* writes value into *ptr, and returns the previous contents of *ptr.
*/
return __atomic_exchange_n(target, value, __ATOMIC_SEQ_CST);
}
#else
extern atomic_val_t atomic_set(atomic_t *target, atomic_val_t value);
#endif
/**
*
* @brief Atomic clear.
*
* This routine atomically sets @a target to zero and returns its previous
* value. (Hence, it is equivalent to atomic_set(target, 0).)
*
* @param target Address of atomic variable.
*
* @return Previous value of @a target.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline atomic_val_t atomic_clear(atomic_t *target)
{
return atomic_set(target, 0);
}
#else
extern atomic_val_t atomic_clear(atomic_t *target);
#endif
/**
*
* @brief Atomic bitwise inclusive OR.
*
* This routine atomically sets @a target to the bitwise inclusive OR of
* @a target and @a value.
*
* @param target Address of atomic variable.
* @param value Value to OR.
*
* @return Previous value of @a target.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline atomic_val_t atomic_or(atomic_t *target, atomic_val_t value)
{
return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
}
#else
extern atomic_val_t atomic_or(atomic_t *target, atomic_val_t value);
#endif
/**
*
* @brief Atomic bitwise exclusive OR (XOR).
*
* This routine atomically sets @a target to the bitwise exclusive OR (XOR) of
* @a target and @a value.
*
* @param target Address of atomic variable.
* @param value Value to XOR
*
* @return Previous value of @a target.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline atomic_val_t atomic_xor(atomic_t *target, atomic_val_t value)
{
return __atomic_fetch_xor(target, value, __ATOMIC_SEQ_CST);
}
#else
extern atomic_val_t atomic_xor(atomic_t *target, atomic_val_t value);
#endif
/**
*
* @brief Atomic bitwise AND.
*
* This routine atomically sets @a target to the bitwise AND of @a target
* and @a value.
*
* @param target Address of atomic variable.
* @param value Value to AND.
*
* @return Previous value of @a target.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline atomic_val_t atomic_and(atomic_t *target, atomic_val_t value)
{
return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
}
#else
extern atomic_val_t atomic_and(atomic_t *target, atomic_val_t value);
#endif
/**
*
* @brief Atomic bitwise NAND.
*
* This routine atomically sets @a target to the bitwise NAND of @a target
* and @a value. (This operation is equivalent to target = ~(target & value).)
*
* @param target Address of atomic variable.
* @param value Value to NAND.
*
* @return Previous value of @a target.
*/
#ifdef CONFIG_ATOMIC_OPERATIONS_BUILTIN
static inline atomic_val_t atomic_nand(atomic_t *target, atomic_val_t value)
{
return __atomic_fetch_nand(target, value, __ATOMIC_SEQ_CST);
}
#else
extern atomic_val_t atomic_nand(atomic_t *target, atomic_val_t value);
#endif
/**
* @brief Initialize an atomic variable.
*
* This macro can be used to initialize an atomic variable. For example,
* @code atomic_t my_var = ATOMIC_INIT(75); @endcode
*
* @param i Value to assign to atomic variable.
*/
#define ATOMIC_INIT(i) (i)
/**
* @cond INTERNAL_HIDDEN
*/
#define ATOMIC_BITS (sizeof(atomic_val_t) * 8)
#define ATOMIC_MASK(bit) (1 << ((bit) & (ATOMIC_BITS - 1)))
#define ATOMIC_ELEM(addr, bit) ((addr) + ((bit) / ATOMIC_BITS))
/**
* INTERNAL_HIDDEN @endcond
*/
/**
* @brief Define an array of atomic variables.
*
* This macro defines an array of atomic variables containing at least
* @a num_bits bits.
*
* @note
* If used from file scope, the bits of the array are initialized to zero;
* if used from within a function, the bits are left uninitialized.
*
* @param name Name of array of atomic variables.
* @param num_bits Number of bits needed.
*/
#define ATOMIC_DEFINE(name, num_bits) \
atomic_t name[1 + ((num_bits)-1) / ATOMIC_BITS]
/**
* @brief Atomically test a bit.
*
* This routine tests whether bit number @a bit of @a target is set or not.
* The target may be a single atomic variable or an array of them.
*
* @param target Address of atomic variable or array.
* @param bit Bit number (starting from 0).
*
* @return 1 if the bit was set, 0 if it wasn't.
*/
static inline int atomic_test_bit(const atomic_t *target, int bit)
{
atomic_val_t val = atomic_get(ATOMIC_ELEM(target, bit));
return (1 & (val >> (bit & (ATOMIC_BITS - 1))));
}
/**
* @brief Atomically test and clear a bit.
*
* Atomically clear bit number @a bit of @a target and return its old value.
* The target may be a single atomic variable or an array of them.
*
* @param target Address of atomic variable or array.
* @param bit Bit number (starting from 0).
*
* @return 1 if the bit was set, 0 if it wasn't.
*/
static inline int atomic_test_and_clear_bit(atomic_t *target, int bit)
{
atomic_val_t mask = ATOMIC_MASK(bit);
atomic_val_t old;
old = atomic_and(ATOMIC_ELEM(target, bit), ~mask);
return (old & mask) != 0;
}
/**
* @brief Atomically set a bit.
*
* Atomically set bit number @a bit of @a target and return its old value.
* The target may be a single atomic variable or an array of them.
*
* @param target Address of atomic variable or array.
* @param bit Bit number (starting from 0).
*
* @return 1 if the bit was set, 0 if it wasn't.
*/
static inline int atomic_test_and_set_bit(atomic_t *target, int bit)
{
atomic_val_t mask = ATOMIC_MASK(bit);
atomic_val_t old;
old = atomic_or(ATOMIC_ELEM(target, bit), mask);
return (old & mask) != 0;
}
/**
* @brief Atomically clear a bit.
*
* Atomically clear bit number @a bit of @a target.
* The target may be a single atomic variable or an array of them.
*
* @param target Address of atomic variable or array.
* @param bit Bit number (starting from 0).
*
* @return N/A
*/
static inline void atomic_clear_bit(atomic_t *target, int bit)
{
atomic_val_t mask = ATOMIC_MASK(bit);
atomic_and(ATOMIC_ELEM(target, bit), ~mask);
}
/**
* @brief Atomically set a bit.
*
* Atomically set bit number @a bit of @a target.
* The target may be a single atomic variable or an array of them.
*
* @param target Address of atomic variable or array.
* @param bit Bit number (starting from 0).
*
* @return N/A
*/
static inline void atomic_set_bit(atomic_t *target, int bit)
{
atomic_val_t mask = ATOMIC_MASK(bit);
atomic_or(ATOMIC_ELEM(target, bit), mask);
}
/**
* @brief Atomically set a bit to a given value.
*
* Atomically set bit number @a bit of @a target to value @a val.
* The target may be a single atomic variable or an array of them.
*
* @param target Address of atomic variable or array.
* @param bit Bit number (starting from 0).
* @param val true for 1, false for 0.
*
* @return N/A
*/
static inline void atomic_set_bit_to(atomic_t *target, int bit, bool val)
{
atomic_val_t mask = ATOMIC_MASK(bit);
if (val) {
(void)atomic_or(ATOMIC_ELEM(target, bit), mask);
} else {
(void)atomic_and(ATOMIC_ELEM(target, bit), ~mask);
}
}
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* __ATOMIC_H__ */

View File

@@ -0,0 +1,132 @@
/* errno.h - errno numbers */
/*
* Copyright (c) 1984-1999, 2012 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
/*
* Copyright (c) 1982, 1986 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)errno.h 7.1 (Berkeley) 6/4/86
*/
#ifndef __INCerrnoh
#define __INCerrnoh
#ifdef __cplusplus
extern "C" {
#endif
extern int *__errno(void);
#define errno (*__errno())
/*
* POSIX Error codes
*/
#define EPERM 1 /* Not owner */
#define ENOENT 2 /* No such file or directory */
#define ESRCH 3 /* No such context */
#define EINTR 4 /* Interrupted system call */
#define EIO 5 /* I/O error */
#define ENXIO 6 /* No such device or address */
#define E2BIG 7 /* Arg list too long */
#define ENOEXEC 8 /* Exec format error */
#define EBADF 9 /* Bad file number */
#define ECHILD 10 /* No children */
#define EAGAIN 11 /* No more contexts */
#define ENOMEM 12 /* Not enough core */
#define EACCES 13 /* Permission denied */
#define EFAULT 14 /* Bad address */
#define ENOTEMPTY 15 /* Directory not empty */
#define EBUSY 16 /* Mount device busy */
#define EEXIST 17 /* File exists */
#define EXDEV 18 /* Cross-device link */
#define ENODEV 19 /* No such device */
#define ENOTDIR 20 /* Not a directory */
#define EISDIR 21 /* Is a directory */
#define EINVAL 22 /* Invalid argument */
#define ENFILE 23 /* File table overflow */
#define EMFILE 24 /* Too many open files */
#define ENOTTY 25 /* Not a typewriter */
#define ENAMETOOLONG 26 /* File name too long */
#define EFBIG 27 /* File too large */
#define ENOSPC 28 /* No space left on device */
#define ESPIPE 29 /* Illegal seek */
#define EROFS 30 /* Read-only file system */
#define EMLINK 31 /* Too many links */
#define EPIPE 32 /* Broken pipe */
#define EDEADLK 33 /* Resource deadlock avoided */
#define ENOLCK 34 /* No locks available */
#define ENOTSUP 35 /* Unsupported value */
#define EMSGSIZE 36 /* Message size */
/* ANSI math software */
#define EDOM 37 /* Argument too large */
#define ERANGE 38 /* Result too large */
/* ipc/network software */
/* argument errors */
#define EDESTADDRREQ 40 /* Destination address required */
#define EPROTOTYPE 41 /* Protocol wrong type for socket */
#define ENOPROTOOPT 42 /* Protocol not available */
#define EPROTONOSUPPORT 43 /* Protocol not supported */
#define ESOCKTNOSUPPORT 44 /* Socket type not supported */
#define EOPNOTSUPP 45 /* Operation not supported on socket */
#define EPFNOSUPPORT 46 /* Protocol family not supported */
#define EAFNOSUPPORT 47 /* Addr family not supported */
#define EADDRINUSE 48 /* Address already in use */
#define EADDRNOTAVAIL 49 /* Can't assign requested address */
#define ENOTSOCK 50 /* Socket operation on non-socket */
/* operational errors */
#define ENETUNREACH 51 /* Network is unreachable */
#define ENETRESET 52 /* Network dropped connection on reset */
#define ECONNABORTED 53 /* Software caused connection abort */
#define ECONNRESET 54 /* Connection reset by peer */
#define ENOBUFS 55 /* No buffer space available */
#define EISCONN 56 /* Socket is already connected */
#define ENOTCONN 57 /* Socket is not connected */
#define ESHUTDOWN 58 /* Can't send after socket shutdown */
#define ETOOMANYREFS 59 /* Too many references: can't splice */
#define ETIMEDOUT 60 /* Connection timed out */
#define ECONNREFUSED 61 /* Connection refused */
#define ENETDOWN 62 /* Network is down */
#define ETXTBSY 63 /* Text file busy */
#define ELOOP 64 /* Too many levels of symbolic links */
#define EHOSTUNREACH 65 /* No route to host */
#define ENOTBLK 66 /* Block device required */
#define EHOSTDOWN 67 /* Host is down */
/* non-blocking and interrupt i/o */
#define EINPROGRESS 68 /* Operation now in progress */
#define EALREADY 69 /* Operation already in progress */
#define EWOULDBLOCK EAGAIN /* Operation would block */
#define ENOSYS 71 /* Function not implemented */
/* aio errors (should be under posix) */
#define ECANCELED 72 /* Operation canceled */
#define ERRMAX 81
/* specific STREAMS errno values */
#define ENOSR 74 /* Insufficient memory */
#define ENOSTR 75 /* STREAMS device required */
#define EPROTO 76 /* Generic STREAMS error */
#define EBADMSG 77 /* Invalid STREAMS message */
#define ENODATA 78 /* Missing expected message data */
#define ETIME 79 /* STREAMS timeout occurred */
#define ENOMSG 80 /* Unexpected message type */
#ifdef __cplusplus
}
#endif
#endif /* __INCerrnoh */

View File

@@ -0,0 +1,114 @@
/*
* Copyright (c) 2011-2014 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief Debug aid
*
*
* The __ASSERT() macro can be used inside kernel code.
*
* Assertions are enabled by setting the __ASSERT_ON symbol to a non-zero value.
* There are two ways to do this:
* a) Use the ASSERT and ASSERT_LEVEL kconfig options
* b) Add "CFLAGS += -D__ASSERT_ON=<level>" at the end of a project's Makefile
* The Makefile method takes precedence over the kconfig option if both are
* used.
*
* Specifying an assertion level of 1 causes the compiler to issue warnings that
* the kernel contains debug-type __ASSERT() statements; this reminder is issued
* since assertion code is not normally present in a final product. Specifying
* assertion level 2 suppresses these warnings.
*
* The __ASSERT_EVAL() macro can also be used inside kernel code.
*
* It makes use of the __ASSERT() macro, but has some extra flexibility. It
* allows the developer to specify different actions depending whether the
* __ASSERT() macro is enabled or not. This can be particularly useful to
* prevent the compiler from generating comments (errors, warnings or remarks)
* about variables that are only used with __ASSERT() being assigned a value,
* but otherwise unused when the __ASSERT() macro is disabled.
*
* Consider the following example:
*
* int x;
*
* x = foo ();
* __ASSERT (x != 0, "foo() returned zero!");
*
* If __ASSERT() is disabled, then 'x' is assigned a value, but never used.
* This type of situation can be resolved using the __ASSERT_EVAL() macro.
*
* __ASSERT_EVAL ((void) foo(),
* int x = foo(),
* x != 0,
* "foo() returned zero!");
*
* The first parameter tells __ASSERT_EVAL() what to do if __ASSERT() is
* disabled. The second parameter tells __ASSERT_EVAL() what to do if
* __ASSERT() is enabled. The third and fourth parameters are the parameters
* it passes to __ASSERT().
*
* The __ASSERT_NO_MSG() macro can be used to perform an assertion that reports
* the failed test and its location, but lacks additional debugging information
* provided to assist the user in diagnosing the problem; its use is
* discouraged.
*/
#ifndef ___ASSERT__H_
#define ___ASSERT__H_
#ifdef CONFIG_ASSERT
#ifndef __ASSERT_ON
#define __ASSERT_ON CONFIG_ASSERT_LEVEL
#endif
#endif
#ifdef __ASSERT_ON
#if (__ASSERT_ON < 0) || (__ASSERT_ON > 2)
#error "Invalid __ASSERT() level: must be between 0 and 2"
#endif
#if __ASSERT_ON
#include <misc/printk.h>
#define __ASSERT(test, fmt, ...) \
do { \
if (!(test)) { \
printk("ASSERTION FAIL [%s] @ %s:%d:\n\t", \
_STRINGIFY(test), \
__FILE__, \
__LINE__); \
printk(fmt, ##__VA_ARGS__); \
for (;;) \
; /* spin thread */ \
} \
} while ((0))
#define __ASSERT_EVAL(expr1, expr2, test, fmt, ...) \
do { \
expr2; \
__ASSERT(test, fmt, ##__VA_ARGS__); \
} while (0)
#if (__ASSERT_ON == 1)
#warning "__ASSERT() statements are ENABLED"
#endif
#else
#define __ASSERT(test, fmt, ...) \
do { /* nothing */ \
} while ((0))
#define __ASSERT_EVAL(expr1, expr2, test, fmt, ...) expr1
#endif
#else
#define __ASSERT(test, fmt, ...) \
do { /* nothing */ \
} while ((0))
#define __ASSERT_EVAL(expr1, expr2, test, fmt, ...) expr1
#endif
#define __ASSERT_NO_MSG(test) __ASSERT(test, "")
#endif /* ___ASSERT__H_ */

View File

@@ -0,0 +1,441 @@
/** @file
* @brief Byte order helpers.
*/
/*
* Copyright (c) 2015-2016, Intel Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BYTEORDER_H__
#define __BYTEORDER_H__
#include <zephyr/types.h>
#include <stddef.h>
#include <misc/__assert.h>
#ifndef __BYTE_ORDER__
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#endif
/* Internal helpers only used by the sys_* APIs further below */
#define __bswap_16(x) ((u16_t)((((x) >> 8) & 0xff) | (((x)&0xff) << 8)))
#define __bswap_32(x) ((u32_t)((((x) >> 24) & 0xff) | \
(((x) >> 8) & 0xff00) | \
(((x)&0xff00) << 8) | \
(((x)&0xff) << 24)))
#define __bswap_64(x) ((u64_t)((((x) >> 56) & 0xff) | \
(((x) >> 40) & 0xff00) | \
(((x) >> 24) & 0xff0000) | \
(((x) >> 8) & 0xff000000) | \
(((x)&0xff000000) << 8) | \
(((x)&0xff0000) << 24) | \
(((x)&0xff00) << 40) | \
(((x)&0xff) << 56)))
/** @def sys_le16_to_cpu
* @brief Convert 16-bit integer from little-endian to host endianness.
*
* @param val 16-bit integer in little-endian format.
*
* @return 16-bit integer in host endianness.
*/
/** @def sys_cpu_to_le16
* @brief Convert 16-bit integer from host endianness to little-endian.
*
* @param val 16-bit integer in host endianness.
*
* @return 16-bit integer in little-endian format.
*/
/** @def sys_be16_to_cpu
* @brief Convert 16-bit integer from big-endian to host endianness.
*
* @param val 16-bit integer in big-endian format.
*
* @return 16-bit integer in host endianness.
*/
/** @def sys_cpu_to_be16
* @brief Convert 16-bit integer from host endianness to big-endian.
*
* @param val 16-bit integer in host endianness.
*
* @return 16-bit integer in big-endian format.
*/
/** @def sys_le32_to_cpu
* @brief Convert 32-bit integer from little-endian to host endianness.
*
* @param val 32-bit integer in little-endian format.
*
* @return 32-bit integer in host endianness.
*/
/** @def sys_cpu_to_le32
* @brief Convert 32-bit integer from host endianness to little-endian.
*
* @param val 32-bit integer in host endianness.
*
* @return 32-bit integer in little-endian format.
*/
/** @def sys_be32_to_cpu
* @brief Convert 32-bit integer from big-endian to host endianness.
*
* @param val 32-bit integer in big-endian format.
*
* @return 32-bit integer in host endianness.
*/
/** @def sys_cpu_to_be32
* @brief Convert 32-bit integer from host endianness to big-endian.
*
* @param val 32-bit integer in host endianness.
*
* @return 32-bit integer in big-endian format.
*/
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
#define sys_le16_to_cpu(val) (val)
#define sys_cpu_to_le16(val) (val)
#define sys_be16_to_cpu(val) __bswap_16(val)
#define sys_cpu_to_be16(val) __bswap_16(val)
#define sys_le32_to_cpu(val) (val)
#define sys_cpu_to_le32(val) (val)
#define sys_le64_to_cpu(val) (val)
#define sys_cpu_to_le64(val) (val)
#define sys_be32_to_cpu(val) __bswap_32(val)
#define sys_cpu_to_be32(val) __bswap_32(val)
#define sys_be64_to_cpu(val) __bswap_64(val)
#define sys_cpu_to_be64(val) __bswap_64(val)
/********************************************************************************
** Macros to get and put bytes to a stream (Little Endian format).
*/
#define UINT32_TO_STREAM(p, u32) \
{ \
*(p)++ = (u8_t)(u32); \
*(p)++ = (u8_t)((u32) >> 8); \
*(p)++ = (u8_t)((u32) >> 16); \
*(p)++ = (u8_t)((u32) >> 24); \
}
#define UINT24_TO_STREAM(p, u24) \
{ \
*(p)++ = (u8_t)(u24); \
*(p)++ = (u8_t)((u24) >> 8); \
*(p)++ = (u8_t)((u24) >> 16); \
}
#define UINT16_TO_STREAM(p, u16) \
{ \
*(p)++ = (u8_t)(u16); \
*(p)++ = (u8_t)((u16) >> 8); \
}
#define UINT8_TO_STREAM(p, u8) \
{ \
*(p)++ = (u8_t)(u8); \
}
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
#define sys_le16_to_cpu(val) __bswap_16(val)
#define sys_cpu_to_le16(val) __bswap_16(val)
#define sys_be16_to_cpu(val) (val)
#define sys_cpu_to_be16(val) (val)
#define sys_le32_to_cpu(val) __bswap_32(val)
#define sys_cpu_to_le32(val) __bswap_32(val)
#define sys_le64_to_cpu(val) __bswap_64(val)
#define sys_cpu_to_le64(val) __bswap_64(val)
#define sys_be32_to_cpu(val) (val)
#define sys_cpu_to_be32(val) (val)
#define sys_be64_to_cpu(val) (val)
#define sys_cpu_to_be64(val) (val)
/********************************************************************************
** Macros to get and put bytes to a stream (Big Endian format)
*/
#define UINT32_TO_STREAM(p, u32) \
{ \
*(p)++ = (u8_t)((u32) >> 24); \
*(p)++ = (u8_t)((u32) >> 16); \
*(p)++ = (u8_t)((u32) >> 8); \
*(p)++ = (u8_t)(u32); \
}
#define UINT24_TO_STREAM(p, u24) \
{ \
*(p)++ = (u8_t)((u24) >> 16); \
*(p)++ = (u8_t)((u24) >> 8); \
*(p)++ = (u8_t)(u24); \
}
#define UINT16_TO_STREAM(p, u16) \
{ \
*(p)++ = (u8_t)((u16) >> 8); \
*(p)++ = (u8_t)(u16); \
}
#define UINT8_TO_STREAM(p, u8) \
{ \
*(p)++ = (u8_t)(u8); \
}
#else
#error "Unknown byte order"
#endif
/**
* @brief Put a 16-bit integer as big-endian to arbitrary location.
*
* Put a 16-bit integer, originally in host endianness, to a
* potentially unaligned memory location in big-endian format.
*
* @param val 16-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_be16(u16_t val, u8_t dst[2])
{
dst[0] = val >> 8;
dst[1] = val;
}
/**
* @brief Put a 24-bit integer as big-endian to arbitrary location.
*
* Put a 24-bit integer, originally in host endianness, to a
* potentially unaligned memory location in big-endian format.
*
* @param val 24-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_be24(uint32_t val, uint8_t dst[3])
{
dst[0] = val >> 16;
sys_put_be16(val, &dst[1]);
}
/**
* @brief Put a 32-bit integer as big-endian to arbitrary location.
*
* Put a 32-bit integer, originally in host endianness, to a
* potentially unaligned memory location in big-endian format.
*
* @param val 32-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_be32(u32_t val, u8_t dst[4])
{
sys_put_be16(val >> 16, dst);
sys_put_be16(val, &dst[2]);
}
/**
* @brief Put a 16-bit integer as little-endian to arbitrary location.
*
* Put a 16-bit integer, originally in host endianness, to a
* potentially unaligned memory location in little-endian format.
*
* @param val 16-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_le16(u16_t val, u8_t dst[2])
{
dst[0] = val;
dst[1] = val >> 8;
}
/**
* @brief Put a 24-bit integer as little-endian to arbitrary location.
*
* Put a 24-bit integer, originally in host endianness, to a
* potentially unaligned memory location in littel-endian format.
*
* @param val 24-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_le24(uint32_t val, uint8_t dst[3])
{
sys_put_le16(val, dst);
dst[2] = val >> 16;
}
/**
* @brief Put a 32-bit integer as little-endian to arbitrary location.
*
* Put a 32-bit integer, originally in host endianness, to a
* potentially unaligned memory location in little-endian format.
*
* @param val 32-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_le32(u32_t val, u8_t dst[4])
{
sys_put_le16(val, dst);
sys_put_le16(val >> 16, &dst[2]);
}
/**
* @brief Put a 64-bit integer as little-endian to arbitrary location.
*
* Put a 64-bit integer, originally in host endianness, to a
* potentially unaligned memory location in little-endian format.
*
* @param val 64-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_le64(u64_t val, u8_t dst[8])
{
sys_put_le32(val, dst);
sys_put_le32(val >> 32, &dst[4]);
}
/**
* @brief Get a 16-bit integer stored in big-endian format.
*
* Get a 16-bit integer, stored in big-endian format in a potentially
* unaligned memory location, and convert it to the host endianness.
*
* @param src Location of the big-endian 16-bit integer to get.
*
* @return 16-bit integer in host endianness.
*/
static inline u16_t sys_get_be16(const u8_t src[2])
{
return ((u16_t)src[0] << 8) | src[1];
}
/**
* @brief Get a 24-bit integer stored in big-endian format.
*
* Get a 24-bit integer, stored in big-endian format in a potentially
* unaligned memory location, and convert it to the host endianness.
*
* @param src Location of the big-endian 24-bit integer to get.
*
* @return 24-bit integer in host endianness.
*/
static inline uint32_t sys_get_be24(const uint8_t src[3])
{
return ((uint32_t)src[0] << 16) | sys_get_be16(&src[1]);
}
/**
* @brief Get a 32-bit integer stored in big-endian format.
*
* Get a 32-bit integer, stored in big-endian format in a potentially
* unaligned memory location, and convert it to the host endianness.
*
* @param src Location of the big-endian 32-bit integer to get.
*
* @return 32-bit integer in host endianness.
*/
static inline u32_t sys_get_be32(const u8_t src[4])
{
return ((u32_t)sys_get_be16(&src[0]) << 16) | sys_get_be16(&src[2]);
}
/**
* @brief Get a 16-bit integer stored in little-endian format.
*
* Get a 16-bit integer, stored in little-endian format in a potentially
* unaligned memory location, and convert it to the host endianness.
*
* @param src Location of the little-endian 16-bit integer to get.
*
* @return 16-bit integer in host endianness.
*/
static inline u16_t sys_get_le16(const u8_t src[2])
{
return ((u16_t)src[1] << 8) | src[0];
}
/**
* @brief Get a 24-bit integer stored in big-endian format.
*
* Get a 24-bit integer, stored in big-endian format in a potentially
* unaligned memory location, and convert it to the host endianness.
*
* @param src Location of the big-endian 24-bit integer to get.
*
* @return 24-bit integer in host endianness.
*/
static inline uint32_t sys_get_le24(const uint8_t src[3])
{
return ((uint32_t)src[2] << 16) | sys_get_le16(&src[0]);
}
/**
* @brief Get a 32-bit integer stored in little-endian format.
*
* Get a 32-bit integer, stored in little-endian format in a potentially
* unaligned memory location, and convert it to the host endianness.
*
* @param src Location of the little-endian 32-bit integer to get.
*
* @return 32-bit integer in host endianness.
*/
static inline u32_t sys_get_le32(const u8_t src[4])
{
return ((u32_t)sys_get_le16(&src[2]) << 16) | sys_get_le16(&src[0]);
}
/**
* @brief Get a 64-bit integer stored in little-endian format.
*
* Get a 64-bit integer, stored in little-endian format in a potentially
* unaligned memory location, and convert it to the host endianness.
*
* @param src Location of the little-endian 64-bit integer to get.
*
* @return 64-bit integer in host endianness.
*/
static inline u64_t sys_get_le64(const u8_t src[8])
{
return ((u64_t)sys_get_le32(&src[4]) << 32) | sys_get_le32(&src[0]);
}
/**
* @brief Swap one buffer content into another
*
* Copy the content of src buffer into dst buffer in reversed order,
* i.e.: src[n] will be put in dst[end-n]
* Where n is an index and 'end' the last index in both arrays.
* The 2 memory pointers must be pointing to different areas, and have
* a minimum size of given length.
*
* @param dst A valid pointer on a memory area where to copy the data in
* @param src A valid pointer on a memory area where to copy the data from
* @param length Size of both dst and src memory areas
*/
static inline void sys_memcpy_swap(void *dst, const void *src, size_t length)
{
__ASSERT(((src < dst && (src + length) <= dst) ||
(src > dst && (dst + length) <= src)),
"Source and destination buffers must not overlap");
src += length - 1;
for (; length > 0; length--) {
*((u8_t *)dst++) = *((u8_t *)src--);
}
}
/**
* @brief Swap buffer content
*
* In-place memory swap, where final content will be reversed.
* I.e.: buf[n] will be put in buf[end-n]
* Where n is an index and 'end' the last index of buf.
*
* @param buf A valid pointer on a memory area to swap
* @param length Size of buf memory area
*/
static inline void sys_mem_swap(void *buf, size_t length)
{
size_t i;
for (i = 0; i < (length / 2); i++) {
u8_t tmp = ((u8_t *)buf)[i];
((u8_t *)buf)[i] = ((u8_t *)buf)[length - 1 - i];
((u8_t *)buf)[length - 1 - i] = tmp;
}
}
#endif /* __BYTEORDER_H__ */

View File

@@ -0,0 +1,501 @@
/*
* Copyright (c) 2013-2015 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief Doubly-linked list implementation
*
* Doubly-linked list implementation using inline macros/functions.
* This API is not thread safe, and thus if a list is used across threads,
* calls to functions must be protected with synchronization primitives.
*
* The lists are expected to be initialized such that both the head and tail
* pointers point to the list itself. Initializing the lists in such a fashion
* simplifies the adding and removing of nodes to/from the list.
*/
#ifndef _misc_dlist__h_
#define _misc_dlist__h_
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
struct _dnode {
union {
struct _dnode *head; /* ptr to head of list (sys_dlist_t) */
struct _dnode *next; /* ptr to next node (sys_dnode_t) */
};
union {
struct _dnode *tail; /* ptr to tail of list (sys_dlist_t) */
struct _dnode *prev; /* ptr to previous node (sys_dnode_t) */
};
};
typedef struct _dnode sys_dlist_t;
typedef struct _dnode sys_dnode_t;
/**
* @brief Provide the primitive to iterate on a list
* Note: the loop is unsafe and thus __dn should not be removed
*
* User _MUST_ add the loop statement curly braces enclosing its own code:
*
* SYS_DLIST_FOR_EACH_NODE(l, n) {
* <user code>
* }
*
* This and other SYS_DLIST_*() macros are not thread safe.
*
* @param __dl A pointer on a sys_dlist_t to iterate on
* @param __dn A sys_dnode_t pointer to peek each node of the list
*/
#define SYS_DLIST_FOR_EACH_NODE(__dl, __dn) \
for (__dn = sys_dlist_peek_head(__dl); __dn; \
__dn = sys_dlist_peek_next(__dl, __dn))
/**
* @brief Provide the primitive to iterate on a list, from a node in the list
* Note: the loop is unsafe and thus __dn should not be removed
*
* User _MUST_ add the loop statement curly braces enclosing its own code:
*
* SYS_DLIST_ITERATE_FROM_NODE(l, n) {
* <user code>
* }
*
* Like SYS_DLIST_FOR_EACH_NODE(), but __dn already contains a node in the list
* where to start searching for the next entry from. If NULL, it starts from
* the head.
*
* This and other SYS_DLIST_*() macros are not thread safe.
*
* @param __dl A pointer on a sys_dlist_t to iterate on
* @param __dn A sys_dnode_t pointer to peek each node of the list;
* it contains the starting node, or NULL to start from the head
*/
#define SYS_DLIST_ITERATE_FROM_NODE(__dl, __dn) \
for (__dn = __dn ? sys_dlist_peek_next_no_check(__dl, __dn) : sys_dlist_peek_head(__dl); \
__dn; \
__dn = sys_dlist_peek_next(__dl, __dn))
/**
* @brief Provide the primitive to safely iterate on a list
* Note: __dn can be removed, it will not break the loop.
*
* User _MUST_ add the loop statement curly braces enclosing its own code:
*
* SYS_DLIST_FOR_EACH_NODE_SAFE(l, n, s) {
* <user code>
* }
*
* This and other SYS_DLIST_*() macros are not thread safe.
*
* @param __dl A pointer on a sys_dlist_t to iterate on
* @param __dn A sys_dnode_t pointer to peek each node of the list
* @param __dns A sys_dnode_t pointer for the loop to run safely
*/
#define SYS_DLIST_FOR_EACH_NODE_SAFE(__dl, __dn, __dns) \
for (__dn = sys_dlist_peek_head(__dl), \
__dns = sys_dlist_peek_next(__dl, __dn); \
__dn; __dn = __dns, \
__dns = sys_dlist_peek_next(__dl, __dn))
/*
* @brief Provide the primitive to resolve the container of a list node
* Note: it is safe to use with NULL pointer nodes
*
* @param __dn A pointer on a sys_dnode_t to get its container
* @param __cn Container struct type pointer
* @param __n The field name of sys_dnode_t within the container struct
*/
#define SYS_DLIST_CONTAINER(__dn, __cn, __n) \
(__dn ? CONTAINER_OF(__dn, __typeof__(*__cn), __n) : NULL)
/*
* @brief Provide the primitive to peek container of the list head
*
* @param __dl A pointer on a sys_dlist_t to peek
* @param __cn Container struct type pointer
* @param __n The field name of sys_dnode_t within the container struct
*/
#define SYS_DLIST_PEEK_HEAD_CONTAINER(__dl, __cn, __n) \
SYS_DLIST_CONTAINER(sys_dlist_peek_head(__dl), __cn, __n)
/*
* @brief Provide the primitive to peek the next container
*
* @param __dl A pointer on a sys_dlist_t to peek
* @param __cn Container struct type pointer
* @param __n The field name of sys_dnode_t within the container struct
*/
#define SYS_DLIST_PEEK_NEXT_CONTAINER(__dl, __cn, __n) \
((__cn) ? SYS_DLIST_CONTAINER(sys_dlist_peek_next(__dl, &(__cn->__n)), \
__cn, __n) : \
NULL)
/**
* @brief Provide the primitive to iterate on a list under a container
* Note: the loop is unsafe and thus __cn should not be detached
*
* User _MUST_ add the loop statement curly braces enclosing its own code:
*
* SYS_DLIST_FOR_EACH_CONTAINER(l, c, n) {
* <user code>
* }
*
* @param __dl A pointer on a sys_dlist_t to iterate on
* @param __cn A pointer to peek each entry of the list
* @param __n The field name of sys_dnode_t within the container struct
*/
#define SYS_DLIST_FOR_EACH_CONTAINER(__dl, __cn, __n) \
for (__cn = SYS_DLIST_PEEK_HEAD_CONTAINER(__dl, __cn, __n); __cn; \
__cn = SYS_DLIST_PEEK_NEXT_CONTAINER(__dl, __cn, __n))
/**
* @brief Provide the primitive to safely iterate on a list under a container
* Note: __cn can be detached, it will not break the loop.
*
* User _MUST_ add the loop statement curly braces enclosing its own code:
*
* SYS_DLIST_FOR_EACH_CONTAINER_SAFE(l, c, cn, n) {
* <user code>
* }
*
* @param __dl A pointer on a sys_dlist_t to iterate on
* @param __cn A pointer to peek each entry of the list
* @param __cns A pointer for the loop to run safely
* @param __n The field name of sys_dnode_t within the container struct
*/
#define SYS_DLIST_FOR_EACH_CONTAINER_SAFE(__dl, __cn, __cns, __n) \
for (__cn = SYS_DLIST_PEEK_HEAD_CONTAINER(__dl, __cn, __n), \
__cns = SYS_DLIST_PEEK_NEXT_CONTAINER(__dl, __cn, __n); \
__cn; \
__cn = __cns, \
__cns = SYS_DLIST_PEEK_NEXT_CONTAINER(__dl, __cn, __n))
/**
* @brief initialize list
*
* @param list the doubly-linked list
*
* @return N/A
*/
static inline void sys_dlist_init(sys_dlist_t *list)
{
list->head = (sys_dnode_t *)list;
list->tail = (sys_dnode_t *)list;
}
#define SYS_DLIST_STATIC_INIT(ptr_to_list) \
{ \
{ (ptr_to_list) }, \
{ \
(ptr_to_list) \
} \
}
/**
* @brief check if a node is the list's head
*
* @param list the doubly-linked list to operate on
* @param node the node to check
*
* @return 1 if node is the head, 0 otherwise
*/
static inline int sys_dlist_is_head(sys_dlist_t *list, sys_dnode_t *node)
{
return list->head == node;
}
/**
* @brief check if a node is the list's tail
*
* @param list the doubly-linked list to operate on
* @param node the node to check
*
* @return 1 if node is the tail, 0 otherwise
*/
static inline int sys_dlist_is_tail(sys_dlist_t *list, sys_dnode_t *node)
{
return list->tail == node;
}
/**
* @brief check if the list is empty
*
* @param list the doubly-linked list to operate on
*
* @return 1 if empty, 0 otherwise
*/
static inline int sys_dlist_is_empty(sys_dlist_t *list)
{
return list->head == list;
}
/**
* @brief check if more than one node present
*
* This and other sys_dlist_*() functions are not thread safe.
*
* @param list the doubly-linked list to operate on
*
* @return 1 if multiple nodes, 0 otherwise
*/
static inline int sys_dlist_has_multiple_nodes(sys_dlist_t *list)
{
return list->head != list->tail;
}
/**
* @brief get a reference to the head item in the list
*
* @param list the doubly-linked list to operate on
*
* @return a pointer to the head element, NULL if list is empty
*/
static inline sys_dnode_t *sys_dlist_peek_head(sys_dlist_t *list)
{
return sys_dlist_is_empty(list) ? NULL : list->head;
}
/**
* @brief get a reference to the head item in the list
*
* The list must be known to be non-empty.
*
* @param list the doubly-linked list to operate on
*
* @return a pointer to the head element
*/
static inline sys_dnode_t *sys_dlist_peek_head_not_empty(sys_dlist_t *list)
{
return list->head;
}
/**
* @brief get a reference to the next item in the list, node is not NULL
*
* Faster than sys_dlist_peek_next() if node is known not to be NULL.
*
* @param list the doubly-linked list to operate on
* @param node the node from which to get the next element in the list
*
* @return a pointer to the next element from a node, NULL if node is the tail
*/
static inline sys_dnode_t *sys_dlist_peek_next_no_check(sys_dlist_t *list,
sys_dnode_t *node)
{
return (node == list->tail) ? NULL : node->next;
}
/**
* @brief get a reference to the next item in the list
*
* @param list the doubly-linked list to operate on
* @param node the node from which to get the next element in the list
*
* @return a pointer to the next element from a node, NULL if node is the tail
* or NULL (when node comes from reading the head of an empty list).
*/
static inline sys_dnode_t *sys_dlist_peek_next(sys_dlist_t *list,
sys_dnode_t *node)
{
return node ? sys_dlist_peek_next_no_check(list, node) : NULL;
}
/**
* @brief get a reference to the tail item in the list
*
* @param list the doubly-linked list to operate on
*
* @return a pointer to the tail element, NULL if list is empty
*/
static inline sys_dnode_t *sys_dlist_peek_tail(sys_dlist_t *list)
{
return sys_dlist_is_empty(list) ? NULL : list->tail;
}
/**
* @brief add node to tail of list
*
* This and other sys_dlist_*() functions are not thread safe.
*
* @param list the doubly-linked list to operate on
* @param node the element to append
*
* @return N/A
*/
static inline void sys_dlist_append(sys_dlist_t *list, sys_dnode_t *node)
{
node->next = list;
node->prev = list->tail;
list->tail->next = node;
list->tail = node;
}
/**
* @brief add node to head of list
*
* This and other sys_dlist_*() functions are not thread safe.
*
* @param list the doubly-linked list to operate on
* @param node the element to append
*
* @return N/A
*/
static inline void sys_dlist_prepend(sys_dlist_t *list, sys_dnode_t *node)
{
node->next = list->head;
node->prev = list;
list->head->prev = node;
list->head = node;
}
/**
* @brief insert node after a node
*
* Insert a node after a specified node in a list.
* This and other sys_dlist_*() functions are not thread safe.
*
* @param list the doubly-linked list to operate on
* @param insert_point the insert point in the list: if NULL, insert at head
* @param node the element to append
*
* @return N/A
*/
static inline void sys_dlist_insert_after(sys_dlist_t *list,
sys_dnode_t *insert_point, sys_dnode_t *node)
{
if (!insert_point) {
sys_dlist_prepend(list, node);
} else {
node->next = insert_point->next;
node->prev = insert_point;
insert_point->next->prev = node;
insert_point->next = node;
}
}
/**
* @brief insert node before a node
*
* Insert a node before a specified node in a list.
* This and other sys_dlist_*() functions are not thread safe.
*
* @param list the doubly-linked list to operate on
* @param insert_point the insert point in the list: if NULL, insert at tail
* @param node the element to insert
*
* @return N/A
*/
static inline void sys_dlist_insert_before(sys_dlist_t *list,
sys_dnode_t *insert_point, sys_dnode_t *node)
{
if (!insert_point) {
sys_dlist_append(list, node);
} else {
node->prev = insert_point->prev;
node->next = insert_point;
insert_point->prev->next = node;
insert_point->prev = node;
}
}
/**
* @brief insert node at position
*
* Insert a node in a location depending on a external condition. The cond()
* function checks if the node is to be inserted _before_ the current node
* against which it is checked.
* This and other sys_dlist_*() functions are not thread safe.
*
* @param list the doubly-linked list to operate on
* @param node the element to insert
* @param cond a function that determines if the current node is the correct
* insert point
* @param data parameter to cond()
*
* @return N/A
*/
static inline void sys_dlist_insert_at(sys_dlist_t *list, sys_dnode_t *node,
int (*cond)(sys_dnode_t *, void *), void *data)
{
if (sys_dlist_is_empty(list)) {
sys_dlist_append(list, node);
} else {
sys_dnode_t *pos = sys_dlist_peek_head(list);
while (pos && !cond(pos, data)) {
pos = sys_dlist_peek_next(list, pos);
}
sys_dlist_insert_before(list, pos, node);
}
}
/**
* @brief remove a specific node from a list
*
* The list is implicit from the node. The node must be part of a list.
* This and other sys_dlist_*() functions are not thread safe.
*
* @param node the node to remove
*
* @return N/A
*/
static inline void sys_dlist_remove(sys_dnode_t *node)
{
node->prev->next = node->next;
node->next->prev = node->prev;
}
/**
* @brief get the first node in a list
*
* This and other sys_dlist_*() functions are not thread safe.
*
* @param list the doubly-linked list to operate on
*
* @return the first node in the list, NULL if list is empty
*/
static inline sys_dnode_t *sys_dlist_get(sys_dlist_t *list)
{
sys_dnode_t *node;
if (sys_dlist_is_empty(list)) {
return NULL;
}
node = list->head;
sys_dlist_remove(node);
return node;
}
#ifdef __cplusplus
}
#endif
#endif /* _misc_dlist__h_ */

View File

@@ -0,0 +1,28 @@
/* printk.h - low-level debug output */
/*
* Copyright (c) 2010-2012, 2014 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _PRINTK_H_
#define _PRINTK_H_
#include <stddef.h>
#include <stdarg.h>
#include <stdio.h>
#include <zephyr.h>
#ifdef __cplusplus
extern "C" {
#endif
#define snprintk snprintf
#define printk printf
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,471 @@
/*
* Copyright (c) 2016 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
*
* @brief Single-linked list implementation
*
* Single-linked list implementation using inline macros/functions.
* This API is not thread safe, and thus if a list is used across threads,
* calls to functions must be protected with synchronization primitives.
*/
#ifndef __SLIST_H__
#define __SLIST_H__
#include <stddef.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
struct _snode {
struct _snode *next;
};
typedef struct _snode sys_snode_t;
struct _slist {
sys_snode_t *head;
sys_snode_t *tail;
};
typedef struct _slist sys_slist_t;
/**
* @brief Provide the primitive to iterate on a list
* Note: the loop is unsafe and thus __sn should not be removed
*
* User _MUST_ add the loop statement curly braces enclosing its own code:
*
* SYS_SLIST_FOR_EACH_NODE(l, n) {
* <user code>
* }
*
* This and other SYS_SLIST_*() macros are not thread safe.
*
* @param __sl A pointer on a sys_slist_t to iterate on
* @param __sn A sys_snode_t pointer to peek each node of the list
*/
#define SYS_SLIST_FOR_EACH_NODE(__sl, __sn) \
for (__sn = sys_slist_peek_head(__sl); __sn; \
__sn = sys_slist_peek_next(__sn))
/**
* @brief Provide the primitive to iterate on a list, from a node in the list
* Note: the loop is unsafe and thus __sn should not be removed
*
* User _MUST_ add the loop statement curly braces enclosing its own code:
*
* SYS_SLIST_ITERATE_FROM_NODE(l, n) {
* <user code>
* }
*
* Like SYS_SLIST_FOR_EACH_NODE(), but __dn already contains a node in the list
* where to start searching for the next entry from. If NULL, it starts from
* the head.
*
* This and other SYS_SLIST_*() macros are not thread safe.
*
* @param __sl A pointer on a sys_slist_t to iterate on
* @param __sn A sys_snode_t pointer to peek each node of the list
* it contains the starting node, or NULL to start from the head
*/
#define SYS_SLIST_ITERATE_FROM_NODE(__sl, __sn) \
for (__sn = __sn ? sys_slist_peek_next_no_check(__sn) : sys_slist_peek_head(__sl); \
__sn; \
__sn = sys_slist_peek_next(__sn))
/**
* @brief Provide the primitive to safely iterate on a list
* Note: __sn can be removed, it will not break the loop.
*
* User _MUST_ add the loop statement curly braces enclosing its own code:
*
* SYS_SLIST_FOR_EACH_NODE_SAFE(l, n, s) {
* <user code>
* }
*
* This and other SYS_SLIST_*() macros are not thread safe.
*
* @param __sl A pointer on a sys_slist_t to iterate on
* @param __sn A sys_snode_t pointer to peek each node of the list
* @param __sns A sys_snode_t pointer for the loop to run safely
*/
#define SYS_SLIST_FOR_EACH_NODE_SAFE(__sl, __sn, __sns) \
for (__sn = sys_slist_peek_head(__sl), \
__sns = sys_slist_peek_next(__sn); \
__sn; __sn = __sns, \
__sns = sys_slist_peek_next(__sn))
/*
* @brief Provide the primitive to resolve the container of a list node
* Note: it is safe to use with NULL pointer nodes
*
* @param __ln A pointer on a sys_node_t to get its container
* @param __cn Container struct type pointer
* @param __n The field name of sys_node_t within the container struct
*/
#define SYS_SLIST_CONTAINER(__ln, __cn, __n) \
((__ln) ? CONTAINER_OF((__ln), __typeof__(*(__cn)), __n) : NULL)
/*
* @brief Provide the primitive to peek container of the list head
*
* @param __sl A pointer on a sys_slist_t to peek
* @param __cn Container struct type pointer
* @param __n The field name of sys_node_t within the container struct
*/
#define SYS_SLIST_PEEK_HEAD_CONTAINER(__sl, __cn, __n) \
SYS_SLIST_CONTAINER(sys_slist_peek_head(__sl), __cn, __n)
/*
* @brief Provide the primitive to peek container of the list tail
*
* @param __sl A pointer on a sys_slist_t to peek
* @param __cn Container struct type pointer
* @param __n The field name of sys_node_t within the container struct
*/
#define SYS_SLIST_PEEK_TAIL_CONTAINER(__sl, __cn, __n) \
SYS_SLIST_CONTAINER(sys_slist_peek_tail(__sl), __cn, __n)
/*
* @brief Provide the primitive to peek the next container
*
* @param __cn Container struct type pointer
* @param __n The field name of sys_node_t within the container struct
*/
#define SYS_SLIST_PEEK_NEXT_CONTAINER(__cn, __n) \
((__cn) ? SYS_SLIST_CONTAINER(sys_slist_peek_next(&((__cn)->__n)), \
__cn, __n) : \
NULL)
/**
* @brief Provide the primitive to iterate on a list under a container
* Note: the loop is unsafe and thus __cn should not be detached
*
* User _MUST_ add the loop statement curly braces enclosing its own code:
*
* SYS_SLIST_FOR_EACH_CONTAINER(l, c, n) {
* <user code>
* }
*
* @param __sl A pointer on a sys_slist_t to iterate on
* @param __cn A pointer to peek each entry of the list
* @param __n The field name of sys_node_t within the container struct
*/
#define SYS_SLIST_FOR_EACH_CONTAINER(__sl, __cn, __n) \
for (__cn = SYS_SLIST_PEEK_HEAD_CONTAINER(__sl, __cn, __n); __cn; \
__cn = SYS_SLIST_PEEK_NEXT_CONTAINER(__cn, __n))
/**
* @brief Provide the primitive to safely iterate on a list under a container
* Note: __cn can be detached, it will not break the loop.
*
* User _MUST_ add the loop statement curly braces enclosing its own code:
*
* SYS_SLIST_FOR_EACH_NODE_SAFE(l, c, cn, n) {
* <user code>
* }
*
* @param __sl A pointer on a sys_slist_t to iterate on
* @param __cn A pointer to peek each entry of the list
* @param __cns A pointer for the loop to run safely
* @param __n The field name of sys_node_t within the container struct
*/
#define SYS_SLIST_FOR_EACH_CONTAINER_SAFE(__sl, __cn, __cns, __n) \
for (__cn = SYS_SLIST_PEEK_HEAD_CONTAINER(__sl, __cn, __n), \
__cns = SYS_SLIST_PEEK_NEXT_CONTAINER(__cn, __n); \
__cn; \
__cn = __cns, __cns = SYS_SLIST_PEEK_NEXT_CONTAINER(__cn, __n))
/**
* @brief Initialize a list
*
* @param list A pointer on the list to initialize
*/
static inline void sys_slist_init(sys_slist_t *list)
{
list->head = NULL;
list->tail = NULL;
}
#define SYS_SLIST_STATIC_INIT(ptr_to_list) \
{ \
NULL, NULL \
}
/**
* @brief Test if the given list is empty
*
* @param list A pointer on the list to test
*
* @return a boolean, true if it's empty, false otherwise
*/
static inline bool sys_slist_is_empty(sys_slist_t *list)
{
return (!list->head);
}
/**
* @brief Peek the first node from the list
*
* @param list A point on the list to peek the first node from
*
* @return A pointer on the first node of the list (or NULL if none)
*/
static inline sys_snode_t *sys_slist_peek_head(sys_slist_t *list)
{
return list->head;
}
/**
* @brief Peek the last node from the list
*
* @param list A point on the list to peek the last node from
*
* @return A pointer on the last node of the list (or NULL if none)
*/
static inline sys_snode_t *sys_slist_peek_tail(sys_slist_t *list)
{
return list->tail;
}
/**
* @brief Peek the next node from current node, node is not NULL
*
* Faster then sys_slist_peek_next() if node is known not to be NULL.
*
* @param node A pointer on the node where to peek the next node
*
* @return a pointer on the next node (or NULL if none)
*/
static inline sys_snode_t *sys_slist_peek_next_no_check(sys_snode_t *node)
{
return node->next;
}
/**
* @brief Peek the next node from current node
*
* @param node A pointer on the node where to peek the next node
*
* @return a pointer on the next node (or NULL if none)
*/
static inline sys_snode_t *sys_slist_peek_next(sys_snode_t *node)
{
return node ? sys_slist_peek_next_no_check(node) : NULL;
}
/**
* @brief Prepend a node to the given list
*
* This and other sys_slist_*() functions are not thread safe.
*
* @param list A pointer on the list to affect
* @param node A pointer on the node to prepend
*/
static inline void sys_slist_prepend(sys_slist_t *list,
sys_snode_t *node)
{
node->next = list->head;
list->head = node;
if (!list->tail) {
list->tail = list->head;
}
}
/**
* @brief Append a node to the given list
*
* This and other sys_slist_*() functions are not thread safe.
*
* @param list A pointer on the list to affect
* @param node A pointer on the node to append
*/
static inline void sys_slist_append(sys_slist_t *list,
sys_snode_t *node)
{
node->next = NULL;
if (!list->tail) {
list->tail = node;
list->head = node;
} else {
list->tail->next = node;
list->tail = node;
}
}
/**
* @brief Append a list to the given list
*
* Append a singly-linked, NULL-terminated list consisting of nodes containing
* the pointer to the next node as the first element of a node, to @a list.
* This and other sys_slist_*() functions are not thread safe.
*
* @param list A pointer on the list to affect
* @param head A pointer to the first element of the list to append
* @param tail A pointer to the last element of the list to append
*/
static inline void sys_slist_append_list(sys_slist_t *list,
void *head, void *tail)
{
if (!list->tail) {
list->head = (sys_snode_t *)head;
list->tail = (sys_snode_t *)tail;
} else {
list->tail->next = (sys_snode_t *)head;
list->tail = (sys_snode_t *)tail;
}
}
/**
* @brief merge two slists, appending the second one to the first
*
* When the operation is completed, the appending list is empty.
* This and other sys_slist_*() functions are not thread safe.
*
* @param list A pointer on the list to affect
* @param list_to_append A pointer to the list to append.
*/
static inline void sys_slist_merge_slist(sys_slist_t *list,
sys_slist_t *list_to_append)
{
sys_slist_append_list(list, list_to_append->head,
list_to_append->tail);
sys_slist_init(list_to_append);
}
/**
* @brief Insert a node to the given list
*
* This and other sys_slist_*() functions are not thread safe.
*
* @param list A pointer on the list to affect
* @param prev A pointer on the previous node
* @param node A pointer on the node to insert
*/
static inline void sys_slist_insert(sys_slist_t *list,
sys_snode_t *prev,
sys_snode_t *node)
{
if (!prev) {
sys_slist_prepend(list, node);
} else if (!prev->next) {
sys_slist_append(list, node);
} else {
node->next = prev->next;
prev->next = node;
}
}
/**
* @brief Fetch and remove the first node of the given list
*
* List must be known to be non-empty.
* This and other sys_slist_*() functions are not thread safe.
*
* @param list A pointer on the list to affect
*
* @return A pointer to the first node of the list
*/
static inline sys_snode_t *sys_slist_get_not_empty(sys_slist_t *list)
{
sys_snode_t *node = list->head;
list->head = node->next;
if (list->tail == node) {
list->tail = list->head;
}
return node;
}
/**
* @brief Fetch and remove the first node of the given list
*
* This and other sys_slist_*() functions are not thread safe.
*
* @param list A pointer on the list to affect
*
* @return A pointer to the first node of the list (or NULL if empty)
*/
static inline sys_snode_t *sys_slist_get(sys_slist_t *list)
{
return sys_slist_is_empty(list) ? NULL : sys_slist_get_not_empty(list);
}
/**
* @brief Remove a node
*
* This and other sys_slist_*() functions are not thread safe.
*
* @param list A pointer on the list to affect
* @param prev_node A pointer on the previous node
* (can be NULL, which means the node is the list's head)
* @param node A pointer on the node to remove
*/
static inline void sys_slist_remove(sys_slist_t *list,
sys_snode_t *prev_node,
sys_snode_t *node)
{
if (!prev_node) {
list->head = node->next;
/* Was node also the tail? */
if (list->tail == node) {
list->tail = list->head;
}
} else {
prev_node->next = node->next;
/* Was node the tail? */
if (list->tail == node) {
list->tail = prev_node;
}
}
node->next = NULL;
}
/**
* @brief Find and remove a node from a list
*
* This and other sys_slist_*() functions are not thread safe.
*
* @param list A pointer on the list to affect
* @param node A pointer on the node to remove from the list
*
* @return true if node was removed
*/
static inline bool sys_slist_find_and_remove(sys_slist_t *list,
sys_snode_t *node)
{
sys_snode_t *prev = NULL;
sys_snode_t *test;
SYS_SLIST_FOR_EACH_NODE(list, test)
{
if (test == node) {
sys_slist_remove(list, prev, node);
return true;
}
prev = test;
}
return false;
}
#ifdef __cplusplus
}
#endif
#endif /* __SLIST_H__ */

View File

@@ -0,0 +1,87 @@
/**
* @file stack.h
* Stack usage analysis helpers
*/
/*
* Copyright (c) 2015 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _MISC_STACK_H_
#define _MISC_STACK_H_
#include <misc/printk.h>
#if defined(CONFIG_INIT_STACKS)
static inline size_t stack_unused_space_get(const char *stack, size_t size)
{
size_t unused = 0;
int i;
#ifdef CONFIG_STACK_SENTINEL
/* First 4 bytes of the stack buffer reserved for the sentinel
* value, it won't be 0xAAAAAAAA for thread stacks.
*/
stack += 4;
#endif
/* TODO Currently all supported platforms have stack growth down and
* there is no Kconfig option to configure it so this always build
* "else" branch. When support for platform with stack direction up
* (or configurable direction) is added this check should be confirmed
* that correct Kconfig option is used.
*/
#if defined(STACK_GROWS_UP)
for (i = size - 1; i >= 0; i--) {
if ((unsigned char)stack[i] == 0xaa) {
unused++;
} else {
break;
}
}
#else
for (i = 0; i < size; i++) {
if ((unsigned char)stack[i] == 0xaa) {
unused++;
} else {
break;
}
}
#endif
return unused;
}
#else
static inline size_t stack_unused_space_get(const char *stack, size_t size)
{
return 0;
}
#endif
#if defined(CONFIG_INIT_STACKS) && defined(CONFIG_PRINTK)
static inline void stack_analyze(const char *name, const char *stack,
unsigned int size)
{
unsigned int pcnt, unused = 0;
unused = stack_unused_space_get(stack, size);
/* Calculate the real size reserved for the stack */
pcnt = ((size - unused) * 100) / size;
printk("%s (real size %u):\tunused %u\tusage %u / %u (%u %%)\n", name,
size, unused, size - unused, size, pcnt);
}
#else
static inline void stack_analyze(const char *name, const char *stack,
unsigned int size)
{
}
#endif
#define STACK_ANALYZE(name, sym) \
stack_analyze(name, K_THREAD_STACK_BUFFER(sym), \
K_THREAD_STACK_SIZEOF(sym))
#endif /* _MISC_STACK_H_ */

View File

@@ -0,0 +1,379 @@
/*
* Copyright (c) 2011-2014, Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief Misc utilities
*
* Misc utilities usable by the kernel and application code.
*/
#ifndef _UTIL__H_
#define _UTIL__H_
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _ASMLANGUAGE
#include <zephyr/types.h>
#if defined(BFLB_BLE)
#include <stddef.h>
#include "utils_string.h"
#endif
/* Helper to pass a int as a pointer or vice-versa.
* Those are available for 32 bits architectures:
*/
#define POINTER_TO_UINT(x) ((u32_t)(x))
#define UINT_TO_POINTER(x) ((void *)(x))
#define POINTER_TO_INT(x) ((s32_t)(x))
#define INT_TO_POINTER(x) ((void *)(x))
/* Evaluates to 0 if cond is true-ish; compile error otherwise */
#define ZERO_OR_COMPILE_ERROR(cond) ((int)sizeof(char[1 - 2 * !(cond)]) - 1)
/* Evaluates to 0 if array is an array; compile error if not array (e.g.
* pointer)
*/
#define IS_ARRAY(array) \
ZERO_OR_COMPILE_ERROR( \
!__builtin_types_compatible_p(__typeof__(array), \
__typeof__(&(array)[0])))
/* Evaluates to number of elements in an array; compile error if not
* an array (e.g. pointer)
*/
#define ARRAY_SIZE(array) \
((unsigned long)(IS_ARRAY(array) + \
(sizeof(array) / sizeof((array)[0]))))
/* Evaluates to 1 if ptr is part of array, 0 otherwise; compile error if
* "array" argument is not an array (e.g. "ptr" and "array" mixed up)
*/
#define PART_OF_ARRAY(array, ptr) \
((ptr) && ((ptr) >= &array[0] && (ptr) < &array[ARRAY_SIZE(array)]))
#define CONTAINER_OF(ptr, type, field) \
((type *)(((char *)(ptr)) - offsetof(type, field)))
/* round "x" up/down to next multiple of "align" (which must be a power of 2) */
#define ROUND_UP(x, align) \
(((unsigned long)(x) + ((unsigned long)align - 1)) & \
~((unsigned long)align - 1))
#define ROUND_DOWN(x, align) ((unsigned long)(x) & ~((unsigned long)align - 1))
#define ceiling_fraction(numerator, divider) \
(((numerator) + ((divider)-1)) / (divider))
#ifdef INLINED
#define INLINE inline
#else
#define INLINE
#endif
#ifndef MAX
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef MIN
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#endif
void get_bytearray_from_string(char **params, uint8_t *result, int array_size);
void get_uint8_from_string(char **params, uint8_t *result);
void get_uint16_from_string(char **params, uint16_t *result);
void get_uint32_from_string(char **params, uint32_t *result);
void reverse_bytearray(uint8_t *src, uint8_t *result, int array_size);
void reverse_bytearray(uint8_t *src, uint8_t *result, int array_size);
unsigned int find_lsb_set(uint32_t data);
static inline int is_power_of_two(unsigned int x)
{
return (x != 0) && !(x & (x - 1));
}
static inline s64_t arithmetic_shift_right(s64_t value, u8_t shift)
{
s64_t sign_ext;
if (shift == 0) {
return value;
}
/* extract sign bit */
sign_ext = (value >> 63) & 1;
/* make all bits of sign_ext be the same as the value's sign bit */
sign_ext = -sign_ext;
/* shift value and fill opened bit positions with sign bit */
return (value >> shift) | (sign_ext << (64 - shift));
}
#endif /* !_ASMLANGUAGE */
/* KB, MB, GB */
#define KB(x) ((x) << 10)
#define MB(x) (KB(x) << 10)
#define GB(x) (MB(x) << 10)
/* KHZ, MHZ */
#define KHZ(x) ((x)*1000)
#define MHZ(x) (KHZ(x) * 1000)
#define BIT_MASK(n) (BIT(n) - 1)
/**
* @brief Check for macro definition in compiler-visible expressions
*
* This trick was pioneered in Linux as the config_enabled() macro.
* The madness has the effect of taking a macro value that may be
* defined to "1" (e.g. CONFIG_MYFEATURE), or may not be defined at
* all and turning it into a literal expression that can be used at
* "runtime". That is, it works similarly to
* "defined(CONFIG_MYFEATURE)" does except that it is an expansion
* that can exist in a standard expression and be seen by the compiler
* and optimizer. Thus much ifdef usage can be replaced with cleaner
* expressions like:
*
* if (IS_ENABLED(CONFIG_MYFEATURE))
* myfeature_enable();
*
* INTERNAL
* First pass just to expand any existing macros, we need the macro
* value to be e.g. a literal "1" at expansion time in the next macro,
* not "(1)", etc... Standard recursive expansion does not work.
*/
#define IS_ENABLED(config_macro) _IS_ENABLED1(config_macro)
/* Now stick on a "_XXXX" prefix, it will now be "_XXXX1" if config_macro
* is "1", or just "_XXXX" if it's undefined.
* ENABLED: _IS_ENABLED2(_XXXX1)
* DISABLED _IS_ENABLED2(_XXXX)
*/
#define _IS_ENABLED1(config_macro) _IS_ENABLED2(_XXXX##config_macro)
/* Here's the core trick, we map "_XXXX1" to "_YYYY," (i.e. a string
* with a trailing comma), so it has the effect of making this a
* two-argument tuple to the preprocessor only in the case where the
* value is defined to "1"
* ENABLED: _YYYY, <--- note comma!
* DISABLED: _XXXX
*/
#define _XXXX1 _YYYY,
/* Then we append an extra argument to fool the gcc preprocessor into
* accepting it as a varargs macro.
* arg1 arg2 arg3
* ENABLED: _IS_ENABLED3(_YYYY, 1, 0)
* DISABLED _IS_ENABLED3(_XXXX 1, 0)
*/
#define _IS_ENABLED2(one_or_two_args) _IS_ENABLED3(one_or_two_args 1, 0)
/* And our second argument is thus now cooked to be 1 in the case
* where the value is defined to 1, and 0 if not:
*/
#define _IS_ENABLED3(ignore_this, val, ...) val
/**
* Macros for doing code-generation with the preprocessor.
*
* Generally it is better to generate code with the preprocessor than
* to copy-paste code or to generate code with the build system /
* python script's etc.
*
* http://stackoverflow.com/a/12540675
*/
#define UTIL_EMPTY(...)
#define UTIL_DEFER(...) __VA_ARGS__ UTIL_EMPTY()
#define UTIL_OBSTRUCT(...) __VA_ARGS__ UTIL_DEFER(UTIL_EMPTY)()
#define UTIL_EXPAND(...) __VA_ARGS__
#define UTIL_EVAL(...) UTIL_EVAL1(UTIL_EVAL1(UTIL_EVAL1(__VA_ARGS__)))
#define UTIL_EVAL1(...) UTIL_EVAL2(UTIL_EVAL2(UTIL_EVAL2(__VA_ARGS__)))
#define UTIL_EVAL2(...) UTIL_EVAL3(UTIL_EVAL3(UTIL_EVAL3(__VA_ARGS__)))
#define UTIL_EVAL3(...) UTIL_EVAL4(UTIL_EVAL4(UTIL_EVAL4(__VA_ARGS__)))
#define UTIL_EVAL4(...) UTIL_EVAL5(UTIL_EVAL5(UTIL_EVAL5(__VA_ARGS__)))
#define UTIL_EVAL5(...) __VA_ARGS__
#define UTIL_CAT(a, ...) UTIL_PRIMITIVE_CAT(a, __VA_ARGS__)
#define UTIL_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__
#define UTIL_INC(x) UTIL_PRIMITIVE_CAT(UTIL_INC_, x)
#define UTIL_INC_0 1
#define UTIL_INC_1 2
#define UTIL_INC_2 3
#define UTIL_INC_3 4
#define UTIL_INC_4 5
#define UTIL_INC_5 6
#define UTIL_INC_6 7
#define UTIL_INC_7 8
#define UTIL_INC_8 9
#define UTIL_INC_9 10
#define UTIL_INC_10 11
#define UTIL_INC_11 12
#define UTIL_INC_12 13
#define UTIL_INC_13 14
#define UTIL_INC_14 15
#define UTIL_INC_15 16
#define UTIL_INC_16 17
#define UTIL_INC_17 18
#define UTIL_INC_18 19
#define UTIL_INC_19 19
#define UTIL_DEC(x) UTIL_PRIMITIVE_CAT(UTIL_DEC_, x)
#define UTIL_DEC_0 0
#define UTIL_DEC_1 0
#define UTIL_DEC_2 1
#define UTIL_DEC_3 2
#define UTIL_DEC_4 3
#define UTIL_DEC_5 4
#define UTIL_DEC_6 5
#define UTIL_DEC_7 6
#define UTIL_DEC_8 7
#define UTIL_DEC_9 8
#define UTIL_DEC_10 9
#define UTIL_DEC_11 10
#define UTIL_DEC_12 11
#define UTIL_DEC_13 12
#define UTIL_DEC_14 13
#define UTIL_DEC_15 14
#define UTIL_DEC_16 15
#define UTIL_DEC_17 16
#define UTIL_DEC_18 17
#define UTIL_DEC_19 18
#define UTIL_CHECK_N(x, n, ...) n
#define UTIL_CHECK(...) UTIL_CHECK_N(__VA_ARGS__, 0, )
#define UTIL_NOT(x) UTIL_CHECK(UTIL_PRIMITIVE_CAT(UTIL_NOT_, x))
#define UTIL_NOT_0 ~, 1,
#define UTIL_COMPL(b) UTIL_PRIMITIVE_CAT(UTIL_COMPL_, b)
#define UTIL_COMPL_0 1
#define UTIL_COMPL_1 0
#define UTIL_BOOL(x) UTIL_COMPL(UTIL_NOT(x))
#define UTIL_IIF(c) UTIL_PRIMITIVE_CAT(UTIL_IIF_, c)
#define UTIL_IIF_0(t, ...) __VA_ARGS__
#define UTIL_IIF_1(t, ...) t
#define UTIL_IF(c) UTIL_IIF(UTIL_BOOL(c))
#define UTIL_EAT(...)
#define UTIL_EXPAND(...) __VA_ARGS__
#define UTIL_WHEN(c) UTIL_IF(c) \
(UTIL_EXPAND, UTIL_EAT)
#define UTIL_REPEAT(count, macro, ...) \
UTIL_WHEN(count) \
( \
UTIL_OBSTRUCT(UTIL_REPEAT_INDIRECT)()( \
UTIL_DEC(count), macro, __VA_ARGS__) \
UTIL_OBSTRUCT(macro)( \
UTIL_DEC(count), __VA_ARGS__))
#define UTIL_REPEAT_INDIRECT() UTIL_REPEAT
/**
* Generates a sequence of code.
* Useful for generating code like;
*
* NRF_PWM0, NRF_PWM1, NRF_PWM2,
*
* @arg LEN: The length of the sequence. Must be defined and less than
* 20.
*
* @arg F(i, F_ARG): A macro function that accepts two arguments.
* F is called repeatedly, the first argument
* is the index in the sequence, and the second argument is the third
* argument given to UTIL_LISTIFY.
*
* Example:
*
* \#define FOO(i, _) NRF_PWM ## i ,
* { UTIL_LISTIFY(PWM_COUNT, FOO) }
* // The above two lines will generate the below:
* { NRF_PWM0 , NRF_PWM1 , }
*
* @note Calling UTIL_LISTIFY with undefined arguments has undefined
* behaviour.
*/
#define UTIL_LISTIFY(LEN, F, F_ARG) UTIL_EVAL(UTIL_REPEAT(LEN, F, F_ARG))
#if defined(BFLB_BLE)
/**
* @brief Convert a single character into a hexadecimal nibble.
*
* @param[in] c The character to convert
* @param x The address of storage for the converted number.
*
* @return Zero on success or (negative) error code otherwise.
*/
int char2hex(char c, u8_t *x);
/**
* @brief Convert a single hexadecimal nibble into a character.
*
* @param[in] c The number to convert
* @param x The address of storage for the converted character.
*
* @return Zero on success or (negative) error code otherwise.
*/
int hex2char(u8_t x, char *c);
/**
* @brief Convert a binary array into string representation.
*
* @param[in] buf The binary array to convert
* @param[in] buflen The length of the binary array to convert
* @param[out] hex Address of where to store the string representation.
* @param[in] hexlen Size of the storage area for string representation.
*
* @return The length of the converted string, or 0 if an error occurred.
*/
size_t bin2hex(const u8_t *buf, size_t buflen, char *hex, size_t hexlen);
/*
* Convert hex string to byte string
* Return number of bytes written to buf, or 0 on error
* @return The length of the converted array, or 0 if an error occurred.
*/
/**
* @brief Convert a hexadecimal string into a binary array.
*
* @param[in] hex The hexadecimal string to convert
* @param[in] hexlen The length of the hexadecimal string to convert.
* @param[out] buf Address of where to store the binary data
* @param[in] buflen Size of the storage area for binary data
*
* @return The length of the binary array , or 0 if an error occurred.
*/
size_t hex2bin(const char *hex, size_t hexlen, u8_t *buf, size_t buflen);
/**
* @brief Convert a u8_t into decimal string representation.
*
* Convert a u8_t value into ASCII decimal string representation.
* The string is terminated if there is enough space in buf.
*
* @param[out] buf Address of where to store the string representation.
* @param[in] buflen Size of the storage area for string representation.
* @param[in] value The value to convert to decimal string
*
* @return The length of the converted string (excluding terminator if
* any), or 0 if an error occurred.
*/
u8_t u8_to_dec(char *buf, u8_t buflen, u8_t value);
#endif //#if defined(BFLB_BLE)
#ifdef __cplusplus
}
#endif
#endif /* _UTIL__H_ */

View File

@@ -0,0 +1,7 @@
#ifndef __UTILS_STRING_H__
#define __UTILS_STRING_H__
void get_bytearray_from_string(char **params, uint8_t *result, int array_size);
void get_uint8_from_string(char **params, uint8_t *result);
void get_uint16_from_string(char **params, uint16_t *result);
void get_uint32_from_string(char **params, uint32_t *result);
#endif

View File

@@ -0,0 +1,26 @@
/*
* Copyright (c) 2010-2014, Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief Macros to abstract toolchain specific capabilities
*
* This file contains various macros to abstract compiler capabilities that
* utilize toolchain specific attributes and/or pragmas.
*/
#ifndef _TOOLCHAIN_H
#define _TOOLCHAIN_H
#if defined(__XCC__)
#include <toolchain/xcc.h>
#elif defined(__GNUC__) || (defined(_LINKER) && defined(__GCC_LINKER_CMD__))
#include <toolchain/gcc.h>
#else
#include <toolchain/other.h>
#endif
#endif /* _TOOLCHAIN_H */

View File

@@ -0,0 +1,193 @@
/*
* Copyright (c) 2010-2014 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_TOOLCHAIN_COMMON_H_
#define ZEPHYR_INCLUDE_TOOLCHAIN_COMMON_H_
/**
* @file
* @brief Common toolchain abstraction
*
* Macros to abstract compiler capabilities (common to all toolchains).
*/
/* Abstract use of extern keyword for compatibility between C and C++ */
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C extern
#endif
/* Use TASK_ENTRY_CPP to tag task entry points defined in C++ files. */
#ifdef __cplusplus
#define TASK_ENTRY_CPP extern "C"
#endif
/*
* Generate a reference to an external symbol.
* The reference indicates to the linker that the symbol is required
* by the module containing the reference and should be included
* in the image if the module is in the image.
*
* The assembler directive ".set" is used to define a local symbol.
* No memory is allocated, and the local symbol does not appear in
* the symbol table.
*/
#ifdef _ASMLANGUAGE
#define REQUIRES(sym) .set sym##_Requires, sym
#else
#define REQUIRES(sym) __asm__(".set " #sym "_Requires, " #sym "\n\t");
#endif
#ifdef _ASMLANGUAGE
#define SECTION .section
#endif
#define CONFIG_RISCV 1
/*
* If the project is being built for speed (i.e. not for minimum size) then
* align functions and branches in executable sections to improve performance.
*/
#ifdef _ASMLANGUAGE
#if defined(CONFIG_X86)
#ifdef PERF_OPT
#define PERFOPT_ALIGN .balign 16
#else
#define PERFOPT_ALIGN .balign 1
#endif
#elif defined(CONFIG_ARM)
#define PERFOPT_ALIGN .balign 4
#elif defined(CONFIG_ARC)
#define PERFOPT_ALIGN .balign 4
#elif defined(CONFIG_NIOS2) || defined(CONFIG_RISCV) || \
defined(CONFIG_XTENSA)
#define PERFOPT_ALIGN .balign 4
#elif defined(CONFIG_ARCH_POSIX)
#else
#error Architecture unsupported
#endif
#define GC_SECTION(sym) SECTION.text.##sym, "ax"
#endif /* _ASMLANGUAGE */
/* force inlining a function */
#if !defined(_ASMLANGUAGE)
#ifdef CONFIG_COVERAGE
/*
* The always_inline attribute forces a function to be inlined,
* even ignoring -fno-inline. So for code coverage, do not
* force inlining of these functions to keep their bodies around
* so their number of executions can be counted.
*
* Note that "inline" is kept here for kobject_hash.c and
* priv_stacks_hash.c. These are built without compiler flags
* used for coverage. ALWAYS_INLINE cannot be empty as compiler
* would complain about unused functions. Attaching unused
* attribute would result in their text sections ballon more than
* 10 times in size, as those functions are kept in text section.
* So just keep "inline" here.
*/
#define ALWAYS_INLINE inline
#else
#define ALWAYS_INLINE inline __attribute__((always_inline))
#endif
#endif
#define Z_STRINGIFY(x) #x
#define STRINGIFY(s) Z_STRINGIFY(s)
/* concatenate the values of the arguments into one */
#define _DO_CONCAT(x, y) x##y
#define _CONCAT(x, y) _DO_CONCAT(x, y)
/* Additionally used as a sentinel by gen_syscalls.py to identify what
* functions are system calls
*
* Note POSIX unit tests don't still generate the system call stubs, so
* until https://github.com/zephyrproject-rtos/zephyr/issues/5006 is
* fixed via possibly #4174, we introduce this hack -- which will
* disallow us to test system calls in POSIX unit testing (currently
* not used).
*/
#ifndef ZTEST_UNITTEST
#define __syscall static inline
#else
#define __syscall
#endif /* #ifndef ZTEST_UNITTEST */
#ifndef BUILD_ASSERT
/* compile-time assertion that makes the build fail */
#define BUILD_ASSERT(EXPR) \
enum _CONCAT(__build_assert_enum, __COUNTER__) { \
_CONCAT(__build_assert, __COUNTER__) = 1 / !!(EXPR) \
}
#endif
#ifndef BUILD_ASSERT_MSG
/* build assertion with message -- common implementation swallows message. */
#define BUILD_ASSERT_MSG(EXPR, MSG) BUILD_ASSERT(EXPR)
#endif
/*
* This is meant to be used in conjunction with __in_section() and similar
* where scattered structure instances are concatened together by the linker
* and walked by the code at run time just like a contiguous array of such
* structures.
*
* Assemblers and linkers may insert alignment padding by default whose
* size is larger than the natural alignment for those structures when
* gathering various section segments together, messing up the array walk.
* To prevent this, we need to provide an explicit alignment not to rely
* on the default that might just work by luck.
*
* Alignment statements in linker scripts are not sufficient as
* the assembler may add padding by itself to each segment when switching
* between sections within the same file even if it merges many such segments
* into a single section in the end.
*/
#define Z_DECL_ALIGN(type) __aligned(__alignof(type)) type
/*
* Convenience helper combining __in_section() and Z_DECL_ALIGN().
* The section name is the struct type prepended with an underscore.
* The subsection is "static" and the subsubsection is the variable name.
*/
#define Z_STRUCT_SECTION_ITERABLE(struct_type, name) \
Z_DECL_ALIGN(struct struct_type) \
name \
__in_section(_##struct_type, static, name) __used
/*
* Itterator for structure instances gathered by Z_STRUCT_SECTION_ITERABLE().
* The linker must provide a _<struct_type>_list_start symbol and a
* _<struct_type>_list_end symbol to mark the start and the end of the
* list of struct objects to iterate over.
*/
#define Z_STRUCT_SECTION_FOREACH(struct_type, iterator) \
extern struct struct_type _CONCAT(_##struct_type, _list_start)[]; \
extern struct struct_type _CONCAT(_##struct_type, _list_end)[]; \
for (struct struct_type *iterator = \
_CONCAT(_##struct_type, _list_start); \
({ __ASSERT(iterator <= _CONCAT(_##struct_type, _list_end), \
"unexpected list end location"); \
iterator < _CONCAT(_##struct_type, _list_end); }); \
iterator++)
#endif /* ZEPHYR_INCLUDE_TOOLCHAIN_COMMON_H_ */

View File

@@ -0,0 +1,473 @@
/*
* Copyright (c) 2010-2014,2017 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_TOOLCHAIN_GCC_H_
#define ZEPHYR_INCLUDE_TOOLCHAIN_GCC_H_
/**
* @file
* @brief GCC toolchain abstraction
*
* Macros to abstract compiler capabilities for GCC toolchain.
*/
/*
* Older versions of GCC do not define __BYTE_ORDER__, so it must be manually
* detected and defined using arch-specific definitions.
*/
#ifndef _LINKER
#ifndef __ORDER_BIG_ENDIAN__
#define __ORDER_BIG_ENDIAN__ (1)
#endif
#ifndef __ORDER_LITTLE_ENDIAN__
#define __ORDER_LITTLE_ENDIAN__ (2)
#endif
#ifndef __BYTE_ORDER__
#if defined(__BIG_ENDIAN__) || defined(__ARMEB__) || \
defined(__THUMBEB__) || defined(__AARCH64EB__) || \
defined(__MIPSEB__) || defined(__TC32EB__)
#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__
#elif defined(__LITTLE_ENDIAN__) || defined(__ARMEL__) || \
defined(__THUMBEL__) || defined(__AARCH64EL__) || \
defined(__MIPSEL__) || defined(__TC32EL__)
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#else
#error "__BYTE_ORDER__ is not defined and cannot be automatically resolved"
#endif
#endif
/* C++11 has static_assert built in */
#ifdef __cplusplus
#define BUILD_ASSERT(EXPR) static_assert(EXPR, "")
#define BUILD_ASSERT_MSG(EXPR, MSG) static_assert(EXPR, MSG)
/*
* GCC 4.6 and higher have the C11 _Static_assert built in, and its
* output is easier to understand than the common BUILD_ASSERT macros.
*/
#elif (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || \
(__STDC_VERSION__) >= 201100
#define BUILD_ASSERT(EXPR) _Static_assert(EXPR, "")
#define BUILD_ASSERT_MSG(EXPR, MSG) _Static_assert(EXPR, MSG)
#endif
#include <toolchain/common.h>
#include <stdbool.h>
#define ALIAS_OF(of) __attribute__((alias(#of)))
#define FUNC_ALIAS(real_func, new_alias, return_type) \
return_type new_alias() ALIAS_OF(real_func)
#if defined(CONFIG_ARCH_POSIX)
#include <arch/posix/posix_trace.h>
/*let's not segfault if this were to happen for some reason*/
#define CODE_UNREACHABLE \
{ \
posix_print_error_and_exit("CODE_UNREACHABLE reached from %s:%d\n", \
__FILE__, __LINE__); \
__builtin_unreachable(); \
}
#else
#define CODE_UNREACHABLE __builtin_unreachable()
#endif
#define FUNC_NORETURN __attribute__((__noreturn__))
/* The GNU assembler for Cortex-M3 uses # for immediate values, not
* comments, so the @nobits# trick does not work.
*/
#if defined(CONFIG_ARM)
#define _NODATA_SECTION(segment) __attribute__((section(#segment)))
#else
#define _NODATA_SECTION(segment) \
__attribute__((section(#segment ",\"wa\",@nobits#")))
#endif
/* Unaligned access */
#define UNALIGNED_GET(p) \
__extension__({ \
struct __attribute__((__packed__)) { \
__typeof__(*(p)) __v; \
} *__p = (__typeof__(__p))(p); \
__p->__v; \
})
#if __GNUC__ >= 7 && defined(CONFIG_ARM)
/* Version of UNALIGNED_PUT() which issues a compiler_barrier() after
* the store. It is required to workaround an apparent optimization
* bug in GCC for ARM Cortex-M3 and higher targets, when multiple
* byte, half-word and word stores (strb, strh, str instructions),
* which support unaligned access, can be coalesced into store double
* (strd) instruction, which doesn't support unaligned access (the
* compilers in question do this optimization ignoring __packed__
* attribute).
*/
#define UNALIGNED_PUT(v, p) \
do { \
struct __attribute__((__packed__)) { \
__typeof__(*p) __v; \
} *__p = (__typeof__(__p))(p); \
__p->__v = (v); \
compiler_barrier(); \
} while (false)
#else
#define UNALIGNED_PUT(v, p) \
do { \
struct __attribute__((__packed__)) { \
__typeof__(*p) __v; \
} *__p = (__typeof__(__p))(p); \
__p->__v = (v); \
} while (false)
#endif
/* Double indirection to ensure section names are expanded before
* stringification
*/
#define __GENERIC_SECTION(segment) __attribute__((section(STRINGIFY(segment))))
#define Z_GENERIC_SECTION(segment) __GENERIC_SECTION(segment)
#define ___in_section(a, b, c) \
__attribute__((section("." Z_STRINGIFY(a) "." Z_STRINGIFY(b) "." Z_STRINGIFY(c))))
#define __in_section(a, b, c) ___in_section(a, b, c)
#define __in_section_unique(seg) ___in_section(seg, __FILE__, __COUNTER__)
/* When using XIP, using '__ramfunc' places a function into RAM instead
* of FLASH. Make sure '__ramfunc' is defined only when
* CONFIG_ARCH_HAS_RAMFUNC_SUPPORT is defined, so that the compiler can
* report an error if '__ramfunc' is used but the architecture does not
* support it.
*/
#if !defined(CONFIG_XIP)
#define __ramfunc
#elif defined(CONFIG_ARCH_HAS_RAMFUNC_SUPPORT)
#define __ramfunc __attribute__((noinline)) \
__attribute__((long_call, section(".ramfunc")))
#endif /* !CONFIG_XIP */
#ifndef __packed
#define __packed __attribute__((__packed__))
#endif
#ifndef __aligned
#define __aligned(x) __attribute__((__aligned__(x)))
#endif
#define __may_alias __attribute__((__may_alias__))
#ifndef __printf_like
#define __printf_like(f, a) __attribute__((format(printf, f, a)))
#endif
#define __used __attribute__((__used__))
#ifndef __deprecated
#define __deprecated __attribute__((deprecated))
#endif
#define ARG_UNUSED(x) (void)(x)
#ifndef likely
#define likely(x) __builtin_expect((bool)!!(x), true)
#endif
#ifndef unlikely
#define unlikely(x) __builtin_expect((bool)!!(x), false)
#endif
#define popcount(x) __builtin_popcount(x)
#ifndef __weak
#define __weak __attribute__((__weak__))
#endif
#define __unused __attribute__((__unused__))
/* Builtins with availability that depend on the compiler version. */
#if __GNUC__ >= 5
#define HAS_BUILTIN___builtin_add_overflow 1
#define HAS_BUILTIN___builtin_sub_overflow 1
#define HAS_BUILTIN___builtin_mul_overflow 1
#define HAS_BUILTIN___builtin_div_overflow 1
#endif
#if __GNUC__ >= 4
#define HAS_BUILTIN___builtin_clz 1
#define HAS_BUILTIN___builtin_clzl 1
#define HAS_BUILTIN___builtin_clzll 1
#define HAS_BUILTIN___builtin_ctz 1
#define HAS_BUILTIN___builtin_ctzl 1
#define HAS_BUILTIN___builtin_ctzll 1
#endif
/* Be *very* careful with this, you cannot filter out with -wno-deprecated,
* which has implications for -Werror
*/
#define __DEPRECATED_MACRO _Pragma("GCC warning \"Macro is deprecated\"")
/* These macros allow having ARM asm functions callable from thumb */
#if defined(_ASMLANGUAGE)
#ifdef CONFIG_ARM
#if defined(CONFIG_ISA_THUMB2)
#define FUNC_CODE() .thumb;
#define FUNC_INSTR(a)
#elif defined(CONFIG_ISA_ARM)
#define FUNC_CODE() .code 32
#define FUNC_INSTR(a)
#else
#error unknown instruction set
#endif /* ISA */
#else
#define FUNC_CODE()
#define FUNC_INSTR(a)
#endif /* !CONFIG_ARM */
#endif /* _ASMLANGUAGE */
/*
* These macros are used to declare assembly language symbols that need
* to be typed properly(func or data) to be visible to the OMF tool.
* So that the build tool could mark them as an entry point to be linked
* correctly. This is an elfism. Use #if 0 for a.out.
*/
#if defined(_ASMLANGUAGE)
#if defined(CONFIG_ARM) || defined(CONFIG_NIOS2) || defined(CONFIG_RISCV) || defined(CONFIG_XTENSA)
#define GTEXT(sym) \
.global sym; \
.type sym, % function
#define GDATA(sym) \
.global sym; \
.type sym, % object
#define WTEXT(sym) \
.weak sym; \
.type sym, % function
#define WDATA(sym) \
.weak sym; \
.type sym, % object
#elif defined(CONFIG_ARC)
/*
* Need to use assembly macros because ';' is interpreted as the start of
* a single line comment in the ARC assembler.
*/
.macro glbl_text symbol
.globl \symbol
.type \symbol,
% function
.endm
.macro glbl_data symbol
.globl \symbol
.type \symbol,
% object
.endm
.macro weak_data symbol
.weak \symbol
.type \symbol,
% object
.endm
#define GTEXT(sym) glbl_text sym
#define GDATA(sym) glbl_data sym
#define WDATA(sym) weak_data sym
#else /* !CONFIG_ARM && !CONFIG_ARC */
#define GTEXT(sym) \
.globl sym; \
.type sym, @function
#define GDATA(sym) \
.globl sym; \
.type sym, @object
#endif
/*
* These macros specify the section in which a given function or variable
* resides.
*
* - SECTION_FUNC allows only one function to reside in a sub-section
* - SECTION_SUBSEC_FUNC allows multiple functions to reside in a sub-section
* This ensures that garbage collection only discards the section
* if all functions in the sub-section are not referenced.
*/
#if defined(CONFIG_ARC)
/*
* Need to use assembly macros because ';' is interpreted as the start of
* a single line comment in the ARC assembler.
*
* Also, '\()' is needed in the .section directive of these macros for
* correct substitution of the 'section' variable.
*/
.macro section_var section, symbol.section.\section\().\symbol
\symbol :.endm
.macro section_func section,
symbol
.section.\section\()
.\symbol,
"ax" FUNC_CODE()
PERFOPT_ALIGN
\symbol : FUNC_INSTR(\symbol)
.endm
.macro section_subsec_func section,
subsection, symbol.section.\section\().\subsection, "ax" PERFOPT_ALIGN
\symbol :.endm
#define SECTION_VAR(sect, sym) section_var sect, sym
#define SECTION_FUNC(sect, sym) section_func sect, sym
#define SECTION_SUBSEC_FUNC(sect, subsec, sym) \
section_subsec_func sect, subsec, sym
#else /* !CONFIG_ARC */
#define SECTION_VAR(sect, sym) \
.section.sect.##sym; \
sym:
#define SECTION_FUNC(sect, sym) \
.section.sect.sym, "ax"; \
FUNC_CODE() \
PERFOPT_ALIGN; \
sym: \
FUNC_INSTR(sym)
#define SECTION_SUBSEC_FUNC(sect, subsec, sym) \
.section.sect.subsec, "ax"; \
PERFOPT_ALIGN; \
sym:
#endif /* CONFIG_ARC */
#endif /* _ASMLANGUAGE */
#if defined(CONFIG_ARM) && defined(_ASMLANGUAGE)
#if defined(CONFIG_ISA_THUMB2)
/* '.syntax unified' is a gcc-ism used in thumb-2 asm files */
#define _ASM_FILE_PROLOGUE \
.text; \
.syntax unified; \
.thumb
#else
#define _ASM_FILE_PROLOGUE \
.text; \
.code 32
#endif
#endif
/*
* These macros generate absolute symbols for GCC
*/
/* create an extern reference to the absolute symbol */
#define GEN_OFFSET_EXTERN(name) extern const char name[]
#define GEN_ABS_SYM_BEGIN(name) \
EXTERN_C void name(void); \
void name(void) \
{
#define GEN_ABS_SYM_END }
#if defined(CONFIG_ARM)
/*
* GNU/ARM backend does not have a proper operand modifier which does not
* produces prefix # followed by value, such as %0 for PowerPC, Intel, and
* MIPS. The workaround performed here is using %B0 which converts
* the value to ~(value). Thus "n"(~(value)) is set in operand constraint
* to output (value) in the ARM specific GEN_OFFSET macro.
*/
#define GEN_ABSOLUTE_SYM(name, value) \
__asm__(".globl\t" #name "\n\t.equ\t" #name \
",%B0" \
"\n\t.type\t" #name ",%%object" \
: \
: "n"(~(value)))
#elif defined(CONFIG_X86) || defined(CONFIG_ARC)
#define GEN_ABSOLUTE_SYM(name, value) \
__asm__(".globl\t" #name "\n\t.equ\t" #name \
",%c0" \
"\n\t.type\t" #name ",@object" \
: \
: "n"(value))
#elif defined(CONFIG_NIOS2) || defined(CONFIG_RISCV) || defined(CONFIG_XTENSA)
/* No special prefixes necessary for constants in this arch AFAICT */
#define GEN_ABSOLUTE_SYM(name, value) \
__asm__(".globl\t" #name "\n\t.equ\t" #name \
",%0" \
"\n\t.type\t" #name ",%%object" \
: \
: "n"(value))
#elif defined(CONFIG_ARCH_POSIX)
#define GEN_ABSOLUTE_SYM(name, value) \
__asm__(".globl\t" #name "\n\t.equ\t" #name \
",%c0" \
"\n\t.type\t" #name ",@object" \
: \
: "n"(value))
#else
#error processor architecture not supported
#endif
#define compiler_barrier() \
do { \
__asm__ __volatile__("" :: \
: "memory"); \
} while (false)
/** @brief Return larger value of two provided expressions.
*
* Macro ensures that expressions are evaluated only once.
*
* @note Macro has limited usage compared to the standard macro as it cannot be
* used:
* - to generate constant integer, e.g. __aligned(Z_MAX(4,5))
* - static variable, e.g. array like static u8_t array[Z_MAX(...)];
*/
#define Z_MAX(a, b) ({ \
/* random suffix to avoid naming conflict */ \
__typeof__(a) _value_a_ = (a); \
__typeof__(b) _value_b_ = (b); \
_value_a_ > _value_b_ ? _value_a_ : _value_b_; \
})
/** @brief Return smaller value of two provided expressions.
*
* Macro ensures that expressions are evaluated only once. See @ref Z_MAX for
* macro limitations.
*/
#define Z_MIN(a, b) ({ \
/* random suffix to avoid naming conflict */ \
__typeof__(a) _value_a_ = (a); \
__typeof__(b) _value_b_ = (b); \
_value_a_ < _value_b_ ? _value_a_ : _value_b_; \
})
#endif /* !_LINKER */
#endif /* ZEPHYR_INCLUDE_TOOLCHAIN_GCC_H_ */

View File

@@ -0,0 +1,51 @@
/*
* Copyright (c) 2017 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_TOOLCHAIN_XCC_H_
#define ZEPHYR_INCLUDE_TOOLCHAIN_XCC_H_
/* toolchain/gcc.h errors out if __BYTE_ORDER__ cannot be determined
* there. However, __BYTE_ORDER__ is actually being defined later in
* this file. So define __BYTE_ORDER__ to skip the check in gcc.h
* and undefine after including gcc.h.
*/
#define __BYTE_ORDER__
#include <toolchain/gcc.h>
#undef __BYTE_ORDER__
#include <stdbool.h>
/* XCC doesn't support __COUNTER__ but this should be good enough */
#define __COUNTER__ __LINE__
#undef __in_section_unique
#define __in_section_unique(seg) \
__attribute__((section("." STRINGIFY(seg) "." STRINGIFY(__COUNTER__))))
#ifndef __GCC_LINKER_CMD__
#include <xtensa/config/core.h>
/*
* XCC does not define the following macros with the expected names, but the
* HAL defines similar ones. Thus we include it and define the missing macros
* ourselves.
*/
#if XCHAL_MEMORY_ORDER == XTHAL_BIGENDIAN
#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__
#elif XCHAL_MEMORY_ORDER == XTHAL_LITTLEENDIAN
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#else
#error "Cannot determine __BYTE_ORDER__"
#endif
#endif /* __GCC_LINKER_CMD__ */
#define __builtin_unreachable() \
do { \
__ASSERT(false, "Unreachable code"); \
} while (true)
#endif

View File

@@ -0,0 +1,60 @@
#ifndef WORK_Q_H
#define WORK_Q_H
#include "atomic.h"
#include "zephyr.h"
#if defined(BFLB_BLE)
struct k_work_q {
struct k_fifo fifo;
};
typedef struct {
bl_timer_t timer;
struct k_delayed_work *delay_work;
} timer_rec_d;
int k_work_q_start();
enum {
K_WORK_STATE_PENDING,
K_WORK_STATE_PERIODIC,
};
struct k_work;
/* work define*/
typedef void (*k_work_handler_t)(struct k_work *work);
struct k_work {
void *_reserved;
k_work_handler_t handler;
atomic_t flags[1];
};
#define _K_WORK_INITIALIZER(work_handler) \
{ \
._reserved = NULL, \
.handler = work_handler, \
.flags = { 0 } \
}
#define K_WORK_INITIALIZER __DEPRECATED_MACRO _K_WORK_INITIALIZER
int k_work_init(struct k_work *work, k_work_handler_t handler);
void k_work_submit(struct k_work *work);
/*delay work define*/
struct k_delayed_work {
struct k_work work;
struct k_work_q *work_q;
k_timer_t timer;
};
void k_delayed_work_init(struct k_delayed_work *work, k_work_handler_t handler);
int k_delayed_work_submit(struct k_delayed_work *work, uint32_t delay);
/* Added by bouffalolab */
int k_delayed_work_submit_periodic(struct k_delayed_work *work, s32_t period);
int k_delayed_work_cancel(struct k_delayed_work *work);
s32_t k_delayed_work_remaining_get(struct k_delayed_work *work);
void k_delayed_work_del_timer(struct k_delayed_work *work);
/* Added by bouffalolab */
int k_delayed_work_free(struct k_delayed_work *work);
#endif
#endif /* WORK_Q_H */

View File

@@ -0,0 +1,30 @@
/*
* Copyright (c) 2017 Linaro Limited
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __Z_TYPES_H__
#define __Z_TYPES_H__
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef signed char s8_t;
typedef signed short s16_t;
typedef signed int s32_t;
typedef signed long long s64_t;
typedef unsigned char u8_t;
typedef unsigned short u16_t;
typedef unsigned int u32_t;
typedef unsigned long long u64_t;
#ifdef __cplusplus
}
#endif
#endif /* __Z_TYPES_H__ */

View File

@@ -0,0 +1,61 @@
/* log.c - logging helpers */
/*
* Copyright (c) 2017 Nordic Semiconductor ASA
* Copyright (c) 2016 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
/* Helper for printk parameters to convert from binary to hex.
* We declare multiple buffers so the helper can be used multiple times
* in a single printk call.
*/
#include <stddef.h>
#include <zephyr/types.h>
#include <zephyr.h>
#include <misc/util.h>
#include <bluetooth.h>
#include <hci_host.h>
const char *bt_hex_real(const void *buf, size_t len)
{
static const char hex[] = "0123456789abcdef";
#if defined(CONFIG_BT_DEBUG_MONITOR)
static char str[255];
#else
static char str[128];
#endif
const u8_t *b = buf;
int i;
len = MIN(len, (sizeof(str) - 1) / 2);
for (i = 0; i < len; i++) {
str[i * 2] = hex[b[i] >> 4];
str[i * 2 + 1] = hex[b[i] & 0xf];
}
str[i * 2] = '\0';
return str;
}
const char *bt_addr_str_real(const bt_addr_t *addr)
{
static char str[BT_ADDR_STR_LEN];
bt_addr_to_str(addr, str, sizeof(str));
return str;
}
const char *bt_addr_le_str_real(const bt_addr_le_t *addr)
{
static char str[BT_ADDR_LE_STR_LEN];
bt_addr_le_to_str(addr, str, sizeof(str));
return str;
}

View File

@@ -0,0 +1,142 @@
/** @file
* @brief Bluetooth subsystem logging helpers.
*/
/*
* Copyright (c) 2017 Nordic Semiconductor ASA
* Copyright (c) 2015-2016 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BT_LOG_H
#define __BT_LOG_H
#if defined(BL_MCU_SDK)
#include "bflb_platform.h"
#endif
#include <zephyr.h>
#include <bluetooth.h>
#include <hci_host.h>
#include "FreeRTOS.h"
#include "task.h"
#include "FreeRTOSConfig.h"
#ifdef __cplusplus
extern "C" {
#endif
#if !defined(BT_DBG_ENABLED)
#define BT_DBG_ENABLED 1
#endif
#if BT_DBG_ENABLED
#define LOG_LEVEL LOG_LEVEL_DBG
#else
#define LOG_LEVEL CONFIG_BT_LOG_LEVEL
#endif
//LOG_MODULE_REGISTER(LOG_MODULE_NAME, LOG_LEVEL);
#if defined(BFLB_BLE)
#if defined(BL_MCU_SDK)
#define BT_DBG(fmt, ...) //bflb_platform_printf(fmt", %s\r\n", ##__VA_ARGS__, __func__)
#define BT_ERR(fmt, ...) bflb_platform_printf(fmt ", %s\r\n", ##__VA_ARGS__, __func__)
#else
#define BT_DBG(fmt, ...) //printf(fmt", %s\r\n", ##__VA_ARGS__, __func__)
#define BT_ERR(fmt, ...) printf(fmt ", %s\r\n", ##__VA_ARGS__, __func__)
#endif
#if defined(CONFIG_BT_STACK_PTS) || defined(CONFIG_BT_MESH_PTS)
#if defined(BL_MCU_SDK)
#define BT_PTS(fmt, ...) bflb_platform_printf(fmt "\r\n", ##__VA_ARGS__)
#else
#define BT_PTS(fmt, ...) printf(fmt "\r\n", ##__VA_ARGS__)
#endif
#endif
#if defined(BL_MCU_SDK)
#define BT_WARN(fmt, ...) bflb_platform_printf(fmt ", %s\r\n", ##__VA_ARGS__, __func__)
#define BT_INFO(fmt, ...) //bflb_platform_printf(fmt", %s\r\n", ##__VA_ARGS__, __func__)
#else
#define BT_WARN(fmt, ...) printf(fmt ", %s\r\n", ##__VA_ARGS__, __func__)
#define BT_INFO(fmt, ...) //printf(fmt", %s\r\n", ##__VA_ARGS__, __func__)
#endif
#else /*BFLB_BLE*/
#define BT_DBG(fmt, ...) LOG_DBG(fmt, ##__VA_ARGS__)
#define BT_ERR(fmt, ...) LOG_ERR(fmt, ##__VA_ARGS__)
#define BT_WARN(fmt, ...) LOG_WRN(fmt, ##__VA_ARGS__)
#define BT_INFO(fmt, ...) LOG_INF(fmt, ##__VA_ARGS__)
#if defined(CONFIG_BT_ASSERT_VERBOSE)
#define BT_ASSERT_PRINT(fmt, ...) printk(fmt, ##__VA_ARGS__)
#else
#define BT_ASSERT_PRINT(fmt, ...)
#endif /* CONFIG_BT_ASSERT_VERBOSE */
#if defined(CONFIG_BT_ASSERT_PANIC)
#define BT_ASSERT_DIE k_panic
#else
#define BT_ASSERT_DIE k_oops
#endif /* CONFIG_BT_ASSERT_PANIC */
#endif /*BFLB_BLE*/
#if defined(CONFIG_BT_ASSERT)
#if defined(BFLB_BLE)
extern void vAssertCalled(void);
#define BT_ASSERT(cond) \
if ((cond) == 0) \
vAssertCalled()
#else
#define BT_ASSERT(cond) \
if (!(cond)) { \
BT_ASSERT_PRINT("assert: '" #cond \
"' failed\n"); \
BT_ASSERT_DIE(); \
}
#endif /*BFLB_BLE*/
#else
#if defined(BFLB_BLE)
#define BT_ASSERT(cond)
#else
#define BT_ASSERT(cond) __ASSERT_NO_MSG(cond)
#endif /*BFLB_BLE*/
#endif /* CONFIG_BT_ASSERT*/
#define BT_HEXDUMP_DBG(_data, _length, _str) \
LOG_HEXDUMP_DBG((const u8_t *)_data, _length, _str)
#if defined(BFLB_BLE)
static inline char *log_strdup(const char *str)
{
return (char *)str;
}
#endif
/* NOTE: These helper functions always encodes into the same buffer storage.
* It is the responsibility of the user of this function to copy the information
* in this string if needed.
*/
const char *bt_hex_real(const void *buf, size_t len);
const char *bt_addr_str_real(const bt_addr_t *addr);
const char *bt_addr_le_str_real(const bt_addr_le_t *addr);
/* NOTE: log_strdup does not guarantee a duplication of the string.
* It is therefore still the responsibility of the user to handle the
* restrictions in the underlying function call.
*/
#define bt_hex(buf, len) log_strdup(bt_hex_real(buf, len))
#define bt_addr_str(addr) log_strdup(bt_addr_str_real(addr))
#define bt_addr_le_str(addr) log_strdup(bt_addr_le_str_real(addr))
#ifdef __cplusplus
}
#endif
#endif /* __BT_LOG_H */

View File

@@ -0,0 +1,240 @@
/*
* Copyright (c) 2017 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
*
* @brief Kernel asynchronous event polling interface.
*
* This polling mechanism allows waiting on multiple events concurrently,
* either events triggered directly, or from kernel objects or other kernel
* constructs.
*/
#include <stdio.h>
#include <zephyr.h>
#include <zephyr/types.h>
#include <misc/slist.h>
#include <misc/dlist.h>
#include <misc/__assert.h>
struct k_sem g_poll_sem;
void k_poll_event_init(struct k_poll_event *event, u32_t type,
int mode, void *obj)
{
__ASSERT(mode == K_POLL_MODE_NOTIFY_ONLY,
"only NOTIFY_ONLY mode is supported\n");
__ASSERT(type < (1 << _POLL_NUM_TYPES), "invalid type\n");
__ASSERT(obj, "must provide an object\n");
event->poller = NULL;
/* event->tag is left uninitialized: the user will set it if needed */
event->type = type;
event->state = K_POLL_STATE_NOT_READY;
event->mode = mode;
event->unused = 0;
event->obj = obj;
}
/* must be called with interrupts locked */
static inline int is_condition_met(struct k_poll_event *event, u32_t *state)
{
switch (event->type) {
case K_POLL_TYPE_SEM_AVAILABLE:
if (k_sem_count_get(event->sem) > 0) {
*state = K_POLL_STATE_SEM_AVAILABLE;
return 1;
}
break;
case K_POLL_TYPE_DATA_AVAILABLE:
if (!k_queue_is_empty(event->queue)) {
*state = K_POLL_STATE_FIFO_DATA_AVAILABLE;
return 1;
}
break;
case K_POLL_TYPE_SIGNAL:
if (event->signal->signaled) {
*state = K_POLL_STATE_SIGNALED;
return 1;
}
break;
case K_POLL_TYPE_IGNORE:
return 0;
default:
__ASSERT(0, "invalid event type (0x%x)\n", event->type);
break;
}
return 0;
}
static inline void add_event(sys_dlist_t *events, struct k_poll_event *event,
struct _poller *poller)
{
sys_dlist_append(events, &event->_node);
}
/* must be called with interrupts locked */
static inline int register_event(struct k_poll_event *event,
struct _poller *poller)
{
switch (event->type) {
case K_POLL_TYPE_SEM_AVAILABLE:
__ASSERT(event->sem, "invalid semaphore\n");
add_event(&event->sem->poll_events, event, poller);
break;
case K_POLL_TYPE_DATA_AVAILABLE:
__ASSERT(event->queue, "invalid queue\n");
add_event(&event->queue->poll_events, event, poller);
break;
case K_POLL_TYPE_SIGNAL:
__ASSERT(event->signal, "invalid poll signal\n");
add_event(&event->signal->poll_events, event, poller);
break;
case K_POLL_TYPE_IGNORE:
/* nothing to do */
break;
default:
__ASSERT(0, "invalid event type\n");
break;
}
event->poller = poller;
return 0;
}
/* must be called with interrupts locked */
static inline void clear_event_registration(struct k_poll_event *event)
{
event->poller = NULL;
switch (event->type) {
case K_POLL_TYPE_SEM_AVAILABLE:
__ASSERT(event->sem, "invalid semaphore\n");
sys_dlist_remove(&event->_node);
break;
case K_POLL_TYPE_DATA_AVAILABLE:
__ASSERT(event->queue, "invalid queue\n");
sys_dlist_remove(&event->_node);
break;
case K_POLL_TYPE_SIGNAL:
__ASSERT(event->signal, "invalid poll signal\n");
sys_dlist_remove(&event->_node);
break;
case K_POLL_TYPE_IGNORE:
/* nothing to do */
break;
default:
__ASSERT(0, "invalid event type\n");
break;
}
}
/* must be called with interrupts locked */
static inline void clear_event_registrations(struct k_poll_event *events,
int last_registered,
unsigned int key)
{
for (; last_registered >= 0; last_registered--) {
clear_event_registration(&events[last_registered]);
irq_unlock(key);
key = irq_lock();
}
}
static inline void set_event_ready(struct k_poll_event *event, u32_t state)
{
event->poller = NULL;
event->state |= state;
}
static bool polling_events(struct k_poll_event *events, int num_events,
s32_t timeout, int *last_registered)
{
int rc;
bool polling = true;
unsigned int key;
for (int ii = 0; ii < num_events; ii++) {
u32_t state;
key = irq_lock();
if (is_condition_met(&events[ii], &state)) {
set_event_ready(&events[ii], state);
polling = false;
} else if (timeout != K_NO_WAIT && polling) {
rc = register_event(&events[ii], NULL);
if (rc == 0) {
++(*last_registered);
} else {
__ASSERT(0, "unexpected return code\n");
}
}
irq_unlock(key);
}
return polling;
}
int k_poll(struct k_poll_event *events, int num_events, s32_t timeout)
{
__ASSERT(events, "NULL events\n");
__ASSERT(num_events > 0, "zero events\n");
int last_registered = -1;
unsigned int key;
bool polling = true;
/* find events whose condition is already fulfilled */
polling = polling_events(events, num_events, timeout, &last_registered);
if (polling == false) {
goto exit;
}
k_sem_take(&g_poll_sem, timeout);
last_registered = -1;
polling_events(events, num_events, timeout, &last_registered);
exit:
key = irq_lock();
clear_event_registrations(events, last_registered, key);
irq_unlock(key);
return 0;
}
/* must be called with interrupts locked */
static int _signal_poll_event(struct k_poll_event *event, u32_t state,
int *must_reschedule)
{
*must_reschedule = 0;
set_event_ready(event, state);
return 0;
}
int k_poll_signal_raise(struct k_poll_signal *signal, int result)
{
unsigned int key = irq_lock();
struct k_poll_event *poll_event;
int must_reschedule;
signal->result = result;
signal->signaled = 1;
poll_event = (struct k_poll_event *)sys_dlist_get(&signal->poll_events);
if (!poll_event) {
irq_unlock(key);
return 0;
}
int rc = _signal_poll_event(poll_event, K_POLL_STATE_SIGNALED,
&must_reschedule);
k_sem_give(&g_poll_sem);
irq_unlock(key);
return rc;
}

View File

@@ -0,0 +1,106 @@
/**
* @file rpa.c
* Resolvable Private Address Generation and Resolution
*/
/*
* Copyright (c) 2017 Nordic Semiconductor ASA
* Copyright (c) 2015-2016 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr.h>
#include <stddef.h>
#include <errno.h>
#include <string.h>
#include <FreeRTOS.h>
#include <include/atomic.h>
#include <misc/util.h>
#include <misc/byteorder.h>
#include <misc/stack.h>
#include <constants.h>
#include <aes.h>
#include <utils.h>
#include <cmac_mode.h>
#include <../include/bluetooth/crypto.h>
#define BT_DBG_ENABLED IS_ENABLED(CONFIG_BT_DEBUG_RPA)
#define LOG_MODULE_NAME bt_rpa
#include "log.h"
#if defined(CONFIG_BT_CTLR_PRIVACY) || defined(CONFIG_BT_PRIVACY) || defined(CONFIG_BT_SMP)
static int ah(const u8_t irk[16], const u8_t r[3], u8_t out[3])
{
u8_t res[16];
int err;
BT_DBG("irk %s", bt_hex(irk, 16));
BT_DBG("r %s", bt_hex(r, 3));
/* r' = padding || r */
memcpy(res, r, 3);
(void)memset(res + 3, 0, 13);
err = bt_encrypt_le(irk, res, res);
if (err) {
return err;
}
/* The output of the random address function ah is:
* ah(h, r) = e(k, r') mod 2^24
* The output of the security function e is then truncated to 24 bits
* by taking the least significant 24 bits of the output of e as the
* result of ah.
*/
memcpy(out, res, 3);
return 0;
}
#endif
#if defined(CONFIG_BT_SMP) || defined(CONFIG_BT_CTLR_PRIVACY)
bool bt_rpa_irk_matches(const u8_t irk[16], const bt_addr_t *addr)
{
u8_t hash[3];
int err;
BT_DBG("IRK %s bdaddr %s", bt_hex(irk, 16), bt_addr_str(addr));
err = ah(irk, addr->val + 3, hash);
if (err) {
return false;
}
return !memcmp(addr->val, hash, 3);
}
#endif
#if defined(CONFIG_BT_PRIVACY) || defined(CONFIG_BT_CTLR_PRIVACY)
int bt_rpa_create(const u8_t irk[16], bt_addr_t *rpa)
{
int err;
err = bt_rand(rpa->val + 3, 3);
if (err) {
return err;
}
BT_ADDR_SET_RPA(rpa);
err = ah(irk, rpa->val + 3, rpa->val);
if (err) {
return err;
}
BT_DBG("Created RPA %s", bt_addr_str((bt_addr_t *)rpa->val));
return 0;
}
#else
int bt_rpa_create(const u8_t irk[16], bt_addr_t *rpa)
{
return -ENOTSUP;
}
#endif /* CONFIG_BT_PRIVACY */

View File

@@ -0,0 +1,16 @@
/* rpa.h - Bluetooth Resolvable Private Addresses (RPA) generation and
* resolution
*/
/*
* Copyright (c) 2017 Nordic Semiconductor ASA
* Copyright (c) 2015-2016 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "bluetooth.h"
#include "hci_host.h"
bool bt_rpa_irk_matches(const u8_t irk[16], const bt_addr_t *addr);
int bt_rpa_create(const u8_t irk[16], bt_addr_t *rpa);

View File

@@ -0,0 +1,116 @@
# Kconfig - Cryptography primitive options for TinyCrypt version 2.0
#
# Copyright (c) 2015 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#
config TINYCRYPT
bool
prompt "TinyCrypt Support"
default n
help
This option enables the TinyCrypt cryptography library.
config TINYCRYPT_CTR_PRNG
bool
prompt "PRNG in counter mode"
depends on TINYCRYPT
default n
help
This option enables support for the pseudo-random number
generator in counter mode.
config TINYCRYPT_SHA256
bool
prompt "SHA-256 Hash function support"
depends on TINYCRYPT
default n
help
This option enables support for SHA-256
hash function primitive.
config TINYCRYPT_SHA256_HMAC
bool
prompt "HMAC (via SHA256) message auth support"
depends on TINYCRYPT_SHA256
default n
help
This option enables support for HMAC using SHA-256
message authentication code.
config TINYCRYPT_SHA256_HMAC_PRNG
bool
prompt "PRNG (via HMAC-SHA256) support"
depends on TINYCRYPT_SHA256_HMAC
default n
help
This option enables support for pseudo-random number
generator.
config TINYCRYPT_ECC_DH
bool
prompt "ECC_DH anonymous key agreement protocol"
depends on TINYCRYPT
select ENTROPY_GENERATOR
default n
help
This option enables support for the Elliptic curve
Diffie-Hellman anonymous key agreement protocol.
Enabling ECC requires a cryptographically secure random number
generator.
config TINYCRYPT_ECC_DSA
bool
prompt "ECC_DSA digital signature algorithm"
depends on TINYCRYPT
select ENTROPY_GENERATOR
default n
help
This option enables support for the Elliptic Curve Digital
Signature Algorithm (ECDSA).
Enabling ECC requires a cryptographically secure random number
generator.
config TINYCRYPT_AES
bool
prompt "AES-128 decrypt/encrypt"
depends on TINYCRYPT
default n
help
This option enables support for AES-128 decrypt and encrypt.
config TINYCRYPT_AES_CBC
bool
prompt "AES-128 block cipher"
depends on TINYCRYPT_AES
default n
help
This option enables support for AES-128 block cipher mode.
config TINYCRYPT_AES_CTR
bool
prompt "AES-128 counter mode"
depends on TINYCRYPT_AES
default n
help
This option enables support for AES-128 counter mode.
config TINYCRYPT_AES_CCM
bool
prompt "AES-128 CCM mode"
depends on TINYCRYPT_AES
default n
help
This option enables support for AES-128 CCM mode.
config TINYCRYPT_AES_CMAC
bool
prompt "AES-128 CMAC mode"
depends on TINYCRYPT_AES
default n
help
This option enables support for AES-128 CMAC mode.

View File

@@ -0,0 +1,71 @@
The TinyCrypt library in Zephyr is a downstream of an externally maintained
open source project. The original upstream code can be found at:
https://github.com/01org/tinycrypt
At revision c214460d7f760e2a75908cb41000afcc0bfca282, version 0.2.7
Any changes to the local version should include Zephyr's TinyCrypt
maintainer in the review. That can be found via the git history.
The following is the license information for this code:
================================================================================
TinyCrypt Cryptographic Library
================================================================================
Copyright (c) 2017, Intel Corporation. All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
- Neither the name of the Intel Corporation nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================================================
Copyright (c) 2013, Kenneth MacKay
All rights reserved.
https://github.com/kmackay/micro-ecc
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Some files were not shown because too many files have changed in this diff Show More