mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
Compare commits
236 Commits
omega-beta
...
omega-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5a6dfd8a20 | ||
|
|
c8afdcacab | ||
|
|
ef45fab63d | ||
|
|
0366c4cd00 | ||
|
|
c3b752d6cc | ||
|
|
c5ca1e916a | ||
|
|
24f3ccf007 | ||
|
|
25b74ea2f8 | ||
|
|
0e7db3ce8a | ||
|
|
786a3273da | ||
|
|
ed54927c5b | ||
|
|
2ee86ce52f | ||
|
|
a3720d3d76 | ||
|
|
ba94c7db00 | ||
|
|
4c29b05b53 | ||
|
|
85f8f4fedd | ||
|
|
e62c328661 | ||
|
|
080ac51aae | ||
|
|
bf5f24f96c | ||
|
|
7e24502414 | ||
|
|
dd45419006 | ||
|
|
aba2388253 | ||
|
|
5fca77a8f8 | ||
|
|
f258da16f1 | ||
|
|
35e4146551 | ||
|
|
76dad83aec | ||
|
|
f999c796c3 | ||
|
|
f86c22f10b | ||
|
|
c841362a63 | ||
|
|
33ad74e1be | ||
|
|
e4aa82e62a | ||
|
|
f40fe27b68 | ||
|
|
3e071a59fe | ||
|
|
f50f22081c | ||
|
|
313b5ed222 | ||
|
|
f8798aa561 | ||
|
|
46acd4eb61 | ||
|
|
018ea07796 | ||
|
|
d7f41e306c | ||
|
|
029dc2be5e | ||
|
|
bf99a2976b | ||
|
|
03c85c0b0e | ||
|
|
bd0c7de2bf | ||
|
|
08f351fe31 | ||
|
|
0282104086 | ||
|
|
ed95b46c5b | ||
|
|
b8727bc256 | ||
|
|
5ccf8d6b97 | ||
|
|
b80daf70d3 | ||
|
|
36655f1c19 | ||
|
|
ed18f1e95f | ||
|
|
cbb435d656 | ||
|
|
00b74430cd | ||
|
|
8705ddaf8a | ||
|
|
ddae6607f9 | ||
|
|
c4ef2016ba | ||
|
|
524a7d9619 | ||
|
|
e456667d5e | ||
|
|
3000431f3b | ||
|
|
50a32b470d | ||
|
|
3746354f26 | ||
|
|
8fae36bcd3 | ||
|
|
9e9c088e9e | ||
|
|
a635ecf59b | ||
|
|
a6ae1957d1 | ||
|
|
3686f819d6 | ||
|
|
382c303bd2 | ||
|
|
402858739e | ||
|
|
192794e299 | ||
|
|
44d745eff3 | ||
|
|
4e7a846540 | ||
|
|
a35fb141c4 | ||
|
|
58602544e2 | ||
|
|
4242c77d64 | ||
|
|
f1d15022aa | ||
|
|
fc3986f65a | ||
|
|
b795834c63 | ||
|
|
9c8112658e | ||
|
|
ed86abebde | ||
|
|
671321db10 | ||
|
|
3ccd7d0fb7 | ||
|
|
4f34cd17a1 | ||
|
|
5cd22c9429 | ||
|
|
893539b76e | ||
|
|
b2e2f3c5a6 | ||
|
|
48ec836129 | ||
|
|
3d320b2768 | ||
|
|
134456267b | ||
|
|
d2df42bc35 | ||
|
|
20d7094352 | ||
|
|
d95b50abef | ||
|
|
ed03aae9ed | ||
|
|
32f567c60a | ||
|
|
83e6fc9579 | ||
|
|
73585d9f48 | ||
|
|
8a400b7871 | ||
|
|
297fbd3c00 | ||
|
|
ece6aa5f27 | ||
|
|
8feb8e3ea2 | ||
|
|
7b57f31fbf | ||
|
|
6b8db108d2 | ||
|
|
cf8ecfb438 | ||
|
|
5605515fa1 | ||
|
|
30cfa022d1 | ||
|
|
23f3407267 | ||
|
|
1006b951b9 | ||
|
|
43b7f767ee | ||
|
|
eb0ca7b118 | ||
|
|
0cdfc44c6f | ||
|
|
2ebff40c62 | ||
|
|
c66db8c98d | ||
|
|
a6b13185ab | ||
|
|
e8956f4293 | ||
|
|
36a40faaaf | ||
|
|
2554ec666e | ||
|
|
1aac2a1d4d | ||
|
|
32d591317b | ||
|
|
2703f9a506 | ||
|
|
497e4890b1 | ||
|
|
6c389c9a1d | ||
|
|
699cf22023 | ||
|
|
543d3d540e | ||
|
|
2f2e45a6a5 | ||
|
|
a834c954b8 | ||
|
|
2bee7eb267 | ||
|
|
6d18c33068 | ||
|
|
8242113641 | ||
|
|
7c8c7f79f6 | ||
|
|
f578c24af1 | ||
|
|
8059821025 | ||
|
|
b32497da23 | ||
|
|
c3c7651ca8 | ||
|
|
e8f1ea6aa5 | ||
|
|
ba3109e47a | ||
|
|
c2f8bbaf3c | ||
|
|
0587e41b3c | ||
|
|
ab1df4fbef | ||
|
|
a4213dcca8 | ||
|
|
2cf6f15dde | ||
|
|
f37008d8d7 | ||
|
|
3740e0f135 | ||
|
|
cb3a6694a5 | ||
|
|
cba596dde7 | ||
|
|
11f2b92e5d | ||
|
|
a69fc679a9 | ||
|
|
f4905c59a2 | ||
|
|
22b6990e63 | ||
|
|
09a7b9daca | ||
|
|
0116dc2e07 | ||
|
|
37b8c56b3d | ||
|
|
1a4cb3ad37 | ||
|
|
d4984722cf | ||
|
|
cbc3951ab1 | ||
|
|
62aafa7597 | ||
|
|
baf8b8cbf0 | ||
|
|
90b25ecf51 | ||
|
|
d02ce2dd16 | ||
|
|
79985a0199 | ||
|
|
f10cd19616 | ||
|
|
945a7b8d56 | ||
|
|
784234690c | ||
|
|
fd0284756f | ||
|
|
ca6a0bdcb6 | ||
|
|
35c4c7fa2e | ||
|
|
b08f793776 | ||
|
|
9f380bf424 | ||
|
|
d7f7bbe862 | ||
|
|
4718ff8016 | ||
|
|
a25ebc516a | ||
|
|
cabc1a9564 | ||
|
|
acd80f06ed | ||
|
|
c988233b84 | ||
|
|
b3bba17306 | ||
|
|
668bd6ba48 | ||
|
|
af1be64644 | ||
|
|
ea71a83143 | ||
|
|
30f1d8464c | ||
|
|
6072307e34 | ||
|
|
4926e273ed | ||
|
|
27ea26b03f | ||
|
|
f274b34939 | ||
|
|
6e7cf88e3f | ||
|
|
ba6ee3f1b9 | ||
|
|
41554caf27 | ||
|
|
0a807c3b69 | ||
|
|
73017819ac | ||
|
|
d0e0ee610c | ||
|
|
a540ef8153 | ||
|
|
a77028a36b | ||
|
|
1838024934 | ||
|
|
0250ad8520 | ||
|
|
fcc803d7c5 | ||
|
|
d83e712256 | ||
|
|
7c51ab2130 | ||
|
|
6628b54218 | ||
|
|
6f3cb70f64 | ||
|
|
77ec00bc50 | ||
|
|
085c90353d | ||
|
|
b09da48748 | ||
|
|
ef3682b904 | ||
|
|
135a56b6b3 | ||
|
|
491c873c90 | ||
|
|
f6c9bb23c6 | ||
|
|
17284985f7 | ||
|
|
76e1bf8822 | ||
|
|
540c87c71f | ||
|
|
391904900a | ||
|
|
763ce87d14 | ||
|
|
37f78c5d4d | ||
|
|
4f2ea99c85 | ||
|
|
bef8719ce0 | ||
|
|
ba64458660 | ||
|
|
a60d47bd2e | ||
|
|
875b7b3734 | ||
|
|
9773c09eba | ||
|
|
fda0848036 | ||
|
|
7733378bdc | ||
|
|
3e3a6347a6 | ||
|
|
3227e7ca8a | ||
|
|
51ef7d7404 | ||
|
|
da3c4a48d0 | ||
|
|
ec0e72fcb8 | ||
|
|
8a45b3d552 | ||
|
|
d35e93901c | ||
|
|
8f380adc4f | ||
|
|
61a015b6f1 | ||
|
|
aa51661aa7 | ||
|
|
73172f8d0c | ||
|
|
5a20d914df | ||
|
|
05e6fbbcca | ||
|
|
66ea24584c | ||
|
|
5f34d07e53 | ||
|
|
8e4187fb60 | ||
|
|
a680539b7c | ||
|
|
69a708fd1b | ||
|
|
668bc95f15 |
88
.github/workflows/ci-workflow.yml
vendored
88
.github/workflows/ci-workflow.yml
vendored
@@ -1,6 +1,7 @@
|
||||
name: Continuous integration
|
||||
#on: [pull_request, push]
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
@@ -12,32 +13,42 @@ on:
|
||||
description: 'Run macOS tests'
|
||||
required: true
|
||||
default: 'no'
|
||||
trigger3DS:
|
||||
description: 'Run 3DS tests'
|
||||
required: true
|
||||
default: 'no'
|
||||
|
||||
jobs:
|
||||
# nintendo_3ds:
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - run: wget https://github.com/devkitPro/pacman/releases/download/v1.0.2/devkitpro-pacman.amd64.deb -O /tmp/devkitpro-pacman.deb
|
||||
# - run: yes | sudo dpkg -i /tmp/devkitpro-pacman.deb
|
||||
# - run: yes | sudo dkp-pacman -Syu --needed devkitARM 3dstools libctru
|
||||
# - run: echo ::set-env name=DEVKITPRO::/opt/devkitpro
|
||||
# - run: echo ::set-env name=DEVKITARM::/opt/devkitpro/devkitARM
|
||||
# - run: echo ::set-env name=PATH::$DEVKITPRO/tools/bin:$DEVKITARM/bin:$PATH
|
||||
|
||||
# - uses: actions/checkout@v1
|
||||
# with:
|
||||
# submodules: true
|
||||
# - run: make -j2 PLATFORM=simulator TARGET=3ds
|
||||
# - uses: actions/upload-artifact@master
|
||||
# with:
|
||||
# name: epsilon-3ds.3dsx
|
||||
# path: output/release/simulator/3ds/epsilon.3dsx
|
||||
android:
|
||||
nintendo_3ds:
|
||||
if: github.event.inputs.trigger3DS == 'yes'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: wget https://github.com/devkitPro/pacman/releases/download/v1.0.2/devkitpro-pacman.amd64.deb -O /tmp/devkitpro-pacman.deb
|
||||
- run: yes | sudo dpkg -i /tmp/devkitpro-pacman.deb
|
||||
- run: yes | sudo dkp-pacman -Syu --needed devkitARM 3dstools libctru
|
||||
- run: echo ::set-env name=DEVKITPRO::/opt/devkitpro
|
||||
- run: echo ::set-env name=DEVKITARM::/opt/devkitpro/devkitARM
|
||||
- run: echo ::set-env name=PATH::$DEVKITPRO/tools/bin:$DEVKITARM/bin:$PATH
|
||||
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
submodules: true
|
||||
- run: make -j2 PLATFORM=simulator TARGET=3ds
|
||||
- run: make -j2 PLATFORM=simulator TARGET=3ds epsilon.cia
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: epsilon-3ds.3dsx
|
||||
path: output/release/simulator/3ds/epsilon.3dsx
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: epsilon-3ds.cia
|
||||
path: output/release/simulator/3ds/epsilon.cia
|
||||
android:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 PLATFORM=simulator TARGET=android
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
@@ -48,9 +59,9 @@ jobs:
|
||||
steps:
|
||||
- run: sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config
|
||||
- uses: numworks/setup-arm-toolchain@2020-q2
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
submodules: 'recursive'
|
||||
- run: mkdir final-output
|
||||
- run: make -j2 MODEL=n0100 EPSILON_I18N=en output/release/device/n0100/epsilon.onboarding.two_binaries
|
||||
- run: mv output/release/device/n0100/epsilon.onboarding.internal.bin final-output/epsilon.onboarding.internal.en.bin
|
||||
@@ -89,9 +100,9 @@ jobs:
|
||||
steps:
|
||||
- run: sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config
|
||||
- uses: numworks/setup-arm-toolchain@2020-q2
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 epsilon.dfu
|
||||
- run: make -j2 epsilon.onboarding.dfu
|
||||
- run: make -j2 epsilon.onboarding.update.dfu
|
||||
@@ -114,11 +125,12 @@ jobs:
|
||||
steps:
|
||||
- uses: msys2/setup-msys2@v2
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- run: pacman -S --noconfirm mingw-w64-x86_64-gcc mingw-w64-x86_64-freetype mingw-w64-x86_64-pkg-config make mingw-w64-x86_64-python3 mingw-w64-x86_64-libjpeg-turbo mingw-w64-x86_64-libpng
|
||||
- run: make -j2 PLATFORM=simulator
|
||||
- run: make -j2 PLATFORM=simulator epsilon.official.exe
|
||||
- run: make -j2 PLATFORM=simulator test.headless.exe
|
||||
- run: output/release/simulator/windows/test.headless.exe
|
||||
- run: make -j2 PLATFORM=simulator test.exe
|
||||
- run: cmd /c output\release\simulator\windows\test.exe --headless
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: epsilon-windows.exe
|
||||
@@ -129,10 +141,12 @@ jobs:
|
||||
- uses: numworks/setup-emscripten@v1
|
||||
with:
|
||||
sdk: latest-upstream
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 PLATFORM=simulator TARGET=web
|
||||
- run: make -j2 PLATFORM=simulator TARGET=web test.js
|
||||
- run: node output/release/simulator/web/test.js --headless
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: epsilon-web.zip
|
||||
@@ -141,25 +155,27 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 PLATFORM=simulator
|
||||
- run: make -j2 PLATFORM=simulator test.bin
|
||||
- run: output/release/simulator/linux/test.bin --headless
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: epsilon-linux.bin
|
||||
path: output/release/simulator/linux/epsilon.bin
|
||||
- run: make -j2 PLATFORM=simulator test.headless.bin
|
||||
macos:
|
||||
if: github.event.inputs.triggerMacos == 'yes'
|
||||
runs-on: macOS-latest
|
||||
steps:
|
||||
- run: brew install numworks/tap/epsilon-sdk
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 PLATFORM=simulator
|
||||
- run: make -j2 PLATFORM=simulator epsilon.official.app
|
||||
- run: make -j2 PLATFORM=simulator ARCH=x86_64 test.headless.bin
|
||||
- run: output/release/simulator/macos/x86_64/test.headless.bin
|
||||
- run: make -j2 PLATFORM=simulator ARCH=x86_64 test.bin
|
||||
- run: output/release/simulator/macos/x86_64/test.bin --headless
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: epsilon-macos.zip
|
||||
@@ -170,9 +186,9 @@ jobs:
|
||||
steps:
|
||||
- run: brew install numworks/tap/epsilon-sdk
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0
|
||||
- run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0 epsilon.official.ipa
|
||||
- run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0 test.ipa
|
||||
- run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0 APPLE_PLATFORM=ios-simulator
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
image: gcc
|
||||
|
||||
stages:
|
||||
- build
|
||||
|
||||
job:build:
|
||||
stage: build
|
||||
before_script:
|
||||
- "echo 'deb http://httpredir.debian.org/debian jessie main contrib \n deb-src http://httpredir.debian.org/debian jessie main contrib \n deb http://httpredir.debian.org/debian jessie-updates main contrib \n deb-src http://httpredir.debian.org/debian jessie-updates main contrib \n deb http://security.debian.org/ jessie/updates main contrib \n deb-src http://security.debian.org/ jessie/updates main contrib ' > /etc/apt/source.list"
|
||||
- "apt-get update"
|
||||
- "apt -y install build-essential git imagemagick libx11-dev libxext-dev libfreetype6-dev libpng-dev libjpeg-dev pkg-config fltk1.3-dev gcc-arm-none-eabi nodejs npm"
|
||||
- "git submodule update --init --recursive"
|
||||
- "git clone https://github.com/RedGl0w/omega-auto-increment"
|
||||
- "cd omega-auto-increment"
|
||||
- "npm i request exeq"
|
||||
- "PrivateToken=$PrivateToken node index.js"
|
||||
- "cd .."
|
||||
script:
|
||||
- make clean
|
||||
- make MODEL=n0100 epsilon.bin
|
||||
artifacts:
|
||||
paths:
|
||||
- output/release/device/n0100/epsilon.bin
|
||||
- omega-auto-increment/version.txt
|
||||
name: artifact:build:simulator
|
||||
|
||||
6
.gitmodules
vendored
6
.gitmodules
vendored
@@ -1,6 +1,6 @@
|
||||
[submodule "apps/rpn"]
|
||||
path = apps/rpn
|
||||
url = https://github.com/Omega-Numworks/Omega-RPN.git
|
||||
[submodule "apps/atom"]
|
||||
path = apps/atom
|
||||
url = https://github.com/Omega-Numworks/Omega-Atom.git
|
||||
[submodule "apps/atomic"]
|
||||
path = apps/atomic
|
||||
url = https://github.com/Omega-Numworks/Omega-Atomic.git
|
||||
|
||||
177
README.fr.md
Normal file
177
README.fr.md
Normal file
@@ -0,0 +1,177 @@
|
||||
<p align="center"><img src="https://github.com/Omega-Numworks/Omega-Design/blob/master/Banners/Omega-Banner-Dev-Branch.png?raw=true" /></p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="cc by-nc-sa 4.0" src="https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-525252.svg?labelColor=292929&logo=creative%20commons&style=for-the-badge" /></a>
|
||||
<a href="https://github.com/Omega-Numworks/Omega/issues"><img alt="Issues" src="https://img.shields.io/github/issues/Omega-Numworks/Omega.svg?labelColor=292929&logo=git&style=for-the-badge" /></a>
|
||||
<br/>
|
||||
<a href="https://discord.gg/X2TWhh9"><img alt="Discord" src="https://img.shields.io/discord/663420259851567114?color=blue&labelColor=292929&label=chat%20-%20discord&logo=discord&style=for-the-badge" /></a>
|
||||
</p>
|
||||
|
||||
> Don't understand french ? speak english ? here's the [english README](./README.md) !
|
||||
|
||||
## À propos
|
||||
|
||||
Omega est un fork d'Epsilon, l'OS de Numworks tournant sur les calculatrices du même nom, qui apporte beaucoup de fonctionnalités en plus. Omega est fait pour ceux qui aimeraient ajouter certaines fonctionnalités ayant été rejetées par Numworks à leurs calculatrices (pour des raisons 100% compréhensibles !). [Essayez en ligne](https://getomega.web.app/simulator).
|
||||
|
||||
### Quelques fonctionnalités supplémentaires
|
||||
- Retour du calcul littéral
|
||||
- Une application RPN
|
||||
- Application Externes
|
||||
- Des thèmes
|
||||
- Python amélioré (module os, méthode open...)
|
||||
- Un tableau périodique et toutes les masses molaires des éléments dans la toolbox
|
||||
- *Ainsi que d'autres à découvrir...* [Changelogs complets](https://github.com/Omega-Numworks/Omega/wiki/Changelog) | [Fonctionnalités princpales & captures d'écran](https://github.com/Omega-Numworks/Omega/wiki/Main-features).
|
||||
|
||||
## Installation
|
||||
|
||||
### Automatique
|
||||
|
||||
Vous pouvez installer Omega automatiquement depuis [notre site](https://getomega.web.app/) sur la page "installer".
|
||||
|
||||
<a href="https://getomega.web.app"><p align="center"><img alt="Omega Banner Discord" src="https://user-images.githubusercontent.com/12123721/86352956-e9000480-bc66-11ea-82b7-79fd7e56fa27.png" /></p></a>
|
||||
|
||||
### Manuelle
|
||||
|
||||
Tout d'abord, suivez **la première étape** [ici](https://www.numworks.com/resources/engineering/software/build/), puis :
|
||||
|
||||
<details>
|
||||
<summary><b>Modèle n0100</b></summary>
|
||||
|
||||
(note : vous pouvez changer `EPSILON_I18N=fr` en `en`, `nl`, `pt`, `it`, `de`, `es` ou `hu`).
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/Omega-Numworks/Omega.git
|
||||
cd Omega
|
||||
git checkout omega-master
|
||||
make MODEL=n0100 clean
|
||||
make MODEL=n0100 EPSILON_I18N=fr OMEGA_USERNAME="{Votre nom ici, 15 caractères max}" -j4
|
||||
make MODEL=n0100 epsilon_flash
|
||||
```
|
||||
|
||||
Important : N'oubliez pas l'argument `--recursive`, Omega a besoin de sous-modules.
|
||||
Vous pouvez aussi changer le nombre de processus parallèles pendant la compilation en changeant la valeur suivant `-j`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>Modèle n0110</b></summary>
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/Omega-Numworks/Omega.git
|
||||
cd Omega
|
||||
git checkout omega-master
|
||||
make clean
|
||||
make OMEGA_USERNAME="{Votre nom ici, 15 caractères max}" -j4
|
||||
make epsilon_flash
|
||||
```
|
||||
|
||||
Important : N'oubliez pas l'argument `--recursive`, Omega a besoin de sous-modules.
|
||||
Vous pouvez aussi changer le nombre de processus parallèles pendant la compilation en changeant la valeur suivant `-j`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>Fichiers binaires</b></summary>
|
||||
|
||||
Ces fichiers peuvent être utilisés pour distribuer Omega (pour que tout le monde puisse le flasher via [Webdfu_Numworks](https://ti-planet.github.io/webdfu_numworks/)).
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/Omega-Numworks/Omega.git
|
||||
cd Omega
|
||||
git checkout omega-master
|
||||
make clean
|
||||
make MODEL=n0100 OMEGA_USERNAME="" -j8
|
||||
make MODEL=n0100 OMEGA_USERNAME="" binpack -j8
|
||||
make OMEGA_USERNAME="" -j8
|
||||
make OMEGA_USERNAME="" binpack -j8
|
||||
```
|
||||
|
||||
Important : N'oubliez pas l'argument `--recursive`, Omega a besoin de sous-modules.
|
||||
Vous pouvez aussi changer le nombre de processus parallèles pendant la compilation en changeant la valeur suivant `-j`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>Simulateur web</b></summary>
|
||||
|
||||
D'abord, installez emsdk :
|
||||
|
||||
```bash
|
||||
git clone https://github.com/emscripten-core/emsdk.git
|
||||
cd emsdk
|
||||
./emsdk install latest-fastcomp
|
||||
./emsdk activate latest-fastcomp
|
||||
source emsdk_env.sh
|
||||
```
|
||||
|
||||
Puis, compilez Omega :
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/Omega-Numworks/Omega.git
|
||||
cd Omega
|
||||
git checkout omega-master
|
||||
make clean
|
||||
make PLATFORM=simulator TARGET=web OMEGA_USERNAME="{Votre nom ici, 15 caractères max}" -j4
|
||||
```
|
||||
|
||||
Le simulateur se trouve dans `output/release/simulator/web/simulator.zip`
|
||||
|
||||
Important : N'oubliez pas l'argument `--recursive`, Omega a besoin de sous-modules.
|
||||
Vous pouvez aussi changer le nombre de processus parallèles pendant la compilation en changeant la valeur suivant `-j`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>Simulateur 3DS</b></summary>
|
||||
|
||||
Vous aurez besoin de devkitPro et de devkitARM disponible dans votre `$PATH` (instructions [ici](https://devkitpro.org/wiki/Getting_Started) (en anglais))
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/Omega-Numworks/Omega.git
|
||||
cd Omega
|
||||
git checkout --recursive omega-dev
|
||||
make PLATFORM=simulator TARGET=3ds -j
|
||||
```
|
||||
|
||||
Vous pouvez ensuite copier epsilon.3dsx sur une carte SD pour l'exécuter depuis le HBC ou utiliser 3dslink pour le lancer via le réseau :
|
||||
|
||||
```bash
|
||||
3dslink output/release/simulator/3ds/epsilon.3dsx -a <ADRESSE IP 3DS>
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
Si vous avez besoin d'aide, n'hésitez pas à rejoindre notre serveur discord : https://discord.gg/X2TWhh9
|
||||
|
||||
<a href="https://discord.gg/X2TWhh9"><p align="center"><img alt="Omega Banner Discord" src="https://user-images.githubusercontent.com/12123721/86287349-54ef5800-bbe8-11ea-80c1-34eb1f93eebd.png" /></p></a>
|
||||
---
|
||||
|
||||
## Contribution
|
||||
|
||||
Pour contribuer, merci de lire le [Wiki](https://github.com/Omega-Numworks/Omega/wiki/Contributing)
|
||||
|
||||
## Nos autres projets
|
||||
|
||||
* [Omega Themes](https://github.com/Omega-Numworks/Omega-Themes)
|
||||
* [Omega Website](https://github.com/Omega-Numworks/Omega-Website)
|
||||
* [Omega RPN `APP`](https://github.com/Omega-Numworks/Omega-RPN)
|
||||
* [Omega Atomic `APP`](https://github.com/Omega-Numworks/Omega-Atomic)
|
||||
* [Omega Design](https://github.com/Omega-Numworks/Omega-Design)
|
||||
* [Omega Discord Bot](https://github.com/Omega-Numworks/Omega-Discord-Bot)
|
||||
* [Omega App Template `BETA`](https://github.com/Omega-Numworks/Omega-App-Template)
|
||||
* [External Apps](https://github.com/Omega-Numworks/External-Apps)
|
||||
|
||||
## À propos d'Epsilon
|
||||
|
||||
Omega est un fork d'Epsilon, un système d'exploitation performant pour calculatrices graphiques. Il inclut huit applications pour les mathématiques de lycée et d'études supérieurs
|
||||
|
||||
Vous pouvez essayer Epsilon depuis votre navigateur sur le [simulateur en ligne](https://www.numworks.com/simulator/).
|
||||
|
||||
## Licence
|
||||
|
||||
NumWorks est une marque déposée de NumWorks SAS, 24 Rue Godot de Mauroy, 75009 Paris, France.
|
||||
Nintendo est Nintendo 3DS sont des marques déposées de Nintendo of America Inc, 4600 150th Ave NE, Redmond, WA 98052, Etats-Unis.
|
||||
NumWorks SAS et Nintendo of America Inc ne sont en aucun cas associés avec ce projet.
|
||||
|
||||
* NumWorks Epsilon est disponible sous [Lisense CC BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode).
|
||||
* Omega est disponible sous [Lisense CC BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode).
|
||||
@@ -1,4 +1,4 @@
|
||||
<p align="center"><img src="https://user-images.githubusercontent.com/12123721/106272451-60b00500-6231-11eb-8521-09fe93b3b1f4.png" /></p>
|
||||
<p align="center"><img src="https://github.com/Omega-Numworks/Omega-Design/blob/master/Banners/Omega-Banner-Dev-Branch.png?raw=true" /></p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="cc by-nc-sa 4.0" src="https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-525252.svg?labelColor=292929&logo=creative%20commons&style=for-the-badge" /></a>
|
||||
@@ -7,6 +7,8 @@
|
||||
<a href="https://discord.gg/X2TWhh9"><img alt="Discord" src="https://img.shields.io/discord/663420259851567114?color=blue&labelColor=292929&label=chat%20-%20discord&logo=discord&style=for-the-badge" /></a>
|
||||
</p>
|
||||
|
||||
> Vous ne comprenez pas l'anglais ? vous êtes francophone ? Regardez le [*LISEZ-MOI* français](./README.fr.md) !
|
||||
|
||||
## About
|
||||
|
||||
Omega is a fork of Numworks' Epsilon, the OS that runs on their calculator, which brings many features to it. Omega is for the people who want to add features to the calculator, but cannot because they have been rejected by Numworks (for reasons that are 100% understandable!). [Try it online](https://getomega.web.app/simulator).
|
||||
@@ -152,7 +154,7 @@ To contribute, please refer to the [Wiki](https://github.com/Omega-Numworks/Omeg
|
||||
* [Omega Themes](https://github.com/Omega-Numworks/Omega-Themes)
|
||||
* [Omega Website](https://github.com/Omega-Numworks/Omega-Website)
|
||||
* [Omega RPN `APP`](https://github.com/Omega-Numworks/Omega-RPN)
|
||||
* [Omega Atom `APP`](https://github.com/Omega-Numworks/Omega-Atom)
|
||||
* [Omega Atomic `APP`](https://github.com/Omega-Numworks/Omega-Atomic)
|
||||
* [Omega Design](https://github.com/Omega-Numworks/Omega-Design)
|
||||
* [Omega Discord Bot](https://github.com/Omega-Numworks/Omega-Discord-Bot)
|
||||
* [Omega App Template `BETA`](https://github.com/Omega-Numworks/Omega-App-Template)
|
||||
|
||||
@@ -11,6 +11,25 @@ apps =
|
||||
# (path to the apps header).
|
||||
$(foreach i,${apps_list},${eval include apps/$(i)/Makefile})
|
||||
|
||||
app_equals = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1)))
|
||||
# We list all the apps that are missing
|
||||
apps_missing = $(foreach i, ${apps_list}, $(if $(call app_equals, apps/$(i)/Makefile, $(wildcard apps/$(i)/Makefile)),, $(i) ) )
|
||||
|
||||
# If the two doesn't match, we got an error.
|
||||
ifneq ($(strip $(apps_missing)),)
|
||||
miss_modules = 0
|
||||
|
||||
# Check if the missing apps are one that are supposed to be submodules
|
||||
$(foreach i, $(SUBMODULES_APPS), $(if $(call app_equals, $(filter $(i), $(apps_missing)), $(i)), $(eval miss_modules=1)))
|
||||
|
||||
ifeq ($(miss_modules), 1)
|
||||
PLS_IGNORE := $(shell >&2 printf "\nSome submodules apps seem to be missing. To download them, assumming you git clone'd the repo, do\n")
|
||||
PLS_IGNORE := $(shell >&2 printf " git submodule init\n")
|
||||
PLS_IGNORE := $(shell >&2 printf " git submodule update\n\n")
|
||||
endif
|
||||
$(error Missing apps: $(strip $(apps_missing)))
|
||||
endif
|
||||
|
||||
apps_src += $(addprefix apps/,\
|
||||
alternate_empty_nested_menu_controller.cpp \
|
||||
apps_container.cpp \
|
||||
@@ -43,7 +62,7 @@ apps_src += $(addprefix apps/,\
|
||||
)
|
||||
|
||||
tests_src += $(addprefix apps/,\
|
||||
exam_mode_configuration_official.cpp \
|
||||
exam_mode_configuration_non_official.cpp \
|
||||
)
|
||||
|
||||
|
||||
@@ -66,9 +85,6 @@ language_preferences = apps/language_preferences.csv
|
||||
SFLAGS += -I$(BUILD_DIR)
|
||||
|
||||
i18n_files += $(addprefix apps/language_,$(addsuffix .universal.i18n, $(EPSILON_I18N)))
|
||||
ifeq ($(EPSILON_GETOPT),1)
|
||||
i18n_files += $(addprefix apps/language_,$(addsuffix _iso6391.universal.i18n, $(EPSILON_I18N)))
|
||||
endif
|
||||
|
||||
i18n_files += $(call i18n_with_universal_for,shared)
|
||||
i18n_files += $(call i18n_with_universal_for,toolbox)
|
||||
@@ -78,7 +94,7 @@ $(eval $(call rule_for, \
|
||||
I18N, \
|
||||
apps/i18n.cpp, \
|
||||
$(i18n_files), \
|
||||
$$(PYTHON) apps/i18n.py --codepoints $(code_points) --countrypreferences $(country_preferences) --languagepreferences $(language_preferences) --header $$(subst .cpp,.h,$$@) --implementation $$@ --locales $$(EPSILON_I18N) --countries $$(EPSILON_COUNTRIES) --files $$^ --generateISO6391locales $$(EPSILON_GETOPT), \
|
||||
$$(PYTHON) apps/i18n.py --codepoints $(code_points) --countrypreferences $(country_preferences) --languagepreferences $(language_preferences) --header $$(subst .cpp,.h,$$@) --implementation $$@ --locales $$(EPSILON_I18N) --countries $$(EPSILON_COUNTRIES) --files $$^, \
|
||||
global \
|
||||
))
|
||||
|
||||
@@ -91,8 +107,11 @@ $(BUILD_DIR)/apps/i18n.h: $(BUILD_DIR)/apps/i18n.cpp
|
||||
$(eval $(call depends_on_image,apps/title_bar_view.cpp,apps/exam_icon.png))
|
||||
|
||||
$(call object_for,$(apps_src) $(tests_src)): $(BUILD_DIR)/apps/i18n.h
|
||||
$(call object_for,$(apps_src) $(tests_src)): $(BUILD_DIR)/apps/home/apps_layout.h
|
||||
$(call object_for,$(apps_src) $(tests_src)): $(BUILD_DIR)/python/port/genhdr/qstrdefs.generated.h
|
||||
|
||||
$(call object_for,$(apps_src)): $(BUILD_DIR)/apps/home/apps_layout.h
|
||||
|
||||
apps_tests_src = $(app_calculation_test_src) $(app_code_test_src) $(app_graph_test_src) $(app_probability_test_src) $(app_regression_test_src) $(app_sequence_test_src) $(app_shared_test_src) $(app_statistics_test_src) $(app_settings_test_src) $(app_solver_test_src)
|
||||
|
||||
apps_tests_src += $(addprefix apps/,\
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
#include <ion/backlight.h>
|
||||
#include <poincare/preferences.h>
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
extern "C" {
|
||||
#include <assert.h>
|
||||
}
|
||||
@@ -196,7 +198,7 @@ bool AppsContainer::dispatchEvent(Ion::Events::Event event) {
|
||||
}
|
||||
if (changedZoom) {
|
||||
KDIonContext::sharedContext()->updatePostProcessingEffects();
|
||||
redrawWindow();
|
||||
redrawWindow(true);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -218,6 +220,13 @@ bool AppsContainer::dispatchEvent(Ion::Events::Event event) {
|
||||
return didProcessEvent || alphaLockWantsRedraw;
|
||||
}
|
||||
|
||||
static constexpr Ion::Events::Event switch_events[] = {
|
||||
Ion::Events::ShiftSeven, Ion::Events::ShiftEight, Ion::Events::ShiftNine,
|
||||
Ion::Events::ShiftFour, Ion::Events::ShiftFive, Ion::Events::ShiftSix,
|
||||
Ion::Events::ShiftOne, Ion::Events::ShiftTwo, Ion::Events::ShiftThree,
|
||||
Ion::Events::ShiftZero, Ion::Events::ShiftDot, Ion::Events::ShiftEE
|
||||
};
|
||||
|
||||
bool AppsContainer::processEvent(Ion::Events::Event event) {
|
||||
// Warning: if the window is dirtied, you need to call window()->redraw()
|
||||
if (event == Ion::Events::USBPlug) {
|
||||
@@ -242,6 +251,15 @@ bool AppsContainer::processEvent(Ion::Events::Event event) {
|
||||
switchTo(appSnapshotAtIndex(1));
|
||||
return true;
|
||||
}
|
||||
|
||||
for(int i = 0; i < std::min((int) (sizeof(switch_events) / sizeof(Ion::Events::Event)), APPS_CONTAINER_SNAPSHOT_COUNT); i++) {
|
||||
if (event == switch_events[i]) {
|
||||
m_window.redraw(true);
|
||||
switchTo(appSnapshotAtIndex(i+1));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (event == Ion::Events::OnOff) {
|
||||
suspend(true);
|
||||
return true;
|
||||
|
||||
Submodule apps/atom deleted from 8f710a9d3f
1
apps/atomic
Submodule
1
apps/atomic
Submodule
Submodule apps/atomic added at 64f2e38ed1
@@ -11,4 +11,4 @@ AdditionalDeterminant = "Determinant"
|
||||
AdditionalInverse = "Inverse"
|
||||
AdditionalRowEchelonForm = "Row echelon form"
|
||||
AdditionalReducedRowEchelonForm = "Reduced row echelon form"
|
||||
AdditionalTrace = "Trace"
|
||||
AdditionalTrace = "Trace"
|
||||
|
||||
@@ -3,7 +3,12 @@ CalculAppCapital = "SZÁMOLÁS"
|
||||
AdditionalResults = "További eredmények"
|
||||
DecimalBase = "Decimális"
|
||||
HexadecimalBase = "Hexadecimális"
|
||||
BinaryBase = "Kétkomponensü"
|
||||
BinaryBase = "Bináris"
|
||||
PrimeFactors = "Alapvetö tényezök"
|
||||
MixedFraction = "Vegyes frakció"
|
||||
EuclideanDivision = "Euklideszi osztás"
|
||||
AdditionalDeterminant = "Meghatározó"
|
||||
AdditionalInverse = "inverz"
|
||||
AdditionalRowEchelonForm = "Sor echelon forma"
|
||||
AdditionalReducedRowEchelonForm = "Csökkentett sorú Echelon forma"
|
||||
AdditionalTrace = "Nyomkövetés"
|
||||
|
||||
@@ -17,7 +17,8 @@ bool ExpressionField::handleEvent(Ion::Events::Event event) {
|
||||
event == Ion::Events::Power ||
|
||||
event == Ion::Events::Square ||
|
||||
event == Ion::Events::Division ||
|
||||
event == Ion::Events::Sto)) {
|
||||
event == Ion::Events::Sto ||
|
||||
event == Ion::Events::EE)) {
|
||||
handleEventWithText(Poincare::Symbol::k_ans);
|
||||
}
|
||||
return(::ExpressionField::handleEvent(event));
|
||||
|
||||
@@ -114,10 +114,10 @@ QUIZ_CASE(calculation_display_exact_approximate) {
|
||||
|
||||
assertCalculationIs("1/2", DisplayOutput::ExactAndApproximate, EqualSign::Equal, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("1/3", DisplayOutput::ExactAndApproximate, EqualSign::Approximation, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("1/0", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("2x-x", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("1/0", DisplayOutput::ExactOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("2x-x", DisplayOutput::ExactOnly, EqualSign::Unknown, "x", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("[[1,2,3]]", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("[[1,x,3]]", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("[[1,x,3]]", DisplayOutput::ExactAndApproximate, EqualSign::Unknown, nullptr, "[[1,undef,3]]", "[[1,undef,3]]", &globalContext, &store);
|
||||
assertCalculationIs("28^7", DisplayOutput::ExactAndApproximate, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("3+√(2)→a", DisplayOutput::ExactAndApproximate, EqualSign::Approximation, "√(2)+3", nullptr, nullptr, &globalContext, &store);
|
||||
Ion::Storage::sharedStorage()->recordNamed("a.exp").destroy();
|
||||
@@ -130,9 +130,9 @@ QUIZ_CASE(calculation_display_exact_approximate) {
|
||||
assertCalculationIs("1+1+random()", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("1+1+round(1.343,2)", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, "3.34", "3.34", &globalContext, &store);
|
||||
assertCalculationIs("randint(2,2)+3", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "5", "5", "5", &globalContext, &store);
|
||||
assertCalculationIs("confidence(0.5,2)+3", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("prediction(0.5,2)+3", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("prediction95(0.5,2)+3", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("confidence(0.5,2)+3", DisplayOutput::ExactOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("prediction(0.5,2)+3", DisplayOutput::ExactOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("prediction95(0.5,2)+3", DisplayOutput::ExactOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
|
||||
}
|
||||
|
||||
@@ -140,10 +140,10 @@ QUIZ_CASE(calculation_symbolic_computation) {
|
||||
Shared::GlobalContext globalContext;
|
||||
CalculationStore store(calculationBuffer,calculationBufferSize);
|
||||
|
||||
assertCalculationIs("x+x+1+3+√(π)", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("f(x)", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("x+x+1+3+√(π)", DisplayOutput::ExactOnly, EqualSign::Unknown, "2×x+√(π)+4", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("f(x)", DisplayOutput::ExactOnly, EqualSign::Unknown, "f×x", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("1+x→f(x)", DisplayOutput::ExactOnly, EqualSign::Unknown, "x+1", nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("f(x)", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("f(x)", DisplayOutput::ExactOnly, EqualSign::Unknown, "x+1", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("f(2)", DisplayOutput::ApproximateOnly, EqualSign::Equal, "3", "3", "3", &globalContext, &store);
|
||||
assertCalculationIs("2→x", DisplayOutput::ApproximateOnly, EqualSign::Equal, "2", nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("f(x)", DisplayOutput::ApproximateOnly, EqualSign::Equal, "3", nullptr, nullptr, &globalContext, &store);
|
||||
|
||||
@@ -15,6 +15,7 @@ app_code_src = $(addprefix apps/code/,\
|
||||
sandbox_controller.cpp \
|
||||
script_name_cell.cpp \
|
||||
script_parameter_controller.cpp \
|
||||
toolbox_ion_keys.cpp \
|
||||
)
|
||||
|
||||
app_code_test_src = $(addprefix apps/code/,\
|
||||
@@ -29,6 +30,7 @@ app_code_test_src = $(addprefix apps/code/,\
|
||||
|
||||
tests_src += $(addprefix apps/code/test/,\
|
||||
variable_box_controller.cpp\
|
||||
toolbox_ion_keys_dummy.cpp \
|
||||
)
|
||||
|
||||
app_code_src += $(app_code_test_src)
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
AddScript = "Skript hinzufügen"
|
||||
AllowedCharactersaz09 = "Erlaubte Zeichen: a-z, 0-9, _"
|
||||
Autocomplete = "Autovervollständigung"
|
||||
AutoImportScript = "Automatischer Import in Konsole"
|
||||
BuiltinsAndKeywords = "Native Funktionen und Schlüsselwörter"
|
||||
AutoImportScript = "Automatischer Import in die Konsole"
|
||||
BuiltinsAndKeywords = "Native Funktionen & Schlüsselwörter"
|
||||
Console = "Interaktive Konsole"
|
||||
DeleteScript = "Skript löschen"
|
||||
DuplicateScript = "Skript duplizieren"
|
||||
ExecuteScript = "Skript ausführen"
|
||||
FunctionsAndVariables = "Funktionen und Variablen"
|
||||
ImportedModulesAndScripts = "Importierte Module und Skripte"
|
||||
NoWordAvailableHere = "Kein Wort ist hier verfübar."
|
||||
ScriptInProgress = "Aktuelle Skript"
|
||||
NoWordAvailableHere = "Hier ist kein Wort verfügbar."
|
||||
ScriptInProgress = "Aktuelles Skript"
|
||||
ScriptOptions = "Skriptoptionen"
|
||||
ScriptSize = "Script size"
|
||||
ScriptSize = "Skriptgröße"
|
||||
|
||||
@@ -12,4 +12,4 @@ ImportedModulesAndScripts = "Modules et scripts importés"
|
||||
NoWordAvailableHere = "Aucun mot disponible à cet endroit."
|
||||
ScriptInProgress = "Script en cours"
|
||||
ScriptOptions = "Options de script"
|
||||
ScriptSize = "Script size"
|
||||
ScriptSize = "Taille du script"
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
AddScript = "Script hozzadáadása"
|
||||
AddScript = "Script hozzáadása"
|
||||
AllowedCharactersaz09 = "Engedélyezett karakterek: a-z, 0-9, _"
|
||||
Autocomplete = "Autocomplete"
|
||||
Autocomplete = "Önkiegészítés"
|
||||
AutoImportScript = "Script automata importálása"
|
||||
BuiltinsAndKeywords = "Builtins and keywords"
|
||||
BuiltinsAndKeywords = "Beépített fonkciók és szókincs"
|
||||
Console = "Konzol"
|
||||
DeleteScript = "Script törlése"
|
||||
DuplicateScript = "Script másolása"
|
||||
ExecuteScript = "Script indítása"
|
||||
FunctionsAndVariables = "Függvények és változók"
|
||||
ImportedModulesAndScripts = "Imported modules and scripts"
|
||||
NoWordAvailableHere = "No word available here."
|
||||
ScriptInProgress = "Script in progress"
|
||||
FunctionsAndVariables = "Fonktiók és változók"
|
||||
ImportedModulesAndScripts = "Importált scriptek és modulok"
|
||||
NoWordAvailableHere = "Nincs rendelkezésre álló szó."
|
||||
ScriptInProgress = "Script müködésben"
|
||||
ScriptOptions = "Script beállítások"
|
||||
ScriptSize = "Script size"
|
||||
ScriptSize = "Script mérete"
|
||||
|
||||
@@ -3,220 +3,176 @@ PythonPercent = "Modulo"
|
||||
Python1J = "Imaginäres i"
|
||||
PythonLF = "Zeilenvorschub"
|
||||
PythonTab = "Tabulator"
|
||||
PythonAmpersand = "Bitweise und"
|
||||
PythonSymbolExp = "Bitweise exklusiv oder"
|
||||
PythonVerticalBar = "Bitweise oder"
|
||||
PythonAmpersand = "Bitweises und"
|
||||
PythonSymbolExp = "Bitweises exklusives oder"
|
||||
PythonVerticalBar = "Bitweises oder"
|
||||
PythonImag = "Imaginärteil von z"
|
||||
PythonReal = "Realteil von z"
|
||||
PythonSingleQuote = "Einfaches Anführungszeichen"
|
||||
PythonAbs = "Absolute/r Wert/Größe"
|
||||
PythonAcos = "Arkuskosinus"
|
||||
PythonAcosh = "Hyperbelkosinus"
|
||||
PythonAppend = "Hängt x an das Ende der Liste"
|
||||
PythonArrow = "Arrow from (x,y) to (x+dx,y+dy)"
|
||||
PythonAsin = "Arkussinus"
|
||||
PythonAsinh = "Hyperbelsinus"
|
||||
PythonAbs = "Absoluter Wert/Absolute Größe"
|
||||
PythonAcos = "Bogenkosinus"
|
||||
PythonAcosh = "Bogenhyperbolischer Kosinus"
|
||||
PythonAppend = "x an das Ende der Liste anfügen"
|
||||
PythonArrow = "Pfeil von (x,y) nach (x+dx,y+dy)"
|
||||
PythonAsin = "Sinusbogen"
|
||||
PythonAsinh = "Kreisbogen hyperbolischer Sinus"
|
||||
PythonAtan = "Arkustangens"
|
||||
PythonAtan2 = "Gib atan(y/x)"
|
||||
PythonAtan2 = "Rückgabe atan(y/x)"
|
||||
PythonAtanh = "Hyperbeltangens"
|
||||
PythonAxis = "Set axes to (xmin,xmax,ymin,ymax)"
|
||||
PythonBar = "Draw a bar plot with x values"
|
||||
PythonBin = "Ganzzahl nach binär konvertieren"
|
||||
PythonCeil = "Aufrundung"
|
||||
PythonChoice = "Zufallszahl aus der Liste"
|
||||
PythonClear = "Leere die Liste"
|
||||
PythonAxis = "Achsen auf (xmin,xmax,ymin,ymax)"
|
||||
PythonBar = "Balkendiagramm mit x-Werten"
|
||||
PythonBin = "Ganzzahl in Binärwert umwandeln"
|
||||
PythonCeil = "Aufrunden"
|
||||
PythonChoice = "Zufällige Zahl in der Liste"
|
||||
PythonClear = "Liste leeren"
|
||||
PythonCmathFunction = "cmath-Modul-Funktionspräfix"
|
||||
PythonColor = "Definiere eine RGB-Farbe"
|
||||
PythonColorBlack = "Black color"
|
||||
PythonColorBlue = "Blue color"
|
||||
PythonColorBrown = "Brown color"
|
||||
PythonColorGray = "Gray color"
|
||||
PythonColorGreen = "Green color"
|
||||
PythonColorOrange = "Orange color"
|
||||
PythonColorPink = "Pink color"
|
||||
PythonColorPurple = "Purple color"
|
||||
PythonColorRed = "Red color"
|
||||
PythonColorWhite = "White color"
|
||||
PythonColorYellow = "Yellow color"
|
||||
PythonComplex = "a+ib zurückgeben"
|
||||
PythonCopySign = "x mit dem Vorzeichen von y"
|
||||
PythonColor = "Eine RGB-Farbe definieren"
|
||||
PythonColorBlack = "Farbe Schwarz"
|
||||
PythonColorBlue = "Farbe Blau"
|
||||
PythonColorBrown = "Farbe Braun"
|
||||
PythonColorGray = "Farbe Grau"
|
||||
PythonColorGreen = "Farbe Grün"
|
||||
PythonColorOrange = "Farbe Orange"
|
||||
PythonColorPink = "Farbe Rosa"
|
||||
PythonColorPurple = "Farbe Violett"
|
||||
PythonColorRed = "Farbe Rot"
|
||||
PythonColorWhite = "Farbe Weiß"
|
||||
PythonColorYellow = "Farbe Gelb"
|
||||
PythonComplex = "Gib a+ib zurück"
|
||||
PythonCopySign = "Gib x mit Vorzeichen von y zurück"
|
||||
PythonCos = "Kosinus"
|
||||
PythonCosh = "Hyperbolic cosine"
|
||||
PythonCount = "Zählt wie oft x vorkommt"
|
||||
PythonDegrees = "x von Radian zu Grad umwandeln"
|
||||
PythonCosh = "Hyperbolischer Kosinus"
|
||||
PythonCount = "Zählt die Vorkommen von x"
|
||||
PythonDegrees = "x von Bogenmaß in Grad umrechnen"
|
||||
PythonDivMod = "Quotient und Rest"
|
||||
PythonDrawString = "Schreibt Text bei (x,y)"
|
||||
PythonDrawLine = "Eine Linie zeichnen"
|
||||
PythonDrawString = "Text bei Pixel (x,y) darstellen"
|
||||
PythonErf = "Fehlerfunktion"
|
||||
PythonErfc = "Complementary error function"
|
||||
PythonEval = "Return the evaluated expression"
|
||||
PythonErfc = "Komplementäre Fehlerfunktion"
|
||||
PythonEval = "Rückgabe ausgewerteter Ausdruck"
|
||||
PythonExp = "Exponentialfunktion"
|
||||
PythonExpm1 = "Berechne exp(x)-1"
|
||||
PythonFabs = "Absoluter Wert"
|
||||
PythonFillRect = "Malt ein Rechteck bei Pixel (x,y)"
|
||||
PythonFloat = "Wandelt x zu float um"
|
||||
PythonFloor = "Floor"
|
||||
PythonFillRect = "Gefülltes Rechteck bei Pixel (x,y)"
|
||||
PythonFloat = "x in einen Fließkommawert umwandeln"
|
||||
PythonFloor = "Abrunden"
|
||||
PythonFmod = "a modulo b"
|
||||
PythonFrExp = "Mantissa and exponent of x: (m,e)"
|
||||
PythonGamma = "Gamma function"
|
||||
PythonGetPixel = "Return pixel (x,y) color"
|
||||
PythonGetrandbits = "Integer with k random bits"
|
||||
PythonGrid = "Toggle the visibility of the grid"
|
||||
PythonHex = "Ganzzahl zu Hexadecimal"
|
||||
PythonHist = "Draw the histogram of x"
|
||||
PythonImportCmath = "cmath Modul importieren"
|
||||
PythonImportIon = "ion Modul importieren"
|
||||
PythonImportKandinsky = "kandinsky Modul importieren"
|
||||
PythonImportRandom = "random Modul importieren"
|
||||
PythonImportMath = "math Modul importieren"
|
||||
PythonImportMatplotlibPyplot = "Import matplotlib.pyplot module"
|
||||
PythonImportOs = "os Modul importieren"
|
||||
PythonOsUname = "Informieren Sie sich über das System"
|
||||
PythonFrExp = "Mantisse und Exponent von x: (m,e)"
|
||||
PythonGamma = "Gamma-Funktion"
|
||||
PythonGetPixel = "Farbe von Pixel (x,y) zurückgeben"
|
||||
PythonGetrandbits = "Ganzzahl mit k Zufallsbits"
|
||||
PythonGrid = "Sichtbarkeit des Gitters umschalten"
|
||||
PythonHex = "Ganzzahl in Hexadezimal umwandeln"
|
||||
PythonHist = "Zeichnet das Histogramm von x"
|
||||
PythonImportCmath = "cmath-Modul importieren"
|
||||
PythonImportIon = "Ion-Modul importieren"
|
||||
PythonImportKandinsky = "Kandinsky-Modul importieren"
|
||||
PythonImportRandom = "Random-Modul importieren"
|
||||
PythonImportMath = "Math-Modul importieren"
|
||||
PythonImportMatplotlibPyplot = "Matplotlib.pyplot-Modul importieren"
|
||||
PythonImportOs = "OS-Modul importieren"
|
||||
PythonOsUname = "Informationen über das System holen"
|
||||
PythonOsGetlogin = "Benutzernamen holen"
|
||||
PythonOsRemove = "Datei namens Dateiname entfernen"
|
||||
PythonOsRename = "Datei mit altem Namen in neuen Namen umbenennen"
|
||||
PythonOsRename = "Datei umbenennen von Alt nach Neu"
|
||||
PythonOsListdir = "Dateien im Speicher auflisten"
|
||||
PythonImportTime = "time Modul importieren"
|
||||
PythonImportTurtle = "turtle Modul importieren"
|
||||
PythonIndex = "Index, bei dem x zuerst vorkommt"
|
||||
PythonInput = "Eingabeaufforderung"
|
||||
PythonInsert = "x bei index i in der Liste einsetzen"
|
||||
PythonInt = "x zu Ganzzahl"
|
||||
PythonIonFunction = "ion module function prefix"
|
||||
PythonIsFinite = "Prüft ob x endlich ist"
|
||||
PythonIsInfinite = "Prüft ob x unendlich ist"
|
||||
PythonIsNaN = "Prüft ob x NaN ist"
|
||||
PythonIsKeyDown = "true wenn k gedrückt ist"
|
||||
PythonKandinskyFunction = "kandinsky module function prefix"
|
||||
PythonKeyLeft = "Linke Pfeiltaste"
|
||||
PythonKeyUp = "Pfeiltaste nach oben"
|
||||
PythonKeyDown = "Pfeiltaste nach unten"
|
||||
PythonKeyRight = "Rechte Pfeiltaste"
|
||||
PythonKeyOk = "OK Taste"
|
||||
PythonKeyBack = "ZURÜCK Taste"
|
||||
PythonKeyHome = "HOME Taste"
|
||||
PythonKeyOnOff = "AN/AUS Taste"
|
||||
PythonKeyShift = "SHIFT Taste"
|
||||
PythonKeyAlpha = "ALPHA Taste"
|
||||
PythonKeyXnt = "X,N,T Taste"
|
||||
PythonKeyVar = "VAR Taste"
|
||||
PythonKeyToolbox = "WERKZEUGBOX Taste"
|
||||
PythonKeyBackspace = "LÖSCHEN Taste"
|
||||
PythonKeyExp = "EXPONENTIAL Taste"
|
||||
PythonKeyLn = "NATURAL LOGARITHM Taste"
|
||||
PythonKeyLog = "DECIMAL LOGARITHM Taste"
|
||||
PythonKeyImaginary = "IMAGINÄRES I Taste"
|
||||
PythonKeyComma = "KOMMA Taste"
|
||||
PythonKeyPower = "HOCH Taste"
|
||||
PythonKeySine = "SINUS Taste"
|
||||
PythonKeyCosine = "COSINUS Taste"
|
||||
PythonKeyTangent = "TANGENZ Taste"
|
||||
PythonKeyPi = "PI Taste"
|
||||
PythonKeySqrt = "WURZEL Taste"
|
||||
PythonKeySquare = "QUADRAT Taste"
|
||||
PythonKeySeven = "7 Taste"
|
||||
PythonKeyEight = "8 Taste"
|
||||
PythonKeyNine = "9 Taste"
|
||||
PythonKeyLeftParenthesis = "LEFT PARENTHESIS key"
|
||||
PythonKeyRightParenthesis = "RIGHT PARENTHESIS key"
|
||||
PythonKeyFour = "4 Taste"
|
||||
PythonKeyFive = "5 Taste"
|
||||
PythonKeySix = "6 Taste"
|
||||
PythonKeyMultiplication = "MULTIPLIKATIONSTASTE"
|
||||
PythonKeyDivision = "DIVISIONSTASTE"
|
||||
PythonKeyOne = "1 Taste"
|
||||
PythonKeyTwo = "2 Taste"
|
||||
PythonKeyThree = "3 Taste"
|
||||
PythonKeyPlus = "PLUS Taste"
|
||||
PythonKeyMinus = "MINUS Taste"
|
||||
PythonKeyZero = "0 Taste"
|
||||
PythonKeyDot = "PUNKT Taste"
|
||||
PythonKeyEe = "10 HOCH X Taste"
|
||||
PythonKeyAns = "ANS Taste"
|
||||
PythonKeyExe = "EXE Taste"
|
||||
PythonLdexp = "Return x*(2**i), inverse of frexp"
|
||||
PythonLength = "Length of an object"
|
||||
PythonLgamma = "Log-gamma function"
|
||||
PythonLog = "Logarithm to base a"
|
||||
PythonLog10 = "Logarithm to base 10"
|
||||
PythonLog2 = "Logarithm to base 2"
|
||||
PythonMathFunction = "math module function prefix"
|
||||
PythonMatplotlibPyplotFunction = "matplotlib.pyplot module prefix"
|
||||
PythonImportTime = "Time-Modul importieren"
|
||||
PythonImportTurtle = "Turtle-Modul importieren"
|
||||
PythonIndex = "Index des ersten x-Vorkommens"
|
||||
PythonInput = "Einen Wert abfragen"
|
||||
PythonInsert = "x an Index i in die Liste einfügen"
|
||||
PythonInt = "x in eine ganze Zahl umwandeln"
|
||||
PythonIonFunction = "Ion-Modul-Funktionspräfix"
|
||||
PythonIsFinite = "Prüfen, ob x endlich ist"
|
||||
PythonIsInfinite = "Prüfen, ob x unendlich ist"
|
||||
PythonIsNaN = "Prüfen, ob x keine Zahl ist"
|
||||
PythonIsKeyDown = "Wahr, wenn die Taste k gedrückt ist"
|
||||
PythonKandinskyFunction = "Kandinsky-Modul Funktionspräfix"
|
||||
PythonLdexp = "Liefert x*(2**i), Inverse von frexp"
|
||||
PythonLength = "Länge eines Objekts"
|
||||
PythonLgamma = "Log-Gamma-Funktion"
|
||||
PythonLog = "Logarithmus zur Basis a"
|
||||
PythonLog10 = "Logarithmus zur Basis 10"
|
||||
PythonLog2 = "Logarithmus zur Basis 2"
|
||||
PythonMathFunction = "Funktionspräfix des Math-Moduls"
|
||||
PythonMatplotlibPyplotFunction = "matplotlib.pyplot Modul-Präfix"
|
||||
PythonMax = "Maximum"
|
||||
PythonMin = "Minimum"
|
||||
PythonModf = "Fractional and integer parts of x"
|
||||
PythonMonotonic = "Value of a monotonic clock"
|
||||
PythonOct = "Convert integer to octal"
|
||||
PythonPhase = "Phase of z"
|
||||
PythonPlot = "Plot y versus x as lines"
|
||||
PythonPolar = "z in polar coordinates"
|
||||
PythonPop = "Remove and return the last item"
|
||||
PythonPower = "x raised to the power y"
|
||||
PythonPrint = "Print object"
|
||||
PythonRadians = "Convert x from degrees to radians"
|
||||
PythonRandint = "Random integer in [a,b]"
|
||||
PythonRandom = "Floating point number in [0,1["
|
||||
PythonRandomFunction = "random module function prefix"
|
||||
PythonRandrange = "Random number in range(start,stop)"
|
||||
PythonRangeStartStop = "List from start to stop-1"
|
||||
PythonRangeStop = "List from 0 to stop-1"
|
||||
PythonRect = "Convert to cartesian coordinates"
|
||||
PythonRemove = "Remove the first occurrence of x"
|
||||
PythonReverse = "Reverse the elements of the list"
|
||||
PythonRound = "Round to n digits"
|
||||
PythonScatter = "Draw a scatter plot of y versus x"
|
||||
PythonSeed = "Initialize random number generator"
|
||||
PythonSetPixel = "Color pixel (x,y)"
|
||||
PythonShow = "Display the figure"
|
||||
PythonSin = "Sine"
|
||||
PythonSinh = "Hyperbolic sine"
|
||||
PythonSleep = "Suspend the execution for t seconds"
|
||||
PythonSort = "Sort the list"
|
||||
PythonSqrt = "Wurzel"
|
||||
PythonSum = "Sum the items of a list"
|
||||
PythonModf = "Bruch- und Ganzzahl-Anteile von x"
|
||||
PythonMonotonic = "Wert einer monotonen Uhr"
|
||||
PythonOct = "Ganzzahl in Oktal umwandeln"
|
||||
PythonPhase = "Phase von z"
|
||||
PythonPlot = "Plotten von y gegen x als Linien"
|
||||
PythonPolar = "z in Polarkoordinaten"
|
||||
PythonPop = "Letztes Element abnehmen"
|
||||
PythonPower = "x erhöht mit der Potenz y"
|
||||
PythonPrint = "Objekt drucken"
|
||||
PythonRadians = "x von Grad in Bogenmaß umrechnen"
|
||||
PythonRandint = "Zufällige Ganzzahl in [a,b]"
|
||||
PythonRandom = "Fließkommazahl in [0,1]"
|
||||
PythonRandomFunction = "Random-Modul Funktionspräfix"
|
||||
PythonRandrange = "Zufallszahl im Bereich(start,stop)"
|
||||
PythonRangeStartStop = "Liste von Start bis Stop-1"
|
||||
PythonRangeStop = "Liste von 0 bis Stop-1"
|
||||
PythonRect = "In kartesische Koordinaten"
|
||||
PythonRemove = "Entferne das erste Vorkommen von x"
|
||||
PythonReverse = "Kehrt die Elemente der Liste um"
|
||||
PythonRound = "Runden auf n Stellen"
|
||||
PythonScatter = "Streudiagramm von y gg. x zeichnen"
|
||||
PythonSeed = "Zufallszahlengenerator initiieren"
|
||||
PythonSetPixel = "Pixel (x,y) einfärben"
|
||||
PythonShow = "Figur anzeigen"
|
||||
PythonSin = "Sinus"
|
||||
PythonSinh = "Hyperbolischer Sinus"
|
||||
PythonSleep = "Ausführung aussetzen für t Sekunden"
|
||||
PythonSort = "Die Liste sortieren"
|
||||
PythonSqrt = "Quadratwurzel"
|
||||
PythonSum = "Summe der Elemente einer Liste"
|
||||
PythonTan = "Tangens"
|
||||
PythonTanh = "Hyperbolic tangent"
|
||||
PythonText = "Display a text at (x,y) coordinates"
|
||||
PythonTimeFunction = "time module function prefix"
|
||||
PythonTrunc = "x truncated to an integer"
|
||||
PythonTurtleBackward = "Move backward by x pixels"
|
||||
PythonTurtleCircle = "Circle of radius r pixels"
|
||||
PythonTurtleColor = "Stiftfarbe setzen"
|
||||
PythonTurtleColorMode = "Set the color mode to 1.0 or 255"
|
||||
PythonTurtleForward = "Move forward by x pixels"
|
||||
PythonTurtleFunction = "turtle module function prefix"
|
||||
PythonTurtleGoto = "Move to (x,y) coordinates"
|
||||
PythonTurtleHeading = "Return the current heading"
|
||||
PythonTurtleHideturtle = "Hide the turtle"
|
||||
PythonTurtleIsdown = "Return True if the pen is down"
|
||||
PythonTurtleLeft = "Turn left by a degrees"
|
||||
PythonTurtlePendown = "Pull the pen down"
|
||||
PythonTurtlePensize = "Set the line thickness to x pixels"
|
||||
PythonTurtlePenup = "Pull the pen up"
|
||||
PythonTurtlePosition = "Return the current (x,y) location"
|
||||
PythonTurtleReset = "Reset the drawing"
|
||||
PythonTurtleRight = "Turn right by a degrees"
|
||||
PythonTurtleSetheading = "Set the orientation to a degrees"
|
||||
PythonTurtleSetposition = "Positionne la tortue"
|
||||
PythonTurtleShowturtle = "Show the turtle"
|
||||
PythonTurtleSpeed = "Drawing speed between 0 and 10"
|
||||
PythonTurtleWrite = "Display a text"
|
||||
PythonUniform = "Floating point number in [a,b]"
|
||||
PythonImportTime = "Import time module"
|
||||
PythonTimePrefix = "time module function prefix"
|
||||
PythonTimeSleep = "Wait for n second"
|
||||
PythonMonotonic = "Return monotonic time"
|
||||
PythonTanh = "Hyperbolischer Tangens"
|
||||
PythonText = "Text an (x,y) Koordinaten anzeigen"
|
||||
PythonTimeFunction = "Time-Modul-Funktionspräfix"
|
||||
PythonTrunc = "x abgeschnitten auf eine ganze Zahl"
|
||||
PythonTurtleBackward = "Um x Pixel rückwärts bewegen"
|
||||
PythonTurtleCircle = "Kreis mit Radius r Pixel"
|
||||
PythonTurtleColor = "Setzt die Stiftfarbe"
|
||||
PythonTurtleColorMode = "Setzt Farbmodus auf 1.0 oder 255"
|
||||
PythonTurtleForward = "Um x Pixel vorwärts bewegen"
|
||||
PythonTurtleFunction = "Turtle-Modul-Funktionspräfix"
|
||||
PythonTurtleGoto = "Bewegen zu (x,y) Koordinaten"
|
||||
PythonTurtleHeading = "Liefert den aktuellen Kurs"
|
||||
PythonTurtleHideturtle = "Versteckt den Igel"
|
||||
PythonTurtleIsdown = "Wahr, wenn der Stift unten ist"
|
||||
PythonTurtleLeft = "Nach links um ein Grad drehen"
|
||||
PythonTurtlePendown = "Den Stift nach unten ziehen"
|
||||
PythonTurtlePensize = "Linienstärke auf x Pixel setzen"
|
||||
PythonTurtlePenup = "Den Stift nach oben ziehen"
|
||||
PythonTurtlePosition = "Aktuelle (x,y) Position zurückgeben"
|
||||
PythonTurtleReset = "Die Zeichnung zurücksetzen"
|
||||
PythonTurtleRight = "Um ein Grad nach rechts drehen"
|
||||
PythonTurtleSetheading = "Ausrichtung auf einen Grad setzen"
|
||||
PythonTurtleSetposition = "Den Igel auf Position setzen"
|
||||
PythonTurtleShowturtle = "Den Igel anzeigen"
|
||||
PythonTurtleSpeed = "Zeichengeschwindigkeit von 0 bis 10"
|
||||
PythonTurtleWrite = "Einen Text anzeigen"
|
||||
PythonUniform = "Fließkommazahl in [a,b]"
|
||||
PythonImportTime = "Time-Modul importieren"
|
||||
PythonTimePrefix = "Zeitmodul-Funktionspräfix"
|
||||
PythonTimeSleep = "Warte für n Sekunden"
|
||||
PythonMonotonic = "Monotone Zeit zurückgeben"
|
||||
PythonFileOpen = "Öffnet eine Datei"
|
||||
PythonFileSeekable = "Ist eine Datei durchsuchbar?"
|
||||
PythonFileSeek = "Dateicursor verschieben"
|
||||
PythonFileTell = "Cursorposition der Datei abrufen"
|
||||
PythonFileSeekable = "Kann Datei durchsucht werden?"
|
||||
PythonFileSeek = "Bewegt den Cursor einer Datei"
|
||||
PythonFileTell = "Position des Cursors ermitteln"
|
||||
PythonFileClose = "Schließt eine Datei"
|
||||
PythonFileClosed = "Wenn Datei geschlossen wurde"
|
||||
PythonFileRead = "Bis zu size Bytes lesen"
|
||||
PythonFileWrite = "Schreibe b in die Datei"
|
||||
PythonFileReadline = "Lies eine Zeile"
|
||||
PythonFileClosed = "Wahr, wenn Datei geschlossen wurde"
|
||||
PythonFileRead = "Lesen bis zu einer Größe von Bytes"
|
||||
PythonFileWrite = "Schreibe b in Datei"
|
||||
PythonFileReadline = "Liest Zeile oder Anzahl Bytes"
|
||||
PythonFileReadlines = "Liest eine Liste von Zeilen"
|
||||
PythonFileTruncate = "Größe der Datei ändern"
|
||||
PythonFileTruncate = "Verkleinert die Datei auf Größe"
|
||||
PythonFileWritelines = "Schreibt eine Liste von Zeilen"
|
||||
PythonFileName = "Dateiname"
|
||||
PythonFileMode = "Dateiöffnungsmodus"
|
||||
PythonFileReadable = "Ist die Datei lesbar?"
|
||||
PythonFileWritable = "Ist die Datei beschreibbar?"
|
||||
PythonFileName = "Enthält den Namen der Datei"
|
||||
PythonFileMode = "Enthält den Öffnungsmodus der Datei"
|
||||
PythonFileReadable = "Kann Datei gelesen werden?"
|
||||
PythonFileWritable = "Kann Datei geschrieben werden?"
|
||||
|
||||
@@ -45,6 +45,7 @@ PythonCosh = "Hyperbolic cosine"
|
||||
PythonCount = "Count the occurrences of x"
|
||||
PythonDegrees = "Convert x from radians to degrees"
|
||||
PythonDivMod = "Quotient and remainder"
|
||||
PythonDrawLine = "Draw a line"
|
||||
PythonDrawString = "Display a text from pixel (x,y)"
|
||||
PythonErf = "Error function"
|
||||
PythonErfc = "Complementary error function"
|
||||
@@ -81,52 +82,6 @@ PythonIsInfinite = "Check if x is infinity"
|
||||
PythonIsKeyDown = "Return True if the k key is down"
|
||||
PythonIsNaN = "Check if x is a NaN"
|
||||
PythonKandinskyFunction = "kandinsky module function prefix"
|
||||
PythonKeyLeft = "LEFT ARROW key"
|
||||
PythonKeyUp = "UP ARROW key"
|
||||
PythonKeyDown = "DOWN ARROW key"
|
||||
PythonKeyRight = "RIGHT ARROW key"
|
||||
PythonKeyOk = "OK key"
|
||||
PythonKeyBack = "BACK key"
|
||||
PythonKeyHome = "HOME key"
|
||||
PythonKeyOnOff = "ON/OFF key"
|
||||
PythonKeyShift = "SHIFT key"
|
||||
PythonKeyAlpha = "ALPHA key"
|
||||
PythonKeyXnt = "X,N,T key"
|
||||
PythonKeyVar = "VAR key"
|
||||
PythonKeyToolbox = "TOOLBOX key"
|
||||
PythonKeyBackspace = "BACKSPACE key"
|
||||
PythonKeyExp = "EXPONENTIAL key"
|
||||
PythonKeyLn = "NATURAL LOGARITHM key"
|
||||
PythonKeyLog = "DECIMAL LOGARITHM key"
|
||||
PythonKeyImaginary = "IMAGINARY I key"
|
||||
PythonKeyComma = "COMMA key"
|
||||
PythonKeyPower = "POWER key"
|
||||
PythonKeySine = "SINE key"
|
||||
PythonKeyCosine = "COSINE key"
|
||||
PythonKeyTangent = "TANGENT key"
|
||||
PythonKeyPi = "PI key"
|
||||
PythonKeySqrt = "SQUARE ROOT key"
|
||||
PythonKeySquare = "SQUARE key"
|
||||
PythonKeySeven = "7 key"
|
||||
PythonKeyEight = "8 key"
|
||||
PythonKeyNine = "9 key"
|
||||
PythonKeyLeftParenthesis = "LEFT PARENTHESIS key"
|
||||
PythonKeyRightParenthesis = "RIGHT PARENTHESIS key"
|
||||
PythonKeyFour = "4 key"
|
||||
PythonKeyFive = "5 key"
|
||||
PythonKeySix = "6 key"
|
||||
PythonKeyMultiplication = "MULTIPLICATION key"
|
||||
PythonKeyDivision = "DIVISION key"
|
||||
PythonKeyOne = "1 key"
|
||||
PythonKeyTwo = "2 key"
|
||||
PythonKeyThree = "3 key"
|
||||
PythonKeyPlus = "PLUS key"
|
||||
PythonKeyMinus = "MINUS key"
|
||||
PythonKeyZero = "0 key"
|
||||
PythonKeyDot = "DOT key"
|
||||
PythonKeyEe = "10 POWER X key"
|
||||
PythonKeyAns = "ANS key"
|
||||
PythonKeyExe = "EXE key"
|
||||
PythonLdexp = "Return x*(2**i), inverse of frexp"
|
||||
PythonLength = "Length of an object"
|
||||
PythonLgamma = "Log-gamma function"
|
||||
@@ -148,7 +103,7 @@ PythonPower = "x raised to the power y"
|
||||
PythonPrint = "Print object"
|
||||
PythonRadians = "Convert x from degrees to radians"
|
||||
PythonRandint = "Random integer in [a,b]"
|
||||
PythonRandom = "Floating point number in [0,1["
|
||||
PythonRandom = "Floating point number in [0,1]"
|
||||
PythonRandomFunction = "random module function prefix"
|
||||
PythonRandrange = "Random number in range(start,stop)"
|
||||
PythonRangeStartStop = "List from start to stop-1"
|
||||
@@ -198,6 +153,7 @@ PythonUniform = "Floating point number in [a,b]"
|
||||
PythonImportTime = "Import time module"
|
||||
PythonImportOs = "Import os module"
|
||||
PythonOsUname = "Get infos about the system"
|
||||
PythonOsGetlogin = "Get username"
|
||||
PythonOsRemove = "Remove file named filename"
|
||||
PythonOsRename = "Rename file oldname to newname"
|
||||
PythonOsListdir = "List files in memory"
|
||||
|
||||
@@ -45,6 +45,7 @@ PythonCosh = "Hyperbolic cosine"
|
||||
PythonCount = "Count the occurrences of x"
|
||||
PythonDegrees = "Convert x from radians to degrees"
|
||||
PythonDivMod = "Quotient and remainder"
|
||||
PythonDrawLine = "Draw a line"
|
||||
PythonDrawString = "Display a text from pixel (x,y)"
|
||||
PythonErf = "Error function"
|
||||
PythonErfc = "Complementary error function"
|
||||
@@ -81,52 +82,6 @@ PythonIsInfinite = "Check if x is infinity"
|
||||
PythonIsKeyDown = "Return True if the k key is down"
|
||||
PythonIsNaN = "Check if x is a NaN"
|
||||
PythonKandinskyFunction = "kandinsky module function prefix"
|
||||
PythonKeyLeft = "LEFT ARROW key"
|
||||
PythonKeyUp = "UP ARROW key"
|
||||
PythonKeyDown = "DOWN ARROW key"
|
||||
PythonKeyRight = "RIGHT ARROW key"
|
||||
PythonKeyOk = "OK key"
|
||||
PythonKeyBack = "BACK key"
|
||||
PythonKeyHome = "HOME key"
|
||||
PythonKeyOnOff = "ON/OFF key"
|
||||
PythonKeyShift = "SHIFT key"
|
||||
PythonKeyAlpha = "ALPHA key"
|
||||
PythonKeyXnt = "X,N,T key"
|
||||
PythonKeyVar = "VAR key"
|
||||
PythonKeyToolbox = "TOOLBOX key"
|
||||
PythonKeyBackspace = "BACKSPACE key"
|
||||
PythonKeyExp = "EXPONENTIAL key"
|
||||
PythonKeyLn = "NATURAL LOGARITHM key"
|
||||
PythonKeyLog = "DECIMAL LOGARITHM key"
|
||||
PythonKeyImaginary = "IMAGINARY I key"
|
||||
PythonKeyComma = "COMMA key"
|
||||
PythonKeyPower = "POWER key"
|
||||
PythonKeySine = "SINE key"
|
||||
PythonKeyCosine = "COSINE key"
|
||||
PythonKeyTangent = "TANGENT key"
|
||||
PythonKeyPi = "PI key"
|
||||
PythonKeySqrt = "SQUARE ROOT key"
|
||||
PythonKeySquare = "SQUARE key"
|
||||
PythonKeySeven = "7 key"
|
||||
PythonKeyEight = "8 key"
|
||||
PythonKeyNine = "9 key"
|
||||
PythonKeyLeftParenthesis = "LEFT PARENTHESIS key"
|
||||
PythonKeyRightParenthesis = "RIGHT PARENTHESIS key"
|
||||
PythonKeyFour = "4 key"
|
||||
PythonKeyFive = "5 key"
|
||||
PythonKeySix = "6 key"
|
||||
PythonKeyMultiplication = "MULTIPLICATION key"
|
||||
PythonKeyDivision = "DIVISION key"
|
||||
PythonKeyOne = "1 key"
|
||||
PythonKeyTwo = "2 key"
|
||||
PythonKeyThree = "3 key"
|
||||
PythonKeyPlus = "PLUS key"
|
||||
PythonKeyMinus = "MINUS key"
|
||||
PythonKeyZero = "0 key"
|
||||
PythonKeyDot = "DOT key"
|
||||
PythonKeyEe = "10 POWER X key"
|
||||
PythonKeyAns = "ANS key"
|
||||
PythonKeyExe = "EXE key"
|
||||
PythonLdexp = "Return x*(2**i), inverse of frexp"
|
||||
PythonLength = "Length of an object"
|
||||
PythonLgamma = "Log-gamma function"
|
||||
@@ -198,6 +153,7 @@ PythonUniform = "Floating point number in [a,b]"
|
||||
PythonImportTime = "Import time module"
|
||||
PythonImportOs = "Import os module"
|
||||
PythonOsUname = " Información del sistema "
|
||||
PythonOsGetlogin = "Get username"
|
||||
PythonOsRemove = "Eliminar un archivo"
|
||||
PythonOsRename = "Renombrar archivo"
|
||||
PythonOsListdir = "Archivos de la lista"
|
||||
|
||||
@@ -45,6 +45,7 @@ PythonCosh = "Cosinus hyperbolique"
|
||||
PythonCount = "Compte les occurrences de x"
|
||||
PythonDegrees = "Conversion de radians en degrés"
|
||||
PythonDivMod = "Quotient et reste"
|
||||
PythonDrawLine = "Trace une ligne"
|
||||
PythonDrawString = "Affiche un texte au pixel (x,y)"
|
||||
PythonErf = "Fonction d'erreur"
|
||||
PythonErfc = "Fonction d'erreur complémentaire"
|
||||
@@ -81,52 +82,6 @@ PythonIsInfinite = "Teste si x est infini"
|
||||
PythonIsKeyDown = "Renvoie True si touche k enfoncée"
|
||||
PythonIsNaN = "Teste si x est NaN"
|
||||
PythonKandinskyFunction = "Préfixe fonction module kandinsky"
|
||||
PythonKeyLeft = "Touche FLECHE GAUCHE"
|
||||
PythonKeyUp = "Touche FLECHE HAUT"
|
||||
PythonKeyDown = "Touche FLECHE BAS"
|
||||
PythonKeyRight = "Touche FLECHE DROITE"
|
||||
PythonKeyOk = "Touche OK"
|
||||
PythonKeyBack = "Touche RETOUR"
|
||||
PythonKeyHome = "Touche HOME"
|
||||
PythonKeyOnOff = "Touche ON/OFF"
|
||||
PythonKeyShift = "Touche SHIFT"
|
||||
PythonKeyAlpha = "Touche ALPHA"
|
||||
PythonKeyXnt = "Touche X,N,T"
|
||||
PythonKeyVar = "Touche VAR"
|
||||
PythonKeyToolbox = "Touche BOITE A OUTILS"
|
||||
PythonKeyBackspace = "Touche EFFACER"
|
||||
PythonKeyExp = "Touche EXPONENTIELLE"
|
||||
PythonKeyLn = "Touche LOGARITHME NEPERIEN"
|
||||
PythonKeyLog = "Touche LOGARITHME DECIMAL"
|
||||
PythonKeyImaginary = "Touche I IMAGINAIRE"
|
||||
PythonKeyComma = "Touche VIRGULE"
|
||||
PythonKeyPower = "Touche PUISSANCE"
|
||||
PythonKeySine = "Touche SINUS"
|
||||
PythonKeyCosine = "Touche COSINUS"
|
||||
PythonKeyTangent = "Touche TANGENTE"
|
||||
PythonKeyPi = "Touche PI"
|
||||
PythonKeySqrt = "Touche RACINE CARREE"
|
||||
PythonKeySquare = "Touche CARRE"
|
||||
PythonKeySeven = "Touche 7"
|
||||
PythonKeyEight = "Touche 8"
|
||||
PythonKeyNine = "Touche 9"
|
||||
PythonKeyLeftParenthesis = "Touche PARENTHESE GAUCHE"
|
||||
PythonKeyRightParenthesis = "Touche PARENTHESE DROITE"
|
||||
PythonKeyFour = "Touche 4"
|
||||
PythonKeyFive = "Touche 5"
|
||||
PythonKeySix = "Touche 6"
|
||||
PythonKeyMultiplication = "Touche MULTIPLICATION"
|
||||
PythonKeyDivision = "Touche DIVISION"
|
||||
PythonKeyOne = "Touche 1"
|
||||
PythonKeyTwo = "Touche 2"
|
||||
PythonKeyThree = "Touche 3"
|
||||
PythonKeyPlus = "Touche PLUS"
|
||||
PythonKeyMinus = "Touche MOINS"
|
||||
PythonKeyZero = "Touche 0"
|
||||
PythonKeyDot = "Touche POINT"
|
||||
PythonKeyEe = "Touche 10 PUISSANCE X"
|
||||
PythonKeyAns = "Touche ANS"
|
||||
PythonKeyExe = "Touche EXE"
|
||||
PythonLdexp = "Inverse de frexp : x*(2**i)"
|
||||
PythonLength = "Longueur d'un objet"
|
||||
PythonLgamma = "Logarithme de la fonction gamma"
|
||||
@@ -198,24 +153,25 @@ PythonUniform = "Nombre décimal dans [a,b]"
|
||||
PythonImportTime = "Importation du module temps"
|
||||
PythonImportOs = "Importation du module os"
|
||||
PythonOsUname = "Donne des infos sur le système"
|
||||
PythonOsGetlogin = "Donne le nom d'utilisateur"
|
||||
PythonOsRemove = "Supprime le fichier nommé filename"
|
||||
PythonOsRename = "Renomme oldname en newname"
|
||||
PythonOsListdir = "Liste les fichiers"
|
||||
PythonTimePrefix = "Préfixe fonction du module temps"
|
||||
PythonTimeSleep = "Attendre n secondes"
|
||||
PythonMonotonic = "Retourne le temps monotonic"
|
||||
PythonMonotonic = "Retourne le temps monotone"
|
||||
PythonFileOpen = "Ouvre un fichier"
|
||||
PythonFileSeekable = "Indique si seek peut être utilisé"
|
||||
PythonFileSeek = "Déplace le curseur interne"
|
||||
PythonFileTell = "Donne la posititon du curseur"
|
||||
PythonFileClose = "Ferme un fichier"
|
||||
PythonFileClosed = "True si le fichier a été fermé"
|
||||
PythonFileRead = "Lis jusqu'à size bytes"
|
||||
PythonFileWrite = "Écris b dans le fichier"
|
||||
PythonFileReadline = "Lis une ligne ou jusqu'à size bytes"
|
||||
PythonFileReadlines = "Lis une liste de lignes"
|
||||
PythonFileRead = "Lit jusqu'à size bytes"
|
||||
PythonFileWrite = "Écrit b dans le fichier"
|
||||
PythonFileReadline = "Lit une ligne ou jusqu'à size bytes"
|
||||
PythonFileReadlines = "Lit une liste de lignes"
|
||||
PythonFileTruncate = "Redimensionne le fichier"
|
||||
PythonFileWritelines = "Écris une liste de lignes"
|
||||
PythonFileWritelines = "Écrit une liste de lignes"
|
||||
PythonFileName = "Nom du fichier"
|
||||
PythonFileMode = "Mode d'ouverture du fichier"
|
||||
PythonFileReadable = "Indique si read peut être utilisé"
|
||||
|
||||
@@ -1,222 +1,178 @@
|
||||
PythonPound = "Megjegyzés"
|
||||
PythonPercent = "Modulo"
|
||||
Python1J = "Képzeletbeli i"
|
||||
PythonLF = "Line feed"
|
||||
PythonLF = "Enter"
|
||||
PythonTab = "Táblázat"
|
||||
PythonAmpersand = "Bitwise és"
|
||||
PythonSymbolExp = "Bitwise exkluzív vagy"
|
||||
PythonVerticalBar = "Bitwise vagy"
|
||||
PythonAmpersand = "Logikus és"
|
||||
PythonSymbolExp = "logikus exkluzív vagy pedig"
|
||||
PythonVerticalBar = "logikus vagy pedig"
|
||||
PythonImag = "z képzeletbeli része"
|
||||
PythonReal = "z valódi része"
|
||||
PythonSingleQuote = "Egyetlen idézet"
|
||||
PythonAbs = "Abszolút érték / nagyság"
|
||||
PythonAcos = "Arc koszinusz"
|
||||
PythonAcosh = "Íves hiperbolikus koszinusz"
|
||||
PythonAppend = "x hozzáadása a lista végéhez"
|
||||
PythonArrow = "Arrow from (x,y) to (x+dx,y+dy)"
|
||||
PythonAsin = "Arc szinusz"
|
||||
PythonAsinh = "Íves hiperbolikus szinusz"
|
||||
PythonAtan = "Arc érintö"
|
||||
PythonAtan2 = "Visszatérés atan (y / x)"
|
||||
PythonAtanh = "Arc hiperbolikus érintö"
|
||||
PythonAxis = "Set axes to (xmin,xmax,ymin,ymax)"
|
||||
PythonBar = "Draw a bar plot with x values"
|
||||
PythonSingleQuote = "apostróf"
|
||||
PythonAbs = "Abszolút érték/nagyság"
|
||||
PythonAcos = "Ív (arc) koszinusz"
|
||||
PythonAcosh = "Hiperbolikus arc koszinusz"
|
||||
PythonAppend = "Lista végére hozzáadni x-et"
|
||||
PythonArrow = "(x,y) nyíla (x+dx,y+dy) nyílához"
|
||||
PythonAsin = "Ív (arc) szinusz"
|
||||
PythonAsinh = "Hiperbolikus ív (arc) szinusz"
|
||||
PythonAtan = "Ív (arc) érintö (tan)"
|
||||
PythonAtan2 = "atan(y/x) sámolása"
|
||||
PythonAtanh = "Hiperbolikus ív (arc) érintö (atan)"
|
||||
PythonAxis = "Tengelyeket (xmin,xmax,ymin,ymax)-ra állitani"
|
||||
PythonBar = "Az x lista oszlopdiagramja"
|
||||
PythonBin = "Egész szám konvertálása binárisra"
|
||||
PythonCeil = "Mennyezet"
|
||||
PythonChoice = "Véletlenszerü szám a listában"
|
||||
PythonClear = "A lista ürítése"
|
||||
PythonCmathFunction = "cmath modul funkció elötag"
|
||||
PythonColor = "Rgb szín meghatározása"
|
||||
PythonColor = "Rgb (pzk) szín allítása"
|
||||
PythonColorBlack = "Fekete szín"
|
||||
PythonColorBlue = "Kék szín"
|
||||
PythonColorBrown = "Barna szín"
|
||||
PythonColorGreen = "Zöld szín"
|
||||
PythonColorGrey = "Szürke szín"
|
||||
PythonColorGray = "Szürke szín"
|
||||
PythonColorOrange = "Narancssárga szín"
|
||||
PythonColorPink = "Rózsaszín szín"
|
||||
PythonColorPurple = "Lila szín"
|
||||
PythonColorRed = "Piros szín"
|
||||
PythonColorWhite = "White color"
|
||||
PythonColorWhite = "Fehér szín"
|
||||
PythonColorYellow = "Sárga szín"
|
||||
PythonComplex = "A + ib visszaadása"
|
||||
PythonCopySign = "Visszatérés x-val y jelével"
|
||||
PythonCopySign = "X visszaadása y jelével"
|
||||
PythonCos = "Koszinusz"
|
||||
PythonCosh = "Hiperbolikus koszinusz"
|
||||
PythonCount = "Számolja az x elöfordulását"
|
||||
PythonDegrees = "x konvertálása x-röl radiánokra fokokra"
|
||||
PythonDegrees = "x konvertálása radiánokrol fokokra"
|
||||
PythonDivMod = "Hányados és maradék"
|
||||
PythonDrawString = "Szöveg megjelenítése pixelböl (x, y)"
|
||||
PythonDrawLine = "Húzzon egy vonalat "
|
||||
PythonDrawString = "Szöveg megjelenítése (x, y)-en"
|
||||
PythonErf = "Hiba funkció"
|
||||
PythonErfc = "Kiegészítö hibafunkció"
|
||||
PythonErfc = "Kiegészítö hiba funkció"
|
||||
PythonEval = "Visszaadja az értékelt kifejezést"
|
||||
PythonExp = "Exponenciális függvény"
|
||||
PythonExpm1 = "Számítsuk ki az exp (x) -1-et"
|
||||
PythonExpm1 = "exp(x)-1 sámitása"
|
||||
PythonFabs = "Abszolút érték"
|
||||
PythonFillRect = "Töltsön meg egy téglalapot pixelnél (x, y)"
|
||||
PythonFloat = "x konvertálása float-ra"
|
||||
PythonFloor = "Emelet"
|
||||
PythonFillRect = "Téglalap töltése"
|
||||
PythonFloat = "Konvertálása tizedes számra"
|
||||
PythonFloor = "Egész része"
|
||||
PythonFmod = "a modulo b"
|
||||
PythonFrExp = "Mantissa és az x exponense"
|
||||
PythonFrExp = "X mantissája és kiállítója"
|
||||
PythonGamma = "Gamma funkció"
|
||||
PythonGetPixel = "Visszatérési pixel (x, y) szín"
|
||||
PythonGetrandbits = "Egész szám k véletlen bittel"
|
||||
PythonGrid = "Toggle the visibility of the grid"
|
||||
PythonHex = "Egész szám konvertálása hexadecimálisra"
|
||||
PythonHist = "Draw the histogram of x"
|
||||
PythonGetPixel = "Visszatéríti (x,y) színét"
|
||||
PythonGetrandbits = "Váletlenszám visszatérítése k biten"
|
||||
PythonGrid = "Rács megjelenítése/elrejtése"
|
||||
PythonHex = "Decimális szám konvertálása hexadecimális számra"
|
||||
PythonHist = "x hisztográmiája"
|
||||
PythonImportCmath = "cmath modul importálása"
|
||||
PythonImportIon = "Ion modul importálása"
|
||||
PythonImportKandinsky = "Kandinsky modul importálása"
|
||||
PythonImportRandom = "Véletlenszerü modul importálása"
|
||||
PythonImportMath = "Import matematikai modul"
|
||||
PythonImportMatplotlibPyplot = "Import matplotlib.pyplot module"
|
||||
PythonImportTime = "Idömodul importálása"
|
||||
PythonImportOs = "Os modul importálása"
|
||||
PythonOsUname = "Információ a rendszerről"
|
||||
PythonOsRemove = "Fájl eltávolítása"
|
||||
PythonOsRename = "Fájl átnevezése"
|
||||
PythonOsListdir = "Fájlok listázása"
|
||||
PythonImportTurtle = "Import teknös modul"
|
||||
PythonImportMath = "math modul importálása"
|
||||
PythonImportMatplotlibPyplot = "matplotlib.pyplot modul importálása"
|
||||
PythonImportTurtle = "turtle modul importálása"
|
||||
PythonImportTime = "time modul importálása"
|
||||
PythonIndex = "Az elsö x esemény indexe"
|
||||
PythonInput = "Érték kérése"
|
||||
PythonInsert = "Helyezzen x-t az i indexbe a listában"
|
||||
PythonInt = "x konvertálása egész számra"
|
||||
PythonInput = "Irjon egy értéket (számot)"
|
||||
PythonInsert = "x-et i. pozícióra helyezze a listában"
|
||||
PythonInt = "egész számra konvertálás"
|
||||
PythonIonFunction = "ion modul funkció elötag"
|
||||
PythonIsFinite = "Ellenörizze, hogy x véges-e"
|
||||
PythonIsInfinite = "Ellenörizze, hogy x végtelen-e"
|
||||
PythonIsKeyDown = "True true, ha a k gomb le van nyomva"
|
||||
PythonIsNaN = "Ellenörizze, hogy x nem NaN"
|
||||
PythonKandinskyFunction = "kandinsky modul function prefix"
|
||||
PythonKeyLeft = "Balra nyíl gomb"
|
||||
PythonKeyUp = "FEL NYÍL gomb"
|
||||
PythonKeyDown = "LE nyíl gomb"
|
||||
PythonKeyRight = "JOBB NYÍL gomb"
|
||||
PythonKeyOk = "OK gomb"
|
||||
PythonKeyBack = "VISSZA kulcs"
|
||||
PythonKeyHome = "HOME kulcs"
|
||||
PythonKeyOnOff = "BE / KI gomb"
|
||||
PythonKeyShift = "SHIFT kulcs"
|
||||
PythonKeyAlpha = "ALPHA kulcs"
|
||||
PythonKeyXnt = "X, N, T kulcs"
|
||||
PythonKeyVar = "VAR kulcs"
|
||||
PythonKeyToolbox = "TOOLBOX kulcs"
|
||||
PythonKeyBackspace = "BACKSPACE kulcs"
|
||||
PythonKeyExp = "EXPONENTIAL kulcs"
|
||||
PythonKeyLn = "NATURAL LOGARITHM kulcs"
|
||||
PythonKeyLog = "DECIMAL LOGARITHM kulcs"
|
||||
PythonKeyImaginary = "IMAGINÁRIS I kulcs"
|
||||
PythonKeyComma = "COMMA kulcs"
|
||||
PythonKeyPower = "POWER kulcs"
|
||||
PythonKeySine = "SINE kulcs"
|
||||
PythonKeyCosine = "KOSZIN kulcs"
|
||||
PythonKeyTangent = "TANGENT kulcs"
|
||||
PythonKeyPi = "PI kulcs"
|
||||
PythonKeySqrt = "SQUARE ROOT kulcs"
|
||||
PythonKeySquare = "SQUARE kulcs"
|
||||
PythonKeySeven = "7 kulcs"
|
||||
PythonKeyEight = "8 kulcs"
|
||||
PythonKeyNine = "9 kulcs"
|
||||
PythonKeyLeftParenthesis = "Bal oldali PARENTHESIS kulcs"
|
||||
PythonKeyRightParenthesis = "JOGOS SZÜLETÉS kulcs"
|
||||
PythonKeyFour = "4 kulcs"
|
||||
PythonKeyFive = "5 kulcs"
|
||||
PythonKeySix = "6 kulcs"
|
||||
PythonKeyMultiplication = "TÖBB MüKÖDÉS kulcs"
|
||||
PythonKeyDivision = "DIVISION kulcs"
|
||||
PythonKeyOne = "1 kulcs"
|
||||
PythonKeyTwo = "2 kulcs"
|
||||
PythonKeyThree = "3 kulcs"
|
||||
PythonKeyPlus = "PLUS kulcs"
|
||||
PythonKeyMinus = "MINUS kulcs"
|
||||
PythonKeyZero = "0 kulcs"
|
||||
PythonKeyDot = "DOT kulcs"
|
||||
PythonKeyEe = "10 POWER X kulcs"
|
||||
PythonKeyAns = "ANS kulcs"
|
||||
PythonKeyExe = "EXE kulcs"
|
||||
PythonLdexp = "Visszatérés x * (2 ** i), inverz a frexp értékhez"
|
||||
PythonLength = "Objektum hossza"
|
||||
PythonLgamma = "Log-gamma funkció"
|
||||
PythonLog = "Logaritmus az alap"
|
||||
PythonLog10 = "Logaritmus az alaphoz 10"
|
||||
PythonLog2 = "Logaritmus az alaphoz 2"
|
||||
PythonMathFunction = "matematikai modul funkció elötag"
|
||||
PythonMatplotlibPyplotFunction = "matplotlib.pyplot module prefix"
|
||||
PythonIsFinite = "x véges-e"
|
||||
PythonIsInfinite = "x végtelen-e"
|
||||
PythonIsKeyDown = "True-t válaszol ha a k gomb le van nyomva"
|
||||
PythonIsNaN = "Ellenörizze hogy x nem NaN"
|
||||
PythonKandinskyFunction = "kandinsky modul funkció elötag"
|
||||
PythonLdexp = "frexp ellentéte : x*(2**i)"
|
||||
PythonLength = "Egy targy hossza"
|
||||
PythonLgamma = "Gamma funkció logaritmusa"
|
||||
PythonLog = "a alapú logaritmus"
|
||||
PythonLog10 = "Decimális logaritmus"
|
||||
PythonLog2 = "Bináris logaritmus"
|
||||
PythonMathFunction = "math modul funkció elötag"
|
||||
PythonMatplotlibPyplotFunction = "matplotlib.pyplot elötag"
|
||||
PythonMax = "Maximum"
|
||||
PythonMin = "Minimum"
|
||||
PythonModf = "Az x tört és egész részei"
|
||||
PythonMonotonic = "A monoton óra értéke"
|
||||
PythonOct = "Egész szám konvertálása oktális értékre"
|
||||
PythonPhase = "z fázis"
|
||||
PythonPlot = "Plot y versus x as lines"
|
||||
PythonPolar = "z poláris koordinátákban"
|
||||
PythonPop = "Az utolsó elem eltávolítása és visszaküldése"
|
||||
PythonPower = "x emelve az y teljesítményre"
|
||||
PythonPrint = "Objektum nyomtatása"
|
||||
PythonRadians = "x konvertálása x fokról radiánra"
|
||||
PythonRandint = "Véletlen egész szám [a, b] -ben"
|
||||
PythonRandom = "Lebegöpontos szám [0,1-ben ["
|
||||
PythonRandomFunction = "véletlenszerü modul funkció elötag"
|
||||
PythonRandrange = "Véletlen szám a tartományban (start, stop)"
|
||||
PythonRangeStartStop = "Lista az elejétöl a stop-1-ig"
|
||||
PythonRangeStop = "Lista 0-tól stop-1-ig"
|
||||
PythonRect = "z derékszögü koordinátákban"
|
||||
PythonRemove = "Távolítsa el az x elsö elöfordulását"
|
||||
PythonReverse = "A lista elemeinek megfordítása"
|
||||
PythonRound = "N számjegyre kerekítve"
|
||||
PythonScatter = "Draw a scatter plot of y versus x"
|
||||
PythonSeed = "Inicializálja a véletlenszám-generátort"
|
||||
PythonSetPixel = "Színes pixel (x, y)"
|
||||
PythonShow = "Display the figure"
|
||||
PythonSin = "Sine"
|
||||
PythonModf = "x-nek tört és egész részei"
|
||||
PythonMonotonic = "Az óra értékét adja vissza"
|
||||
PythonOct = "Decimális szám konvertálása octális számra"
|
||||
PythonPhase = "z fázisa"
|
||||
PythonPlot = "y-t jelöli x függvényében"
|
||||
PythonPolar = "Verctorizálni"
|
||||
PythonPop = "Az utolsó elemet el törölni"
|
||||
PythonPower = "x y. kitevö"
|
||||
PythonPrint = "Ki irni a elemeket"
|
||||
PythonRadians = "Fokról radiánra konvertálni"
|
||||
PythonRandint = "Véletlen egész szám [a;b] -ban"
|
||||
PythonRandom = "Decimális szám [0;1] -ban"
|
||||
PythonRandomFunction = "random modul funkció elötag"
|
||||
PythonRandrange = "Véletlen szám range(start,stop)-ban"
|
||||
PythonRangeStartStop = "start-tol stop-ig listája"
|
||||
PythonRangeStop = "0 tol stop-ig lista"
|
||||
PythonRect = "Algebrai számra konvertálni"
|
||||
PythonRemove = "Elsö x elöfordulását törolni"
|
||||
PythonReverse = "A lista elemeit megfordítani (másik irány)"
|
||||
PythonRound = "N számjegyre kerekítni"
|
||||
PythonScatter = "(x,y) halmaza"
|
||||
PythonSeed = "Inicializálni a véletlenszám-választót"
|
||||
PythonSetPixel = "Az (x,y) pixel-t ki szinezni"
|
||||
PythonShow = "Mutassa az ábrát"
|
||||
PythonSin = "Szinusz"
|
||||
PythonSinh = "Hiperbolikus szinusz"
|
||||
PythonSleep = "A végrehajtás felfüggesztése t másodpercre"
|
||||
PythonSort = "A lista rendezése"
|
||||
PythonSleep = "t másodpercre meg állitani a programmot"
|
||||
PythonSort = "A listát rendezni"
|
||||
PythonSqrt = "Négyzetgyök"
|
||||
PythonSum = "Összegzi a lista elemeit"
|
||||
PythonTan = "Érintö"
|
||||
PythonTanh = "Hiperbolikus érintö"
|
||||
PythonText = "Display a text at (x,y) coordinates"
|
||||
PythonTimeFunction = "idömodul funkció elötag"
|
||||
PythonTrunc = "x egészre csonkítva"
|
||||
PythonTurtleBackward = "Visszalépés x pixelrel"
|
||||
PythonTurtleCircle = "r pixel sugarú kör"
|
||||
PythonTurtleColor = "Állítsa be az toll színét"
|
||||
PythonTurtleColorMode = "Set the color mode to 1.0 or 255"
|
||||
PythonTurtleForward = "Ugrás x pixelrel"
|
||||
PythonTurtleFunction = "teknös modul funkció elötag"
|
||||
PythonTurtleGoto = "Mozgatás (x, y) koordinátákra"
|
||||
PythonTurtleHeading = "Visszaadja az aktuális címsort"
|
||||
PythonSum = "Összeadni a lista elemeit"
|
||||
PythonTan = "Érintö (tan)"
|
||||
PythonTanh = "Hiperbolikus érintö (tan)"
|
||||
PythonText = "(x,y) nél egy szöveget irni"
|
||||
PythonTimeFunction = "time funkció elötag"
|
||||
PythonTrunc = "Egész csonka (?)"
|
||||
PythonTurtleBackward = "x pixelt hátra"
|
||||
PythonTurtleCircle = "r pixel sugarú kört rajzolni"
|
||||
PythonTurtleColor = "Toll szinét beállitani"
|
||||
PythonTurtleColorMode = "Szin módot 1.0-ra vagy 255-ra állitani"
|
||||
PythonTurtleForward = "x pixelt elölre"
|
||||
PythonTurtleFunction = "turtle modul funkció elötag"
|
||||
PythonTurtleGoto = "Menjen a (x,y) koordinátákra"
|
||||
PythonTurtleHeading = "Visszaadja az aktuális irányt"
|
||||
PythonTurtleHideturtle = "A teknös elrejtése"
|
||||
PythonTurtleIsdown = "Visszatérés igazhoz, ha az toll lefelé"
|
||||
PythonTurtleLeft = "Forduljon fokkal balra"
|
||||
PythonTurtleIsdown = "True-t válaszol ha a toll irás pozícióban van"
|
||||
PythonTurtleLeft = "a fokkot forduljon balra"
|
||||
PythonTurtlePendown = "Húzza le a tollat"
|
||||
PythonTurtlePensize = "Állítsa a vonalvastagságot x pixelre"
|
||||
PythonTurtlePenup = "Húzza fel a tollat"
|
||||
PythonTurtlePosition = "Az aktuális (x, y) hely visszaadása"
|
||||
PythonTurtleReset = "A rajz visszaállítása"
|
||||
PythonTurtleRight = "Forduljon fokkal jobbra"
|
||||
PythonTurtleSetheading = "Állítsa be a tájolást fokokra"
|
||||
PythonTurtleSetposition = "A helymeghatározás"
|
||||
PythonTurtleShowturtle = "Mutasd a teknösöt"
|
||||
PythonTurtlePosition = "Az aktuális (x,y) pozíciót visszaadása"
|
||||
PythonTurtleReset = "Visszaállitani a rajzot (torléssel)"
|
||||
PythonTurtleRight = "a fokkot forduljon jobbra"
|
||||
PythonTurtleSetheading = "a fokokra állítja be az irányt"
|
||||
PythonTurtleSetposition = "A teknös pozicioját allitja"
|
||||
PythonTurtleShowturtle = "A teknöst meg mutatni"
|
||||
PythonTurtleSpeed = "Rajzolási sebesség 0 és 10 között"
|
||||
PythonTurtleWrite = "Display a text"
|
||||
PythonUniform = "Lebegöpontos szám [a, b] -ben"
|
||||
PythonImportTime = "Idömodul importálása"
|
||||
PythonTimePrefix = "idömodul funkció elötag"
|
||||
PythonTimeSleep = "Várj n másodpercet"
|
||||
PythonMonotonic = "Vissza a monoton idö"
|
||||
PythonTurtleWrite = "Szöveg irás"
|
||||
PythonUniform = "Lebegöpontos szám [a,b] -ban"
|
||||
PythonImportTime = "time modul importálása"
|
||||
PythonTimePrefix = "time funkció elötag"
|
||||
PythonTimeSleep = "n másodpercet várni"
|
||||
PythonMonotonic = "Meg fordítani a monoton idö"
|
||||
PythonFileOpen = "Fájl megnyitása"
|
||||
PythonFileSeekable = "A fájl kereshető?"
|
||||
PythonFileSeek = "A fájl kurzorának áthelyezése"
|
||||
PythonFileTell = "A fájl kurzorának helye"
|
||||
PythonFileClose = "Bezár egy fájlt"
|
||||
PythonFileClosed = "Igaz, ha a fájl bezárt"
|
||||
PythonFileRead = "Olvasson méretbájtig"
|
||||
PythonFileWrite = "B beírása fájlba"
|
||||
PythonFileReadline = "Olvas egy sort"
|
||||
PythonFileReadlines = "Olvassa a sorok listáját"
|
||||
PythonFileTruncate = "A fájl átméretezése méretre"
|
||||
PythonFileWritelines = "Sorok listáját írja"
|
||||
PythonFileName = "a fájl neve"
|
||||
PythonFileMode = "a fájl nyitott módja"
|
||||
PythonFileReadable = "A fájl olvasható?"
|
||||
PythonFileWritable = "A fájl írható?"
|
||||
PythonFileSeekable = "Seek-et lehete használni"
|
||||
PythonFileSeek = "A kurzort áthelyezni"
|
||||
PythonFileTell = "Visszaadja a kurzor helye"
|
||||
PythonFileClose = "Bezárni egy fájlt"
|
||||
PythonFileClosed = "True ha a fájl bezárva"
|
||||
PythonFileRead = "Olvas 16 bájtig"
|
||||
PythonFileWrite = "b-t irjon a fájlba"
|
||||
PythonFileReadline = "Olvas egy sort vagy 16 bájtig"
|
||||
PythonFileReadlines = "Olvas több sort"
|
||||
PythonFileTruncate = "A fájl átméretezése"
|
||||
PythonFileWritelines = "Irjon több sort"
|
||||
PythonFileName = "A fájl neve"
|
||||
PythonFileMode = "A fájl nyitott módja"
|
||||
PythonFileReadable = "read-et lehete használni"
|
||||
PythonFileWritable = "write-ot lehete használni"
|
||||
PythonImportOs = "os modul importálása"
|
||||
PythonOsUname = "Rendszer informaciók"
|
||||
PythonOsGetlogin = "Get username"
|
||||
PythonOsRemove = "Fájl törlése"
|
||||
PythonOsRename = "Fájl átnevezése"
|
||||
PythonOsListdir = "Fájlok listája"
|
||||
|
||||
@@ -45,6 +45,7 @@ PythonCosh = "Coseno iperbolico"
|
||||
PythonCount = "Conta le ricorrenze di x"
|
||||
PythonDegrees = "Conversione di radianti in gradi"
|
||||
PythonDivMod = "Quoziente e resto"
|
||||
PythonDrawLine = "Disegna una linea"
|
||||
PythonDrawString = "Visualizza il testo dal pixel x,y"
|
||||
PythonErf = "Funzione d'errore"
|
||||
PythonErfc = "Funzione d'errore complementare"
|
||||
@@ -73,6 +74,7 @@ PythonImportTurtle = "Importa del modulo turtle"
|
||||
PythonImportTime = "Importa del modulo time"
|
||||
PythonImportOs = "Importa modulo os"
|
||||
PythonOsUname = "Ottieni informazioni sul sistema"
|
||||
PythonOsGetlogin = "Get username"
|
||||
PythonOsRemove = "Rimuovere un file"
|
||||
PythonOsRename = "Rinomina file"
|
||||
PythonOsListdir = "Elenca file"
|
||||
@@ -86,52 +88,6 @@ PythonIsInfinite = "Testa se x est infinito"
|
||||
PythonIsKeyDown = "Restituisce True premendo tasto k"
|
||||
PythonIsNaN = "Testa se x è NaN"
|
||||
PythonKandinskyFunction = "Prefisso funzione modulo kandinsky"
|
||||
PythonKeyLeft = "Tasto FRECCIA SINISTRA"
|
||||
PythonKeyUp = "Tasto FRECCIA ALTO"
|
||||
PythonKeyDown = "Tasto FRECCIA BASSO"
|
||||
PythonKeyRight = "Tasto FRECCIA DESTRA"
|
||||
PythonKeyOk = "Tasto OK"
|
||||
PythonKeyBack = "Tasto INDIETRO"
|
||||
PythonKeyHome = "Tasto CASA"
|
||||
PythonKeyOnOff = "Tasto ON/OFF"
|
||||
PythonKeyShift = "Tasto SHIFT"
|
||||
PythonKeyAlpha = "Tasto ALPHA"
|
||||
PythonKeyXnt = "Tasto X,N,T"
|
||||
PythonKeyVar = "Tasto VAR"
|
||||
PythonKeyToolbox = "Tasto TOOLBOX"
|
||||
PythonKeyBackspace = "Tasto CANCELLA"
|
||||
PythonKeyExp = "Tasto ESPONENZIALE"
|
||||
PythonKeyLn = "Tasto LOGARITMO NEPERIANO"
|
||||
PythonKeyLog = "Tasto LOGARITMO DECIMALE"
|
||||
PythonKeyImaginary = "Tasto I IMMAGINE"
|
||||
PythonKeyComma = "Tasto VIRGOLA"
|
||||
PythonKeyPower = "Tasto POTENZA"
|
||||
PythonKeySine = "Tasto SENO"
|
||||
PythonKeyCosine = "Tasto COSENO"
|
||||
PythonKeyTangent = "Tasto TANGENTE"
|
||||
PythonKeyPi = "Tasto PI"
|
||||
PythonKeySqrt = "Tasto RADICE QUADRATA"
|
||||
PythonKeySquare = "Tasto QUADRATO"
|
||||
PythonKeySeven = "Tasto 7"
|
||||
PythonKeyEight = "Tasto 8"
|
||||
PythonKeyNine = "Tasto 9"
|
||||
PythonKeyLeftParenthesis = "Tasto PARENTESI SINISTRA"
|
||||
PythonKeyRightParenthesis = "Tasto PARENTESI DESTRA"
|
||||
PythonKeyFour = "Tasto 4"
|
||||
PythonKeyFive = "Tasto 5"
|
||||
PythonKeySix = "Tasto 6"
|
||||
PythonKeyMultiplication = "Tasto MOLTIPLICAZIONE"
|
||||
PythonKeyDivision = "Tasto DIVISIONE"
|
||||
PythonKeyOne = "Tasto 1"
|
||||
PythonKeyTwo = "Tasto 2"
|
||||
PythonKeyThree = "Tasto 3"
|
||||
PythonKeyPlus = "Tasto PIÙ"
|
||||
PythonKeyMinus = "Tasto MENO"
|
||||
PythonKeyZero = "Tasto 0"
|
||||
PythonKeyDot = "Tasto PUNTO"
|
||||
PythonKeyEe = "Tasto 10 POTENZA X"
|
||||
PythonKeyAns = "Tasto ANS"
|
||||
PythonKeyExe = "Tasto EXE"
|
||||
PythonLdexp = "Inversa di frexp : x*(2**i)"
|
||||
PythonLength = "Longhezza di un oggetto"
|
||||
PythonLgamma = "Logaritmo della funzione gamma"
|
||||
|
||||
@@ -45,6 +45,7 @@ PythonCosh = "Cosinus hyperbolicus"
|
||||
PythonCount = "Tel voorkomen van x"
|
||||
PythonDegrees = "Zet x om van radialen naar graden"
|
||||
PythonDivMod = "Quotiënt en rest"
|
||||
PythonDrawLine = "Teken een lijn"
|
||||
PythonDrawString = "Geef een tekst weer van pixel (x,y)"
|
||||
PythonErf = "Error functie"
|
||||
PythonErfc = "Complementaire error functie"
|
||||
@@ -72,6 +73,7 @@ PythonImportMatplotlibPyplot = "Importeer matplotlib.pyplot module"
|
||||
PythonImportTime = "Importeer time module"
|
||||
PythonImportOs = "Importeer os module"
|
||||
PythonOsUname = " Krijg systeeminfo"
|
||||
PythonOsGetlogin = "Get username"
|
||||
PythonOsRemove = "Een bestand verwijderen"
|
||||
PythonOsRename = "Hernoem bestand"
|
||||
PythonOsListdir = "Lijstbestanden"
|
||||
@@ -86,52 +88,6 @@ PythonIsInfinite = "Controleer of x oneindig is"
|
||||
PythonIsKeyDown = "Geef True als k toets omlaag is"
|
||||
PythonIsNaN = "Controleer of x geen getal is"
|
||||
PythonKandinskyFunction = "kandinsky module voorvoegsel"
|
||||
PythonKeyLeft = "PIJL NAAR LINKS toets"
|
||||
PythonKeyUp = "PIJL OMHOOG toets"
|
||||
PythonKeyDown = "PIJL OMLAAG toets"
|
||||
PythonKeyRight = "PIJL NAAR RECHTS toets"
|
||||
PythonKeyOk = "OK toets"
|
||||
PythonKeyBack = "TERUG toets"
|
||||
PythonKeyHome = "HOME toets"
|
||||
PythonKeyOnOff = "AAN/UIT toets"
|
||||
PythonKeyShift = "SHIFT toets"
|
||||
PythonKeyAlpha = "ALPHA toets"
|
||||
PythonKeyXnt = "X,N,T toets"
|
||||
PythonKeyVar = "VAR toets"
|
||||
PythonKeyToolbox = "TOOLBOX toets"
|
||||
PythonKeyBackspace = "BACKSPACE toets"
|
||||
PythonKeyExp = "EXPONENTIEEL toets"
|
||||
PythonKeyLn = "NATUURLIJKE LOGARITME toets"
|
||||
PythonKeyLog = "BRIGGSE LOGARITME toets"
|
||||
PythonKeyImaginary = "IMAGINAIRE I toets"
|
||||
PythonKeyComma = "KOMMA toets"
|
||||
PythonKeyPower = "MACHT toets"
|
||||
PythonKeySine = "SINUS toets"
|
||||
PythonKeyCosine = "COSINUS toets"
|
||||
PythonKeyTangent = "TANGENS toets"
|
||||
PythonKeyPi = "PI toets"
|
||||
PythonKeySqrt = "VIERKANTSWORTEL toets"
|
||||
PythonKeySquare = "KWADRAAT toets"
|
||||
PythonKeySeven = "7 toets"
|
||||
PythonKeyEight = "8 toets"
|
||||
PythonKeyNine = "9 toets"
|
||||
PythonKeyLeftParenthesis = "HAAKJE OPENEN toets"
|
||||
PythonKeyRightParenthesis = "HAAKJE SLUITEN toets"
|
||||
PythonKeyFour = "4 toets"
|
||||
PythonKeyFive = "5 toets"
|
||||
PythonKeySix = "6 toets"
|
||||
PythonKeyMultiplication = "VERMENIGVULDIGEN toets"
|
||||
PythonKeyDivision = "DELEN toets"
|
||||
PythonKeyOne = "1 toets"
|
||||
PythonKeyTwo = "2 toets"
|
||||
PythonKeyThree = "3 toets"
|
||||
PythonKeyPlus = "PLUS toets"
|
||||
PythonKeyMinus = "MIN toets"
|
||||
PythonKeyZero = "0 toets"
|
||||
PythonKeyDot = "PUNT toets"
|
||||
PythonKeyEe = "10 TOT DE MACHT X toets"
|
||||
PythonKeyAns = "ANS toets"
|
||||
PythonKeyExe = "EXE toets"
|
||||
PythonLdexp = "Geeft x*(2**i), inversie van frexp"
|
||||
PythonLength = "Lengte van een object"
|
||||
PythonLgamma = "Log-gammafunctie"
|
||||
|
||||
@@ -45,6 +45,7 @@ PythonCosh = "Cosseno hiperbólico"
|
||||
PythonCount = "Contar as ocorrências de x"
|
||||
PythonDegrees = "Converter x de radianos para graus"
|
||||
PythonDivMod = "Quociente e resto"
|
||||
PythonDrawLine = "Desenhe uma linha"
|
||||
PythonDrawString = "Mostrar o texto do pixel (x,y)"
|
||||
PythonErf = "Função erro"
|
||||
PythonErfc = "Função erro complementar"
|
||||
@@ -81,52 +82,6 @@ PythonIsInfinite = "Verificar se x é infinito"
|
||||
PythonIsKeyDown = "Devolve True se tecla k pressionada"
|
||||
PythonIsNaN = "Verificar se x é um NaN"
|
||||
PythonKandinskyFunction = "Prefixo da função do módulo kandinsky"
|
||||
PythonKeyLeft = "tecla SETA ESQUERDA"
|
||||
PythonKeyUp = "tecla SETA CIMA "
|
||||
PythonKeyDown = "tecla SETA BAIXO"
|
||||
PythonKeyRight = "tecla SETA DIREITA"
|
||||
PythonKeyOk = "tecla OK"
|
||||
PythonKeyBack = "tecla VOLTAR"
|
||||
PythonKeyHome = "tecla HOME"
|
||||
PythonKeyOnOff = "tecla ON/OFF"
|
||||
PythonKeyShift = "tecla SHIFT"
|
||||
PythonKeyAlpha = "tecla ALPHA"
|
||||
PythonKeyXnt = "tecla X,N,T"
|
||||
PythonKeyVar = "tecla VAR"
|
||||
PythonKeyToolbox = "tecla CAIXA DE FERRAMENTAS"
|
||||
PythonKeyBackspace = "tecla APAGAR"
|
||||
PythonKeyExp = "tecla EXPONENCIAL"
|
||||
PythonKeyLn = "tecla LOGARITMO NATURAL"
|
||||
PythonKeyLog = "tecla LOGARITMO DECIMAL"
|
||||
PythonKeyImaginary = "tecla I IMAGINÁRIO"
|
||||
PythonKeyComma = "tecla VÍRGULA"
|
||||
PythonKeyPower = "tecla EXPOENTE"
|
||||
PythonKeySine = "tecla SENO"
|
||||
PythonKeyCosine = "tecla COSSENO"
|
||||
PythonKeyTangent = "tecla TANGENTE"
|
||||
PythonKeyPi = "tecla PI"
|
||||
PythonKeySqrt = "tecla RAIZ QUADRADA"
|
||||
PythonKeySquare = "tecla AO QUADRADO"
|
||||
PythonKeySeven = "tecla 7"
|
||||
PythonKeyEight = "tecla 8"
|
||||
PythonKeyNine = "tecla 9"
|
||||
PythonKeyLeftParenthesis = "tecla PARÊNTESE ESQUERDO"
|
||||
PythonKeyRightParenthesis = "tecla PARÊNTESE DIREITO"
|
||||
PythonKeyFour = "tecla 4"
|
||||
PythonKeyFive = "tecla 5"
|
||||
PythonKeySix = "tecla 6"
|
||||
PythonKeyMultiplication = "tecla MULTIPLICAÇÃO"
|
||||
PythonKeyDivision = "tecla DIVISÃO"
|
||||
PythonKeyOne = "tecla 1"
|
||||
PythonKeyTwo = "tecla 2"
|
||||
PythonKeyThree = "tecla 3"
|
||||
PythonKeyPlus = "tecla MAIS"
|
||||
PythonKeyMinus = "tecla MENOS"
|
||||
PythonKeyZero = "tecla 0"
|
||||
PythonKeyDot = "tecla PONTO"
|
||||
PythonKeyEe = "tecla 10 expoente X"
|
||||
PythonKeyAns = "tecla ANS"
|
||||
PythonKeyExe = "tecla EXE"
|
||||
PythonLdexp = "Devolve x*(2**i), inverso de frexp"
|
||||
PythonLength = "Comprimento de um objeto"
|
||||
PythonLgamma = "Logaritmo da função gama"
|
||||
@@ -198,6 +153,7 @@ PythonUniform = "Número decimal em [a,b]"
|
||||
PythonImportTime = "Import time module"
|
||||
PythonImportOs = "Import os module"
|
||||
PythonOsUname = " Obter informações do sistema"
|
||||
PythonOsGetlogin = "Get username"
|
||||
PythonOsRemove = "Remover um ficheiro"
|
||||
PythonOsRename = "Renomear ficheiro"
|
||||
PythonOsListdir = "Listar ficheiros"
|
||||
|
||||
@@ -50,6 +50,7 @@ PythonCommandCount = "list.count(x)"
|
||||
PythonCommandCountWithoutArg = ".count(\x11)"
|
||||
PythonCommandDegrees = "degrees(x)"
|
||||
PythonCommandDivMod = "divmod(a,b)"
|
||||
PythonCommandDrawLine = "draw_line(x1,y1,x2,y2,color)"
|
||||
PythonCommandDrawString = "draw_string(\"text\",x,y)"
|
||||
PythonCommandConstantE = "e"
|
||||
PythonCommandErf = "erf(x)"
|
||||
@@ -215,6 +216,7 @@ PythonCommandUniform = "uniform(a,b)"
|
||||
PythonConstantE = "2.718281828459045"
|
||||
PythonConstantPi = "3.141592653589793"
|
||||
PythonOsCommandUname = "uname()"
|
||||
PythonOsCommandGetlogin = "getlogin()"
|
||||
PythonOsCommandRemove = "remove(filename)"
|
||||
PythonOsCommandRename = "rename(oldname, newname)"
|
||||
PythonOsCommandRemoveWithoutArg = "remove(\x11)"
|
||||
|
||||
@@ -5,6 +5,7 @@ extern "C" {
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
}
|
||||
#include "app.h"
|
||||
|
||||
namespace Code {
|
||||
|
||||
@@ -192,6 +193,7 @@ const ToolboxMessageTree KandinskyModuleChildren[] = {
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandSetPixel, I18n::Message::PythonSetPixel),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandColor, I18n::Message::PythonColor),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandDrawString, I18n::Message::PythonDrawString),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandDrawLine, I18n::Message::PythonDrawLine),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandFillRect, I18n::Message::PythonFillRect)
|
||||
};
|
||||
|
||||
@@ -200,52 +202,7 @@ const ToolboxMessageTree IonModuleChildren[] = {
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandImportFromIon, I18n::Message::PythonImportIon, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandIonFunction, I18n::Message::PythonIonFunction, false, I18n::Message::PythonCommandIonFunctionWithoutArg),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandIsKeyDown, I18n::Message::PythonIsKeyDown),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyLeft, I18n::Message::PythonKeyLeft, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyUp, I18n::Message::PythonKeyUp, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyDown, I18n::Message::PythonKeyDown, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyRight, I18n::Message::PythonKeyRight, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyOk, I18n::Message::PythonKeyOk, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyBack, I18n::Message::PythonKeyBack, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyHome, I18n::Message::PythonKeyHome, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyOnOff, I18n::Message::PythonKeyOnOff, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyShift, I18n::Message::PythonKeyShift, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyAlpha, I18n::Message::PythonKeyAlpha, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyXnt, I18n::Message::PythonKeyXnt, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyVar, I18n::Message::PythonKeyVar, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyToolbox, I18n::Message::PythonKeyToolbox, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyBackspace, I18n::Message::PythonKeyBackspace, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyExp, I18n::Message::PythonKeyExp, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyLn, I18n::Message::PythonKeyLn, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyLog, I18n::Message::PythonKeyLog, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyImaginary, I18n::Message::PythonKeyImaginary, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyComma, I18n::Message::PythonKeyComma, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyPower, I18n::Message::PythonKeyPower, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeySine, I18n::Message::PythonKeySine, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyCosine, I18n::Message::PythonKeyCosine, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyTangent, I18n::Message::PythonKeyTangent, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyPi, I18n::Message::PythonKeyPi, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeySqrt, I18n::Message::PythonKeySqrt, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeySquare, I18n::Message::PythonKeySquare, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeySeven, I18n::Message::PythonKeySeven, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyEight, I18n::Message::PythonKeyEight, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyNine, I18n::Message::PythonKeyNine, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyLeftParenthesis, I18n::Message::PythonKeyLeftParenthesis, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyRightParenthesis, I18n::Message::PythonKeyRightParenthesis, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyFour, I18n::Message::PythonKeyFour, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyFive, I18n::Message::PythonKeyFive, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeySix, I18n::Message::PythonKeySix, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyMultiplication, I18n::Message::PythonKeyMultiplication, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyDivision, I18n::Message::PythonKeyDivision, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyOne, I18n::Message::PythonKeyOne, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyTwo, I18n::Message::PythonKeyTwo, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyThree, I18n::Message::PythonKeyThree, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyPlus, I18n::Message::PythonKeyPlus, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyMinus, I18n::Message::PythonKeyMinus, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyZero, I18n::Message::PythonKeyZero, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyDot, I18n::Message::PythonKeyDot, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyEe, I18n::Message::PythonKeyEe, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyAns, I18n::Message::PythonKeyAns, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandKeyExe, I18n::Message::PythonKeyExe, false)
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IonSelector, I18n::Message::IonSelector)
|
||||
};
|
||||
|
||||
const ToolboxMessageTree TimeModuleChildren[] = {
|
||||
@@ -260,6 +217,7 @@ const ToolboxMessageTree OsModuleChildren[] = {
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandImportOs, I18n::Message::PythonImportOs, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandImportFromOs, I18n::Message::PythonImportOs, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonOsCommandUname, I18n::Message::PythonOsUname, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonOsCommandGetlogin, I18n::Message::PythonOsGetlogin, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonOsCommandRemove, I18n::Message::PythonOsRemove, false, I18n::Message::PythonOsCommandRemoveWithoutArg),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonOsCommandRename, I18n::Message::PythonOsRename, false, I18n::Message::PythonOsCommandRenameWithoutArg),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonOsCommandListdir, I18n::Message::PythonOsListdir, false)
|
||||
@@ -315,6 +273,7 @@ const ToolboxMessageTree catalogChildren[] = {
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandCosh, I18n::Message::PythonCosh),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandDegrees, I18n::Message::PythonDegrees),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandDivMod, I18n::Message::PythonDivMod),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandDrawLine, I18n::Message::PythonDrawLine),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandDrawString, I18n::Message::PythonDrawString),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandConstantE, I18n::Message::PythonConstantE, false),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::PythonCommandErf, I18n::Message::PythonErf),
|
||||
@@ -536,6 +495,11 @@ KDCoordinate PythonToolbox::rowHeight(int j) {
|
||||
bool PythonToolbox::selectLeaf(int selectedRow) {
|
||||
m_selectableTableView.deselectTable();
|
||||
ToolboxMessageTree * node = (ToolboxMessageTree *)m_messageTreeModel->childAtIndex(selectedRow);
|
||||
if(node->insertedText() == I18n::Message::IonSelector){
|
||||
m_ionKeys.setSender(sender());
|
||||
Container::activeApp()->displayModalViewController(static_cast<ViewController*>(&m_ionKeys), 0.f, 0.f, Metric::PopUpTopMargin, Metric::PopUpLeftMargin, 0, Metric::PopUpRightMargin);
|
||||
return true;
|
||||
}
|
||||
const char * editedText = I18n::translate(node->insertedText());
|
||||
// strippedEditedText array needs to be in the same scope as editedText
|
||||
char strippedEditedText[k_maxMessageSize];
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include <escher.h>
|
||||
#include <ion/events.h>
|
||||
#include <kandinsky/font.h>
|
||||
#include "toolbox_ion_keys.h"
|
||||
|
||||
namespace Code {
|
||||
|
||||
@@ -32,6 +33,7 @@ private:
|
||||
void scrollToAndSelectChild(int i);
|
||||
MessageTableCellWithMessage m_leafCells[k_maxNumberOfDisplayedRows];
|
||||
MessageTableCellWithChevron m_nodeCells[k_maxNumberOfDisplayedRows];
|
||||
toolboxIonKeys m_ionKeys;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
27
apps/code/test/toolbox_ion_keys_dummy.cpp
Normal file
27
apps/code/test/toolbox_ion_keys_dummy.cpp
Normal file
@@ -0,0 +1,27 @@
|
||||
#include "../toolbox_ion_keys.h"
|
||||
|
||||
namespace Code {
|
||||
toolboxIonKeys::toolboxIonKeys() :
|
||||
ViewController(nullptr),
|
||||
m_view()
|
||||
{
|
||||
}
|
||||
|
||||
bool toolboxIonKeys::handleEvent(Ion::Events::Event e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
toolboxIonKeys::toolboxIonView::toolboxIonView():
|
||||
View()
|
||||
{
|
||||
}
|
||||
|
||||
void toolboxIonKeys::toolboxIonView::drawRect(KDContext * ctx, KDRect rect) const {
|
||||
return;
|
||||
}
|
||||
|
||||
View * toolboxIonKeys::view(){
|
||||
return &m_view;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -57,3 +57,5 @@ PythonCommandDef = "def \x11():\n "
|
||||
PythonCommandDefWithArg = "def function(x):"
|
||||
PythonCommandReturn = "return "
|
||||
RandomModule = "random"
|
||||
IonSelector = "Key selector"
|
||||
PressAKey = "Press a key"
|
||||
|
||||
50
apps/code/toolbox_ion_keys.cpp
Normal file
50
apps/code/toolbox_ion_keys.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
#include "toolbox_ion_keys.h"
|
||||
#include <apps/apps_container.h>
|
||||
#include <assert.h>
|
||||
#include <ion.h>
|
||||
extern "C" {
|
||||
#include <py/obj.h>
|
||||
#include <py/objfun.h>
|
||||
}
|
||||
extern const mp_rom_map_elem_t modion_module_globals_table[48];
|
||||
|
||||
namespace Code {
|
||||
toolboxIonKeys::toolboxIonKeys() :
|
||||
ViewController(nullptr),
|
||||
m_view()
|
||||
{
|
||||
}
|
||||
|
||||
bool toolboxIonKeys::handleEvent(Ion::Events::Event e) {
|
||||
Ion::Keyboard::State state = Ion::Keyboard::scan();
|
||||
for(uint16_t i = 0; i < sizeof(modion_module_globals_table)/sizeof(_mp_rom_map_elem_t); i++){
|
||||
_mp_rom_map_elem_t element = modion_module_globals_table[i];
|
||||
if(mp_obj_is_small_int(element.value)){
|
||||
int key = mp_obj_get_int(element.value);
|
||||
if(state.keyDown(static_cast<Ion::Keyboard::Key>(key))){
|
||||
m_sender->handleEventWithText(qstr_str(MP_OBJ_QSTR_VALUE(element.key)), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
Container::activeApp()->dismissModalViewController();
|
||||
AppsContainer::sharedAppsContainer()->redrawWindow();
|
||||
return true;
|
||||
}
|
||||
|
||||
toolboxIonKeys::toolboxIonView::toolboxIonView():
|
||||
View()
|
||||
{
|
||||
}
|
||||
|
||||
void toolboxIonKeys::toolboxIonView::drawRect(KDContext * ctx, KDRect rect) const {
|
||||
ctx->fillRect(rect, Palette::GrayBright);
|
||||
ctx->strokeRect(rect, Palette::GrayDark);
|
||||
ctx->drawString(I18n::translate(I18n::Message::PressAKey),KDPoint(rect.left()+80, rect.top()+20));
|
||||
|
||||
}
|
||||
|
||||
View * toolboxIonKeys::view(){
|
||||
return &m_view;
|
||||
}
|
||||
|
||||
}
|
||||
21
apps/code/toolbox_ion_keys.h
Normal file
21
apps/code/toolbox_ion_keys.h
Normal file
@@ -0,0 +1,21 @@
|
||||
#include <escher.h>
|
||||
|
||||
namespace Code {
|
||||
|
||||
class toolboxIonKeys : public ViewController {
|
||||
public :
|
||||
toolboxIonKeys();
|
||||
View * view() override;
|
||||
bool handleEvent(Ion::Events::Event e) override;
|
||||
void setSender(InputEventHandler * sender) { m_sender = sender; }
|
||||
private :
|
||||
class toolboxIonView : public View {
|
||||
public :
|
||||
toolboxIonView();
|
||||
void drawRect(KDContext * ctx, KDRect rect) const override;
|
||||
};
|
||||
toolboxIonView m_view;
|
||||
InputEventHandler * m_sender;
|
||||
};
|
||||
|
||||
}
|
||||
46
apps/external/archive.cpp
vendored
46
apps/external/archive.cpp
vendored
@@ -55,29 +55,43 @@ bool fileAtIndex(size_t index, File &entry) {
|
||||
* TAR files are comprised of a set of records aligned to 512 bytes boundary
|
||||
* followed by data.
|
||||
*/
|
||||
while (index-- > 0) {
|
||||
|
||||
for(;;) {
|
||||
// Calculate the size
|
||||
size = 0;
|
||||
for (int i = 0; i < 11; i++)
|
||||
size = size * 8 + (tar->size[i] - '0');
|
||||
|
||||
// Check if we found our file.
|
||||
if (index == 0) {
|
||||
// If yes, check for sanity and for exam mode stuff
|
||||
if (!isSane(tar) || isExamModeAndFileNotExecutable(tar)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Move to the next TAR header.
|
||||
unsigned stride = (sizeof(TarHeader) + size + 511);
|
||||
stride = (stride >> 9) << 9;
|
||||
tar = reinterpret_cast<const TarHeader*>(reinterpret_cast<const char*>(tar) + stride);
|
||||
// File entry found, copy data out.
|
||||
entry.name = tar->name;
|
||||
entry.data = reinterpret_cast<const uint8_t*>(tar) + sizeof(TarHeader);
|
||||
entry.dataLength = size;
|
||||
entry.isExecutable = (tar->mode[4] & 0x01) == 1;
|
||||
|
||||
// Sanity check.
|
||||
if (!isSane(tar) || isExamModeAndFileNotExecutable(tar)) {
|
||||
return false;
|
||||
return true;
|
||||
} else {
|
||||
// move to the next TAR header.
|
||||
unsigned stride = (sizeof(TarHeader) + size + 511);
|
||||
stride = (stride >> 9) << 9;
|
||||
tar = reinterpret_cast<const TarHeader*>(reinterpret_cast<const char*>(tar) + stride);
|
||||
|
||||
// Sanity check.
|
||||
if (!isSane(tar)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
index--;
|
||||
}
|
||||
|
||||
// File entry found, copy data out.
|
||||
entry.name = tar->name;
|
||||
entry.data = reinterpret_cast<const uint8_t*>(tar) + sizeof(TarHeader);
|
||||
entry.dataLength = size;
|
||||
entry.isExecutable = (tar->mode[4] & 0x01) == 1;
|
||||
|
||||
return true;
|
||||
|
||||
// Achievement unlock: How did we get there ?
|
||||
return false;
|
||||
}
|
||||
|
||||
extern "C" void (* const apiPointers[])(void);
|
||||
|
||||
12
apps/external/base.de.i18n
vendored
12
apps/external/base.de.i18n
vendored
@@ -1,9 +1,9 @@
|
||||
ExternalApp = "External"
|
||||
ExternalAppCapital = "EXTERNAL"
|
||||
ExternalAppApiMismatch = "API mismatch"
|
||||
ExternalAppExecError = "Cannot execute file"
|
||||
ExternalNotCompatible = "External ist nicht kompatibel"
|
||||
ExternalAppApiMismatch = "API stimmt nicht überein"
|
||||
ExternalAppExecError = "Datei kann nicht ausgeführt werden"
|
||||
ExternalNotCompatible = "Externe App ist nicht kompatibel"
|
||||
WithSimulator = "mit dem Simulator"
|
||||
WithN0100 = "mit n0100"
|
||||
GetMoreAppsAt = "Weitere Apps erhalten Sie auf"
|
||||
NoAppsInstalled = "Keine Apps installiert"
|
||||
WithN0100 = "mit N0100"
|
||||
GetMoreAppsAt = "Weitere Apps abrufen bei"
|
||||
NoAppsInstalled = "Keine Apps installiert"
|
||||
4
apps/external/base.fr.i18n
vendored
4
apps/external/base.fr.i18n
vendored
@@ -1,7 +1,7 @@
|
||||
ExternalApp = "External"
|
||||
ExternalAppCapital = "EXTERNAL"
|
||||
ExternalAppApiMismatch = "API mismatch"
|
||||
ExternalAppExecError = "Cannot execute file"
|
||||
ExternalAppApiMismatch = "Décalage API"
|
||||
ExternalAppExecError = "Le fichier ne peut pas être exécuté"
|
||||
ExternalNotCompatible = "External n'est pas compatible"
|
||||
WithSimulator = "avec le simulateur"
|
||||
WithN0100 = "avec n0100"
|
||||
|
||||
10
apps/external/base.hu.i18n
vendored
10
apps/external/base.hu.i18n
vendored
@@ -1,9 +1,9 @@
|
||||
ExternalApp = "Külsö"
|
||||
ExternalAppCapital = "KÜLSö"
|
||||
ExternalAppCapital = "KÜLSÖ"
|
||||
ExternalAppApiMismatch = "API eltérés"
|
||||
ExternalAppExecError = "A fájl nem futtatható"
|
||||
ExternalNotCompatible = "Ez az alkalmazás nem kompatibilis a "
|
||||
ExternalNotCompatible = "Externál nem kompatibilis"
|
||||
WithSimulator = "Szimulátorral"
|
||||
WithN0100 = "a n0100-el"
|
||||
GetMoreAppsAt = "Mégtöbb alkalmazás a"
|
||||
NoAppsInstalled = "Nincs letöltött alkalmazás"
|
||||
WithN0100 = "n0100-al"
|
||||
GetMoreAppsAt = "Mégtöbb alkalmazás itt :"
|
||||
NoAppsInstalled = "Nincs letöltött externál"
|
||||
|
||||
@@ -29,5 +29,5 @@ NoIntersectionFound = "Kein Schnittpunkt gefunden"
|
||||
NoPreimageFound = "Kein Urbild gefunden"
|
||||
DerivativeFunctionColumn = "Spalte der Ableitungsfunktion"
|
||||
HideDerivativeColumn = "Ableitungsfunktion ausblenden"
|
||||
AllowedCharactersAZaz09 = "Erlaubte Zeichen: A..Z, a..z, 0..9, _"
|
||||
AllowedCharactersAZaz09 = "Erlaubt: A..Z, a..z, 0..9, _"
|
||||
ReservedName = "Reserviertes Wort"
|
||||
|
||||
@@ -13,21 +13,21 @@ IntervalX = "x intervallum"
|
||||
FunctionDomain = "Tervtartomány"
|
||||
FunctionColor = "Funkció színe"
|
||||
NoFunction = "Nincs funkció"
|
||||
NoActivatedFunction = "Nincs bekapcsolt funkció"
|
||||
PlotOptions = "Tervezési lehetöségek"
|
||||
Compute = "Számítás"
|
||||
NoActivatedFunction = "Nincs használt funkció"
|
||||
PlotOptions = "Görbe beállítások"
|
||||
Compute = "Kiszámolás"
|
||||
Zeros = "Nullák"
|
||||
Tangent = "Tangens"
|
||||
Intersection = "Keresztezés"
|
||||
Intersection = "Metszéspont"
|
||||
Preimage = "Inverz kép"
|
||||
SelectLowerBound = "Alsó határ kiválasztása"
|
||||
SelectUpperBound = "Felsö határ kiválasztása"
|
||||
NoMaximumFound = "Nem található maximális érték"
|
||||
NoMinimumFound = "Nem található minimum"
|
||||
NoZeroFound = "Nem található nulla"
|
||||
NoMaximumFound = "Nem talált maximum-ot"
|
||||
NoMinimumFound = "Nem talált minimum-ot"
|
||||
NoZeroFound = "Nem talált nullát"
|
||||
NoIntersectionFound = "Nem található keresztezödés"
|
||||
NoPreimageFound = "Nem található inverz kép"
|
||||
DerivativeFunctionColumn = "Származékos függvény oszlop"
|
||||
HideDerivativeColumn = "A derivatív függvény elrejtése"
|
||||
AllowedCharactersAZaz09 = "Engedélyezett karakterek: A-Z, a-z, 0-9, _"
|
||||
DerivativeFunctionColumn = "A derivált fügvény oszlopa"
|
||||
HideDerivativeColumn = "A derivált függvény oszlop elrejtése"
|
||||
AllowedCharactersAZaz09 = "Engedélyezett karakterek: A..Z, a..z, 0..9, _"
|
||||
ReservedName = "Fenntartott név"
|
||||
|
||||
@@ -3,6 +3,7 @@ app_home_src = $(addprefix apps/home/,\
|
||||
app_cell.cpp \
|
||||
apps_layout.py \
|
||||
controller.cpp \
|
||||
selectable_table_view_with_background.cpp \
|
||||
)
|
||||
|
||||
apps_src += $(app_home_src)
|
||||
|
||||
@@ -8,6 +8,7 @@ namespace Home {
|
||||
AppCell::AppCell() :
|
||||
HighlightCell(),
|
||||
m_nameView(KDFont::SmallFont, (I18n::Message)0, 0.5f, 0.5f, Palette::HomeCellText, Palette::HomeCellBackground),
|
||||
m_backgroundView(nullptr),
|
||||
m_visible(true), m_external_app(false)
|
||||
{
|
||||
}
|
||||
@@ -15,8 +16,8 @@ AppCell::AppCell() :
|
||||
|
||||
void AppCell::drawRect(KDContext * ctx, KDRect rect) const {
|
||||
KDSize nameSize = m_nameView.minimalSizeForOptimalDisplay();
|
||||
ctx->fillRect(KDRect(0, bounds().height()-nameSize.height() - 2*k_nameHeightMargin, bounds().width(), nameSize.height()+2*k_nameHeightMargin), Palette::HomeBackground);
|
||||
}
|
||||
m_backgroundView->drawRect(ctx, KDRect(0, bounds().height()-nameSize.height() - 2*k_nameHeightMargin, bounds().width(), nameSize.height()+2*k_nameHeightMargin));
|
||||
}
|
||||
|
||||
int AppCell::numberOfSubviews() const {
|
||||
return m_visible ? 2 : 0;
|
||||
@@ -33,9 +34,20 @@ void AppCell::layoutSubviews(bool force) {
|
||||
m_nameView.setFrame(KDRect((bounds().width()-nameSize.width())/2-k_nameWidthMargin, bounds().height()-nameSize.height() - 2*k_nameHeightMargin, nameSize.width()+2*k_nameWidthMargin, nameSize.height()+2*k_nameHeightMargin), force);
|
||||
}
|
||||
|
||||
void AppCell::setExtAppDescriptor(const char* name, const uint8_t *icon, size_t iconLength) {
|
||||
m_external_app = true;
|
||||
m_iconView.setImage(icon, iconLength);
|
||||
m_iconView.setImage(nullptr);
|
||||
m_nameView.setText(name);
|
||||
m_nameView.setTextColor(Palette::HomeCellTextExternal);
|
||||
m_nameView.setMessage(I18n::Message::Default);
|
||||
layoutSubviews();
|
||||
}
|
||||
|
||||
void AppCell::setExtAppDescriptor(const char* name, const Image* icon) {
|
||||
m_external_app = true;
|
||||
m_iconView.setImage(icon);
|
||||
m_iconView.setImage(nullptr, 0);
|
||||
m_nameView.setText(name);
|
||||
m_nameView.setTextColor(Palette::HomeCellTextExternal);
|
||||
m_nameView.setMessage(I18n::Message::Default);
|
||||
@@ -45,6 +57,7 @@ void AppCell::setExtAppDescriptor(const char* name, const Image* icon) {
|
||||
void AppCell::setAppDescriptor(::App::Descriptor * descriptor) {
|
||||
m_external_app = false;
|
||||
m_iconView.setImage(descriptor->icon());
|
||||
m_iconView.setImage(nullptr, 0);
|
||||
m_nameView.setMessage(descriptor->name());
|
||||
m_nameView.setTextColor(Palette::HomeCellText);
|
||||
m_nameView.setText(nullptr);
|
||||
@@ -58,6 +71,10 @@ void AppCell::setVisible(bool visible) {
|
||||
}
|
||||
}
|
||||
|
||||
void AppCell::setBackgroundView(const BackgroundView * backgroundView) {
|
||||
m_backgroundView = backgroundView;
|
||||
}
|
||||
|
||||
void AppCell::reloadCell() {
|
||||
m_nameView.setTextColor(isHighlighted() ? (m_external_app ? Palette::HomeCellTextExternalActive : Palette::HomeCellTextActive) : (m_external_app ? Palette::HomeCellTextExternal : Palette::HomeCellText));
|
||||
m_nameView.setBackgroundColor(isHighlighted() ? Palette::HomeCellBackgroundActive : Palette::HomeCellBackground);
|
||||
|
||||
@@ -15,17 +15,20 @@ public:
|
||||
void layoutSubviews(bool force = false) override;
|
||||
|
||||
void setVisible(bool visible);
|
||||
void setBackgroundView(const BackgroundView * backgroundView);
|
||||
void reloadCell() override;
|
||||
void setAppDescriptor(::App::Descriptor * appDescriptor);
|
||||
void setExtAppDescriptor(const char* name, const Image* icon);
|
||||
void setExtAppDescriptor(const char* name, const uint8_t *icon, size_t iconLength);
|
||||
private:
|
||||
static constexpr KDCoordinate k_iconMargin = 22;
|
||||
static constexpr KDCoordinate k_iconWidth = 55;
|
||||
static constexpr KDCoordinate k_iconHeight = 56;
|
||||
static constexpr KDCoordinate k_nameWidthMargin = 4;
|
||||
static constexpr KDCoordinate k_nameHeightMargin = 1;
|
||||
ImageView m_iconView;
|
||||
IconView m_iconView;
|
||||
MessageTextView m_nameView;
|
||||
const BackgroundView * m_backgroundView;
|
||||
bool m_visible;
|
||||
bool m_external_app;
|
||||
};
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
Default,calculation,rpn,graph,code,statistics,probability,solver,atom,sequence,regression,settings
|
||||
HidePython,calculation,rpn,graph,code,statistics,probability,solver,atom,sequence,regression,settings
|
||||
Default,calculation,rpn,graph,code,statistics,probability,solver,atomic,sequence,regression,settings
|
||||
HidePython,calculation,rpn,graph,code,statistics,probability,solver,atomic,sequence,regression,settings
|
||||
|
||||
|
@@ -18,11 +18,11 @@ extern "C" {
|
||||
namespace Home {
|
||||
|
||||
Controller::ContentView::ContentView(Controller * controller, SelectableTableViewDataSource * selectionDataSource) :
|
||||
m_selectableTableView(controller, controller, selectionDataSource, controller)
|
||||
m_selectableTableView(controller, controller, &m_backgroundView, selectionDataSource, controller),
|
||||
m_backgroundView()
|
||||
{
|
||||
m_selectableTableView.setVerticalCellOverlap(0);
|
||||
m_selectableTableView.setMargins(0, k_sideMargin, k_bottomMargin, k_sideMargin);
|
||||
m_selectableTableView.setBackgroundColor(Palette::HomeBackground);
|
||||
static_cast<ScrollView::BarDecorator *>(m_selectableTableView.decorator())->verticalBar()->setMargin(k_indicatorMargin);
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ SelectableTableView * Controller::ContentView::selectableTableView() {
|
||||
}
|
||||
|
||||
void Controller::ContentView::drawRect(KDContext * ctx, KDRect rect) const {
|
||||
ctx->fillRect(bounds(), Palette::HomeBackground);
|
||||
m_selectableTableView.drawRect(ctx, rect);
|
||||
}
|
||||
|
||||
void Controller::ContentView::reloadBottomRow(SimpleTableViewDataSource * dataSource, int numberOfIcons, int numberOfColumns) {
|
||||
@@ -45,6 +45,10 @@ void Controller::ContentView::reloadBottomRow(SimpleTableViewDataSource * dataSo
|
||||
}
|
||||
}
|
||||
|
||||
BackgroundView * Controller::ContentView::backgroundView() {
|
||||
return &m_backgroundView;
|
||||
}
|
||||
|
||||
int Controller::ContentView::numberOfSubviews() const {
|
||||
return 1;
|
||||
}
|
||||
@@ -56,6 +60,8 @@ View * Controller::ContentView::subviewAtIndex(int index) {
|
||||
|
||||
void Controller::ContentView::layoutSubviews(bool force) {
|
||||
m_selectableTableView.setFrame(bounds(), force);
|
||||
m_backgroundView.setFrame(KDRect(0, Metric::TitleBarHeight, Ion::Display::Width, Ion::Display::Height-Metric::TitleBarHeight), force);
|
||||
m_backgroundView.updateDataValidity();
|
||||
}
|
||||
|
||||
Controller::Controller(Responder * parentResponder, SelectableTableViewDataSource * selectionDataSource, ::App * app) :
|
||||
@@ -63,6 +69,21 @@ Controller::Controller(Responder * parentResponder, SelectableTableViewDataSourc
|
||||
m_view(this, selectionDataSource)
|
||||
{
|
||||
m_app = app;
|
||||
for (int i = 0; i < k_maxNumberOfCells; i++) {
|
||||
m_cells[i].setBackgroundView(m_view.backgroundView());
|
||||
}
|
||||
|
||||
m_view.backgroundView()->setDefaultColor(Palette::HomeBackground);
|
||||
|
||||
|
||||
#ifdef HOME_DISPLAY_EXTERNALS
|
||||
int index = External::Archive::indexFromName("wallpaper.obm");
|
||||
if(index > -1) {
|
||||
External::Archive::File image;
|
||||
External::Archive::fileAtIndex(index, image);
|
||||
m_view.backgroundView()->setBackgroundImage(image.data);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool Controller::handleEvent(Ion::Events::Event event) {
|
||||
@@ -189,9 +210,8 @@ void Controller::willDisplayCellAtLocation(HighlightCell * cell, int i, int j) {
|
||||
if (img_index != -1) {
|
||||
External::Archive::File image_file;
|
||||
if (External::Archive::fileAtIndex(img_index, image_file)) {
|
||||
const Image* img = new Image(55, 56, image_file.data, image_file.dataLength);
|
||||
appCell->setExtAppDescriptor(app_file.name, img);
|
||||
|
||||
// const Image* img = new Image(55, 56, image_file.data, image_file.dataLength);
|
||||
appCell->setExtAppDescriptor(app_file.name, image_file.data, image_file.dataLength);
|
||||
} else {
|
||||
appCell->setExtAppDescriptor(app_file.name, ImageStore::ExternalIcon);
|
||||
}
|
||||
@@ -234,7 +254,7 @@ void Controller::tableViewDidChangeSelection(SelectableTableView * t, int previo
|
||||
* (so the previous one is always visible). */
|
||||
int appIndex = (t->selectedColumn()+t->selectedRow()*k_numberOfColumns)+1;
|
||||
if (appIndex >= this->numberOfIcons()+1) {
|
||||
t->selectCellAtLocation(previousSelectedCellX, previousSelectedCellY);
|
||||
t->selectCellAtLocation((this->numberOfIcons()%3)-1, (this->numberOfIcons() / k_numberOfColumns));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define HOME_CONTROLLER_H
|
||||
|
||||
#include <escher.h>
|
||||
#include "selectable_table_view_with_background.h"
|
||||
#include "app_cell.h"
|
||||
|
||||
namespace Home {
|
||||
@@ -35,11 +36,13 @@ private:
|
||||
SelectableTableView * selectableTableView();
|
||||
void drawRect(KDContext * ctx, KDRect rect) const override;
|
||||
void reloadBottomRow(SimpleTableViewDataSource * dataSource, int numberOfIcons, int numberOfColumns);
|
||||
BackgroundView * backgroundView();
|
||||
private:
|
||||
int numberOfSubviews() const override;
|
||||
View * subviewAtIndex(int index) override;
|
||||
void layoutSubviews(bool force = false) override;
|
||||
SelectableTableView m_selectableTableView;
|
||||
SelectableTableViewWithBackground m_selectableTableView;
|
||||
BackgroundView m_backgroundView;
|
||||
};
|
||||
static constexpr KDCoordinate k_sideMargin = 4;
|
||||
static constexpr KDCoordinate k_bottomMargin = 14;
|
||||
|
||||
16
apps/home/selectable_table_view_with_background.cpp
Normal file
16
apps/home/selectable_table_view_with_background.cpp
Normal file
@@ -0,0 +1,16 @@
|
||||
#include "selectable_table_view_with_background.h"
|
||||
|
||||
SelectableTableViewWithBackground::SelectableTableViewWithBackground(Responder * parentResponder, TableViewDataSource * dataSource, BackgroundView * backgroundView, SelectableTableViewDataSource * selectionDataSource, SelectableTableViewDelegate * delegate) :
|
||||
SelectableTableView(parentResponder, dataSource, selectionDataSource, delegate),
|
||||
m_backgroundInnerView(this, backgroundView)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void SelectableTableViewWithBackground::BackgroundInnerView::drawRect(KDContext * ctx, KDRect rect) const {
|
||||
m_backgroundView->drawRect(ctx, rect);
|
||||
}
|
||||
|
||||
void SelectableTableViewWithBackground::BackgroundInnerView::setBackgroundView(const uint8_t * data) {
|
||||
m_backgroundView->setBackgroundImage(data);
|
||||
}
|
||||
25
apps/home/selectable_table_view_with_background.h
Normal file
25
apps/home/selectable_table_view_with_background.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#ifndef ESCHER_SELECTABLE_TABLE_VIEW_WITH_BACKGROUND_H
|
||||
#define ESCHER_SELECTABLE_TABLE_VIEW_WITH_BACKGROUND_H
|
||||
|
||||
#include <escher/selectable_table_view.h>
|
||||
#include <escher/background_view.h>
|
||||
|
||||
class SelectableTableViewWithBackground : public SelectableTableView {
|
||||
public:
|
||||
SelectableTableViewWithBackground(Responder * parentResponder, TableViewDataSource * dataSource, BackgroundView * backgroundView,
|
||||
SelectableTableViewDataSource * selectionDataSource = nullptr, SelectableTableViewDelegate * delegate = nullptr);
|
||||
View * subviewAtIndex(int index) override { return (index == 0) ? &m_backgroundInnerView : decorator()->indicatorAtIndex(index); }
|
||||
protected:
|
||||
virtual InnerView * getInnerView() { return &m_backgroundInnerView; }
|
||||
class BackgroundInnerView : public ScrollView::InnerView {
|
||||
public:
|
||||
BackgroundInnerView(ScrollView * scrollView, BackgroundView * backgroundView): InnerView(scrollView), m_backgroundView(backgroundView) {}
|
||||
void drawRect(KDContext * ctx, KDRect rect) const override;
|
||||
void setBackgroundView(const uint8_t * data);
|
||||
private:
|
||||
BackgroundView * m_backgroundView;
|
||||
};
|
||||
BackgroundInnerView m_backgroundInnerView;
|
||||
};
|
||||
|
||||
#endif
|
||||
17
apps/i18n.py
17
apps/i18n.py
@@ -23,13 +23,9 @@ parser.add_argument('--codepoints', help='the code_points.h file')
|
||||
parser.add_argument('--countrypreferences', help='the country_preferences.csv file')
|
||||
parser.add_argument('--languagepreferences', help='the language_preferences.csv file')
|
||||
parser.add_argument('--files', nargs='+', help='an i18n file')
|
||||
parser.add_argument('--generateISO6391locales', type=int, nargs='+', help='whether to generate the ISO6391 codes for the languages (for instance "en" for english)')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
def generate_ISO6391():
|
||||
return args.generateISO6391locales[0] == 1
|
||||
|
||||
def has_glyph(glyph):
|
||||
return glyph in codepoints
|
||||
|
||||
@@ -196,13 +192,6 @@ def print_header(data, path, locales, countries):
|
||||
lambda arg: arg.upper(),
|
||||
" Message::Language")
|
||||
|
||||
if generate_ISO6391():
|
||||
print_block_from_list(f,
|
||||
"constexpr const Message LanguageISO6391Names[NumberOfLanguages] = {\n",
|
||||
locales,
|
||||
lambda arg: arg.upper(),
|
||||
" Message::LanguageISO6391")
|
||||
|
||||
# Countries enumeration
|
||||
print_block_from_list(f,
|
||||
"enum class Country : uint8_t {\n",
|
||||
@@ -236,6 +225,12 @@ def print_header(data, path, locales, countries):
|
||||
f.write(line[:-2] + "),\n")
|
||||
f.write("};\n\n")
|
||||
|
||||
# Language ISO639-1 codes
|
||||
f.write("constexpr const char * LanguageISO6391Codes[NumberOfLanguages] = {\n");
|
||||
for locale in locales:
|
||||
f.write(" \"" + locale + "\",\n")
|
||||
f.write("};\n\n")
|
||||
|
||||
f.write("}\n\n")
|
||||
f.write("#endif\n")
|
||||
f.close()
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
LanguageISO6391DE = "de"
|
||||
@@ -1 +0,0 @@
|
||||
LanguageISO6391EN = "en"
|
||||
@@ -1 +0,0 @@
|
||||
LanguageISO6391ES = "es"
|
||||
@@ -1 +0,0 @@
|
||||
LanguageISO6391FR = "fr"
|
||||
@@ -1 +0,0 @@
|
||||
LanguageISO6391IT = "it"
|
||||
@@ -1 +0,0 @@
|
||||
LanguageISO6391NL = "nl"
|
||||
@@ -1 +0,0 @@
|
||||
LanguageISO6391PT = "pt"
|
||||
@@ -19,6 +19,12 @@ void ion_main(int argc, const char * const argv[]) {
|
||||
#else
|
||||
|
||||
void ion_main(int argc, const char * const argv[]) {
|
||||
/* Lock OTP on older devices to prevent garbage being written where the PCB
|
||||
* version is read. */
|
||||
#if 0 // We don't want OTP locked on omega :p
|
||||
Ion::Board::lockUnlockedPCBVersion();
|
||||
#endif
|
||||
|
||||
// Initialize Poincare::TreePool::sharedPool
|
||||
Poincare::Init();
|
||||
|
||||
@@ -36,7 +42,7 @@ void ion_main(int argc, const char * const argv[]) {
|
||||
continue;
|
||||
}
|
||||
for (int j = 0; j < I18n::NumberOfLanguages; j++) {
|
||||
if (strcmp(requestedLanguageId, I18n::translate(I18n::LanguageISO6391Names[j])) == 0) {
|
||||
if (strcmp(requestedLanguageId, I18n::LanguageISO6391Codes[j]) == 0) {
|
||||
GlobalPreferences::sharedGlobalPreferences()->setLanguage((I18n::Language)j);
|
||||
GlobalPreferences::sharedGlobalPreferences()->setCountry(I18n::DefaultCountryForLanguage[j]);
|
||||
break;
|
||||
@@ -53,8 +59,12 @@ void ion_main(int argc, const char * const argv[]) {
|
||||
const char * appNames[] = {"home", EPSILON_APPS_NAMES};
|
||||
for (int j = 0; j < AppsContainer::sharedAppsContainer()->numberOfApps(); j++) {
|
||||
App::Snapshot * snapshot = AppsContainer::sharedAppsContainer()->appSnapshotAtIndex(j);
|
||||
int cmp = strcmp(argv[i]+2, appNames[j]);
|
||||
if (cmp == '-') {
|
||||
// Compare name in order to find if the firsts chars which are different are NULL and '-'
|
||||
// -> check if the app name is in the argv
|
||||
const char * s1 = argv[i]+2;
|
||||
const char * s2 = appNames[j];
|
||||
while (*s1 != '\0' && (*s1 == *s2)) {s1++; s2++;}
|
||||
if (*s2 == '\0' && *s1 == '-') {
|
||||
snapshot->setOpt(argv[i]+2+strlen(appNames[j])+1, argv[i+1]);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ const ToolboxMessageTree calculChildren[] = {
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IntCommandWithArg, I18n::Message::Integral, false, I18n::Message::IntCommand),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::SumCommandWithArg, I18n::Message::Sum, false, I18n::Message::SumCommand),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::ProductCommandWithArg, I18n::Message::Product, false, I18n::Message::ProductCommand),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::Infinity, I18n::Message::InfinityMessage, false, I18n::Message::Infinity),
|
||||
};
|
||||
|
||||
const ToolboxMessageTree complexChildren[] = {
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
UpdateAvailable = "UPDATE VERFÜGBAR"
|
||||
UpdateAvailable = "AKTUALISIERUNG VERFÜGBAR"
|
||||
UpdateMessage1 = "Wichtige Verbesserungen für Ihren"
|
||||
UpdateMessage2 = "Rechner stehen zur Verfügung."
|
||||
UpdateMessage3 = "Verbinden Sie sich mit Ihrem Computer auf"
|
||||
UpdateMessage2 = "Taschenrechner stehen zur Verfügung."
|
||||
UpdateMessage3 = "Verbinden Sie sich mit Ihrem PC mit"
|
||||
UpdateMessage4 = "www.numworks.com/update."
|
||||
BetaVersion = "BETA VERSION"
|
||||
BetaVersion = "VORABVERSION"
|
||||
BetaVersionMessage1 = ""
|
||||
BetaVersionMessage2 = "Your device runs a beta software."
|
||||
BetaVersionMessage3 = "You might run into bugs or glitches."
|
||||
BetaVersionMessage2 = "Gerät führt eine Vorabversion aus."
|
||||
BetaVersionMessage3 = "Sie könnten auf Fehler stoßen."
|
||||
BetaVersionMessage4 = ""
|
||||
BetaVersionMessage5 = "Please send any feedback to"
|
||||
BetaVersionMessage5 = "Bitte senden Sie Feedback an"
|
||||
BetaVersionMessage6 = "contact@numworks.com"
|
||||
Skip = "Überspringen"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
UpdateAvailable = "Elérhetö Frissítések!"
|
||||
UpdateMessage1 = "Fontos frissítések vannak"
|
||||
UpdateMessage2 = "a számológépéhez."
|
||||
UpdateMessage3 = "Látogasson el a weboldalunkra a számítógépröl"
|
||||
UpdateMessage3 = "Töltje le a weboldalunkról az utolso verziót"
|
||||
UpdateMessage4 = "www.numworks.com/update"
|
||||
BetaVersion = "BETA VERZIÓ"
|
||||
BetaVersionMessage1 = ""
|
||||
@@ -10,4 +10,4 @@ BetaVersionMessage3 = "Lehet, hogy hibákat észlel."
|
||||
BetaVersionMessage4 = ""
|
||||
BetaVersionMessage5 = "Kérjük, küldjön minden visszajelzést a"
|
||||
BetaVersionMessage6 = "contact@numworks.com email címre"
|
||||
Skip = "Ugrás"
|
||||
Skip = "Tovább"
|
||||
|
||||
@@ -11,17 +11,17 @@ ExponentialDistribution = "Exponenciális eloszlás"
|
||||
GeometricDistribution = "Geometriai eloszlás"
|
||||
PoissonDistribution = "Poisson eloszlás"
|
||||
ChiSquaredDistribution = "Chi-négyzet eloszlás"
|
||||
StudentDistribution = "Diák eloszlása"
|
||||
FisherDistribution = "Poisson eloszlás"
|
||||
StudentDistribution = "Student eloszlása"
|
||||
FisherDistribution = "Fisher eloszlás"
|
||||
ChooseParameters = "Paraméterek kiválasztása"
|
||||
RepetitionNumber = "n: A kísérletek száma"
|
||||
SuccessProbability = "p: A siker valószínüsége"
|
||||
RepetitionNumber = "n: ismétlések száma"
|
||||
SuccessProbability = "p: a siker valószínüsége"
|
||||
IntervalDefinition = "[a, b]: intervallum"
|
||||
LambdaExponentialDefinition = "λ: Rate paraméter"
|
||||
MeanDefinition = "μ: Mean"
|
||||
LambdaExponentialDefinition = "λ: paraméter"
|
||||
MeanDefinition = "μ: remény vagy atlag"
|
||||
DeviationDefinition = "σ: szórás"
|
||||
LambdaPoissonDefinition = "λ: Paraméter"
|
||||
DegreesOfFreedomDefinition = "k: Szabadságfokok"
|
||||
D1FisherDefinition = "d1: A számláló szabadsági foka"
|
||||
D2FisherDefinition = "d2: A nevezó szabadsági foka"
|
||||
LambdaPoissonDefinition = "λ: paraméter"
|
||||
DegreesOfFreedomDefinition = "k: szabadságfokok"
|
||||
D1FisherDefinition = "d1: a számláló szabadságfokai"
|
||||
D2FisherDefinition = "d2: a nevezó szabadságfokai"
|
||||
ComputeProbability = "Számítsa ki a valószínüségeket"
|
||||
|
||||
@@ -5,7 +5,7 @@ MeanDot = "mittel"
|
||||
RegressionCurve = "Regressionskurve"
|
||||
XPrediction = "Berechne Y"
|
||||
YPrediction = "Berechne X"
|
||||
ValueNotReachedByRegression = "Wert in diesem Fenster nicht erreicht"
|
||||
ValueNotReachedByRegression = "Wert im Fenster nicht erreicht"
|
||||
NumberOfDots = "Punktanzahl"
|
||||
Covariance = "Kovarianz"
|
||||
Linear = "Lineare"
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
RegressionApp = "Regresszió"
|
||||
RegressionAppCapital = "REGRESSZIÓ"
|
||||
Regression = "Regresszió"
|
||||
Reg = "reg"
|
||||
MeanDot = "Középérték"
|
||||
RegressionCurve = "Regressziós görbe"
|
||||
XPrediction = "Jóslás megadva X"
|
||||
XPrediction = "Jóslás X megadva"
|
||||
YPrediction = "Jóslás Y megadva"
|
||||
ValueNotReachedByRegression = "Az ablakban az érték még nem volt elérve"
|
||||
NumberOfDots = "Pontok száma"
|
||||
Covariance = "Kovariancia"
|
||||
Linear = "Lineáris"
|
||||
Proportional = "Proportional"
|
||||
Proportional = "Általános"
|
||||
Quadratic = "Másodfokú"
|
||||
Cubic = "Kocka"
|
||||
Cubic = "Kockás"
|
||||
Quartic = "Kvartikus"
|
||||
Logarithmic = "Logaritmikus"
|
||||
Power = "Teljesítmény"
|
||||
Trigonometrical = "Trigonometrikus"
|
||||
Logistic = "Logisztikai"
|
||||
DataNotSuitableForRegression = " Az adat nem megfelelö ehhez a regressziós modellhez"
|
||||
DataNotSuitableForRegression = "Ezek az adatok nem megfelelö ehhez a regressziós modellhez"
|
||||
|
||||
@@ -2,7 +2,7 @@ SequenceApp = "Folge"
|
||||
SequenceAppCapital = "FOLGE"
|
||||
SequenceTab = "Folgen"
|
||||
AddSequence = "Folge hinzufügen"
|
||||
ChooseSequenceType = "Das Bildungsgesetz der Folge auswählen"
|
||||
ChooseSequenceType = "Bildungsgesetz der Folge auswählen"
|
||||
SequenceType = "Bildungsgesetz der Folge"
|
||||
Explicit = "Explizit"
|
||||
SingleRecurrence = "Rekursion 1. Ordnung"
|
||||
@@ -17,6 +17,6 @@ NEnd = "Endwert"
|
||||
TermSum = "Summe der Terme"
|
||||
SelectFirstTerm = "Erster Term "
|
||||
SelectLastTerm = "Letzter Term "
|
||||
ValueNotReachedBySequence = "Der Wert wird von der Folge nicht erreicht"
|
||||
ValueNotReachedBySequence = "Wert wird von Folge nicht erreicht"
|
||||
NColumn = "n-te Spalte"
|
||||
FirstTermIndex = "Anfangsindex"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SequenceApp = "Szekvenciák"
|
||||
SequenceAppCapital = "Szekvenciák"
|
||||
SequenceAppCapital = "SZEKVENCIÁK"
|
||||
SequenceTab = "Szekvenciák"
|
||||
AddSequence = "Szekvencia hozzáadása"
|
||||
ChooseSequenceType = "Válassza ki a sorozat típusát"
|
||||
@@ -14,9 +14,9 @@ NoSequence = "Nincs sorrend"
|
||||
NoActivatedSequence = "Nincs szekvencia bekapcsolva"
|
||||
NStart = "N start"
|
||||
NEnd = "N vég"
|
||||
TermSum = "A feltételek összege"
|
||||
SelectFirstTerm = "Elsö ciklus kiválasztása"
|
||||
SelectLastTerm = "Utolsó kifejezés kiválasztása"
|
||||
TermSum = "A kifejezés összege"
|
||||
SelectFirstTerm = "Elsö kifejezés kiválasztása "
|
||||
SelectLastTerm = "Utolsó kifejezés kiválasztása "
|
||||
ValueNotReachedBySequence = "Az értéket nem érte el a sorozat"
|
||||
NColumn = "n oszlop"
|
||||
FirstTermIndex = "Elsö kifejezés index"
|
||||
|
||||
@@ -9,8 +9,8 @@ ComplexFormat = "Komplexe Zahlen"
|
||||
ExamMode = "Prüfungsmodus"
|
||||
ExamModeActive = "Modus erneut starten"
|
||||
ToDeactivateExamMode1 = "Um den Prüfungsmodus auszuschalten,"
|
||||
ToDeactivateExamMode2 = "schließen Sie den Rechner an einen"
|
||||
ToDeactivateExamMode3 = "Computer oder eine Steckdose an."
|
||||
ToDeactivateExamMode2 = "schließen Sie den Taschenrechner an"
|
||||
ToDeactivateExamMode3 = "einen Computer an."
|
||||
# --------------------- Please do not edit these messages ---------------------
|
||||
ExamModeWarning1 = "Caution: compliance of this"
|
||||
ExamModeWarning2 = "unofficial software's exam mode"
|
||||
@@ -40,9 +40,9 @@ FontSizes = "Python-Schriftgröße"
|
||||
LargeFont = "Große "
|
||||
SmallFont = "Kleine "
|
||||
SerialNumber = "Seriennummer"
|
||||
UpdatePopUp = "Erinnerung: Update"
|
||||
BetaPopUp = "Beta pop-up"
|
||||
Contributors = "Beiträger"
|
||||
UpdatePopUp = "Erinnerung: Aktualisierung"
|
||||
BetaPopUp = "Erinnerung: Vorabversion"
|
||||
Contributors = "Mitwirkende"
|
||||
Accessibility = "Barrierefreiheit"
|
||||
AccessibilityInvertColors = "Farbumkehrung"
|
||||
AccessibilityMagnify = "Lupe"
|
||||
@@ -62,9 +62,9 @@ SymbolArgFunction = "Leer "
|
||||
SymbolArgDefaultFunction = "Argument "
|
||||
PythonFont = "Python Schriftart"
|
||||
MemUse = "Speicher"
|
||||
DateTime = "Date/time"
|
||||
ActivateClock = "Activate clock"
|
||||
Date = "Date"
|
||||
Time = "Time"
|
||||
RTCWarning1 = "Enabling the clock drains the battery faster"
|
||||
RTCWarning2 = "when the calculator is powered off."
|
||||
DateTime = "Datum/Uhrzeit"
|
||||
ActivateClock = "Uhr aktivieren"
|
||||
Date = "Datum"
|
||||
Time = "Uhrzeit"
|
||||
RTCWarning1 = "Das Aktivieren der Uhr verkürzt die"
|
||||
RTCWarning2 = "Akkulaufzeit im Bereitschaftsmodus."
|
||||
|
||||
@@ -12,21 +12,21 @@ ToDeactivateExamMode1 = "a vizsga mód kikapcsoláshoz"
|
||||
ToDeactivateExamMode2 = "csatlakoztassa a számológépet a számítógéphez"
|
||||
ToDeactivateExamMode3 = "vagy egy konnektorhoz."
|
||||
# --------------------- Please do not edit these messages ---------------------
|
||||
ExamModeWarning1 = "Vigyázat: ennek betartása"
|
||||
ExamModeWarning2 = "nem hivatalos szoftver vizsgálati módja"
|
||||
ExamModeWarning3 = "a NumWorks/Omega nem garantálja."
|
||||
AboutWarning1 = "Vigyázat: egy"
|
||||
AboutWarning2 = "nem hivatalos szoftververzió."
|
||||
AboutWarning3 = "A NumWorks nem vállal felelösséget"
|
||||
AboutWarning4 = "az esetleges károkért."
|
||||
ExamModeWarning1 = "Vigyázat: a használt szoftver nem"
|
||||
ExamModeWarning2 = "hivatalos, Numworks nem garantálja"
|
||||
ExamModeWarning3 = "a vizsgálati mód megfelelőségét."
|
||||
AboutWarning1 = "Vigyázat: a használt szoftver"
|
||||
AboutWarning2 = "nem hivatalos. A NumWorks nem"
|
||||
AboutWarning3 = "vállal felelösséget az"
|
||||
AboutWarning4 = "esetleges károkért."
|
||||
# -----------------------------------------------------------------------------
|
||||
About = "Egyéb"
|
||||
About = "Apropó"
|
||||
Degrees = "Fokok "
|
||||
Gradians = "Gradiens "
|
||||
Radian = "Radián "
|
||||
Decimal = "Tizedes "
|
||||
Scientific = "Tudományos "
|
||||
Engineering = "Mérnöki "
|
||||
Engineering = "Mérnökség "
|
||||
SignificantFigures = "Tizedes számok "
|
||||
Real = "Valódi "
|
||||
Cartesian = "Kartéziánus "
|
||||
@@ -40,31 +40,31 @@ FontSizes = "Python betü méret"
|
||||
LargeFont = "Nagy "
|
||||
SmallFont = "Kicsi "
|
||||
SerialNumber = "Sorozatszám"
|
||||
UpdatePopUp = "Elöugró ablak frissítése"
|
||||
BetaPopUp = "Béta pop-up"
|
||||
UpdatePopUp = "Frissítés figyelmeztetés"
|
||||
BetaPopUp = "Béta figyelmeztetés"
|
||||
Contributors = "Közremüködök"
|
||||
Accessibility = "Hozzáférhetöség"
|
||||
Accessibility = "Több vizuális beállitások"
|
||||
AccessibilityInvertColors = "Invertált színek"
|
||||
AccessibilityMagnify = "Nagyítás"
|
||||
AccessibilityMagnify = "Nagyító"
|
||||
AccessibilityGamma = "Gamma korrekció"
|
||||
AccessibilityGammaRed = "Piros gamma"
|
||||
AccessibilityGammaGreen = "Zöld gamma"
|
||||
AccessibilityGammaBlue = "Kék gamma"
|
||||
MathOptions = "Matematikai beállítások"
|
||||
SymbolMultiplication = "Szorzás"
|
||||
SymbolMultiplicationCross = "Kereszt"
|
||||
SymbolMultiplicationCross = "Kereszt "
|
||||
SymbolMultiplicationMiddleDot = "Pont "
|
||||
SymbolMultiplicationStar = "Csillag "
|
||||
SymbolMultiplicationAutoSymbol = "Automata "
|
||||
SymbolFunction = "Kifejezési formátum "
|
||||
SymbolDefaultFunction = "alapértelmezett "
|
||||
SymbolMultiplicationAutoSymbol = "Automatitus "
|
||||
SymbolFunction = "Kifejezés "
|
||||
SymbolDefaultFunction = "Alap "
|
||||
SymbolArgFunction = "Üres "
|
||||
SymbolArgDefaultFunction = "Argumentummal "
|
||||
PythonFont = "Python Betütipus"
|
||||
MemUse = "Memória"
|
||||
DateTime = "Date/time"
|
||||
ActivateClock = "Activate clock"
|
||||
Date = "Date"
|
||||
Time = "Time"
|
||||
RTCWarning1 = "Enabling the clock drains the battery faster"
|
||||
RTCWarning2 = "when the calculator is powered off."
|
||||
DateTime = "Dátum/óra"
|
||||
ActivateClock = "Óra bekapcsolása"
|
||||
Date = "Datum"
|
||||
Time = "Óra"
|
||||
RTCWarning1 = "Amikor a számológép alvómódban van, az óra"
|
||||
RTCWarning2 = "használása az elemet gyorsabban meríti ki."
|
||||
|
||||
@@ -19,12 +19,8 @@ constexpr SettingsMessageTree s_symbolFunctionChildren[3] = {SettingsMessageTree
|
||||
constexpr SettingsMessageTree s_modelMathOptionsChildren[6] = {SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren), SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren), SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren), SettingsMessageTree(I18n::Message::SymbolFunction, s_symbolFunctionChildren), SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren), SettingsMessageTree(I18n::Message::SymbolMultiplication, s_symbolChildren)};
|
||||
constexpr SettingsMessageTree s_modelFontChildren[2] = {SettingsMessageTree(I18n::Message::LargeFont), SettingsMessageTree(I18n::Message::SmallFont)};
|
||||
constexpr SettingsMessageTree s_accessibilityChildren[6] = {SettingsMessageTree(I18n::Message::AccessibilityInvertColors), SettingsMessageTree(I18n::Message::AccessibilityMagnify),SettingsMessageTree(I18n::Message::AccessibilityGamma),SettingsMessageTree(I18n::Message::AccessibilityGammaRed),SettingsMessageTree(I18n::Message::AccessibilityGammaGreen),SettingsMessageTree(I18n::Message::AccessibilityGammaBlue)};
|
||||
constexpr SettingsMessageTree s_contributorsChildren[20] = {SettingsMessageTree(I18n::Message::Developers), SettingsMessageTree(I18n::Message::QuentinGuidee), SettingsMessageTree(I18n::Message::SandraSimmons), SettingsMessageTree(I18n::Message::JoachimLeFournis), SettingsMessageTree(I18n::Message::JeanBaptisteBoric), SettingsMessageTree(I18n::Message::MaximeFriess), SettingsMessageTree(I18n::Message::David), SettingsMessageTree(I18n::Message::DamienNicolet), SettingsMessageTree(I18n::Message::EvannDreumont), SettingsMessageTree(I18n::Message::SzaboLevente), SettingsMessageTree(I18n::Message::VenceslasDuet), SettingsMessageTree(I18n::Message::CharlotteThomas), SettingsMessageTree(I18n::Message::AntoninLoubiere), SettingsMessageTree(I18n::Message::BetaTesters), SettingsMessageTree(I18n::Message::CyprienMejat), SettingsMessageTree(I18n::Message::TimeoArnouts), SettingsMessageTree(I18n::Message::JulieC), SettingsMessageTree(I18n::Message::LelahelHideux), SettingsMessageTree(I18n::Message::Madil), SettingsMessageTree(I18n::Message::HilaireLeRoux)};
|
||||
#ifdef OMEGA_USERNAME
|
||||
constexpr SettingsMessageTree s_contributorsChildren[23] = {SettingsMessageTree(I18n::Message::Developers), SettingsMessageTree(I18n::Message::QuentinGuidee), SettingsMessageTree(I18n::Message::JoachimLeFournis), SettingsMessageTree(I18n::Message::MaximeFriess), SettingsMessageTree(I18n::Message::JeanBaptisteBoric), SettingsMessageTree(I18n::Message::SandraSimmons), SettingsMessageTree(I18n::Message::David), SettingsMessageTree(I18n::Message::DamienNicolet), SettingsMessageTree(I18n::Message::EvannDreumont), SettingsMessageTree(I18n::Message::SzaboLevente), SettingsMessageTree(I18n::Message::VenceslasDuet), SettingsMessageTree(I18n::Message::CharlotteThomas), SettingsMessageTree(I18n::Message::AntoninLoubiere), SettingsMessageTree(I18n::Message::CyprienMejat), SettingsMessageTree(I18n::Message::BetaTesters), SettingsMessageTree(I18n::Message::TimeoArnouts), SettingsMessageTree(I18n::Message::JulieC), SettingsMessageTree(I18n::Message::LelahelHideux), SettingsMessageTree(I18n::Message::Madil), SettingsMessageTree(I18n::Message::HilaireLeRoux), SettingsMessageTree(I18n::Message::HectorNussbaumer), SettingsMessageTree(I18n::Message::RaphaelDyda), SettingsMessageTree(I18n::Message::ThibautC)};
|
||||
constexpr SettingsMessageTree s_modelAboutChildren[8] = {SettingsMessageTree(I18n::Message::Username), SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::OmegaVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::MemUse), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren)};
|
||||
#else
|
||||
constexpr SettingsMessageTree s_modelAboutChildren[7] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::OmegaVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::MemUse), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren)};
|
||||
#endif
|
||||
|
||||
MainController::MainController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate) :
|
||||
ViewController(parentResponder),
|
||||
|
||||
@@ -24,12 +24,8 @@ extern const Shared::SettingsMessageTree s_modelMathOptionsChildren[6];
|
||||
extern const Shared::SettingsMessageTree s_modelFontChildren[2];
|
||||
extern const Shared::SettingsMessageTree s_modelDateTimeChildren[3];
|
||||
extern const Shared::SettingsMessageTree s_accessibilityChildren[6];
|
||||
extern const Shared::SettingsMessageTree s_contributorsChildren[20];
|
||||
#ifdef OMEGA_USERNAME
|
||||
extern const Shared::SettingsMessageTree s_contributorsChildren[23];
|
||||
extern const Shared::SettingsMessageTree s_modelAboutChildren[8];
|
||||
#else
|
||||
extern const Shared::SettingsMessageTree s_modelAboutChildren[7];
|
||||
#endif
|
||||
extern const Shared::SettingsMessageTree s_model;
|
||||
|
||||
class MainController : public ViewController, public ListViewDataSource, public SelectableTableViewDataSource {
|
||||
|
||||
@@ -29,7 +29,7 @@ AboutController::AboutController(Responder * parentResponder) :
|
||||
}
|
||||
|
||||
bool AboutController::handleEvent(Ion::Events::Event event) {
|
||||
I18n::Message childLabel = m_messageTreeModel->childAtIndex(selectedRow())->label();
|
||||
I18n::Message childLabel = m_messageTreeModel->childAtIndex(selectedRow()+(!hasUsernameCell()))->label();
|
||||
/* We hide here the activation hardware test app: in the menu "about", by
|
||||
* clicking on '6' on the last row. */
|
||||
if ((event == Ion::Events::Six || event == Ion::Events::LowerT || event == Ion::Events::UpperT) && childLabel == I18n::Message::FccId) {
|
||||
@@ -39,19 +39,24 @@ bool AboutController::handleEvent(Ion::Events::Event event) {
|
||||
if (event == Ion::Events::OK || event == Ion::Events::EXE || event == Ion::Events::Right) {
|
||||
if (childLabel == I18n::Message::Contributors) {
|
||||
GenericSubController * subController = &m_contributorsController;
|
||||
subController->setMessageTreeModel(m_messageTreeModel->childAtIndex(selectedRow()));
|
||||
subController->setMessageTreeModel(m_messageTreeModel->childAtIndex(selectedRow()+(!hasUsernameCell())));
|
||||
StackViewController * stack = stackController();
|
||||
m_lastSelect = selectedRow();
|
||||
stack->push(subController);
|
||||
return true;
|
||||
}
|
||||
if (!(event == Ion::Events::Right)) {
|
||||
if (childLabel == I18n::Message::SoftwareVersion) {
|
||||
MessageTableCellWithBuffer * myCell = (MessageTableCellWithBuffer *)m_selectableTableView.selectedCell();
|
||||
if (strcmp(myCell->accessoryText(), Ion::patchLevel()) == 0) {
|
||||
const char * currentText = myCell->accessoryText();
|
||||
if (strcmp(currentText, Ion::patchLevel()) == 0) {
|
||||
myCell->setAccessoryText(Ion::pcbVersion());
|
||||
} else if (strcmp(currentText, Ion::pcbVersion()) == 0) {
|
||||
myCell->setAccessoryText(Ion::softwareVersion());
|
||||
return true;
|
||||
} else {
|
||||
assert(strcmp(currentText, Ion::softwareVersion()) == 0);
|
||||
myCell->setAccessoryText(Ion::patchLevel());
|
||||
}
|
||||
myCell->setAccessoryText(Ion::patchLevel());
|
||||
return true;
|
||||
}
|
||||
if (childLabel == I18n::Message::OmegaVersion) {
|
||||
@@ -96,11 +101,15 @@ bool AboutController::handleEvent(Ion::Events::Event event) {
|
||||
return GenericSubController::handleEvent(event);
|
||||
}
|
||||
|
||||
int AboutController::numberOfRows() const {
|
||||
return m_messageTreeModel->numberOfChildren() - (!hasUsernameCell());
|
||||
}
|
||||
|
||||
HighlightCell * AboutController::reusableCell(int index, int type) {
|
||||
assert(index >= 0);
|
||||
if (type == 0) {
|
||||
assert(index < k_totalNumberOfCell-1);
|
||||
return &m_cells[index];
|
||||
assert(index < k_totalNumberOfCell-1-(!hasUsernameCell()));
|
||||
return &m_cells[index+(!hasUsernameCell())];
|
||||
}
|
||||
assert(index == 0);
|
||||
return &m_contributorsCell;
|
||||
@@ -113,7 +122,7 @@ int AboutController::typeAtLocation(int i, int j) {
|
||||
int AboutController::reusableCellCount(int type) {
|
||||
switch (type) {
|
||||
case 0:
|
||||
return k_totalNumberOfCell-1;
|
||||
return k_totalNumberOfCell-1-(!hasUsernameCell());
|
||||
case 1:
|
||||
return 1;
|
||||
default:
|
||||
@@ -122,13 +131,18 @@ int AboutController::reusableCellCount(int type) {
|
||||
}
|
||||
}
|
||||
|
||||
bool AboutController::hasUsernameCell() const {
|
||||
return (*Ion::username()) != 0;
|
||||
}
|
||||
|
||||
void AboutController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
GenericSubController::willDisplayCellForIndex(cell, index);
|
||||
int i = index + (!hasUsernameCell());
|
||||
GenericSubController::willDisplayCellForIndex(cell, i);
|
||||
assert(index >= 0 && index < k_totalNumberOfCell);
|
||||
if (m_messageTreeModel->childAtIndex(index)->label() == I18n::Message::Contributors) {
|
||||
if (m_messageTreeModel->childAtIndex(i)->label() == I18n::Message::Contributors) {
|
||||
MessageTableCellWithChevronAndMessage * myTextCell = (MessageTableCellWithChevronAndMessage *)cell;
|
||||
myTextCell->setSubtitle(I18n::Message::Default);
|
||||
} else if (m_messageTreeModel->childAtIndex(index)->label() == I18n::Message::MemUse) {
|
||||
} else if (m_messageTreeModel->childAtIndex(i)->label() == I18n::Message::MemUse) {
|
||||
char memUseBuffer[15];
|
||||
int len = Poincare::Integer((int)((float) (Ion::Storage::k_storageSize - Ion::Storage::sharedStorage()->availableSize()) / 1024.f)).serialize(memUseBuffer, 4);
|
||||
memUseBuffer[len] = 'k';
|
||||
@@ -146,17 +160,16 @@ void AboutController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
MessageTableCellWithBuffer * myCell = (MessageTableCellWithBuffer *)cell;
|
||||
static const char * mpVersion = MICROPY_VERSION_STRING;
|
||||
static const char * messages[] = {
|
||||
#ifdef OMEGA_USERNAME
|
||||
Ion::username(),
|
||||
#endif
|
||||
(const char*) Ion::username(),
|
||||
Ion::softwareVersion(),
|
||||
Ion::omegaVersion(),
|
||||
mpVersion,
|
||||
"",
|
||||
Ion::serialNumber(),
|
||||
Ion::fccId()
|
||||
Ion::fccId(),
|
||||
""
|
||||
};
|
||||
myCell->setAccessoryText(messages[index]);
|
||||
myCell->setAccessoryText(messages[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,12 +20,10 @@ public:
|
||||
int reusableCellCount(int type) override;
|
||||
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
|
||||
int typeAtLocation(int i, int j) override;
|
||||
int numberOfRows() const override;
|
||||
private:
|
||||
#ifdef OMEGA_USERNAME
|
||||
constexpr static int k_totalNumberOfCell = 8;
|
||||
#else
|
||||
constexpr static int k_totalNumberOfCell = 7;
|
||||
#endif
|
||||
bool hasUsernameCell() const;
|
||||
ContributorsController m_contributorsController;
|
||||
MessageTableCellWithChevronAndMessage m_contributorsCell;
|
||||
//SelectableViewWithMessages m_view;
|
||||
|
||||
@@ -28,13 +28,13 @@ int ContributorsController::reusableCellCount(int type) {
|
||||
return k_totalNumberOfCell;
|
||||
}
|
||||
|
||||
constexpr static int s_numberOfDevelopers = 12;
|
||||
constexpr static int s_numberOfDevelopers = 13;
|
||||
constexpr static I18n::Message s_developersUsernames[s_numberOfDevelopers] = {
|
||||
I18n::Message::PQuentinGuidee,
|
||||
I18n::Message::PSandraSimmons,
|
||||
I18n::Message::PJoachimLeFournis,
|
||||
I18n::Message::PJeanBaptisteBoric,
|
||||
I18n::Message::PMaximeFriess,
|
||||
I18n::Message::PJeanBaptisteBoric,
|
||||
I18n::Message::PSandraSimmons,
|
||||
I18n::Message::PDavid,
|
||||
I18n::Message::PDamienNicolet,
|
||||
I18n::Message::PEvannDreumont,
|
||||
@@ -42,16 +42,19 @@ constexpr static I18n::Message s_developersUsernames[s_numberOfDevelopers] = {
|
||||
I18n::Message::PVenceslasDuet,
|
||||
I18n::Message::PCharlotteThomas,
|
||||
I18n::Message::PAntoninLoubiere,
|
||||
I18n::Message::PCyprienMejat,
|
||||
};
|
||||
|
||||
constexpr static int s_numberOfBetaTesters = 6;
|
||||
constexpr static int s_numberOfBetaTesters = 8;
|
||||
constexpr static I18n::Message s_betaTestersUsernames[s_numberOfBetaTesters] = {
|
||||
I18n::Message::PCyprienMejat,
|
||||
I18n::Message::PTimeoArnouts,
|
||||
I18n::Message::PJulieC,
|
||||
I18n::Message::PLelahelHideux,
|
||||
I18n::Message::PMadil,
|
||||
I18n::Message::PHilaireLeRoux,
|
||||
I18n::Message::PHectorNussbaumer,
|
||||
I18n::Message::PRaphaelDyda,
|
||||
I18n::Message::PThibautC,
|
||||
};
|
||||
|
||||
void ContributorsController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
|
||||
@@ -23,8 +23,9 @@ public:
|
||||
void setMessageTreeModel(const MessageTree * messageTreeModel);
|
||||
void viewDidDisappear() override;
|
||||
protected:
|
||||
int m_lastSelect = 0;
|
||||
StackViewController * stackController() const;
|
||||
virtual int initialSelectedRow() const { return 0; }
|
||||
virtual int initialSelectedRow() const { return m_lastSelect; }
|
||||
constexpr static KDCoordinate k_topBottomMargin = 13;
|
||||
SelectableTableView m_selectableTableView;
|
||||
MessageTree * m_messageTreeModel;
|
||||
|
||||
@@ -25,6 +25,7 @@ bool MathOptionsController::handleEvent(Ion::Events::Event event) {
|
||||
subController = &m_preferencesController;
|
||||
subController->setMessageTreeModel(m_messageTreeModel->childAtIndex(selectedRow()));
|
||||
StackViewController * stack = stackController();
|
||||
m_lastSelect = selectedRow();
|
||||
stack->push(subController);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ ActivateExamMode = "Prüfungsmodus starten"
|
||||
ActiveExamModeMessage1 = "Alle Ihre Daten werden "
|
||||
ActiveExamModeMessage2 = "gelöscht, wenn Sie den "
|
||||
ActiveExamModeMessage3 = "Prüfungsmodus einschalten."
|
||||
ActiveDutchExamModeMessage1 = "Alle Ihre Daten werden gelöscht, wenn"
|
||||
ActiveDutchExamModeMessage1 = "Alle Daten werden gelöscht, wenn"
|
||||
ActiveDutchExamModeMessage2 = "Sie den Prüfungsmodus einschalten. "
|
||||
ActiveDutchExamModeMessage3 = "Python wird nicht verfügbar sein."
|
||||
Axis = "Achse"
|
||||
@@ -25,7 +25,7 @@ CountryNL = "Niederlande "
|
||||
CountryPT = "Portugal "
|
||||
CountryUS = "Vereinigte Staaten "
|
||||
CountryWW = "International "
|
||||
CountryWarning1 = "Diese Einstellung definiert die verwendeten"
|
||||
CountryWarning1 = "Einstellung definiert verwendete"
|
||||
CountryWarning2 = "mathematischen Konventionen."
|
||||
DataNotSuitable = "Daten nicht geeignet"
|
||||
DataTab = "Daten"
|
||||
@@ -43,16 +43,16 @@ FunctionColumn = "0(0) Spalte"
|
||||
FunctionOptions = "Funktionsoptionen"
|
||||
Goto = "Gehe zu"
|
||||
GraphTab = "Graph"
|
||||
HardwareTestLaunch1 = "Sie sind dabei den Hardwaretest zu"
|
||||
HardwareTestLaunch2 = "starten. Um ihn wieder zu verlassen,"
|
||||
HardwareTestLaunch3 = "müssen Sie einen Reset durchfuhren,"
|
||||
HardwareTestLaunch1 = "Sie sind dabei, den Hardwaretest zu"
|
||||
HardwareTestLaunch2 = "starten. Um ihn zu verlassen,"
|
||||
HardwareTestLaunch3 = "müssen Sie einen Reset durchführen,"
|
||||
HardwareTestLaunch4 = "der Ihre Daten löschen wird."
|
||||
IntervalSet = "Intervall einstellen"
|
||||
Language = "Sprache"
|
||||
LowBattery = "Batterie erschöpft"
|
||||
LowBattery = "Akku erschöpft"
|
||||
Mean = "Mittelwert"
|
||||
Move = " Verschieben: "
|
||||
NameCannotStartWithNumber = "Ein Name darf nicht mit einer Zahl beginnen"
|
||||
NameCannotStartWithNumber = "Name darf nicht mit Zahl beginnen"
|
||||
NameTaken = "Dieser Name ist bereits vergeben"
|
||||
NameTooLong = "Der Name ist zu lang"
|
||||
Navigate = "Navigieren"
|
||||
@@ -70,14 +70,14 @@ PoolMemoryFull1 = "Der Arbeitsspeicher ist voll."
|
||||
PoolMemoryFull2 = "Versuchen Sie es erneut."
|
||||
Rename = "Umbenennen"
|
||||
Sci = "wiss"
|
||||
SortValues = "Nach steigenden Werten sortieren"
|
||||
SortSizes = "Nach steigenden Frequenzen sortieren"
|
||||
SortValues = "Nach Werten sortieren"
|
||||
SortSizes = "Nach Frequenzen sortieren"
|
||||
SquareSum = "Quadratsumme"
|
||||
StatTab = "Stats"
|
||||
StandardDeviation = "Standardabweichung"
|
||||
Step = "Schrittwert"
|
||||
StorageMemoryFull1 = "Der Speicher ist voll. Löschen Sie"
|
||||
StorageMemoryFull2 = "einige Daten und versuchen Sie es erneut."
|
||||
StorageMemoryFull2 = "einige Daten, dann erneut versuchen."
|
||||
StoreExpressionNotAllowed = "'store' ist verboten"
|
||||
SyntaxError = "Syntaxfehler"
|
||||
Sym = "sym"
|
||||
@@ -94,3 +94,8 @@ XStart = "X Startwert"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Entwickler"
|
||||
BetaTesters = "Beta-Tester"
|
||||
ExamModeMode = "Modus"
|
||||
ExamModeModeStandard = "Standard "
|
||||
ExamModeModeNoSym = "Kein Symbol "
|
||||
ExamModeModeNoSymNoText = "Kein Symbol kein Text "
|
||||
ExamModeModeDutch = "Niederländisch "
|
||||
|
||||
@@ -94,3 +94,8 @@ XStart = "X inicio"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Desarrolladores"
|
||||
BetaTesters = "Probadores beta"
|
||||
ExamModeMode = "Modo"
|
||||
ExamModeModeStandard = "Estándar "
|
||||
ExamModeModeNoSym = "Sin simbólico "
|
||||
ExamModeModeNoSymNoText = "Sin simbólico sin texto "
|
||||
ExamModeModeDutch = "Holandés "
|
||||
|
||||
@@ -3,86 +3,99 @@ ActivateExamMode = "A vizsgálati mód aktiválása"
|
||||
ActivateDutchExamMode = "A holland vizsga mód aktiválása"
|
||||
ActiveExamModeMessage1 = "Az összes adatod"
|
||||
ActiveExamModeMessage2 = "törölve lesz ha"
|
||||
ActiveExamModeMessage3 = "aktiválod a vizsga módot."
|
||||
ActiveDutchExamModeMessage1 = "Az összes adat törlödik, amikor"
|
||||
ActiveDutchExamModeMessage2 = "aktiválod a vizsga módot. A Python "
|
||||
ActiveDutchExamModeMessage3 = "alkalmazás nem lesz elérhetö."
|
||||
Axis = "Tengely"
|
||||
ActiveExamModeMessage3 = "a vizsga módot aktiválja."
|
||||
ActiveDutchExamModeMessage1 = "Az összes adatod törölve lesz"
|
||||
ActiveDutchExamModeMessage2 = "ha a vizsga módot aktiválja. A"
|
||||
ActiveDutchExamModeMessage3 = "Python alkalmazás használhatatlan lesz."
|
||||
Axis = "Tengelyek"
|
||||
Cancel = "Mégse"
|
||||
ClearColumn = "Oszlop törlése"
|
||||
ColumnOptions = "Oszlop opciók"
|
||||
CopyColumnInList = "Az oszlop exportálása egy listába"
|
||||
DataNotSuitable = "Az adatok nem megfelelöek"
|
||||
DataTab = "Data"
|
||||
DefaultSetting = "Alapbeállítások"
|
||||
ConfirmDiscard1 = "Minden változtatást elvetünk"
|
||||
ConfirmDiscard2 = ""
|
||||
CopyColumnInList = "Az oszlopot egy listába másolni"
|
||||
Country = "Ország"
|
||||
CountryCA = "Kanada "
|
||||
CountryDE = "Németország "
|
||||
CountryES = "Spanyolország "
|
||||
CountryFR = "Franciaország "
|
||||
CountryGB = "Egyesült Királyság "
|
||||
CountryIT = "Olaszország "
|
||||
CountryNL = "Hollandia "
|
||||
CountryPT = "Portugália "
|
||||
CountryUS = "Egyesült Államok "
|
||||
CountryWW = "Nemzetközi "
|
||||
CountryWarning1 = "Ez a beállítás meghatározza az"
|
||||
CountryWarning2 = "alkalmazott tematikus konvenciókat."
|
||||
DataNotSuitable = "Az adatok nem felelnek meg"
|
||||
DataTab = "Adatok"
|
||||
Deg = "deg"
|
||||
Deviation = "Varianca"
|
||||
DisplayValues = "Értékek mutatása"
|
||||
Empty = "Üres"
|
||||
Eng = "eng"
|
||||
ExitExamMode1 = "Kilépés a vizsga "
|
||||
ExitExamMode1 = "Kilépni a vizsga "
|
||||
ExitExamMode2 = "módból?"
|
||||
Exponential = "Exponenciális"
|
||||
FillWithFormula = "Töltse ki egy képlettel"
|
||||
ForbiddenValue = "Tiltott érték"
|
||||
FunctionColumn = "0 (0) oszlop"
|
||||
FunctionColumn = "0(0) oszlop"
|
||||
FunctionOptions = "Funkció opciók"
|
||||
Goto = "Menj ide"
|
||||
Goto = "Menj ..."
|
||||
GraphTab = "Grafikon"
|
||||
HardwareTestLaunch1 = "Ön elindítja a hardvert"
|
||||
HardwareTestLaunch2 = " tesztet. A teszt végén neked"
|
||||
HardwareTestLaunch3 = "kell vissza állítani az eszközt,és"
|
||||
HardwareTestLaunch4 = "az összes adat törlödni fog."
|
||||
Initialization = "Elöbeállítás"
|
||||
HardwareTestLaunch1 = "A hardverteszt indítása :"
|
||||
HardwareTestLaunch2 = "Nyomjon a reset gombra a"
|
||||
HardwareTestLaunch3 = "teszt megállításához (ez"
|
||||
HardwareTestLaunch4 = "az adatokat törölni fogja)"
|
||||
IntervalSet = "Állítsa be az intervallumot"
|
||||
Language = "Nyelv"
|
||||
LowBattery = "Alacsony töltöttség"
|
||||
LowBattery = "Majdnem kimerült az elem"
|
||||
Mean = "középérték"
|
||||
Move = " Move: "
|
||||
Move = " Odébb rakni: "
|
||||
NameCannotStartWithNumber = "Egy név nem kezdöthet számmal"
|
||||
NameTaken = "Ez a név foglalt"
|
||||
NameTooLong = "Ez a név túl hosszú"
|
||||
Navigate = "Hajózik"
|
||||
Next = "következö"
|
||||
NEnd = "N vége"
|
||||
NoDataToPlot = "Nincs rajzolható adat"
|
||||
NoFunctionToDelete = "Nincs törölhetö függvény"
|
||||
NoValueToCompute = "Nincs számítható érték"
|
||||
NEnd = "N vége"
|
||||
NStart = "N kezdete"
|
||||
Ok = "Megerösítés"
|
||||
Ok = "Érvényesítés"
|
||||
Or = " vagy "
|
||||
Orthonormal = "Ortonormál"
|
||||
Plot = "Grafikon elkészítése"
|
||||
Orthonormal = "Ortonormált"
|
||||
Plot = "Grafikon rajzolása"
|
||||
PoolMemoryFull1 = "A memória megtelt."
|
||||
PoolMemoryFull2 = "Kérem próbálja újra."
|
||||
Rad = "rad"
|
||||
Rename = "Átnevezés"
|
||||
RoundAbscissa = "Egész szám"
|
||||
Sci = "sci"
|
||||
SortValues = "Rendezés értékek növelésével"
|
||||
SortSizes = "Rendezés növekvő frekvenciák szerint"
|
||||
SquareSum = "Négyzetek összege"
|
||||
StandardDeviation = "Alap eltérés"
|
||||
StoreExpressionNotAllowed = "'tárolás' nem engedélyezett"
|
||||
StatTab = "Statisztikák"
|
||||
Step = "Lépés"
|
||||
StorageMemoryFull1 = "A memória megtelt."
|
||||
StorageMemoryFull2 = "Adatok törlése és próbálkozzon újra."
|
||||
StorageMemoryFull2 = "Törlöljön adatokat és próbálkozzon újra."
|
||||
StoreExpressionNotAllowed = "'szore' nem engedélyezett"
|
||||
SyntaxError = "Szintaxis hiba"
|
||||
Sym = "sym"
|
||||
TEnd = "T vég"
|
||||
ThetaEnd = "θ vége"
|
||||
ThetaStart = "θ kezdete"
|
||||
TStart = "T kezdete"
|
||||
ToZoom = "Zoom:"
|
||||
Trigonometric = "Trigonometrikus"
|
||||
UndefinedValue = "Nincs meghatározva érték"
|
||||
ToZoom = "Nagyítani : "
|
||||
UndefinedValue = "Meghatározatlan adat"
|
||||
ValuesTab = "Táblázat"
|
||||
Warning = "Figyelem"
|
||||
XEnd = "X vége"
|
||||
XStart = "X kezdete"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Fejlesztök"
|
||||
Zoom = "Nagyítás"
|
||||
Developers = "Kifejlesztök"
|
||||
BetaTesters = "Béta tesztelök"
|
||||
ExamModeMode = "Üzemmód"
|
||||
ExamModeModeStandard = "Normál"
|
||||
ExamModeModeNoSym = "Nincs sym"
|
||||
ExamModeModeNoSymNoText = "Nincs szimbolikus, nincs szöveg "
|
||||
ExamModeModeStandard = "Normál "
|
||||
ExamModeModeNoSym = "Szimbólikus nélkül "
|
||||
ExamModeModeNoSymNoText = "Szimbólikus és szöveg nélkül "
|
||||
ExamModeModeDutch = "Holland "
|
||||
|
||||
@@ -94,3 +94,8 @@ XStart = "X iniziale"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Developers"
|
||||
BetaTesters = "Beta testers"
|
||||
ExamModeMode = "Modalità"
|
||||
ExamModeModeStandard = "Standard "
|
||||
ExamModeModeNoSym = "Nessun simbolo "
|
||||
ExamModeModeNoSymNoText = "Nessun simbolo nessun testo "
|
||||
ExamModeModeDutch = "Olandese "
|
||||
|
||||
@@ -94,3 +94,8 @@ XStart = "X begin"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Developers"
|
||||
BetaTesters = "Beta testers"
|
||||
ExamModeMode = "Mode"
|
||||
ExamModeModeStandard = "Standaard "
|
||||
ExamModeModeNoSym = "Geen sym "
|
||||
ExamModeModeNoSymNoText = "Geen sym geen tekst "
|
||||
ExamModeModeDutch = "Nederlands "
|
||||
|
||||
@@ -94,3 +94,8 @@ XStart = "X início"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Desenvolvedores"
|
||||
BetaTesters = "Testadores beta"
|
||||
ExamModeMode = "Modo"
|
||||
ExamModeModeStandard = "Padrão "
|
||||
ExamModeModeNoSym = "Sem sym "
|
||||
ExamModeModeNoSymNoText = "Sem sym sem texto "
|
||||
ExamModeModeDutch = "holandês "
|
||||
|
||||
@@ -134,6 +134,7 @@ GcdCommandWithArg = "gcd(p,q)"
|
||||
Gon = "gon"
|
||||
ImCommandWithArg = "im(z)"
|
||||
IndentityCommandWithArg = "identity(n)"
|
||||
Infinity = "infinity"
|
||||
IntCommand = "int(\x11,x,\x11,\x11)"
|
||||
IntCommandWithArg = "int(f(x),x,a,b)"
|
||||
InvBinomialCommandWithArg = "invbinom(a,n,p)"
|
||||
@@ -342,7 +343,7 @@ CyprienMejat = "Cyprien Méjat"
|
||||
PCyprienMejat = "@A2drien"
|
||||
TimeoArnouts = "Timéo Arnouts"
|
||||
PTimeoArnouts = "@Dogm"
|
||||
JulieC = "Julie C"
|
||||
JulieC = "Julie C."
|
||||
PJulieC = "@windows9x95"
|
||||
LelahelHideux = "Lélahel Hideux"
|
||||
PLelahelHideux = "@Lelahelry"
|
||||
@@ -350,6 +351,12 @@ Madil = "Madil"
|
||||
PMadil = "@le-grand-mannitout"
|
||||
HilaireLeRoux = "Hilaire Le Roux"
|
||||
PHilaireLeRoux = "@0Babass2"
|
||||
HectorNussbaumer = "Hector Nussbaumer"
|
||||
PHectorNussbaumer = "@Sycorax"
|
||||
RaphaelDyda = "Raphaël Dyda"
|
||||
PRaphaelDyda = "@Trixciel"
|
||||
ThibautC = "Thibaut C."
|
||||
PThibautC = "@Tibo_C"
|
||||
SpeedOfLight = "2.99792458·10^8_m_s^-1"
|
||||
YearLight = "9.461·10^15_m"
|
||||
Boltzmann = "1.380649·10^-23_J_K^-1"
|
||||
|
||||
@@ -13,12 +13,12 @@ LocalizationController::ContentView::ContentView(LocalizationController * contro
|
||||
m_countryTitleMessage(KDFont::LargeFont, I18n::Message::Country),
|
||||
m_borderView(Palette::BackgroundApps)
|
||||
{
|
||||
m_countryTitleMessage.setBackgroundColor(Palette::WallScreen);
|
||||
m_countryTitleMessage.setBackgroundColor(Palette::BackgroundHard);
|
||||
m_countryTitleMessage.setAlignment(0.5f, 0.5f);
|
||||
assert(k_numberOfCountryWarningLines == 2); // textMessages is not overflowed
|
||||
I18n::Message textMessages[k_numberOfCountryWarningLines] = {I18n::Message::CountryWarning1, I18n::Message::CountryWarning2};
|
||||
for (int i = 0; i < k_numberOfCountryWarningLines; i++) {
|
||||
m_countryWarningLines[i].setBackgroundColor(Palette::WallScreen);
|
||||
m_countryWarningLines[i].setBackgroundColor(Palette::BackgroundHard);
|
||||
m_countryWarningLines[i].setFont(KDFont::SmallFont);
|
||||
m_countryWarningLines[i].setAlignment(0.5f, 0.5f);
|
||||
m_countryWarningLines[i].setMessage(textMessages[i]);
|
||||
|
||||
@@ -45,7 +45,7 @@ protected:
|
||||
ContentView(LocalizationController * controller, SelectableTableViewDataSource * dataSource);
|
||||
|
||||
SelectableTableView * selectableTableView() { return &m_selectableTableView; }
|
||||
void drawRect(KDContext * ctx, KDRect rect) const override { ctx->fillRect(bounds(), Palette::WallScreen); }
|
||||
void drawRect(KDContext * ctx, KDRect rect) const override { ctx->fillRect(bounds(), Palette::BackgroundApps); }
|
||||
void modeHasChanged();
|
||||
|
||||
private:
|
||||
|
||||
@@ -4,7 +4,7 @@ AddEquation = "Gleichung hinzufügen"
|
||||
ResolveEquation = "Lösen der Gleichung"
|
||||
ResolveSystem = "Lösen des Gleichungssystems"
|
||||
UseEquationModel = "Verwenden Sie ein Gleichungsmodell"
|
||||
RequireEquation = "Die Eingabe muss eine Gleichung sein"
|
||||
RequireEquation = "Eingabe muss eine Gleichung sein"
|
||||
UndefinedEquation = "Nicht definierte Gleichung"
|
||||
UnrealEquation = "Nicht reelle Gleichung"
|
||||
TooManyVariables = "Es gibt zu viele Unbekannte"
|
||||
@@ -17,8 +17,8 @@ NoSolutionEquation = "Die Gleichung hat keine Lösung"
|
||||
NoSolutionInterval = "Keine Lösung im Intervall gefunden"
|
||||
EnterEquation = "Geben Sie eine Gleichung ein"
|
||||
InfiniteNumberOfSolutions = "Es gibt unendlich viele Lösungen"
|
||||
ApproximateSolutionIntervalInstruction0= "Geben Sie das Intervall für die Suche"
|
||||
ApproximateSolutionIntervalInstruction1= "nach einer ungefähren Lösung ein"
|
||||
ApproximateSolutionIntervalInstruction0= "Geben Sie das Suchintervall"
|
||||
ApproximateSolutionIntervalInstruction1= "für eine ungefähre Lösung ein"
|
||||
OnlyFirstSolutionsDisplayed0 = "Es werden nur die ersten"
|
||||
OnlyFirstSolutionsDisplayed1 = "zehn Lösungen angezeigt."
|
||||
PolynomeHasNoRealSolution0 = "Das Polynom hat"
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
SolverApp = "Egyenletek"
|
||||
SolverAppCapital = "Egyenletek"
|
||||
AddEquation = "Egyenlet hozzáadása"
|
||||
ResolveEquation = "Oldja meg az egyenletet"
|
||||
ResolveSystem = "A rendszer megoldása"
|
||||
SolverAppCapital = "EGYENLETEK"
|
||||
AddEquation = "Egyenlet hozzáadás"
|
||||
ResolveEquation = "Egyenletet megoldása"
|
||||
ResolveSystem = "Rendszer megoldása"
|
||||
UseEquationModel = "Használjon egyenleti sablont"
|
||||
RequireEquation = "A bemenetnek egyenletnek kell lennie"
|
||||
UnrealEquation = "Unreal egyenlet"
|
||||
UndefinedEquation = "Definiálatlan egyenlet"
|
||||
TooManyVariables = "Túl sok ismeretlen"
|
||||
RequireEquation = "A bemenetnek csak egyenlet lehet"
|
||||
UnrealEquation = "Irreális egyenlet"
|
||||
UndefinedEquation = "Egy egyenlet meghatározatlan "
|
||||
TooManyVariables = "Túl sok ismeretlen van"
|
||||
NonLinearSystem = "A rendszer nem lineáris"
|
||||
Solution = "Megoldás"
|
||||
ApproximateSolution = "Hozzávetöleges megoldás"
|
||||
SearchInverval = "Keresési intervallum"
|
||||
NoSolutionSystem = "A rendszernek nincs megoldása"
|
||||
NoSolutionEquation = "Az egyenletnek nincs megoldása"
|
||||
NoSolutionInterval = "Nem találtunk megoldást az intervallumban"
|
||||
EnterEquation = "Írja be az egyenletet"
|
||||
InfiniteNumberOfSolutions = "Végtelen számú megoldás létezik"
|
||||
ApproximateSolutionIntervalInstruction0 = "Adja meg a keresés intervallumát"
|
||||
ApproximateSolutionIntervalInstruction1 = "egy hozzávetöleges megoldáshoz"
|
||||
OnlyFirstSolutionsDisplayed0 = "Csak az elsö 10 megoldás"
|
||||
OnlyFirstSolutionsDisplayed1 = "megjelenik"
|
||||
NoSolutionInterval = "Nincs megoldás ebben az intervallumban"
|
||||
EnterEquation = "Írjon be egy egyenletet"
|
||||
InfiniteNumberOfSolutions = "Végtelen menyi megoldások léteznek"
|
||||
ApproximateSolutionIntervalInstruction0 = "Irja be a keresés intervallumot"
|
||||
ApproximateSolutionIntervalInstruction1 = "amelyikbe egy hozzávetöleges megoldást keressen"
|
||||
OnlyFirstSolutionsDisplayed0 = "Csak a 10 elsö megoldások"
|
||||
OnlyFirstSolutionsDisplayed1 = "jelennek meg"
|
||||
PolynomeHasNoRealSolution0 = "A polinomnak nincs"
|
||||
PolynomeHasNoRealSolution1 = "valódi gyökére"
|
||||
PredefinedVariablesUsedLeft = "Használt"
|
||||
PredefinedVariablesUsedRight = "elöre definiált változók"
|
||||
PredefinedVariablesIgnoredLeft = "mellözött"
|
||||
PredefinedVariablesIgnoredRight = "elöre definiált változók"
|
||||
PredefinedVariablesUsedLeft = "Alkalmazott elöre-"
|
||||
PredefinedVariablesUsedRight = "meghatározott változók"
|
||||
PredefinedVariablesIgnoredLeft = "Mellözött"
|
||||
PredefinedVariablesIgnoredRight = "elöre-meghatározott változók"
|
||||
|
||||
@@ -24,4 +24,4 @@ StandardDeviationSigma = "Standard deviation σ"
|
||||
SampleStandardDeviationS = "Sample std deviation s"
|
||||
SumValues = "Sum of values"
|
||||
SumSquareValues = "Sum of squared values"
|
||||
InterquartileRange = "Interquartile range"
|
||||
InterquartileRange = "Interquartile range"
|
||||
|
||||
@@ -5,21 +5,23 @@ BoxTab = "Doboz"
|
||||
Values1 = "V1 értékek"
|
||||
Values2 = "V2 értékek"
|
||||
Values3 = "V3 értékek"
|
||||
Sizes1 = "N1 méret"
|
||||
Sizes2 = "N2 méret"
|
||||
Sizes3 = "N3 méret"
|
||||
Frequencies1 = "N1 Frekvencia"
|
||||
Frequencies2 = "N2 Frekvencia"
|
||||
Frequencies3 = "N3 Frekvencia"
|
||||
ImportList = "Importálás egy listáról"
|
||||
Interval = "Intervallum"
|
||||
Size = "Méret"
|
||||
Frequency = "Frekvencia"
|
||||
Frequency = "Frekvencia:"
|
||||
RelativeFrequency = "Relatív:"
|
||||
HistogramSet = "Hisztogram beállítások"
|
||||
RectangleWidth = "Tálca szélessége"
|
||||
BarStart = "X kezdet"
|
||||
FirstQuartile = "Elsö kvartilis"
|
||||
Median = "Medián"
|
||||
ThirdQuartile = "Harmadik kvartilis"
|
||||
TotalSize = "Teljes méret"
|
||||
TotalFrequency = "Adatpontok száma "
|
||||
Range = "Intervallum"
|
||||
StandardDeviationSigma = "σ szórás"
|
||||
SampleStandardDeviationS = "Minta std eltérés s"
|
||||
SampleStandardDeviationS = "Minta std eltérés σ"
|
||||
SumValues = "Értékek összege"
|
||||
SumSquareValues = "Négyzetértékek összege"
|
||||
InterquartileRange = "Interkvartilis tartomány"
|
||||
|
||||
@@ -21,18 +21,19 @@ UnitDistanceMeterNano = "Nanometer"
|
||||
UnitDistanceMeterPico = "Pikometer"
|
||||
UnitDistanceAstronomicalUnit = "Astronomische Einheit"
|
||||
UnitDistanceLightYear = "Lichtjahr"
|
||||
UnitDistanceParsec = "Parsec"
|
||||
UnitDistanceMile = "Meile"
|
||||
UnitDistanceYard = "Yard"
|
||||
UnitDistanceFoot = "Fuß"
|
||||
UnitDistanceInch = "Inch"
|
||||
UnitDistanceInch = "Zoll"
|
||||
UnitMassMenu = "Masse"
|
||||
UnitMassGramKilo = "Kilogramm"
|
||||
UnitMassGram = "Gramm"
|
||||
UnitMassGramMilli = "Milligramm"
|
||||
UnitMassGramMicro = "Mikrogramm"
|
||||
UnitMassGramNano = "Nanogramm"
|
||||
UnitDistanceImperialMenu = "US Customary"
|
||||
UnitMassImperialMenu = "US Customary"
|
||||
UnitDistanceImperialMenu = "Angloamerikanisch"
|
||||
UnitMassImperialMenu = "Angloamerikanisch"
|
||||
UnitMassTonne = "Tonne"
|
||||
UnitMassOunce = "Unze"
|
||||
UnitMassPound = "Pfund"
|
||||
@@ -94,7 +95,7 @@ UnitVolumePint = "Pint"
|
||||
UnitVolumeQuart = "Quart"
|
||||
UnitVolumeGallon = "Gallone"
|
||||
UnitMetricMenu = "Metrisch"
|
||||
UnitImperialMenu = "Empire"
|
||||
UnitImperialMenu = "Angloamerikanisch"
|
||||
Toolbox = "Werkzeugkasten"
|
||||
AbsoluteValue = "Betragsfunktion"
|
||||
NthRoot = "n-te Wurzel"
|
||||
@@ -109,6 +110,7 @@ Identity = "Einheitsmatrix der Größe n"
|
||||
Lists = "Listen"
|
||||
HyperbolicTrigonometry = "Hyperbelfunktionen"
|
||||
Fluctuation = "Konfidenzintervall"
|
||||
InfinityMessage = "Unendlich"
|
||||
DerivateNumber = "Ableitung"
|
||||
Integral = "Integral"
|
||||
Sum = "Summe"
|
||||
@@ -135,34 +137,34 @@ Vectors = "Vektoren"
|
||||
Dot = "Skalarprodukt"
|
||||
Cross = "Kreuzprodukt"
|
||||
NormVector = "Norm"
|
||||
Sort = "Sortieren aufsteigend"
|
||||
InvSort = "Sortieren absteigend"
|
||||
Sort = "Aufsteigend sortieren"
|
||||
InvSort = "Absteigend sortieren"
|
||||
Maximum = "Maximalwert"
|
||||
Minimum = "Mindestwert"
|
||||
Floor = "Untergrenze"
|
||||
FracPart = "Bruchteil"
|
||||
Ceiling = "Obergrenze"
|
||||
Rounding = "Runden"
|
||||
HyperbolicCosine = "Kosinus hyperbolicus"
|
||||
HyperbolicSine = "Sinus hyperbolicus"
|
||||
HyperbolicTangent = "Tangens hyperbolicus"
|
||||
InverseHyperbolicCosine = "Areakosinus hyperbolicus"
|
||||
InverseHyperbolicSine = "Areasinus hyperbolicus"
|
||||
InverseHyperbolicTangent = "Areatangens hyperbolicus"
|
||||
Prediction95 = "Schwankungsbereich 95%"
|
||||
Prediction = "Einfacher Schwankungsbereich"
|
||||
HyperbolicCosine = "Hyperbolischer Kosinus"
|
||||
HyperbolicSine = "Hyperbolischer Sinus"
|
||||
HyperbolicTangent = "Hyperbolischer Tangens"
|
||||
InverseHyperbolicCosine = "Inverser hyperbolischer Kosinus"
|
||||
InverseHyperbolicSine = "Inverser hyperbolischer Sinus"
|
||||
InverseHyperbolicTangent = "Inverser hyperbolischer Tangens"
|
||||
Prediction95 = "Vorhersageintervall 95%"
|
||||
Prediction = "Einfaches Vorhersageintervall"
|
||||
Confidence = "Konfidenzintervall"
|
||||
RandomAndApproximation = "Zufall und Näherung"
|
||||
RandomFloat = "Dezimalzahl in [0,1]"
|
||||
RandomFloat = "Fließkommazahl in [0,1]"
|
||||
RandomInteger = "Zufällige ganze Zahl in [a,b]"
|
||||
PrimeFactorDecomposition = "Primfaktorzerlegung"
|
||||
NormCDF = "P(X<a) wo X folgt N(μ,σ)"
|
||||
NormCDF2 = "P(a<X<b) wo X folgt N(μ,σ)"
|
||||
InvNorm = "m wo P(X<m)=a und X folgt N(μ,σ)"
|
||||
PrimeFactorDecomposition = "Ganzzahlige Faktorisierung"
|
||||
NormCDF = "P(X<a) wobei X auf N(μ,σ) folgt"
|
||||
NormCDF2 = "P(a<X<b) wobei X auf N(μ,σ) folgt"
|
||||
InvNorm = "m wobei P(X<m)=a, X folgt N(μ,σ)"
|
||||
NormPDF = "Wahrscheinlichkeitsdichte N(μ,σ)"
|
||||
BinomialPDF = "P(X=m) wo X folgt B(n,p)"
|
||||
BinomialCDF = "P(X<=m) wo X folgt B(n,p)"
|
||||
InvBinomial = "m wo P(X<=m)=a und X folgt B(n,p)"
|
||||
BinomialPDF = "P(X=m) wobei X auf B(n,p) folgt"
|
||||
BinomialCDF = "P(X<=m) wobei X auf B(n,p) folgt"
|
||||
InvBinomial = "m wobei P(X<=m)=a, X folgt B(n,p)"
|
||||
Probability = "Wahrscheinlichkeit"
|
||||
BinomialDistribution = "Binomialverteilung"
|
||||
NormalDistribution = "Normalverteilung"
|
||||
|
||||
@@ -110,6 +110,7 @@ Identity = "Identity matrix of size n"
|
||||
Lists = "List"
|
||||
HyperbolicTrigonometry = "Hyperbolic trigonometry"
|
||||
Fluctuation = "Prediction Interval"
|
||||
InfinityMessage = "Infinity"
|
||||
DerivateNumber = "Derivative"
|
||||
Integral = "Integral"
|
||||
Sum = "Sum"
|
||||
|
||||
@@ -22,6 +22,8 @@ UnitDistanceMeterPico = "Picometer"
|
||||
UnitDistanceImperialMenu = "US Customary"
|
||||
UnitDistanceAstronomicalUnit = "Astronomical unit"
|
||||
UnitDistanceLightYear = "Light year"
|
||||
UnitDistanceParsec = "Parsec"
|
||||
UnitMassImperialMenu = "US Customary"
|
||||
UnitDistanceMile = "Milla"
|
||||
UnitDistanceYard = "Yardas"
|
||||
UnitDistanceFoot = "Pie"
|
||||
@@ -108,6 +110,7 @@ Identity = "Matriz identidad de tamaño n"
|
||||
Lists = "Listas"
|
||||
HyperbolicTrigonometry = "Trigonometría hiperbólica"
|
||||
Fluctuation = "Interval de predicción"
|
||||
InfinityMessage = "Infinito"
|
||||
DerivateNumber = "Derivada"
|
||||
Integral = "Integral"
|
||||
Sum = "Suma"
|
||||
|
||||
@@ -114,6 +114,7 @@ Identity = "Matrice identité de taille n"
|
||||
Lists = "Listes"
|
||||
HyperbolicTrigonometry = "Trigonométrie hyperbolique"
|
||||
Fluctuation = "Intervalle de fluctuation"
|
||||
InfinityMessage = "Infini"
|
||||
DerivateNumber = "Nombre derivé de f en a"
|
||||
Integral = "Intégrale de f sur [a;b]"
|
||||
Sum = "Somme"
|
||||
|
||||
@@ -27,6 +27,8 @@ UnitDistanceMile = "Mérföld"
|
||||
UnitDistanceAstronomicalUnit = "Csillagászati egység"
|
||||
UnitDistanceLightYear = "Fény év"
|
||||
UnitDistanceParsec = "Parsec"
|
||||
UnitMassShortTon = "Rövid tonna"
|
||||
UnitMassLongTon = "Hosszú tonna"
|
||||
UnitMassImperialMenu = "Angolszász mértékegységek"
|
||||
UnitMassPound = "Font"
|
||||
UnitMassOunce = "Uncia"
|
||||
@@ -42,31 +44,19 @@ UnitCurrentAmpere = "Amper"
|
||||
UnitCurrentAmpereMilli = "Milliamper"
|
||||
UnitCurrentAmpereMicro = "Mikroamper"
|
||||
UnitTemperatureMenu = "Hömérséklet"
|
||||
UnitTemperatureKelvin = "Kelvin"
|
||||
UnitAmountMenu = "Az anyag mennyisége"
|
||||
UnitAmountMole = "Mól"
|
||||
UnitAmountMoleMilli = "Millimól"
|
||||
UnitAmountMoleMicro = "Mikromól"
|
||||
UnitLuminousIntensityMenu = "Fényerö"
|
||||
UnitLuminousIntensityCandela = "Candela"
|
||||
UnitFrequencyMenu = "Frekvencia"
|
||||
UnitFrequencyHertzGiga = "Gigahertz"
|
||||
UnitFrequencyHertzMega = "Megahertz"
|
||||
UnitFrequencyHertzKilo = "Kilohertz"
|
||||
UnitFrequencyHertz = "Hertz"
|
||||
UnitForceMenu = "Erö"
|
||||
UnitForceNewtonKilo = "Kilonewton"
|
||||
UnitForceNewton = "Newton"
|
||||
UnitForceNewtonMilli = "Millinewton"
|
||||
UnitPressureMenu = "Nyomás"
|
||||
UnitPressurePascal = "Pascal"
|
||||
UnitPressurePascalHecto = "Hectopascal"
|
||||
UnitPressureBar = "Bár"
|
||||
UnitPressureAtm = "Légkör"
|
||||
UnitEnergyMenu = "Energia"
|
||||
UnitEnergyJouleMenu = "Joule"
|
||||
UnitEnergyJouleKilo = "Kilojoule"
|
||||
UnitEnergyJoule = "Joule"
|
||||
UnitEnergyJouleMilli = "Millijoule"
|
||||
UnitEnergyEletronVoltMenu = "Electronvolt"
|
||||
UnitEnergyElectronVoltMega = "Megaelectronvolt"
|
||||
@@ -74,40 +64,38 @@ UnitEnergyElectronVoltKilo = "Kiloelectronvolt"
|
||||
UnitEnergyElectronVolt = "Electronvolt"
|
||||
UnitEnergyElectronVoltMilli = "Millielectronvolt"
|
||||
UnitPowerMenu = "Teljesítmény"
|
||||
UnitPowerWattGiga = "Gigawatt"
|
||||
UnitPowerWattMega = "Megawatt"
|
||||
UnitPowerWattKilo = "Kilowatt"
|
||||
UnitPowerWatt = "Watt"
|
||||
UnitPowerWattMilli = "Milliwatt"
|
||||
UnitPowerWattMicro = "Microwatt"
|
||||
UnitElectricChargeMenu = "Elektromos töltés"
|
||||
UnitChargeCoulomb = "Coulomb"
|
||||
UnitPotentialMenu = "Elektromos potenciál"
|
||||
UnitPotentialVoltKilo = "Kilovolt"
|
||||
UnitPotentialVolt = "Volt"
|
||||
UnitPotentialVoltMilli = "Millivolt"
|
||||
UnitPotentialVoltMicro = "Microvolt"
|
||||
UnitCapacitanceMenu = "Elektromos kapacitás"
|
||||
UnitCapacitanceFarad = "Farad"
|
||||
UnitCapacitanceFaradMilli = "Millifarad"
|
||||
UnitCapacitanceFaradMicro = "Microfarad"
|
||||
UnitResistanceMenu = "Elektromos ellenállás"
|
||||
UnitResistanceOhmKilo = "Kiloohm"
|
||||
UnitResistanceOhm = "Ohm"
|
||||
UnitConductanceMenu = "Elektromos vezetöképesség"
|
||||
UnitConductanceSiemens = "Siemens"
|
||||
UnitConductanceSiemensMilli = "Millisiemens"
|
||||
UnitMagneticFieldMenu = "Mágneses mezö"
|
||||
UnitMagneticFieldTesla = "Tesla"
|
||||
InductanceMenu = "Elektromos induktivitás"
|
||||
UnitInductanceHenry = "Henry"
|
||||
UnitSurfaceMenu = "Terület"
|
||||
UnitSurfaceAcre = "Acre"
|
||||
UnitSurfaceHectar = "Hektár"
|
||||
UnitVolumeMenu = "Kötet"
|
||||
UnitVolumeLiter = "Liter"
|
||||
UnitVolumeLiterDeci = "Deciliter"
|
||||
UnitVolumeLiterCenti = "Centiliter"
|
||||
UnitVolumeLiterMilli = "Milliliter"
|
||||
UnitVolumeTeaspoon = "Teáskanál"
|
||||
UnitVolumeTablespoon = "evőkanál"
|
||||
UnitVolumeFluidOunce = "Folyadék uncia"
|
||||
UnitVolumeCup = "Kupa"
|
||||
UnitVolumePint = "Pint"
|
||||
UnitVolumeQuart = "Quart"
|
||||
UnitVolumeGallon = "Gallon"
|
||||
UnitMetricMenu = "Metrikus"
|
||||
UnitImperialMenu = "Birodalmi"
|
||||
Toolbox = "Eszköztár"
|
||||
AbsoluteValue = "Abszolút érték"
|
||||
NthRoot = "n-gyökér"
|
||||
@@ -122,6 +110,7 @@ Identity = "n méretü azonosító mátrix"
|
||||
Lists = "Lista"
|
||||
HyperbolicTrigonometry = "Hiperbolikus trigonometria"
|
||||
Fluctuation = "Jósolt intervallum"
|
||||
InfinityMessage = "Végtelen"
|
||||
DerivateNumber = "Származékos"
|
||||
Integral = "Integral"
|
||||
Sum = "Összeg"
|
||||
@@ -142,6 +131,12 @@ Determinant = "determináns"
|
||||
Transpose = "Átültetés"
|
||||
Trace = "Trace"
|
||||
Dimension = "Méret"
|
||||
RowEchelonForm = "Sor echelon forma"
|
||||
ReducedRowEchelonForm = "Csökkentett sorú echelon forma"
|
||||
Vectors = "Vektorok"
|
||||
Dot = "Pont termék"
|
||||
Cross = "Kereszt termék"
|
||||
NormVector = "Norm"
|
||||
Sort = "Növekvö sorrend"
|
||||
InvSort = "Csökkenö rendezés"
|
||||
Maximum = "Maximum"
|
||||
|
||||
@@ -110,6 +110,7 @@ Identity = "Matrice identità di dimensione n"
|
||||
Lists = "Elenchi"
|
||||
HyperbolicTrigonometry = "Funzioni iperboliche"
|
||||
Fluctuation = "Intervallo di previsione"
|
||||
InfinityMessage = "Infinito"
|
||||
DerivateNumber = "Derivata"
|
||||
Integral = "Integrale"
|
||||
Sum = "Somma"
|
||||
|
||||
@@ -110,6 +110,7 @@ Identity = "Eenheidsmatrix van formaat n"
|
||||
Lists = "Lijst"
|
||||
HyperbolicTrigonometry = "Hyperbolische functies"
|
||||
Fluctuation = "Statistische intervallen"
|
||||
InfinityMessage = "Eindeloos"
|
||||
DerivateNumber = "Afgeleide"
|
||||
Integral = "Integraal"
|
||||
Sum = "Som"
|
||||
|
||||
@@ -110,6 +110,7 @@ Identity = "Matriz identidade de ordem n"
|
||||
Lists = "Listas"
|
||||
HyperbolicTrigonometry = "Funções hiperbólicas"
|
||||
Fluctuation = "Intervalo de confiança"
|
||||
InfinityMessage = "Infinito"
|
||||
DerivateNumber = "Derivada"
|
||||
Integral = "Integral"
|
||||
Sum = "Somatório"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
USBConnected = "DER RECHNER IST ANGESCHLOSSEN"
|
||||
USBConnected = "TASCHENRECHNER IST ANGESCHLOSSEN"
|
||||
ConnectedMessage1 = "Um Daten zu übertragen, verbinden"
|
||||
ConnectedMessage2 = "Sie Sich von Ihrem Computer aus mit"
|
||||
ConnectedMessage2 = "Sie sich von Ihrem Computer aus mit"
|
||||
ConnectedMessage3 = "workshop.numworks.com."
|
||||
ConnectedMessage4 = "Drücken Sie die RETURN-Taste am"
|
||||
ConnectedMessage5 = "Taschenrechner oder ziehen Sie das Kabel,"
|
||||
ConnectedMessage4 = "Drücken Sie die Zurück-Taste am"
|
||||
ConnectedMessage5 = "Taschenrechner oder Kabel abziehen,"
|
||||
ConnectedMessage6 = "um die Verbindung zu trennen."
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
USBConnected = "A SZÁMOLÓGÉP CSATLAKOZTATVA VAN"
|
||||
ConnectedMessage1 = "Az adatok átviteléhez keresse meg az"
|
||||
ConnectedMessage2 = "oldalunkat a számítógépröl"
|
||||
ConnectedMessage3 = "workshop.numworks.com"
|
||||
ConnectedMessage4 = "Nyomja meg a készülék BACK gombját"
|
||||
ConnectedMessage5 = "vagy húzza ki hogy"
|
||||
ConnectedMessage6 = "lecsatlakozzon"
|
||||
ConnectedMessage1 = ""
|
||||
ConnectedMessage2 = "Adat másolásához csatlakozzon"
|
||||
ConnectedMessage3 = "fel workshop.numworks.com ra."
|
||||
ConnectedMessage4 = "Nyomjon majd a VISSZA gombra"
|
||||
ConnectedMessage5 = "vagy huzza ki a kábelt azért"
|
||||
ConnectedMessage6 = "hogy a másolás véget érjen."
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
Variables = "Változók"
|
||||
Expressions = "Kifejezések"
|
||||
Functions = "Függvények"
|
||||
EmptyExpressionBox0 = "Nem határozott meg egyetlen változót sem."
|
||||
EmptyFunctionBox0 = "Nem határozott meg egyetlen függvényt sem."
|
||||
Functions = "Funciók"
|
||||
Sequences = "Szekvenciák"
|
||||
EmptyExpressionBox0 = "Nincs meghatározott változó."
|
||||
EmptyFunctionBox0 = "Nincs meghatározott funkció."
|
||||
EmptySequenceBox0 = "Még nem definiált szekvenciákat."
|
||||
EmptyExpressionBox1 = "A változó meghatározásához írja be:"
|
||||
EmptyFunctionBox1 = "Függvény meghatározásához írja be:"
|
||||
EmptyExpressionBox2 = "A változó neve tartalmazhatja:"
|
||||
EmptyFunctionBox2 = "A függvény neve tartalmazhatja:"
|
||||
EmptyFunctionBox1 = "Funkció meghatározásához írja be:"
|
||||
EmptySequenceBox1 = ""
|
||||
EmptyExpressionBox2 = "A változó neve tartalmazhat:"
|
||||
EmptyFunctionBox2 = "A funkció neve tartalmazhat:"
|
||||
EnableCharacters = "A..Z, a..z, 0..9 és _"
|
||||
|
||||
@@ -4,15 +4,15 @@ PLATFORM ?= device
|
||||
DEBUG ?= 0
|
||||
|
||||
HOME_DISPLAY_EXTERNALS ?= 1
|
||||
EPSILON_VERSION ?= 15.3.1
|
||||
OMEGA_VERSION ?= 1.21.0-B1
|
||||
EPSILON_VERSION ?= 15.5.0
|
||||
OMEGA_VERSION ?= 1.22.0
|
||||
# OMEGA_USERNAME ?= N/A
|
||||
OMEGA_STATE ?= Beta 1
|
||||
EPSILON_APPS ?= calculation rpn graph code statistics probability solver atom sequence regression settings external
|
||||
EPSILON_I18N ?= en fr
|
||||
OMEGA_STATE ?= dev
|
||||
EPSILON_APPS ?= calculation rpn graph code statistics probability solver atomic sequence regression settings external
|
||||
SUBMODULES_APPS = atomic rpn
|
||||
EPSILON_I18N ?= en fr nl pt it de es hu
|
||||
EPSILON_COUNTRIES ?= WW CA DE ES FR GB IT NL PT US
|
||||
EPSILON_GETOPT ?= 0
|
||||
EPSILON_TELEMETRY ?= 0
|
||||
ESCHER_LOG_EVENTS_BINARY ?= 0
|
||||
THEME_NAME ?= omega_light
|
||||
THEME_REPO ?= local
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
# This work is licensed under the MIT license, see the file LICENSE for
|
||||
# details.
|
||||
|
||||
# This script has been modified by NumWorks contributors
|
||||
|
||||
"""This module implements enough functionality to program the STM32F4xx over
|
||||
DFU, without requiring dfu-util.
|
||||
See app note AN3156 for a description of the DFU protocol.
|
||||
|
||||
52
build/device/usb/__init__.py
Executable file → Normal file
52
build/device/usb/__init__.py
Executable file → Normal file
@@ -1,17 +1,32 @@
|
||||
# Copyright (C) 2009-2017 Wander Lairson Costa
|
||||
# Copyright (C) 2017-2018 Robert Wlodarczyk
|
||||
# Copyright 2009-2017 Wander Lairson Costa
|
||||
# Copyright 2009-2021 PyUSB contributors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# 2. 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.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder 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
|
||||
# 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.
|
||||
|
||||
r"""PyUSB - Easy USB access in Python
|
||||
|
||||
@@ -33,8 +48,19 @@ import os
|
||||
__author__ = 'Wander Lairson Costa'
|
||||
|
||||
# Use Semantic Versioning, http://semver.org/
|
||||
version_info = (1, 0, 2)
|
||||
__version__ = '%d.%d.%d' % version_info
|
||||
try:
|
||||
from usb._version import version as __version__
|
||||
except ImportError:
|
||||
__version__ = '0.0.0'
|
||||
|
||||
def _get_extended_version_info(version):
|
||||
import re
|
||||
m = re.match(r'(\d+)\.(\d+)\.(\d+)[.-]?(.*)', version)
|
||||
major, minor, patch, suffix = m.groups()
|
||||
return int(major), int(minor), int(patch), suffix
|
||||
|
||||
extended_version_info = _get_extended_version_info(__version__)
|
||||
version_info = extended_version_info[:3]
|
||||
|
||||
__all__ = ['legacy', 'control', 'core', 'backend', 'util', 'libloader']
|
||||
|
||||
|
||||
37
build/device/usb/_debug.py
Executable file → Normal file
37
build/device/usb/_debug.py
Executable file → Normal file
@@ -1,17 +1,32 @@
|
||||
# Copyright (C) 2009-2017 Wander Lairson Costa
|
||||
# Copyright (C) 2017-2018 Robert Wlodarczyk
|
||||
# Copyright 2009-2017 Wander Lairson Costa
|
||||
# Copyright 2009-2021 PyUSB contributors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# 2. 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.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder 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
|
||||
# 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.
|
||||
|
||||
__author__ = 'Wander Lairson Costa'
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user